{"version":3,"sources":["common/api/errorResponseHandler.js","common/api/service/CountryService.js","store/actions/countryAction.js","store/admin/reducers/adminActionLogReducer.js","store/admin/reducers/adminActionTypeReducer.js","store/admin/reducers/adminAdminRoleReducer.js","store/admin/reducers/adminAllowedRegistrationEmailDomainReducer.js","store/admin/reducers/adminBadgeRequestReducer.js","store/admin/reducers/adminCategoryReducer.js","store/admin/reducers/adminCompanyReducer.js","store/admin/reducers/adminContentReducer.js","store/admin/reducers/adminEmailTemplateReducer.js","store/admin/reducers/adminEvidenceTypeReducer.js","store/admin/reducers/adminInterventionReducer.js","store/admin/reducers/adminMentorPreferenceReducer.js","store/admin/reducers/adminPersonReducer.js","store/admin/reducers/adminRegistrationReasonReducer.js","store/admin/reducers/adminRelationshipReducer.js","store/admin/reducers/adminRelationshipTypeReducer.js","store/reducers/actionPlanReducer.js","store/reducers/authReducer.js","store/reducers/badgeRequestReducer.js","store/reducers/categoryReducer.js","store/reducers/companyReducer.js","store/reducers/configReducer.js","store/reducers/contentReducer.js","store/reducers/countryReducer.js","store/reducers/evidenceReducer.js","store/reducers/groupValueReducer.js","store/reducers/jobReducer.js","store/reducers/languageReducer.js","store/reducers/lorReducer.js","store/reducers/personReducer.js","store/reducers/registerReasonReducer.js","store/reducers/skillProfileReducer.js","store/reducers/surveyReducer.js","store/reducers/userReducer.js","store/reducers/index.js","store/store.js","common/constant.js","store/actions/actionTypes.js","utils/checkValidity.js","utils/changeInput.js","utils/alertUtils.js","utils/translatorUtils.js","utils/getTimeIn.js","store/actions/authAction.js","store/utility.js","common/api/interceptorService.js","common/api/service/AxiosInstance.js","common/api/service/JobService.js","store/actions/jobAction.js","CacheBuster.js","common/api/service/RegisterReasonService.js","store/actions/registerReasonAction.js","components/common/captcha/style.js","components/common/captcha/captcha.js","components/FormRegister.js","components/translator/ContentTranslator.js","components/common/ContentWrapper.js","store/admin/actions/adminActionTypes.js","common/api/service/AuthService.js","common/api/service/CompanyService.js","store/actions/companyAction.js","common/api/service/ConfigService.js","store/actions/configAction.js","common/api/service/ContentService.js","store/actions/contentAction.js","common/api/service/LanguageService.js","store/actions/languageAction.js","common/api/service/ProfileService.js","store/actions/skillProfileAction.js","common/api/adminservice/AdminProfileService.js","common/api/adminservice/AdminPersonService.js","store/admin/actions/adminPersonActions.js","components/Footer.js","components/FooterContent.js","components/common/NavRight.js","components/common/NavMain.js","common/api/service/PersonService.js","store/actions/personAction.js","components/common/NavRightLogin.js","components/common/NavMainLogin.js","components/common/NavMenu.js","components/Layout.js","components/routes/ProtectedRoute.js","components/ForgotPassword.js","components/Login.js","components/Logout.js","components/ResetPassword.js","components/ResetPasswordConfirmation.js","components/TeamTabs.js","components/common/ContentWrapperLg.js","components/common/NavAdmin.js","common/api/service/EvidenceService.js","components/common/NavSecondary.js","components/admin/Admin403Page.js","common/api/adminservice/AdminCompanyService.js","store/admin/actions/adminCompanyActions.js","components/admin/AdminBranding.js","components/admin/Analytics.js","common/api/adminservice/AdminEmailTemplateService.js","store/admin/actions/adminEmailTemplateActions.js","components/admin/ManageEmailTemplates.js","components/admin/ManageReportTemplates.js","common/api/adminservice/AdminContentService.js","store/admin/actions/adminContentActions.js","utils/stringUtils.js","utils/filterUtils.js","components/common/SkillsTxTable.js","components/common/SkillsTxTableClearSearch.js","components/common/SkillsTxTableSearchBar.js","components/admin/contents/ContentDetail.js","components/admin/contents/ContentTranslationBulkUpload.js","components/admin/contents/GroupValueTranslationBulkUpload.js","components/admin/contents/ManageContent.js","components/admin/endorsements/PersonAssessorCell.js","components/admin/endorsements/PersonEndorserCell.js","components/admin/endorsements/ManageEndorsement.js","common/api/adminservice/AdminCategoryService.js","store/admin/actions/adminCategoryActions.js","components/admin/extraFramework/ExtraFrameworkBulkUpload.js","components/admin/extraFramework/ExtraFrameworkLevelDetail.js","components/admin/extraFramework/ManageExtraFrameworkCapabilities.js","components/admin/extraFramework/ExtraFrameworkCategoryDetail.js","components/admin/extraFramework/ExtraFrameworkSkillDetail.js","components/admin/extraFramework/ExtraFrameworkSubCategoryDetail.js","components/admin/extraFramework/ManageExtraFrameworkCategories.js","components/admin/extraFramework/ManageExtraFrameworkLevels.js","components/admin/extraFramework/ManageExtraFramework.js","common/api/adminservice/AdminAdminRoleService.js","store/admin/actions/adminAdminRoleActions.js","components/admin/users/AdminRoleDeleteConfirmation.js","components/admin/users/AdminRoleOverwriteConfirmation.js","components/admin/users/AdminRoleRename.js","components/admin/users/ManageAdminRole.js","components/admin/users/UserPageAssignments.js","components/admin/users/UserDetail.js","components/admin/jobAssignment/JobAssignmentBulkUpload.js","components/admin/jobAssignment/JobAssignmentCell.js","components/admin/jobAssignment/ManageJobAssignment.js","components/admin/ColumnDisplaySetting.js","components/admin/jobs/JobBulkUpload.js","components/admin/jobs/JobCopyDialog.js","components/admin/jobs/JobDetail.js","components/admin/jobs/ManageJobSample.js","components/admin/jobs/ManageJob.js","components/admin/jobs/ManageJobDetail.js","components/admin/jobs/ManageJobCreate.js","components/admin/jobs/JobFamilyDetail.js","components/admin/jobs/ManageJobFamily.js","common/api/service/CategoryService.js","store/actions/categoryAction.js","common/api/service/LorService.js","store/actions/lorAction.js","components/AlertDialog.js","components/admin/jobs/ManageJobDetailMatches.js","components/admin/jobs/ManageJobLorAttribute.js","components/admin/jobs/ManageJobLorProfile.js","components/admin/jobs/ManageJobNote.js","components/admin/jobs/ManageJobSkillAttribute.js","components/admin/jobs/ManageJobSkillProfile.js","components/admin/jobs/ManageJobProfile.js","components/admin/lor/LorAttributeBulkUpload.js","components/admin/lor/UpdateLor.js","components/admin/lor/ManageLor.js","common/api/adminservice/AdminRelationshipService.js","store/admin/actions/adminRelationshipActions.js","common/api/adminservice/AdminRelationshipTypeService.js","store/admin/actions/adminRelationshipTypeActions.js","components/admin/relationships/RelationshipBulkUpload.js","components/admin/relationships/ManageRelationships.js","components/admin/selfAssessed/ManageSelfAssessed.js","components/admin/selfProfiles/ManageProfiles.js","common/api/adminservice/AdminActionLogService.js","store/admin/actions/adminActionLogActions.js","components/admin/settings/ManageActionLogs.js","common/api/adminservice/AdminActionTypService.js","store/admin/actions/adminActionTypeActions.js","components/admin/settings/ManageActionTypes.js","common/api/adminservice/AdminAllowedRegistrationEmailDomainService.js","store/admin/actions/adminAllowedRegistrationEmailDomainActions.js","components/admin/settings/ManageAllowedRegistrationEmailDomains.js","common/api/adminservice/AdminEvidenceTypeService.js","store/admin/actions/adminEvidenceTypeActions.js","components/admin/settings/ManageEvidenceTypes.js","common/api/adminservice/AdminMentorPreferenceService.js","store/admin/actions/adminMentorPreferenceActions.js","components/admin/settings/ManageMentorPreferences.js","common/api/adminservice/AdminRegistrationReasonService.js","store/admin/actions/adminRegistrationReasonActions.js","components/admin/settings/ManageRegistrationReasons.js","components/admin/settings/ShowPowerBIReport.js","components/admin/settings/ManageSettings.js","common/api/adminservice/AdminBadgeRequestService.js","store/admin/actions/adminBadgeRequestActions.js","components/admin/sfiaCredentials/BadgeRequestAssessorCell.js","components/admin/sfiaCredentials/ManageSfiaCredentials.js","components/admin/skillAttributes/SkillAttributeBulkUpload.js","components/admin/skillAttributes/SkillsHiddenBulkUpload.js","components/admin/skillAttributes/ManageSkillAttributes.js","components/admin/ssoSetting/ManageSSOSetting.js","common/api/service/ActionPlanService.js","store/actions/actionPlanAction.js","common/api/adminservice/AdminInterventionService.js","store/admin/actions/adminInterventionActions.js","components/admin/trainings/ManageActionPromotionDetail.js","components/admin/trainings/ManageTrainingDetail.js","components/admin/trainings/TrainingBulkUpload.js","components/admin/trainings/ManageActionPromotions.js","components/admin/trainings/ManageProviderDetail.js","components/admin/trainings/ProviderSelectCell.js","components/admin/trainings/ManageProviders.js","components/admin/trainings/ManageTrainingJobs.js","components/admin/trainings/ManageTrainings.js","components/admin/users/GenerateUserProfileReports.js","components/admin/users/UserAddNew.js","components/admin/users/UserBulkUpload.js","components/admin/users/UserBulkUploadProfiles.js","components/admin/users/UserRoleCell.js","components/admin/users/UserUpdatePersonMiscellaneousConfig.js","components/admin/users/ManageUser.js","components/admin/AdminHome.js","components/mysetting/MySetting.js","components/routes/LoggedInRoute.js","components/welcome/How.js","components/profile/StepProfile.js","components/trienpont/components/table/mentor/index.jsx","components/trienpont/components/modals/confirm/index.js","components/trienpont/components/modals/mentorpreferences/index.js","components/trienpont/components/table/possiblementor/index.js","components/trienpont/components/modals/possiblementor/index.js","common/api/service/OpenAIService.js","components/ChatbotOpenAi.js","components/actionplan/FormAddAction.js","components/actionplan/TableActionPlanResponsibilityBody.js","components/actionplan/TableActionPlanResponsibility.js","components/actionplan/TableBodyActionPlan.js","components/actionplan/TableActionPlanSkillProfiles.js","components/actionplan/TableActionPlan.js","components/actionplan/ManageActionPlan.js","components/actionplan/Todo.js","components/actionplan/ActionPlan.js","common/api/service/BadgeRequestService.js","utils/functions.js","components/digitalwallet/BadgeAvatar.jsx","components/digitalwallet/Badge.jsx","components/digitalwallet/BadgesList.jsx","components/common/Button.jsx","components/digitalwallet/LinkComponent.jsx","components/digitalwallet/Modal/HistoryModal.jsx","utils/consts.js","components/digitalwallet/Modal/ShareBadgesModal.jsx","components/digitalwallet/Modal/SkillDetailsModal.jsx","components/digitalwallet/Modal/SuccessShareDataModal.jsx","components/digitalwallet/DigitalWallet.jsx","store/actions/badgeRequestAction.js","store/actions/evidenceAction.js","components/evidence/EvidenceDetail.js","components/evidence/EvidenceList.js","components/evidence/AddNewEvidenceForm.js","components/evidence/EvidenceResponsibilityBody.js","components/evidence/EvidenceSkillBadgeBody.js","components/evidence/EvidenceSkillBody.js","components/evidence/ManageEvidence.js","components/evidence/Evidence.js","components/evidence/EvidenceDownload.js","components/myleaders/MyLeaders.js","components/mypeople/MyPeople.js","components/trienpont/components/charts/bar/index.jsx","components/trienpont/components/charts/treemap/index.jsx","components/trienpont/components/charts/pie/index.jsx","components/trienpont/components/config/mockdata/levels.js","components/trienpont/components/config/mockdata/order.js","components/trienpont/components/filters/global/customselect/index.jsx","components/trienpont/components/filters/skillsweneed/index.jsx","components/trienpont/components/table/skillgaps/index.jsx","components/trienpont/components/table/skillswehaveneed/index.jsx","components/trienpont/components/table/skillswehaveneed-normal/index.jsx","components/trienpont/pages/skillsweneed/index.jsx","components/trienpont/components/filters/skillswehave/index.jsx","components/trienpont/pages/skillswehave/index.jsx","components/trienpont/components/charts/organizational/index.jsx","components/trienpont/components/filters/teambuilder/index.jsx","components/trienpont/components/table/teambuilder/index.jsx","components/trienpont/pages/teambuilder/index.jsx","common/api/service/TeamAnalyticsService.js","components/trienpont/components/filters/actionplan/index.js","components/trienpont/components/table/actionplan/index.jsx","components/trienpont/pages/actionplan/index.jsx","components/trienpont/components/filters/jobmatch/index.js","components/trienpont/components/filters/jobmatch/matchrange/index.js","components/trienpont/components/table/jobmatch/index.jsx","components/trienpont/pages/jobmatch/index.jsx","components/trienpont/components/filters/skillchange/index.jsx","components/trienpont/components/table/skillchange/index.js","components/trienpont/pages/skillchange/index.jsx","components/trienpont/components/filters/skillscomparison/index.jsx","components/trienpont/pages/skillscomparison/index.jsx","components/trienpont/components/filters/skillgaps/index.jsx","components/trienpont/pages/skillgaps/index.jsx","components/trienpont/index.jsx","components/mypeople/TeamAnalytics.js","components/note/Note.js","components/evidence/EvidenceListFiltered.js","components/profile/SkillProfileGapHighlight.js","components/profile/TableLorProfilesEditAtrribute.js","components/profile/TableLorProfilesEditComment.js","components/profile/TableProfileHeader.js","components/profile/TableProfileResponsibility.js","components/profile/TableSkillProfilesEditAtrribute.js","components/profile/TableSkillProfilesEditComment.js","components/profile/TableSkillProfiles.js","components/profile/TableProfile.js","components/profile/JobsProfile.js","common/api/service/ValueGroupService.js","store/actions/groupValueAction.js","components/profile/UpdateProfilePicture.js","components/profile/CardProfile.js","components/profile/SkillProgress.js","components/profile/SkillStep.js","components/profile/Profile.js","components/trienpont/components/filters/menteerequest/index.js","components/trienpont/components/table/mentee/index.jsx","components/trienpont/components/modals/acceptdeny/index.js","components/trienpont/components/modals/menteerequest/index.js","components/trienpont/components/modals/mentorprofile/index.js","components/profile/SfiaSkills.js","components/profile/SkillsProfile.js","components/requirements/Requirements.js","pages/ProfilePage.js","common/api/service/SurveyService.js","store/actions/surveyAction.js","components/assessment/Survey.js","components/assessment/ListSurvey.js","components/assessment/StepAssessment.js","components/assessment/SurveyAssessment.js","components/assessment/SurveyListAnswer.js","components/assessment/SurveyQuestion.js","pages/SelfAssessmentPage.js","pages/ThankYou.js","pages/Wallet.jsx","hoc/AsyncComponent/AsyncComponent.js","pages/WelcomePage.js","App.js","AppScrollToTop.js","registerServiceWorker.js","index.js"],"names":["errorResponseHandler","err","ErrorResponse","response","data","ErrorType","errData","Message","errStatus","status","statusText","axios","Instance","apiInstance","CountryAPI","static","get","then","res","catch","ErrorHandler","getCountriesStart","type","actionTypes","getCountriesSuccess","countries","getCountriesFail","error","getCountries","dispatch","initialState","loading","isUpdating","actionLogs","printData","loadingPrint","getActionLogsStart","state","updateState","getActionLogsSuccess","action","getActionLogsFail","exportActionLogsExcelStart","exportActionLogsExcelSuccess","exportActionLogsExcelFail","reducer","getActionTypesStart","getActionTypesSuccess","getActionTypesFail","addActionTypeStart","addActionTypeSuccess","push","addedActionType","addActionTypeFail","updateActionTypeStart","updateActionTypeSuccess","updatedActionType","actionType","find","it","id","name","updateActionTypeFail","deleteActionTypeStart","deleteActionTypeSuccess","deletedActionTypeId","index","indexOf","splice","deleteActionTypeFail","adminRoles","adminRolePageAssignments","getAdminRolesStart","getAdminRolesSuccess","getAdminRolesFail","getAdminRolePageAssignmentsStart","getAdminRolePageAssignmentsSuccess","pageAssignments","getAdminRolePageAssignmentsFail","createAdminRoleStart","createAdminRoleSuccess","adminRole","createAdminRoleFail","updateAdminRolePageAssignmentsStart","updateAdminRolePageAssignmentsSuccess","updateAdminRolePageAssignmentsFail","deleteAdminRoleStart","deleteAdminRoleSuccess","deletedAdminRole","adminRoleId","deleteAdminRoleFail","renameAdminRoleStart","renameAdminRoleSuccess","updatedAdminRole","renameAdminRoleFail","allowedRegistrationEmailDomains","getAllowedRegistrationEmailDomainsStart","getAllowedRegistrationEmailDomainsSuccess","getAllowedRegistrationEmailDomainsFail","addAllowedRegistrationEmailDomainStart","addAllowedRegistrationEmailDomainSuccess","addedAllowedRegistrationEmailDomain","addAllowedRegistrationEmailDomainFail","updateAllowedRegistrationEmailDomainStart","updateAllowedRegistrationEmailDomainSuccess","updatedAllowedRegistrationEmailDomain","allowedRegistrationEmailDomain","emailDomain","updateAllowedRegistrationEmailDomainFail","deleteAllowedRegistrationEmailDomainStart","deleteAllowedRegistrationEmailDomainSuccess","deletedAllowedRegistrationEmailDomainId","console","log","registrationEmailDomain","deleteAllowedRegistrationEmailDomainFail","badgeRequests","updatedBadgeRequest","getBadgeRequestsStart","getBadgeRequestsSuccess","getBadgeRequestsFail","updateBadgeRequestStart","updateBadgeRequestFail","updateBadgeRequestAssessorSuccess","x","badgeRequest","assessorId","assessorName","updateBadgeRequestCertificationEntriesSuccess","assessedDate","requestCertificationEntries","submitBadgeRequestCertificationSuccess","certificationSubmitted","submitBadgeRequestCertificationsSuccess","forEach","updateBadgeRequest","rejectBadgeRequestStart","rejectBadgeRequestFail","rejectBadgeRequestSuccess","rejectedBadgeRequest","badgeRequestId","capabilityLoading","levelLoading","categoryLoading","extraFrameworkCapabilities","extraFrameworkLevels","categories","exportData","loadingExport","isImporting","getExtraFrameworkCapabilitiesStart","getExtraFrameworkCapabilitiesSuccess","getExtraFrameworkCapabilitiesFail","getExtraFrameworkLevelsStart","getExtraFrameworkLevelsSuccess","getExtraFrameworkLevelsFail","createExtraFrameworkLevelStart","createExtraFrameworkLevelSuccess","extraFrameworkLevel","createExtraFrameworkLevelFail","updateExtraFrameworkLevelStart","updateExtraFrameworkLevelSuccess","level","levelNumber","updateExtraFrameworkLevelFail","deleteExtraFrameworkLevelStart","deleteExtraFrameworkLevelSuccess","deleteExtraFrameworkLevelFail","moveExtraFrameworkLevelsStart","moveExtraFrameworkLevelsSuccess","moveExtraFrameworkLevelsFail","getExtraFrameworkCategoriesStart","getExtraFrameworkCategoriesSuccess","getExtraFrameworkCategoriesFail","createExtraFrameworkCategoryStart","createExtraFrameworkCategorySuccess","category","createExtraFrameworkCategoryFail","updateExtraFrameworkCategoryStart","updateExtraFrameworkCategorySuccess","description","colour","updateExtraFrameworkCategoryFail","deleteExtraFrameworkCategoryStart","deleteExtraFrameworkCategorySuccess","deleteExtraFrameworkCategoryFail","createExtraFrameworkSubCategoryStart","createExtraFrameworkSubCategorySuccess","categoryId","subCategories","subCategory","createExtraFrameworkSubCategoryFail","updateExtraFrameworkSubCategoryStart","updateExtraFrameworkSubCategorySuccess","skillColour","updateExtraFrameworkSubCategoryFail","deleteExtraFrameworkSubCategoryStart","deleteExtraFrameworkSubCategorySuccess","subCategoryId","deleteExtraFrameworkSubCategoryFail","createExtraFrameworkSkillStart","createExtraFrameworkSkillSuccess","skills","skill","createExtraFrameworkSkillFail","updateExtraFrameworkSkillStart","updateExtraFrameworkSkillSuccess","skillsCode","levels","updateExtraFrameworkSkillFail","deleteExtraFrameworkSkillStart","deleteExtraFrameworkSkillSuccess","skillId","deleteExtraFrameworkSkillFail","exportExtraFrameworksDataExcelStart","exportExtraFrameworksDataExcelSuccess","exportExtraFrameworksDataExcelFail","importExtraFrameworksDataExcelStart","importExtraFrameworksDataExcelSuccess","importExtraFrameworksDataExcelFail","brandingLogoFound","favIconFound","getCompanyBrandingLogoStart","getCompanyBrandingLogoSuccess","getCompanyBrandingLogoFail","updateCompanyBrandingLogoStart","updateCompanyBrandingLogoSuccess","updateCompanyBrandingLogoFail","getCompanyFavIconStart","getCompanyFavIconSuccess","getCompanyFavIconFail","updateCompanyFavIconStart","updateCompanyFavIconSuccess","updateCompanyFavIconFail","pages","contents","contentTranslations","getContentPagesStart","getContentPagesSuccess","getContentPagesFail","getContentsStart","getContentsSuccess","filterContents","filter","includes","getContentsFail","getContentTranslationsStart","getContentTranslationsSuccess","translations","getContentTranslationsFail","createContentTranslationStart","createContentTranslationSuccess","addedContent","createContentTranslationFail","updateContentTranslationStart","updateContentTranslationSuccess","updatedContent","content","contentId","contentTranslationId","page","contentText","contentTextTranslation","languageId","language","updateContentTranslationFail","exportContentTranslationsExcelStart","exportContentTranslationsExcelSuccess","exportContentTranslationsExcelFail","importContentTranslationsExcelStart","importContentTranslationsExcelSuccess","importContentTranslationsExcelFail","emailTemplateTypes","emailTemplate","getEmailTemplateTypesStart","getEmailTemplateTypesSuccess","getEmailTemplateTypesFail","getEmailTemplateByTypeStart","getEmailTemplateByTypeSuccess","getEmailTemplateByTypeFail","createUpdateEmailTemplateStart","createUpdateEmailTemplateSuccess","createUpdateEmailTemplateFail","evidenceTypes","getEvidenceTypesStart","getEvidenceTypesSuccess","getEvidenceTypesFail","addEvidenceTypeStart","addEvidenceTypeSuccess","addedEvidenceType","addEvidenceTypeFail","updateEvidenceTypeStart","updateEvidenceTypeSuccess","updatedEvidenceType","evidenceType","updateEvidenceTypeFail","deleteEvidenceTypeStart","deleteEvidenceTypeSuccess","deletedEvidenceTypeId","deleteEvidenceTypeFail","interventions","actionPromotions","numberActiveActionPromotions","getInterventionsStart","getInterventionsSuccess","getInterventionsFail","addInterventionStart","addInterventionSuccess","addedIntervention","addInterventionFail","updateInterventionStart","updateInterventionSuccess","updatedIntervention","intervention","companyId","company","isActive","duration","durationHours","link","versionNumber","publishedOn","retireOn","reviewOn","isValidated","sfiaVersion","lorLevels","badgeIssuer","preLoadToNewUser","targetCompletionDays","createdAsInactive","updateInterventionFail","deleteInterventionStart","deleteInterventionSuccess","deletedInterventionId","deleteInterventionFail","deleteInterventionsStart","deleteInterventionsSuccess","deletedInterventionIds","map","deleteInterventionsFail","exportInterventionsDataExcelStart","exportInterventionsDataExcelSuccess","exportInterventionsDataExcelFail","importInterventionsDataExcelStart","importInterventionsDataExcelSuccess","importInterventionsDataExcelFail","assignInterventionJobStart","assignInterventionJobSuccess","addedInterventionJob","interventionId","jobs","assignInterventionJobFail","deleteInterventionJobStart","deleteInterventionJobSuccess","deletedInterventionJobId","interventionJob","deleteInterventionJobFail","deleteInterventionJobsStart","deleteInterventionJobsSuccess","deletedInterventionJobIds","deleteInterventionJobsFail","getNumberActiveActionPromotionsStart","getNumberActiveActionPromotionsSuccess","getNumberActiveActionPromotionsFail","getActionPromotionsStart","getActionPromotionsSuccess","getActionPromotionsFail","updateActionPromotionStart","updateActionPromotionSuccess","updatedActionPromotion","actionPromotion","updateActionPromotionFail","mentorPreferences","getMentorPreferencesStart","getMentorPreferencesSuccess","getMentorPreferencesFail","addMentorPreferenceStart","addMentorPreferenceSuccess","addedMentorPreference","addMentorPreferenceFail","updateMentorPreferenceStart","updateMentorPreferenceSuccess","updatedMentorPreference","mentorPreference","preference","selected","updateMentorPreferenceFail","deleteMentorPreferenceStart","deleteMentorPreferenceSuccess","deletedMentorPreferenceId","deleteMentorPreferenceFail","_","require","persons","personsAdmin","personsDropdown","updatedRoles","message","roleUpdating","resetPasswordSent","personPageAssignments","columnDisplaySettings","columnDisplaySettingLoadings","copyProfileRequests","getPersonsStart","getPersonsSuccess","getPersonsFail","getPersonsAdminStart","getPersonsAdminSuccess","getPersonsAdminFail","getPersonsDropdownStart","getPersonsDropdownSuccess","getPersonsDropdownFail","addPersonStart","addPersonSuccess","person","addPersonFail","updatePersonStart","updatePersonSuccess","updatedPerson","firstName","lastName","email","salutation","position","inactive","personType","accessGroup","allowNotifications","lastActivityOn","lastActivitySystem","createdOn","countryCode","country","location","selfAssessmentReason","encryptedId","team","usePreferredName","other","department","businessUnit","division","territory","costCentre","supervisor","validatedDate","isCandidate","isAnalyticsUser","leaveOn","accounts","teams","profilePictureUrl","activityStatementInterval","lastUpdatedOn","lastUpdatedVersion","latestAssessmentId","cartridgeId","hasOutstandingAction","roles","groups","invitationEmailMessageId","invitationEmailMessageStatus","invitationEmailMessageReason","miscellaneous1","miscellaneous2","miscellaneous3","miscellaneous4","miscellaneous5","skipSelfAssessmentSurvey","roleBasedSurveyId","roleBasedSurvey","isContractor","isMentorIneligible","fte","updatePersonFail","deletePersonStart","deletePersonSuccess","deletedPerson","deletePersonFail","resetPersonPasswordStart","resetPersonPasswordSuccess","resetPasswordRequested","resetPersonPasswordFail","exportPersonsDataExcelStart","exportPersonsDataExcelSuccess","exportPersonsDataExcelFail","updatePersonRoleStart","updatePersonRoleSuccess","personId","length","updatePersonRoleFail","importPersonsDataExcelStart","importPersonsDataExcelSuccess","importedPersons","y","importedPerson","addedPersons","importPersonsDataExcelFail","assignPersonsStart","assignPersonsSuccess","personIds","isAssigned","assignPersonsFail","invitePersonsStart","invitePersonsSuccess","isInvited","invitedOn","Date","invitePersonsFail","unassignPersonsStart","unassignPersonsSuccess","unassignPersonsFail","addRelationshipsStart","addRelationshipsSuccess","addedRelationships","groupedPersonAIds","groupBy","personAId","groupedPersonBIds","personBId","personAIds","personBIds","Object","keys","key","thisAddedRelationships","upRelationships","downRelationships","addRelationshipsFail","deleteRelationshipsStart","deleteRelationshipsSuccess","deletedRelationshipIds","some","r","deleteRelationshipsFail","getPageAssignmentsStart","getPageAssignmentsSuccess","getPageAssignmentsFail","clearPageAssignments","getPersonPageAssignmentsStart","getPersonPageAssignmentsSuccess","getPersonPageAssignmentsFail","updatePersonPageAssignmentsStart","updatePersonPageAssignmentsSuccess","updatedPageAssignments","adminRoleName","updatePersonPageAssignmentsFail","generatePersonProfileReportsStart","generatePersonProfileReportsSuccess","generatePersonProfileReportsFail","generateProfileReportsStart","generateProfileReportsSuccess","updatedPersons","p","selfAssessedReport","selfAssessedReportGenerated","endorsedReport","endorsedReportGenerated","actionReport","actionReportGenerated","generateProfileReportsFail","updatePersonSelfAssessedApproved","selfAssessedLastProfileApproved","selfAssessedLastApprovedOn","selfAssessedLastApprovedBy","selfAssessedLastApprovedById","selfAssessedLastApprovedVersion","updatePersonSelfAssessedPostPoned","account","sort","a","b","isApprovalPostponed","approvalPostponedOn","approvalPostponedById","approvalPostponedBy","approvalPostponedType","approvalPostponedComment","updatePersonEndorsement","personEndorsement","endorsedById","endorsedBy","endorsementLatestStatus","latestStatus","endorsementLastUpdatedById","lastUpdatedById","endorsementLastUpdatedBy","lastUpdatedBy","endorsementLastUpdated","lastUpdated","endorsementLastUpdatedVersion","endorsementLastReviewedById","lastReviewedById","endorsementLastReviewedBy","lastReviewedBy","endorsementLastReviewed","lastReviewed","endorsementLastReviewedVersion","lastReviewedVersion","endorsementLastApprovedById","lastApprovedById","endorsementLastApprovedBy","lastApprovedBy","endorsementLastApproved","lastApproved","endorsementLastApprovedVersion","lastApprovedVersion","updatePersonEndorserStart","updatePersonEndorserSuccess","updatePersonEndorserFail","clearColumnDisplaySettings","getColumnDisplaySettingsStart","getColumnDisplaySettingsSuccess","getColumnDisplaySettingsFail","updateColumnDisplaySettingStart","columnDisplaySettingLoading","updateColumnDisplaySettingSuccess","updatedColumnDisplaySetting","oriColumnDisplaySetting","visible","updateColumnDisplaySettingFail","requestCopySelfProfilesAsEndorsedStart","requestCopySelfProfilesAsEndorsedSuccess","copyProfileRequest","version","selfAssessedCopyProfileRequested","selfAssessedCopyProfileRequestedOn","selfAssessedCopyProfileRequestStatus","requestCopySelfProfilesAsEndorsedFail","updateCopySelfProfilesAsEndorsedStatus","copyProfileRequestResponse","exportPersonsProfilesStart","exportPersonsProfilesSuccess","exportPersonsProfilesFail","importPersonsProfilesStart","importPersonsProfilesSuccess","totalQuestions","answeredQuestions","percentage","importPersonsProfilesFail","approveProfileRequestsStart","approveProfileRequestsSuccess","selfAssessedLastProfileVersion","selfAssessedLastProfileUpdatedOn","selfAssessedLastProfileUpdatedById","selfAssessedLastProfileUpdatedBy","selfAssessedLastProfileNumberOfChange","approveProfileRequestsFail","registrationReasons","getRegistrationReasonsStart","getRegistrationReasonsSuccess","getRegistrationReasonsFail","addRegistrationReasonStart","addRegistrationReasonSuccess","addedRegistrationReason","addRegistrationReasonFail","updateRegistrationReasonStart","updateRegistrationReasonSuccess","updatedRegistrationReason","registrationReason","value","label","roleSelectionMandatory","updateRegistrationReasonFail","deleteRegistrationReasonStart","deleteRegistrationReasonSuccess","deleteRegistrationReasonFail","moveRegistrationReasonStart","moveRegistrationReasonSuccess","moveRegistrationReasonFail","exportRelationshipsDataExcelStart","exportRelationshipsDataExcelSuccess","exportRelationshipsDataExcelFail","importRelationshipsDataExcelStart","importRelationshipsDataExcelSuccess","importRelationshipsDataExcelFail","relationshipTypes","getRelationshipTypesStart","getRelationshipTypesSuccess","getRelationshipTypesFail","actionSkills","actions","actionPlanUpdating","actionPlanUpdatingError","addedAction","getActionSkillsStart","getActionSkillsSuccess","getActionSkillsFail","printActionReportStart","printActionReportSuccess","printActionReportFail","getActionsStart","getActionsSuccess","getActionsFail","createActionStart","createActionSuccess","createActionFail","updateActionStart","updateActionSuccess","updateActionFail","deleteActionStart","deleteActionSuccess","deleteActionFail","sendUpdatedActionPlanNotificationStart","sendUpdatedActionPlanNotificationSuccess","sendUpdatedActionPlanNotificationFail","submitActionPromotionStart","submitActionPromotionSuccess","updatedAction","actionId","promoted","promotedOn","promotedById","promoterId","promotedBy","promoterName","submitActionPromotionFail","submitProposeActionStart","submitProposeActionSuccess","proposedAction","updateProfileEvidenceProposed","updateProfileEvidenceProposedBy","updateProfileEvidenceProposedById","updateProfileEvidenceProposedByEmail","updateProfileEvidenceProposedOn","updateProfileEvidenceProposalStatus","updateProfileEvidenceProposalSkills","submitProposeActionFail","acceptRejectActionProposalStart","acceptRejectActionProposalSuccess","acceptRejectActionProposalFail","isLogout","redirectUrl","token","hasPeoples","hasRelationships","isEndorser","manageEndorsements","manageCertifications","manageSelfAssessed","manageSelfProfiles","loginWithMembee","loginWithTeams","assessmentId","jobProfileReportFormat","selfAssessedProfileReportFormat","authMode","loginResult","ownJobs","errorRegister","loadingRegister","registerToken","resetPassword","errorResetPassword","loadingResetPassword","errorCheckEmail","loadingCheckEmail","emailCheckingExist","managedPeople","authRegisterEmailCheckingStart","authRegisterEmailCheckingSuccess","authRegisterEmailCheckingFail","signInStart","signInSuccess","receiveLicenseNotification","lastActiveUserNotification","allowSkipSurvey","signInSuccessWithWait","authCheckStateSuccess","signInFail","authLogoutStart","authLogoutSuccess","authLogoutIntendedSuccess","authLogoutFail","authRegisterStart","authRegisterSuccess","authRegisterFail","forgotPasswordStart","forgotPasswordSuccess","forgotPasswordFail","createAccountStart","createAccountSuccess","createAccountFail","getResetPasswordStart","getResetPasswordSuccess","getResetPasswordFail","processResetPasswordStart","processResetPasswordSuccess","processResetPasswordFail","myPeopleSetManagedRelationship","myPeopleClearManagedRelationship","setRedirectUrl","myBadgeRequest","getBadgeRequestStart","getBadgeRequestSuccess","getBadgeRequestFail","submitBadgeRequestStart","submitBadgeRequestSuccess","submitBadgeRequestFail","getCategoriesStart","getCategoriesSuccess","categoryOrders","order","categoryOrder","trim","toLowerCase","oldId","getCategoriesFail","addSkillAttributeStart","addSkillAttributeSuccess","addedAttribute","attributes","attribute","isHidden","addSkillAttributeFail","updateSkillAttributeStart","updateSkillAttributeSuccess","updatedAttribute","updateSkillAttributeFail","updateSkillSetIsHiddenStart","updateSkillSetIsHiddenSuccess","updateSkillSetIsHiddenFail","deleteSkillAttributeStart","deleteSkillAttributeSuccess","deletedAttributeId","deleteSkillAttributeFail","exportSkillAttributesDataExcelStart","exportSkillAttributesDataExcelSuccess","exportSkillAttributesDataExcelFail","importSkillAttributesDataExcelStart","importSkillAttributesDataExcelSuccess","importSkillAttributesDataExcelFail","exportSkillsHiddenDataExcelStart","exportSkillsHiddenDataExcelSuccess","exportSkillsHiddenDataExcelFail","importSkillsHiddenDataExcelStart","importSkillsHiddenDataExcelSuccess","importSkillsHiddenDataExcelFail","companies","providers","selectedProviders","defaultCompany","brandingLogoImage","brandingLogoChecked","favIconImage","favIconChecked","getCompaniesStart","getCompaniesSuccess","getCompaniesFail","getDefaultCompanyStart","getDefaultCompanySuccess","getDefaultCompanyFail","createCompanyStart","createCompanySuccess","addedCompany","createCompanyFail","updateCompanyStart","updateCompanySuccess","updatedCompany","website","isSelected","isPreferred","updateCompanyFail","getSelectedProviderCompaniesStart","getSelectedProviderCompaniesSuccess","getSelectedProviderCompaniesFail","getProviderCompaniesStart","getProviderCompaniesSuccess","getProviderCompaniesFail","samlEnabled","restrictLoginSSOOnly","byPassLoginPage","currAssessment","containerConfig","config","blobData","containerAppSetting","activeUserCountStatusFetched","activeUserCount","showActiveUserCountNotification","activeUserCountStatusLoading","numberOfPersonsPutToInactive","reportTemplateName","getSamlEnabledStatusStart","getSamlEnabledStatusSuccess","getSamlEnabledStatusFail","clearSAMLEnabledStatus","getCurrAssessmentStart","getCurrAssessmentSuccess","getCurrAssessmentFail","clearCurrAssessment","getContainerConfigStart","getContainerConfigSuccess","getContainerConfigFail","getContainerConfigWithoutLoadingStart","getContainerConfigWithoutLoadingSuccess","getContainerConfigWithoutLoadingFail","getAdminConfigStart","getAdminConfigSuccess","getAdminConfigFail","updateAdminConfigStart","updateAdminConfigSuccess","updatedConfig","updateAdminConfigFail","executeInactivationUsersLessLoginStart","executeInactivationUsersLessLoginSuccess","executeInactivationUsersLessLoginFail","downloadPowerBIModelStart","downloadPowerBIModelSuccess","downloadPowerBIModelFail","getContainerAppSettingStart","getContainerAppSettingSuccess","getContainerAppSettingFail","updateContainerAppSettingStart","updateContainerAppSettingSuccess","updateContainerAppSettingFail","getActiveUserCountStatusStart","getActiveUserCountStatusSuccess","getActiveUserCountStatusFail","clearActiveUserCountStatusState","exportMigrationImpactAssessmentReportsStart","exportMigrationImpactAssessmentReportsToEmailStart","exportMigrationImpactAssessmentReportsSuccess","exportMigrationImpactAssessmentReportsFail","getReportTemplateNameStart","getReportTemplateNameSuccess","getReportTemplateNameFail","downloadReportTemplateStart","downloadReportTemplateSuccess","downloadReportTemplateFail","updateReportTemplateStart","updateReportTemplateSuccess","updateReportTemplateFail","currContentTranslations","actionContentTranslations","latestContentTranslations","currContentTranslation","actionContentTranslation","evidences","evidenceFile","updateInProgress","updatedEvidence","addEvidenceStart","addEvidenceSuccess","evidence","addEvidenceFail","addEvidencesStart","updatedEvidences","addEvidencesSuccess","addEvidencesFail","updateEvidenceStart","updateEvidenceSuccess","updateEvidenceFail","deleteEvidenceStart","deleteEvidenceSuccess","deleteEvidenceFail","getEvidencesStart","getEvidencesSuccess","getEvidencesFail","downloadEvidenceByIdStart","downloadEvidenceByIdSuccess","downloadEvidenceByIdFail","seniorityOptions","contractTypeOptions","yearRangeJobOptions","yearRangeOrgOptions","getSeniorityOptionsStart","getSeniorityOptionsSuccess","values","getSeniorityOptionsFail","getContractTypeOptionsStart","getContractTypeOptionsSuccess","getContractTypeOptionsFail","getYearRangeJobOptionsStart","getYearRangeJobOptionsSuccess","getYearRangeJobOptionsFail","getYearRangeOrgOptionsStart","getYearRangeOrgOptionsSuccess","getYearRangeOrgOptionsFail","job","jobFamilies","sampleJobs","jobMatchTypes","jobMatchesLoading","jobMatches","jobMatchesUpdated","jobLorProfiles","jobSkillProfiles","jobSkillAttributes","jobLorAttributes","profileVersions","profileUpdating","profileUpdatingSuccess","profileUpdatingError","udpatedSkills","jobMatchPersons","jobImportSessionId","jobImportQueue","addedJobImports","getJobsStart","getJobsSuccess","getJobsFail","getSampleJobsStart","getSampleJobsSuccess","getSampleJobsFail","getJobStart","getJobSuccess","getJobFail","printJobReportStart","printJobReportSuccess","printJobReportFail","printJobReportsStart","printJobReportsSuccess","printJobReportsFail","createJobStart","createJobSuccess","addedJob","createJobFail","updateJobStart","updateJobSuccess","updatedJob","reference","customerReference","sequence","isRole","defineById","defineBy","reportingTo","seniority","employmentStatus","purpose","keyAccountibilities","keyProcesses","educationRequirements","qualificationRequirements","otherRequirements","comment","isCandidateJob","inActive","isSample","ownerId","owner","updatedOn","showAsRoleBasedSurveyInSelfRegistration","showAsVacancy","vacancyOwner","vacancyOwnerId","updateJobByNotification","updateJobFail","updateJobNoteStart","updateJobNoteSuccess","updateJobNoteFail","deleteJobStart","deleteJobSuccess","deletedJob","deleteJobFail","copyJobStart","copyJobSuccess","copyJobFail","copyJobsStart","copyJobsSuccess","addedJobs","copyJobsFail","updateJobSkillAttributesStart","updateJobSkillAttributesSuccess","updateJobSkillAttributesFail","updateJobLorAttributesStart","updateJobLorAttributesSuccess","updateJobLorAttributesFail","getMyJobMatchTypesStart","getMyJobMatchTypesSuccess","getMyJobMatchTypesFail","getJobMatchesStart","lors","getJobMatchesSuccess","getJobMatchesFail","updateJobMatchesStart","updateJobMatchesSuccess","updateJobMatchesFail","getJobProfileVersionsStart","getJobProfileVersionsSuccess","getJobProfileVersionsFail","getJobLorProfilesStart","getJobLorProfilesSuccess","getJobLorProfilesFail","getJobSkillProfilesStart","getJobSkillProfilesSuccess","getJobSkillProfilesFail","updateJobSkillProfilesStart","updateJobSkillProfilesSuccess","updateJobSkillProfilesFail","clearUpdateJobSkillProfiles","getJobSkillAttributesStart","getJobSkillAttributesSuccess","getJobSkillAttributesFail","getJobLorAttributesStart","getJobLorAttributesSuccess","getJobLorAttributesFail","setJobImportSessionId","exportJobsDataExcelStart","exportJobsDataExcelSuccess","exportJobsDataExcelFail","importJobsDataExcelStart","importJobsDataExcelSuccess","addedJobImportQueue","importJobsDataExcelFail","getJobImportQueueStart","getJobImportQueueSuccess","getJobImportQueueFail","updateImportJobStatus","updatedImportJobRequest","importedJobs","updatedJobs","updatedJobImport","statusMessage","importedJob","getJobMatchPersonsStart","getJobMatchPersonsSuccess","getJobMatchPersonsFail","assignJobMatchPersonStart","assignJobMatchPersonSuccess","updatedJobMatch","updatedJobMatchPerson","currentJobMatchId","currentJobMatch","currentJobReference","currentJobMatchPercentSelf","currentJobMatchUpdatedOn","futureJobMatchId","futureJobMatch","futureJobReference","futureJobMatchPercentSelf","futureJobMatchUpdatedOn","proposedJobMatchId","proposedJobMatch","proposedJobReference","proposedJobMatchPercentSelf","proposedJobMatchUpdatedOn","lastUpdatedOn1","lastUpdatedOn2","lastUpdatedOn3","assignJobMatchPersonFail","exportJobMatchesDataExcelStart","exportJobMatchesDataExcelSuccess","exportJobMatchesDataExcelFail","importJobMatchesDataExcelStart","importJobMatchesDataExcelSuccess","importJobMatchesDataExcelFail","getJobFamiliesStart","getJobFamiliesSuccess","getJobFamiliesFail","updateJobFamilyStart","updateJobFamilySuccess","jobFamily","deletedJobIds","oriJobFamily","entries","entry","j","jobId","jobFamilyId","deletedJobId","updateJobFamilyFail","deleteJobFamilyStart","deleteJobFamilySuccess","deletedJobFamilyId","deleteJobFamilyFail","enquireJobVacancyStart","enquireJobVacancySuccess","enquiredJobId","enquiredJobMatches","alreadyEnquired","enquireJobVacancyFail","languages","getLanguagesStart","getLanguagesSuccess","getLanguagesFail","setLanguage","getLorsStart","getLorsSuccess","getLorsFail","updateLorStart","updateLorSuccess","updatedLor","lor","categoryColor","lorColor","updateLorFail","updateLorSetIsHiddenStart","updateLorSetIsHiddenSuccess","updateLorSetOptionalSuccess","optional","updateLorSetIsHiddenFail","addLorAttributeStart","addLorAttributeSuccess","lorId","addLorAttributeFail","updateLorAttributeStart","updateLorAttributeSuccess","updateLorAttributeFail","deleteLorAttributeStart","deleteLorAttributeSuccess","deleteLorAttributeFail","exportLorAttributesDataExcelStart","exportLorAttributesDataExcelSuccess","exportLorAttributesDataExcelFail","importLorAttributesDataExcelStart","importLorAttributesDataExcelSuccess","importLorAttributesDataExcelFail","updating","myPeoples","myLeaders","lorAttributes","myPeopleTeamAnalytic","profilePicture","skillCoins","columnDisplaySettingsLoading","getPersonMyProfileStart","getPersonMyProfileSuccess","getPersonMyProfileFail","updatePersonMyProfileStart","updatePersonMyProfileSuccess","updatePersonMyProfileFail","getLatestAccountStart","getLatestAccountSuccess","getLatestAccountFail","updatePersonAccountStart","updatePersonAccountSuccess","updatePersonAccountFail","updatePersonAccountNoteStart","updatePersonAccountNoteSuccess","updatePersonAccountNoteFail","personAccountRequestApprovalStart","personAccountRequestApprovalSuccess","personAccountRequestApprovalFail","getPersonMyPeoplesStart","getPersonMyPeoplesSuccess","getPersonMyPeoplesFail","getPersonMyPeopleByEmailStart","getPersonMyPeopleByEmailSuccess","getPersonMyPeopleByEmailFail","getPersonMyLeadersStart","getPersonMyLeadersSuccess","getPersonMyLeadersFail","approveMyPeopleProfileStart","approveMyPeopleProfileSuccess","approveMyPeopleProfileFail","postponeApproveMyPeopleProfileStart","postponeApproveMyPeopleProfileSuccess","postponeApproveMyPeopleProfileFail","forgetMeStart","forgetMeSuccess","forgetMeFail","clearAccountData","downloadPersonProfilePictureStart","downloadPersonProfilePictureSuccess","downloadPersonProfilePictureFail","uploadPersonProfilePictureStart","uploadPersonProfilePictureSuccess","curPerson","uploadPersonProfilePictureFail","updatePersonActivityStatementIntervalStart","updatePersonActivityStatementIntervalSuccess","updatePersonActivityStatementIntervalFail","generateActivityStatementStart","generateActivityStatementSuccess","generateActivityStatementFail","getPersonMyPeoplesTeamAnalyticStart","getPersonMyPeoplesTeamAnalyticSuccess","getPersonMyPeoplesTeamAnalyticFail","clearManagePeopleEndorsedStatus","endorsementStatus","updateManagePeopleEndorsedStatus","getPersonSkillCoinsStart","getPersonSkillCoinsSuccess","getPersonSkillCoinsFail","downloadMyProfileStart","downloadMyProfileSuccess","downloadMyProfileFail","updateColumnDisplaySettingOrderStart","updateColumnDisplaySettingOrderSuccess","updatedColumnDisplaySettings","updateColumnDisplaySettingOrderFail","getPersonMentorPreferenceStart","getPersonMentorPreferenceSuccess","registerReasons","getRegisterReasonsStart","getRegisterReasonsSuccess","getRegisterReasonsFail","profileTypes","skillProfiles","lorProfiles","lorError","lorLoading","endorsedProfileCopying","endorsedProfileCopyingSuccess","endorsedProfileCopyingError","endorsedProfileCopyingSuccessNotif","copyProfile","copyProfileError","copyProfileSuccess","updateEndorsedStatus","updateEndorsedStatusError","updatedPersonEndorsement","getProfileTypesStart","getProfileTypesSuccess","getProfileTypesFail","getProfileVersionsStart","getProfileVersionsSuccess","getProfileVersionsFail","getLorProfileStart","getLorProfileSuccess","getLorProfileFail","getSkillProfileStart","getSkillProfileSuccess","getSkillProfileFail","printProfileStart","printProfileSuccess","printProfileFail","emailMyProfileReportStart","emailMyProfileReportSuccess","emailMyProfileReportFail","generatePersonalDataExcelStart","generatePersonalDataExcelSuccess","generatePersonalDataExcelFail","updateMySkillProfileStart","updateMySkillProfileSuccess","updateMySkillProfileFail","clearUpdateMySkillProfile","updateEndorsedStatusStart","updateEndorsedStatusSuccess","updateEndorsedStatusFail","copyEndorsedProfileStart","copyEndorsedProfileSuccess","copyEndorsedProfileFail","clearCopyEndorsedProfileNotif","copyProfileStart","copyProfileFail","updateSkillProfileCommentStart","updateSkillProfileCommentSuccess","updateSkillProfileCommentFail","updateLorProfileCommentStart","updateLorProfileCommentSuccess","updateLorProfileCommentFail","submitUpdateProfileSuggestionStart","submitUpdateProfileSuggestionSuccess","submitUpdateProfileSuggestionFail","surveys","surveyRoles","question","answerResult","answerLoading","getMySurveysStart","getMySurveysSuccess","getMySurveysFail","selectRoleStart","selectRoleSuccess","selectRoleFail","getSurveyQuestionStart","getSurveyQuestionSuccess","getSurveyQuestionFail","answerQuestionStart","answerQuestionSuccess","answerQuestionFail","skipQuestionStart","skipQuestionSuccess","skipQuestionFail","completeMySurveyStart","completeMySurveySuccess","completeMySurveyFail","resetMySurveyStart","resetMySurveySuccess","resetMySurveyFail","user","registerUserStart","registerUserSuccess","registerUserFail","rootReducer","combineReducers","countryReducer","registerReason","registerReasonReducer","categoryReducer","lorReducer","userReducer","auth","authReducer","personReducer","skillProfile","skillProfileReducer","jobReducer","actionPlan","actionPlanReducer","groupValue","groupValueReducer","companyReducer","survey","surveyReducer","evidenceReducer","languageReducer","contentReducer","configReducer","adminPerson","adminPersonReducer","adminCompany","adminCompanyReducer","adminRelationshipType","adminRelationshipTypeReducer","adminEmailTemplate","adminEmailTemplateReducer","adminBadgeRequest","adminBadgeRequestReducer","adminIntervention","adminInterventionReducer","adminRelationship","adminRelationshipReducer","adminActionType","adminActionTypeReducer","adminEvidenceType","adminEvidenceTypeReducer","adminMentorPreference","adminMentorPreferenceReducer","adminContent","adminContentReducer","adminCategory","adminCategoryReducer","adminAllowedRegistrationEmailDomain","adminAllowedRegistrationEmailDomainReducer","adminRegistrationReason","adminRegistrationReasonReducer","adminActionLog","adminActionLogReducer","badgeRequestReducer","adminAdminRole","adminAdminRoleReducer","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunk","REASON_ASSESSMENT_OPTIONS","OPTIONS_SENIORITY_GROUP_NAME","OPTIONS_CONTRACT_TYPE_GROUP_NAME","OPTIONS_YEAR_RANGE_JOB_GROUP_NAME","OPTIONS_YEAR_RANGE_ORG_GROUP_NAME","GET_COUNTRIES_START","GET_COUNTRIES_SUCCESS","GET_COUNTRIES_FAIL","GET_REGISTER_REASONS_START","GET_REGISTER_REASONS_SUCCESS","GET_REGISTER_REASONS_FAIL","GET_LORS_START","GET_LORS_SUCCESS","GET_LORS_FAIL","UPDATE_LOR_START","UPDATE_LOR_SUCCESS","UPDATE_LOR_FAIL","UPDATE_LOR_SET_ISHIDDEN_START","UPDATE_LOR_SET_ISHIDDEN_SUCCESS","UPDATE_LOR_SET_OPTIONAL_SUCCESS","UPDATE_LOR_SET_ISHIDDEN_FAIL","GET_CATEGORIES_START","GET_CATEGORIES_SUCCESS","GET_CATEGORIES_FAIL","REGISTER_USER_START","REGISTER_USER_SUCCESS","REGISTER_USER_FAIL","GET_PERSON_MYPROFILE_START","GET_PERSON_MYPROFILE_SUCCESS","GET_PERSON_MYPROFILE_FAIL","DOWNLOAD_PERSON_MYPROFILE_START","DOWNLOAD_PERSON_MYPROFILE_SUCCESS","DOWNLOAD_PERSON_MYPROFILE_FAIL","GET_PERSON_LATESTACCOUNT_START","GET_PERSON_LATESTACCOUNT_SUCCESS","GET_PERSON_LATESTACCOUNT_FAIL","GET_MANAGED_PEOPLE_LATESTACCOUNT_START","GET_MANAGED_PEOPLE_LATESTACCOUNT_SUCCESS","GET_MANAGED_PEOPLE_LATESTACCOUNT_FAIL","CLEAR_PERSON_ACCOUNT_STATE","UPDATE_PERSON_MYPROFILE_START","UPDATE_PERSON_MYPROFILE_SUCCESS","UPDATE_PERSON_MYPROFILE_FAIL","DOWNLOAD_PERSON_PROFILE_PICTURE_START","DOWNLOAD_PERSON_PROFILE_PICTURE_SUCCESS","DOWNLOAD_PERSON_PROFILE_PICTURE_FAIL","UPLOAD_PERSON_PROFILE_PICTURE_START","UPLOAD_PERSON_PROFILE_PICTURE_SUCCESS","UPLOAD_PERSON_PROFILE_PICTURE_FAIL","UPDATE_PERSON_ACCOUNT_START","UPDATE_PERSON_ACCOUNT_SUCCESS","UPDATE_PERSON_ACCOUNT_FAIL","UPDATE_PERSON_ACCOUNT_NOTE_START","UPDATE_PERSON_ACCOUNT_NOTE_SUCCESS","UPDATE_PERSON_ACCOUNT_NOTE_FAIL","UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_START","UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_SUCCESS","UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_FAIL","PERSON_ACCOUNT_REQUEST_APPROVAL_START","PERSON_ACCOUNT_REQUEST_APPROVAL_SUCCESS","PERSON_ACCOUNT_REQUEST_APPROVAL_FAIL","UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_START","UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_SUCCESS","UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_FAIL","AUTH_REGISTER_START","AUTH_REGISTER_SUCCESS","AUTH_REGISTER_FAIL","AUTH_REGISTER_EMAIL_CHECKING_START","AUTH_REGISTER_EMAIL_CHECKING_SUCCESS","AUTH_REGISTER_EMAIL_CHECKING_FAIL","AUTH_LOGOUT_START","AUTH_LOGOUT_SUCCESS","AUTH_LOGOUT_FAIL","AUTH_LOGOUT_INTENDED_SUCCESS","SIGN_IN_START","SIGN_IN_SUCCESS","SIGN_IN_SUCCESS_WITH_WAIT","SIGN_IN_FAIL","AUTH_CHECK_SUCCESS","AUTH_SET_REDIRECT_URL","FORGOT_PASSWORD_START","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_FAIL","CREATE_ACCOUNT_START","CREATE_ACCOUNT_SUCCESS","CREATE_ACCOUNT_FAIL","GET_RESET_PASSWORD_START","GET_RESET_PASSWORD_SUCCESS","GET_RESET_PASSWORD_FAIL","PROCESS_RESET_PASSWORD_START","PROCESS_RESET_PASSWORD_SUCCESS","PROCESS_RESET_PASSWORD_FAIL","GET_JOBS_START","GET_JOBS_SUCCESS","GET_JOBS_FAIL","GET_SAMPLE_JOBS_START","GET_SAMPLE_JOBS_SUCCESS","GET_SAMPLE_JOBS_FAIL","GET_JOB_START","GET_JOB_SUCCESS","GET_JOB_FAIL","PRINT_JOB_REPORT_START","PRINT_JOB_REPORT_SUCCESS","PRINT_JOB_REPORT_FAIL","PRINT_JOB_REPORTS_START","PRINT_JOB_REPORTS_SUCCESS","PRINT_JOB_REPORTS_FAIL","CREATE_JOB_START","CREATE_JOB_SUCCESS","CREATE_JOB_FAIL","UPDATE_JOB_START","UPDATE_JOB_SUCCESS","UPDATE_JOB_FAIL","UPDATE_JOB_BY_NOTIFICATION","UPDATE_JOB_NOTE_START","UPDATE_JOB_NOTE_SUCCESS","UPDATE_JOB_NOTE_FAIL","UPDATE_JOB_SKILL_ATTRIBUTES_START","UPDATE_JOB_SKILL_ATTRIBUTES_SUCCESS","UPDATE_JOB_SKILL_ATTRIBUTES_FAIL","UPDATE_JOB_LOR_ATTRIBUTES_START","UPDATE_JOB_LOR_ATTRIBUTES_SUCCESS","UPDATE_JOB_LOR_ATTRIBUTES_FAIL","DELETE_JOB_START","DELETE_JOB_SUCCESS","DELETE_JOB_FAIL","COPY_JOB_START","COPY_JOB_SUCCESS","COPY_JOB_FAIL","COPY_JOBS_START","COPY_JOBS_SUCCESS","COPY_JOBS_FAIL","GET_SENIORITY_VALUES_START","GET_SENIORITY_VALUES_SUCCESS","GET_SENIORITY_VALUES_FAIL","GET_CONTRACT_TYPE_VALUES_START","GET_CONTRACT_TYPE_VALUES_SUCCESS","GET_CONTRACT_TYPE_VALUES_FAIL","GET_YEAR_RANGE_JOB_VALUES_START","GET_YEAR_RANGE_JOB_VALUES_SUCCESS","GET_YEAR_RANGE_JOB_VALUES_FAIL","GET_YEAR_RANGE_ORG_VALUES_START","GET_YEAR_RANGE_ORG_VALUES_SUCCESS","GET_YEAR_RANGE_ORG_VALUES_FAIL","GET_MY_PROFILE_TYPES_START","GET_MY_PROFILE_TYPES_SUCCESS","GET_MY_PROFILE_TYPES_FAIL","GET_MANAGED_PEOPLE_PROFILE_TYPES_START","GET_MANAGED_PEOPLE_PROFILE_TYPES_SUCCESS","GET_MANAGED_PEOPLE_PROFILE_TYPES_FAIL","GET_MY_PROFILE_VERSIONS_START","GET_MY_PROFILE_VERSIONS_SUCCESS","GET_MY_PROFILE_VERSIONS_FAIL","GET_MANAGED_PEOPLE_PROFILE_VERSIONS_START","GET_MANAGED_PEOPLE_PROFILE_VERSIONS_SUCCESS","GET_MANAGED_PEOPLE_PROFILE_VERSIONS_FAIL","GET_MY_SKILL_PROFILE_START","GET_MY_SKILL_PROFILE_SUCCESS","GET_MY_SKILL_PROFILE_FAIL","GET_MANAGED_PEOPLE_SKILL_PROFILE_START","GET_MANAGED_PEOPLE_SKILL_PROFILE_SUCCESS","GET_MANAGED_PEOPLE_SKILL_PROFILE_FAIL","GET_MY_LOR_PROFILE_START","GET_MY_LOR_PROFILE_SUCCESS","GET_MY_LOR_PROFILE_FAIL","GET_MANAGED_PEOPLE_LOR_PROFILE_START","GET_MANAGED_PEOPLE_LOR_PROFILE_SUCCESS","GET_MANAGED_PEOPLE_LOR_PROFILE_FAIL","PRINT_MY_PROFILE_START","PRINT_MY_PROFILE_SUCCESS","PRINT_MY_PROFILE_FAIL","PRINT_MANAGED_PEOPLE_PROFILE_START","PRINT_MANAGED_PEOPLE_PROFILE_SUCCESS","PRINT_MANAGED_PEOPLE_PROFILE_FAIL","GENERATE_PERSONAL_DATA_EXCEL_START","GENERATE_PERSONAL_DATA_EXCEL_SUCCESS","GENERATE_PERSONAL_DATA_EXCEL_FAIL","EMAIL_MY_PROFILE_REPORT_START","EMAIL_MY_PROFILE_REPORT_SUCCESS","EMAIL_MY_PROFILE_REPORT_FAIL","UPDATE_SKILL_PROFILES_START","UPDATE_SKILL_PROFILES_SUCCESS","UPDATE_SKILL_PROFILES_FAIL","CLEAR_UPDATE_SKILL_PROFILES","SUBMIT_UPDATE_PROFILE_SUGGESTION_START","SUBMIT_UPDATE_PROFILE_SUGGESTION_SUCCESS","SUBMIT_UPDATE_PROFILE_SUGGESTION_FAIL","ACCEPT_UPDATE_PROFILE_SUGGESTION_START","ACCEPT_UPDATE_PROFILE_SUGGESTION_SUCCESS","ACCEPT_UPDATE_PROFILE_SUGGESTION_FAIL","REJECT_UPDATE_PROFILE_SUGGESTION_START","REJECT_UPDATE_PROFILE_SUGGESTION_SUCCESS","REJECT_UPDATE_PROFILE_SUGGESTION_FAIL","UPDATE_ENDORSED_STATUS_START","UPDATE_ENDORSED_STATUS_SUCCESS","UPDATE_ENDORSED_STATUS_FAIL","CLEAR_MANAGE_PEOPLE_ENDORSED_STATUS","UPDATE_MANAGE_PEOPLE_ENDORSED_STATUS","COPY_ENDORSED_PROFILES_START","COPY_ENDORSED_PROFILES_SUCCESS","COPY_ENDORSED_PROFILES_FAIL","COPY_PROFILE_START","COPY_PROFILE_SUCCESS","COPY_PROFILE_FAIL","CLEAR_COPY_ENDORSED_NOTIF","UPDATE_MY_SKILL_PROFILE_COMMENT_START","UPDATE_MY_SKILL_PROFILE_COMMENT_SUCCESS","UPDATE_MY_SKILL_PROFILE_COMMENT_FAIL","UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_START","UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_SUCCESS","UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_FAIL","UPDATE_MY_LOR_PROFILE_COMMENT_START","UPDATE_MY_LOR_PROFILE_COMMENT_SUCCESS","UPDATE_MY_LOR_PROFILE_COMMENT_FAIL","UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_START","UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_SUCCESS","UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_FAIL","GET_MY_JOB_MATCH_TYPES_START","GET_MY_JOB_MATCH_TYPES_SUCCESS","GET_MY_JOB_MATCH_TYPES_FAIL","GET_MY_JOB_MATCHES_START","GET_MY_JOB_MATCHES_SUCCESS","GET_MY_JOB_MATCHES_FAIL","GET_MANAGED_PEOPLE_JOB_MATCHES_START","GET_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS","GET_MANAGED_PEOPLE_JOB_MATCHES_FAIL","UPDATE_MY_JOB_MATCHES_START","UPDATE_MY_JOB_MATCHES_SUCCESS","UPDATE_MY_JOB_MATCHES_FAIL","UPDATE_MANAGED_PEOPLE_JOB_MATCHES_START","UPDATE_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS","UPDATE_MANAGED_PEOPLE_JOB_MATCHES_FAIL","GET_JOB_PROFILES_VERSIONS_START","GET_JOB_PROFILES_VERSIONS_SUCCESS","GET_JOB_PROFILES_VERSIONS_FAIL","GET_JOB_SKILL_PROFILES_START","GET_JOB_SKILL_PROFILES_SUCCESS","GET_JOB_SKILL_PROFILES_FAIL","GET_JOB_LOR_PROFILES_START","GET_JOB_LOR_PROFILES_SUCCESS","GET_JOB_LOR_PROFILES_FAIL","UPDATE_JOB_SKILL_PROFILES_START","UPDATE_JOB_SKILL_PROFILES_SUCCESS","UPDATE_JOB_SKILL_PROFILES_FAIL","CLEAR_UPDATE_JOB_SKILL_PROFILES","GET_JOB_SKILL_ATTRIBUTES_START","GET_JOB_SKILL_ATTRIBUTES_SUCCESS","GET_JOB_SKILL_ATTRIBUTES_FAIL","GET_JOB_LOR_ATTRIBUTES_START","GET_JOB_LOR_ATTRIBUTES_SUCCESS","GET_JOB_LOR_ATTRIBUTES_FAIL","GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_START","GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_SUCCESS","GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_FAIL","GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_START","GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_SUCCESS","GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_FAIL","GET_MY_ACTIONS_START","GET_MY_ACTIONS_SUCCESS","GET_MY_ACTIONS_FAIL","GET_MANAGED_PEOPLE_ACTIONS_START","GET_MANAGED_PEOPLE_ACTIONS_SUCCESS","GET_MANAGED_PEOPLE_ACTIONS_FAIL","CREATE_ACTION_START","CREATE_ACTION_SUCCESS","CREATE_ACTION_FAIL","UPDATE_ACTION_START","UPDATE_ACTION_SUCCESS","UPDATE_ACTION_FAIL","DELETE_ACTION_START","DELETE_ACTION_SUCCESS","DELETE_ACTION_FAIL","PRINT_MY_ACTION_REPORT_START","PRINT_MY_ACTION_REPORT_SUCCESS","PRINT_MY_ACTION_REPORT_FAIL","CREATE_MANAGED_PEOPLE_ACTION_START","CREATE_MANAGED_PEOPLE_ACTION_SUCCESS","CREATE_MANAGED_PEOPLE_ACTION_FAIL","UPDATE_MANAGED_PEOPLE_ACTION_START","UPDATE_MANAGED_PEOPLE_ACTION_SUCCESS","UPDATE_MANAGED_PEOPLE_ACTION_FAIL","DELETE_MANAGED_PEOPLE_ACTION_START","DELETE_MANAGED_PEOPLE_ACTION_SUCCESS","DELETE_MANAGED_PEOPLE_ACTION_FAIL","PRINT_MANAGED_PEOPLE_ACTION_REPORT_START","PRINT_MANAGED_PEOPLE_ACTION_REPORT_SUCCESS","PRINT_MANAGED_PEOPLE_ACTION_REPORT_FAIL","SEND_UPDATED_ACTIONPLAN_NOTIFICATION_START","SEND_UPDATED_ACTIONPLAN_NOTIFICATION_SUCCESS","SEND_UPDATED_ACTIONPLAN_NOTIFICATION_FAIL","GET_ACTION_TYPES_START","GET_ACTION_TYPES_SUCCESS","GET_ACTION_TYPES_FAIL","GET_ACTION_SKILLS_START","GET_ACTION_SKILLS_SUCCESS","GET_ACTION_SKILLS_FAIL","GET_INTERVENTIONS_START","GET_INTERVENTIONS_SUCCESS","GET_INTERVENTIONS_FAIL","UPDATE_INTERVENTION_HIDDEN_START","UPDATE_INTERVENTION_HIDDEN_SUCCESS","UPDATE_INTERVENTION_HIDDEN_FAIL","GET_COMPANIES_START","GET_COMPANIES_SUCCESS","GET_COMPANIES_FAIL","GET_DEFAULT_COMPANY_START","GET_DEFAULT_COMPANY_SUCCESS","GET_DEFAULT_COMPANY_FAIL","GET_COMPANY_BRANDING_LOGO_START","GET_COMPANY_BRANDING_LOGO_SUCCESS","GET_COMPANY_BRANDING_LOGO_FAIL","CREATE_COMPANY_START","CREATE_COMPANY_SUCCESS","CREATE_COMPANY_FAIL","UPDATE_COMPANY_START","UPDATE_COMPANY_SUCCESS","UPDATE_COMPANY_FAIL","GET_COMPANY_FAVICON_START","GET_COMPANY_FAVICON_SUCCESS","GET_COMPANY_FAVICON_FAIL","GET_SELECTED_PROVIDER_COMPANIES_START","GET_SELECTED_PROVIDER_COMPANIES_SUCCESS","GET_SELECTED_PROVIDER_COMPANIES_FAIL","GET_PROVIDER_COMPANIES_START","GET_PROVIDER_COMPANIES_SUCCESS","GET_PROVIDER_COMPANIES_FAIL","GET_MY_SURVEYS_START","GET_MY_SURVEYS_SUCCESS","GET_MY_SURVEYS_FAIL","MY_SURVEYS_SELECT_ROLE_START","MY_SURVEYS_SELECT_ROLE_SUCCESS","MY_SURVEYS_SELECT_ROLE_FAIL","GET_SURVEY_QUESTION_START","GET_SURVEY_QUESTION_SUCCESS","GET_SURVEY_QUESTION_FAIL","ANSWER_QUESTION_START","ANSWER_QUESTION_SUCCESS","ANSWER_QUESTION_FAIL","SKIP_QUESTION_START","SKIP_QUESTION_SUCCESS","SKIP_QUESTION_FAIL","COMPLETE_MY_SURVEYS_START","COMPLETE_MY_SURVEYS_SUCCESS","COMPLETE_MY_SURVEYS_FAIL","RESET_MY_SURVEYS_START","RESET_MY_SURVEYS_SUCCESS","RESET_MY_SURVEYS_FAIL","GET_EVIDENCE_TYPES_START","GET_EVIDENCE_TYPES_SUCCESS","GET_EVIDENCE_TYPES_FAIL","GET_EVIDENCES_BYACCOUNTID_START","GET_EVIDENCES_BYACCOUNTID_SUCCESS","GET_EVIDENCES_BYACCOUNTID_FAIL","GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_START","GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_SUCCESS","GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_FAIL","ADD_EVIDENCE_START","ADD_EVIDENCE_SUCCESS","ADD_EVIDENCE_FAIL","ADD_EVIDENCES_START","ADD_EVIDENCES_SUCCESS","ADD_EVIDENCES_FAIL","ADD_MANAGED_PEOPLE_EVIDENCE_START","ADD_MANAGED_PEOPLE_EVIDENCE_SUCCESS","ADD_MANAGED_PEOPLE_EVIDENCE_FAIL","UPDATE_EVIDENCE_START","UPDATE_EVIDENCE_SUCCESS","UPDATE_EVIDENCE_FAIL","UPDATE_MANAGED_PEOPLE_EVIDENCE_START","UPDATE_MANAGED_PEOPLE_EVIDENCE_SUCCESS","UPDATE_MANAGED_PEOPLE_EVIDENCE_FAIL","DELETE_EVIDENCE_START","DELETE_EVIDENCE_SUCCESS","DELETE_EVIDENCE_FAIL","DELETE_MANAGED_PEOPLE_EVIDENCE_START","DELETE_MANAGED_PEOPLE_EVIDENCE_SUCCESS","DELETE_MANAGED_PEOPLE_EVIDENCE_FAIL","DOWNLOAD_EVIDENCE_BYID_START","DOWNLOAD_EVIDENCE_BYID_SUCCESS","DOWNLOAD_EVIDENCE_BYID_FAIL","DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_START","DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_SUCCESS","DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_FAIL","GET_PERSON_MYPEOPLES_START","GET_PERSON_MYPEOPLES_SUCCESS","GET_PERSON_MYPEOPLES_FAIL","GET_PERSON_MYPEOPLE_BYEMAIL_START","GET_PERSON_MYPEOPLE_BYEMAIL_SUCCESS","GET_PERSON_MYPEOPLE_BYEMAIL_FAIL","GET_PERSON_MYPEOPLES_TEAMANALYTIC_START","GET_PERSON_MYPEOPLES_TEAMANALYTIC_SUCCESS","GET_PERSON_MYPEOPLES_TEAMANALYTIC_FAIL","GET_PERSON_MYLEADERS_START","GET_PERSON_MYLEADERS_SUCCESS","GET_PERSON_MYLEADERS_FAIL","PERSON_FORGET_ME_START","PERSON_FORGET_ME_SUCCESS","PERSON_FORGET_ME_FAIL","MYPEOPLES_SET_MANAGED_RELATIONSHIP","MYPEOPLES_CLEAR_MANAGED_RELATIONSHIP","APPROVE_MYPEOPLE_PROFILE_START","APPROVE_MYPEOPLE_PROFILE_SUCCESS","APPROVE_MYPEOPLE_PROFILE_FAIL","POSTPONE_APPROVE_MYPEOPLE_PROFILE_START","POSTPONE_APPROVE_MYPEOPLE_PROFILE_SUCCESS","POSTPONE_APPROVE_MYPEOPLE_PROFILE_FAIL","GET_LANGUAGES_START","GET_LANGUAGES_SUCCESS","GET_LANGUAGES_FAIL","SET_LANGUAGE","GET_CONTENT_TRANSLATIONS_START","GET_CONTENT_TRANSLATIONS_SUCCESS","GET_CONTENT_TRANSLATIONS_FAIL","GENERATE_ACTIVITYSTATEMENT_START","GENERATE_ACTIVITYSTATEMENT_SUCCESS","GENERATE_ACTIVITYSTATEMENT_FAIL","SET_JOBIMPORT_SESSIONID","EXPORT_JOBS_DATA_START","EXPORT_JOBS_DATA_SUCCESS","EXPORT_JOBS_DATA_FAIL","IMPORT_JOBS_DATA_START","IMPORT_JOBS_DATA_SUCCESS","IMPORT_JOBS_DATA_FAIL","UPDATE_IMPORT_JOB_STATUS","GET_JOB_IMPORT_QUEUE_START","GET_JOB_IMPORT_QUEUE_SUCCESS","GET_JOB_IMPORT_QUEUE_FAIL","GET_JOB_MATCH_PERSONS_START","GET_JOB_MATCH_PERSONS_SUCCESS","GET_JOB_MATCH_PERSONS_FAIL","ASSIGN_JOB_MATCH_PERSON_START","ASSIGN_JOB_MATCH_PERSON_SUCCESS","ASSIGN_JOB_MATCH_PERSON_FAIL","EXPORT_JOB_MATCHES_DATA_START","EXPORT_JOB_MATCHES_DATA_SUCCESS","EXPORT_JOB_MATCHES_DATA_FAIL","IMPORT_JOB_MATCHES_DATA_START","IMPORT_JOB_MATCHES_DATA_SUCCESS","IMPORT_JOB_MATCHES_DATA_FAIL","ADD_SKILL_ATTRIBUTE_DATA_START","ADD_SKILL_ATTRIBUTE_DATA_SUCCESS","ADD_SKILL_ATTRIBUTE_DATA_FAIL","UPDATE_SKILL_ATTRIBUTE_DATA_START","UPDATE_SKILL_ATTRIBUTE_DATA_SUCCESS","UPDATE_SKILL_ATTRIBUTE_DATA_FAIL","UPDATE_SKILL_SET_ISHIDDEN_START","UPDATE_SKILL_SET_ISHIDDEN_SUCCESS","UPDATE_SKILL_SET_ISHIDDEN_FAIL","DELETE_SKILL_ATTRIBUTE_DATA_START","DELETE_SKILL_ATTRIBUTE_DATA_SUCCESS","DELETE_SKILL_ATTRIBUTE_DATA_FAIL","EXPORT_SKILL_ATTRIBUTES_DATA_START","EXPORT_SKILL_ATTRIBUTES_DATA_SUCCESS","EXPORT_SKILL_ATTRIBUTES_DATA_FAIL","IMPORT_SKILL_ATTRIBUTES_DATA_START","IMPORT_SKILL_ATTRIBUTES_DATA_SUCCESS","IMPORT_SKILL_ATTRIBUTES_DATA_FAIL","EXPORT_SKILLS_HIDDEN_DATA_START","EXPORT_SKILLS_HIDDEN_DATA_SUCCESS","EXPORT_SKILLS_HIDDEN_DATA_FAIL","IMPORT_SKILLS_HIDDEN_DATA_START","IMPORT_SKILLS_HIDDEN_DATA_SUCCESS","IMPORT_SKILLS_HIDDEN_DATA_FAIL","GET_CONFIG_SAML_ENABLED_STATUS_START","GET_CONFIG_SAML_ENABLED_STATUS_SUCCESS","GET_CONFIG_SAML_ENABLED_STATUS_FAIL","GET_CONFIG_CURR_ASSESSMENT_START","GET_CONFIG_CURR_ASSESSMENT_SUCCESS","GET_CONFIG_CURR_ASSESSMENT_FAIL","CLEAR_CONFIG_CURR_ASSESSMENT","GET_CONTAINER_CONFIG_START","GET_CONTAINER_CONFIG_SUCCESS","GET_CONTAINER_CONFIG_FAIL","GET_CONTAINER_CONFIG_WITHOUT_LOADING_START","GET_CONTAINER_CONFIG_WITHOUT_LOADING_SUCCESS","GET_CONTAINER_CONFIG_WITHOUT_LOADING_FAIL","GET_ADMIN_CONFIG_START","GET_ADMIN_CONFIG_SUCCESS","GET_ADMIN_CONFIG_FAIL","UPDATE_ADMIN_CONFIG_START","UPDATE_ADMIN_CONFIG_SUCCESS","UPDATE_ADMIN_CONFIG_FAIL","GET_CONTAINER_APP_SETTING_START","GET_CONTAINER_APP_SETTING_SUCCESS","GET_CONTAINER_APP_SETTING_FAIL","UPDATE_CONTAINER_APP_SETTING_START","UPDATE_CONTAINER_APP_SETTING_SUCCESS","UPDATE_CONTAINER_APP_SETTING_FAIL","DOWNLOAD_POWERBIMODEL_START","DOWNLOAD_POWERBIMODEL_SUCCESS","DOWNLOAD_POWERBIMODEL_FAIL","GET_EXTRAFRAMEWORK_LEVELS_START","GET_EXTRAFRAMEWORK_LEVELS_SUCCESS","GET_EXTRAFRAMEWORK_LEVELS_FAIL","GET_EXTRAFRAMEWORK_CAPABILITIES_START","GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS","GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL","GET_MY_LATEST_BADGE_REQUEST_START","GET_MY_LATEST_BADGE_REQUEST_SUCCESS","GET_MY_LATEST_BADGE_REQUEST_FAIL","SUBMIT_BADGE_REQUEST_START","SUBMIT_BADGE_REQUEST_SUCCESS","SUBMIT_BADGE_REQUEST_FAIL","SUBMIT_ACTION_PROMOTION_START","SUBMIT_ACTION_PROMOTION_SUCCESS","SUBMIT_ACTION_PROMOTION_FAIL","GET_PERSON_SKILL_COINS_START","GET_PERSON_SKILL_COINS_SUCCESS","GET_PERSON_SKILL_COINS_FAIL","GET_ACTIVE_USER_COUNT_STATUS_START","GET_ACTIVE_USER_COUNT_STATUS_SUCCESS","GET_ACTIVE_USER_COUNT_STATUS_FAIL","CLEAR_ACTIVE_USER_COUNT_STATUS","EXECUTE_INACTIVATION_USERS_LESS_LOGIN_START","EXECUTE_INACTIVATION_USERS_LESS_LOGIN_SUCCESS","EXECUTE_INACTIVATION_USERS_LESS_LOGIN_FAIL","CLEAR_SAML_ENABLED_STATUS","GET_JOB_FAMILIES_START","GET_JOB_FAMILIES_SUCCESS","GET_JOB_FAMILIES_FAIL","UPDATE_JOB_FAMILY_START","UPDATE_JOB_FAMILY_SUCCESS","UPDATE_JOB_FAMILY_FAIL","DELETE_JOB_FAMILY_START","DELETE_JOB_FAMILY_SUCCESS","DELETE_JOB_FAMILY_FAIL","GET_COLUMN_DISPLAY_SETTINGS_START","GET_COLUMN_DISPLAY_SETTINGS_SUCCESS","GET_COLUMN_DISPLAY_SETTINGS_FAIL","UPDATE_COLUMN_DISPLAY_SETTING_START","UPDATE_COLUMN_DISPLAY_SETTING_SUCCESS","UPDATE_COLUMN_DISPLAY_SETTING_FAIL","UPDATE_COLUMN_DISPLAY_SETTING_MOVE_START","UPDATE_COLUMN_DISPLAY_SETTING_MOVE_SUCCESS","UPDATE_COLUMN_DISPLAY_SETTING_MOVE_FAIL","GET_PERSON_MENTOR_PREFERENCE_START","GET_PERSON_MENTOR_PREFERENCE_SUCCESS","GET_PERSON_MENTOR_PREFERENCE_FAIL","SUBMIT_PROPOSE_ACTION_START","SUBMIT_PROPOSE_ACTION_SUCCESS","SUBMIT_PROPOSE_ACTION_FAIL","ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START","ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS","ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL","REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START","REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS","REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL","EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_START","EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_TOEMAIL_START","EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_SUCCESS","EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_FAIL","GET_REPORT_TEMPLATE_NAME_START","GET_REPORT_TEMPLATE_NAME_SUCCESS","GET_REPORT_TEMPLATE_NAME_FAIL","DOWNLOAD_REPORT_TEMPLATE_START","DOWNLOAD_REPORT_TEMPLATE_SUCCESS","DOWNLOAD_REPORT_TEMPLATE_FAIL","UPDATE_REPORT_TEMPLATE_START","UPDATE_REPORT_TEMPLATE_SUCCESS","UPDATE_REPORT_TEMPLATE_FAIL","ADD_LOR_ATTRIBUTE_DATA_START","ADD_LOR_ATTRIBUTE_DATA_SUCCESS","ADD_LOR_ATTRIBUTE_DATA_FAIL","UPDATE_LOR_ATTRIBUTE_DATA_START","UPDATE_LOR_ATTRIBUTE_DATA_SUCCESS","UPDATE_LOR_ATTRIBUTE_DATA_FAIL","DELETE_LOR_ATTRIBUTE_DATA_START","DELETE_LOR_ATTRIBUTE_DATA_SUCCESS","DELETE_LOR_ATTRIBUTE_DATA_FAIL","EXPORT_LOR_ATTRIBUTES_DATA_START","EXPORT_LOR_ATTRIBUTES_DATA_SUCCESS","EXPORT_LOR_ATTRIBUTES_DATA_FAIL","IMPORT_LOR_ATTRIBUTES_DATA_START","IMPORT_LOR_ATTRIBUTES_DATA_SUCCESS","IMPORT_LOR_ATTRIBUTES_DATA_FAIL","ENQUIRE_JOB_VACANCY_START","ENQUIRE_JOB_VACANCY_SUCCESS","ENQUIRE_JOB_VACANCY_FAIL","checkPassword","match","checkValidity","validation","isValid","minLength","maxLength","minNumber","maxNumber","isEmail","test","isNumeric","isPassword","isFte","isUserFte","changeInput","formObject","isNotEmpty","isValidFormat","isBool","isDateTime","required","updatedFormElement","valid","touched","updatedOrderForm","formIsValid","form","generateAlert","stickyAlert","alerts","this","setState","getTime","dismisAlert","alert","idx","slice","contentTranslator","contentTranslation","getTimeIn","timeNow","parseFloat","authRegisterEmailChecking","AuthAPI","registerEmailChecking","authRegister","register","signIn","password","signin","localStorage","setItem","expiresIn","signInUseToken","signinUseToken","signInUseOneTimeLoginToken","signinUseOneTimeLoginToken","authLogout","logOut","authLogoutIntended","logOutIntended","checkLoginCookiesState","async","refreshToken","authCheckState","getItem","forceRefreshToken","forgotPassword","createAccount","surveyRating","submitRating","submitRatingTeams","getResetPassword","processResetPassword","body","signinwithdownline","personB","downline","oldObject","updatedProperties","isHandlerEnabled","prototype","hasOwnProperty","call","handlerEnabled","CancelToken","axiosInstance","cancel","numbers","instanceInterceptor","responseInterceptor","instance","interceptors","use","meta","requestStartedAt","getEndpoints","url","successHandler","stack","request","_response","originalRequest","Promise","reject","_retry","getState","defaults","headers","common","clear","errorHandler","requestInterceptor","cancelToken","c","requestHandler","split","txt","param","join","process","REACT_APP_API_ENDPOINT","apiAxiosInstance","create","baseURL","JobAPI","responseType","jobIds","post","put","note","delete","copiedJobs","includeJobVacancyInfo","updatedProfiles","lorProfileRequests","source","skillProfileRequests","sessionId","operation","jobsDataFiles","FormData","append","file","jobImportIds","jobMatchType","jobMatchesData","addedJobIds","sendSelfAssessedProfile","sendEndorsedProfile","getJobs","getRoleBasedSurveyJobs","getJobsWithAction","getSampleJobs","getOwnedJobs","getJob","printJobReport","printJobProfile","printJobReports","printJobProfiles","createJob","updateJob","updateJobNote","deleteJob","copyJob","copyJobs","updateJobSkillAttributes","updateJobLorAttributes","getMyJobMatchTypes","getMyJobMatchesStart","getMyJobMatchesSuccess","getMyJobMatchesFail","getMyJobMatches","getManagedPeopleJobMatchesStart","getManagedPeopleJobMatchesSuccess","getManagedPeopleJobMatchesFail","getManagedPeopleJobMatches","updateMyJobMatchesStart","updateMyJobMatchesSuccess","updateMyJobMatchesFail","updateMyJobMatches","updateManagedPeopleJobMatchesStart","updateManagedPeopleJobMatchesSuccess","updateManagedPeopleJobMatchesFail","updateManagedPeopleJobMatches","getJobProfileVersions","getJobLorProfiles","getJobSkillProfiles","updateJobSkillProfiles","updatedSkills","updateJobProfiles","getJobSkillAttributes","getJobLorAttributes","getManagedPeopleJobLorProfilesStart","getManagedPeopleJobLorProfilesSuccess","getManagedPeopleJobLorProfilesFail","getManagedPeopleJobLorProfiles","getManagedPeopleJobSkillProfilesStart","getManagedPeopleJobSkillProfilesSuccess","getManagedPeopleJobSkillProfilesFail","getManagedPeopleJobSkillProfiles","exportJobsDataExcel","exportJobsDataExcelTemplate","downloadJobImportExcel","importJobsDataExcel","processJobImportQueue","getJobImportQueue","getJobMatchPersons","assignJobMatchPerson","assignjobmatchperson","exportJobMatchesDataExcel","exportJobMatchesDataExcelTemplate","importJobMatchesDataExcel","importJobmatchessDataExcel","personResponses","getJobFamilies","createJobFamily","updateJobFamily","updateJobFamilyAddEntries","updateJobFamilyDeleteEntries","deleteJobFamily","recalculateJobMatches","enquireJobVacancy","global","appVersion","packageJson","CacheBuster","React","Component","constructor","props","super","isLatestVersion","refreshCacheAndReload","caches","names","reload","componentDidMount","fetch","json","latestVersion","versionA","versionB","versionsA","versionsB","Number","shift","isNaN","semverGreaterThan","render","children","RegisterReasonAPI","getRegisterReasons","CaptchaWrapper","styled","div","getRandomInt","min","max","Math","ceil","floor","random","genetateCaptcha","i","text","String","fromCharCode","Captcha","solution","input","drawCaptcha","width","height","canvas","ctx","getContext","clearRect","font","textAlign","textBaseline","fillText","strokeStyle","beginPath","moveTo","lineTo","stroke","closePath","refresh","onRefresh","playAudio","audio","SpeechSynthesisUtterance","toString","rate","speechSynthesis","speak","handleChange","e","onChange","target","placeholder","className","ref","el","onClick","xmlns","viewBox","opacity","d","defaultProps","titleStyle","fontFamily","fontSize","align","descStyle","noteStyle","lineHeight","reasonAssessmentOptions","CONSTANTS","FormRegister","event","roleBasedSurveyJobs","showRoleBasedSurveyInSelfRegistration","isFormValid","timer","setTimeout","checkEmailExist","handleEmailKeyUp","clearTimeout","timeoutID","handleEmailLostFocus","emailChecking","onAuth","handleChangeCheckBox","checked","handleCaptchaChange","submitForm","preventDefault","phoneNumber","jobTitle","city","reasonAssessment","history","subscribe","captcha","alertTimer","initData","bind","componentWillUnmount","callback","onCountry","onRegisterReason","onJob","jobLoading","handleCaptchaRefresh","modalLoading","Modal","isOpen","backdrop","keyboard","size","ModalHeader","Spinner","animation","role","style","marginLeft","ContentWrapper","timeout","alertAutoHideInterval","dismissTitle","onDismiss","Alert","color","fade","tabIndex","Row","xs","md","Col","selfRegistrationWording","dangerouslySetInnerHTML","__html","replace","Fragment","href","rel","Form","onSubmit","FormGroup","Label","for","ContentTranslator","Input","invalid","disabled","onKeyUp","onBlur","FormFeedback","marginRight","check","display","Button","block","displayName","withRouter","connect","bindActionCreators","authActions","countryActions","registerReasonActions","jobActions","parse","wrapperStyle","GET_PERSONS_START","GET_PERSONS_SUCCESS","GET_PERSONS_FAIL","GET_ADMIN_PERSONS_START","GET_ADMIN_PERSONS_SUCCESS","GET_ADMIN_PERSONS_FAIL","GET_PERSONS_DROPDOWN_START","GET_PERSONS_DROPDOWN_SUCCESS","GET_PERSONS_DROPDOWN_FAIL","ADD_PERSON_START","ADD_PERSON_SUCCESS","ADD_PERSON_FAIL","UPDATE_PERSON_START","UPDATE_PERSON_SUCCESS","UPDATE_PERSON_FAIL","DELETE_PERSON_START","DELETE_PERSON_SUCCESS","DELETE_PERSON_FAIL","RESET_PERSON_PASSWORD_START","RESET_PERSON_PASSWORD_SUCCESS","RESET_PERSON_PASSWORD_FAIL","UPDATE_PERSON_ROLES_START","UPDATE_PERSON_ROLES_SUCCESS","UPDATE_PERSON_ROLES_FAIL","EXPORT_PERSONS_DATA_START","EXPORT_PERSONS_DATA_SUCCESS","EXPORT_PERSONS_DATA_FAIL","IMPORT_PERSONS_DATA_START","IMPORT_PERSONS_DATA_SUCCESS","IMPORT_PERSONS_DATA_FAIL","EXPORT_PERSONS_PROFILES_START","EXPORT_PERSONS_PROFILES_SUCCESS","EXPORT_PERSONS_PROFILES_FAIL","IMPORT_PERSONS_PROFILES_START","IMPORT_PERSONS_PROFILES_SUCCESS","IMPORT_PERSONS_PROFILES_FAIL","GENERATE_PERSON_PROFILE_REPORTS_START","GENERATE_PERSON_PROFILE_REPORTS_SUCCESS","GENERATE_PERSON_PROFILE_REPORTS_FAIL","GENERATE_PROFILE_REPORTS_START","GENERATE_PROFILE_REPORTS_SUCCESS","GENERATE_PROFILE_REPORTS_FAIL","ASSIGN_PERSONS_START","ASSIGN_PERSONS_SUCCESS","ASSIGN_PERSONS_FAIL","UNASSIGN_PERSONS_START","UNASSIGN_PERSONS_SUCCESS","UNASSIGN_PERSONS_FAIL","INVITE_PERSONS_START","INVITE_PERSONS_SUCCESS","INVITE_PERSONS_FAIL","GET_ADMIN_COMPANY_BRANDING_LOGO_START","GET_ADMIN_COMPANY_BRANDING_LOGO_SUCCESS","GET_ADMIN_COMPANY_BRANDING_LOGO_FAIL","UPDATE_COMPANY_BRANDING_LOGO_START","UPDATE_COMPANY_BRANDING_LOGO_SUCCESS","UPDATE_COMPANY_BRANDING_LOGO_FAIL","GET_ADMIN_COMPANY_FAVICON_START","GET_ADMIN_COMPANY_FAVICON_SUCCESS","GET_ADMIN_COMPANY_FAVICON_FAIL","UPDATE_COMPANY_FAVICON_START","UPDATE_COMPANY_FAVICON_SUCCESS","UPDATE_COMPANY_FAVICON_FAIL","GET_RELATIONSHIP_TYPES_START","GET_RELATIONSHIP_TYPES_SUCCESS","GET_RELATIONSHIP_TYPES_FAIL","ADD_RELATIONSHIPS_START","ADD_RELATIONSHIPS_SUCCESS","ADD_RELATIONSHIPS_FAIL","DELETE_RELATIONSHIPS_START","DELETE_RELATIONSHIPS_SUCCESS","DELETE_RELATIONSHIPS_FAIL","EXPORT_RELATIONSHIPS_DATA_START","EXPORT_RELATIONSHIPS_DATA_SUCCESS","EXPORT_RELATIONSHIPS_DATA_FAIL","IMPORT_RELATIONSHIPS_DATA_START","IMPORT_RELATIONSHIPS_DATA_SUCCESS","IMPORT_RELATIONSHIPS_DATA_FAIL","GET_EMAIL_TEMPLATE_TYPES_START","GET_EMAIL_TEMPLATE_TYPES_SUCCESS","GET_EMAIL_TEMPLATE_TYPES_FAIL","GET_EMAIL_TEMPLATE_BY_TYPE_START","GET_EMAIL_TEMPLATE_BY_TYPE_SUCCESS","GET_EMAIL_TEMPLATE_BY_TYPE_FAIL","CREATE_UPDATE_EMAIL_TEMPLATE_START","CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS","CREATE_UPDATE_EMAIL_TEMPLATE_FAIL","ADD_INTERVENTION_START","ADD_INTERVENTION_SUCCESS","ADD_INTERVENTION_FAIL","UPDATE_INTERVENTION_START","UPDATE_INTERVENTION_SUCCESS","UPDATE_INTERVENTION_FAIL","DELETE_INTERVENTION_START","DELETE_INTERVENTION_SUCCESS","DELETE_INTERVENTION_FAIL","DELETE_INTERVENTIONS_START","DELETE_INTERVENTIONS_SUCCESS","DELETE_INTERVENTIONS_FAIL","EXPORT_INTERVENTIONS_DATA_START","EXPORT_INTERVENTIONS_DATA_SUCCESS","EXPORT_INTERVENTIONS_DATA_FAIL","IMPORT_INTERVENTIONS_DATA_START","IMPORT_INTERVENTIONS_DATA_SUCCESS","IMPORT_INTERVENTIONS_DATA_FAIL","ASSIGN_INTERVENTION_JOB_START","ASSIGN_INTERVENTION_JOB_SUCCESS","ASSIGN_INTERVENTION_JOB_FAIL","DELETE_INTERVENTION_JOB_START","DELETE_INTERVENTION_JOB_SUCCESS","DELETE_INTERVENTION_JOB_FAIL","DELETE_INTERVENTION_JOBS_START","DELETE_INTERVENTION_JOBS_SUCCESS","DELETE_INTERVENTION_JOBS_FAIL","GET_ACTIONTYPES_START","GET_ACTIONTYPES_SUCCESS","GET_ACTIONTYPES_FAIL","ADD_ACTIONTYPE_START","ADD_ACTIONTYPE_SUCCESS","ADD_ACTIONTYPE_FAIL","UPDATE_ACTIONTYPE_START","UPDATE_ACTIONTYPE_SUCCESS","UPDATE_ACTIONTYPE_FAIL","DELETE_ACTIONTYPE_START","DELETE_ACTIONTYPE_SUCCESS","DELETE_ACTIONTYPE_FAIL","GET_EVIDENCETYPES_START","GET_EVIDENCETYPES_SUCCESS","GET_EVIDENCETYPES_FAIL","ADD_EVIDENCETYPE_START","ADD_EVIDENCETYPE_SUCCESS","ADD_EVIDENCETYPE_FAIL","UPDATE_EVIDENCETYPE_START","UPDATE_EVIDENCETYPE_SUCCESS","UPDATE_EVIDENCETYPE_FAIL","DELETE_EVIDENCETYPE_START","DELETE_EVIDENCETYPE_SUCCESS","DELETE_EVIDENCETYPE_FAIL","GET_PAGE_ASSIGNMENTS_START","GET_PAGE_ASSIGNMENTS_SUCCESS","GET_PAGE_ASSIGNMENTS_FAIL","CLEAR_PAGE_ASSIGNMENTS","GET_PERSON_PAGE_ASSIGNMENTS_START","GET_PERSON_PAGE_ASSIGNMENTS_SUCCESS","GET_PERSON_PAGE_ASSIGNMENTS_FAIL","UPDATE_PERSON_PAGE_ASSIGNMENTS_START","UPDATE_PERSON_PAGE_ASSIGNMENTS_SUCCESS","UPDATE_PERSON_PAGE_ASSIGNMENTS_FAIL","GET_ADMIN_COLUMN_DISPLAY_SETTINGS_START","GET_ADMIN_COLUMN_DISPLAY_SETTINGS_SUCCESS","GET_ADMIN_COLUMN_DISPLAY_SETTINGS_FAIL","UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_START","UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_SUCCESS","UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_FAIL","CLEAR_COLUMN_DISPLAY_SETTINGS","GET_CONTENT_PAGES_START","GET_CONTENT_PAGES_SUCCESS","GET_CONTENT_PAGES_FAIL","GET_CONTENTS_START","GET_CONTENTS_SUCCESS","GET_CONTENTS_FAIL","EXPORT_CONTENT_TRANSLATIONS_START","EXPORT_CONTENT_TRANSLATIONS_SUCCESS","EXPORT_CONTENT_TRANSLATIONS_FAIL","IMPORT_CONTENT_TRANSLATIONS_START","IMPORT_CONTENT_TRANSLATIONS_SUCCESS","IMPORT_CONTENT_TRANSLATIONS_FAIL","CREATE_CONTENT_TRANSLATION_START","CREATE_CONTENT_TRANSLATION_SUCCESS","CREATE_CONTENT_TRANSLATION_FAIL","UPDATE_CONTENT_TRANSLATION_START","UPDATE_CONTENT_TRANSLATION_SUCCESS","UPDATE_CONTENT_TRANSLATION_FAIL","CREATE_EXTRAFRAMEWORK_LEVEL_START","CREATE_EXTRAFRAMEWORK_LEVEL_SUCCESS","CREATE_EXTRAFRAMEWORK_LEVEL_FAIL","UPDATE_EXTRAFRAMEWORK_LEVEL_START","UPDATE_EXTRAFRAMEWORK_LEVEL_SUCCESS","UPDATE_EXTRAFRAMEWORK_LEVEL_FAIL","DELETE_EXTRAFRAMEWORK_LEVEL_START","DELETE_EXTRAFRAMEWORK_LEVEL_SUCCESS","DELETE_EXTRAFRAMEWORK_LEVEL_FAIL","MOVE_EXTRAFRAMEWORK_LEVELS_START","MOVE_EXTRAFRAMEWORK_LEVELS_SUCCESS","MOVE_EXTRAFRAMEWORK_LEVELS_FAIL","GET_EXTRAFRAMEWORK_CATEGORIES_START","GET_EXTRAFRAMEWORK_CATEGORIES_SUCCESS","GET_EXTRAFRAMEWORK_CATEGORIES_FAIL","CREATE_EXTRAFRAMEWORK_CATEGORY_START","CREATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS","CREATE_EXTRAFRAMEWORK_CATEGORY_FAIL","UPDATE_EXTRAFRAMEWORK_CATEGORY_START","UPDATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS","UPDATE_EXTRAFRAMEWORK_CATEGORY_FAIL","DELETE_EXTRAFRAMEWORK_CATEGORY_START","DELETE_EXTRAFRAMEWORK_CATEGORY_SUCCESS","DELETE_EXTRAFRAMEWORK_CATEGORY_FAIL","CREATE_EXTRAFRAMEWORK_SUBCATEGORY_START","CREATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS","CREATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL","UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_START","UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS","UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL","DELETE_EXTRAFRAMEWORK_SUBCATEGORY_START","DELETE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS","DELETE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL","CREATE_EXTRAFRAMEWORK_SKILL_START","CREATE_EXTRAFRAMEWORK_SKILL_SUCCESS","CREATE_EXTRAFRAMEWORK_SKILL_FAIL","UPDATE_EXTRAFRAMEWORK_SKILL_START","UPDATE_EXTRAFRAMEWORK_SKILL_SUCCESS","UPDATE_EXTRAFRAMEWORK_SKILL_FAIL","DELETE_EXTRAFRAMEWORK_SKILL_START","DELETE_EXTRAFRAMEWORK_SKILL_SUCCESS","DELETE_EXTRAFRAMEWORK_SKILL_FAIL","EXPORT_EXTRAFRAMEWORKS_DATA_START","EXPORT_EXTRAFRAMEWORKS_DATA_SUCCESS","EXPORT_EXTRAFRAMEWORKS_DATA_FAIL","IMPORT_EXTRAFRAMEWORKS_DATA_START","IMPORT_EXTRAFRAMEWORKS_DATA_SUCCESS","IMPORT_EXTRAFRAMEWORKS_DATA_FAIL","UPDATE_PERSON_ENDORSEMENT","UPDATE_PERSON_SELFASSESSED_APPROVED","UPDATE_PERSON_SELFASSESSED_POSTPONED","UPDATE_PERSON_ENDORSER_START","UPDATE_PERSON_ENDORSER_SUCCESS","UPDATE_PERSON_ENDORSER_FAIL","GET_BADGE_REQUESTS_START","GET_BADGE_REQUESTS_SUCCESS","GET_BADGE_REQUESTS_FAIL","UPDATE_BADGE_REQUEST_ASSESSOR_START","UPDATE_BADGE_REQUEST_ASSESSOR_SUCCESS","UPDATE_BADGE_REQUEST_ASSESSOR_FAIL","UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_START","UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_SUCCESS","UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_FAIL","SUBMIT_BADGE_REQUEST_CERTIFICATION_START","SUBMIT_BADGE_REQUEST_CERTIFICATION_SUCCESS","SUBMIT_BADGE_REQUEST_CERTIFICATION_FAIL","SUBMIT_BADGE_REQUEST_CERTIFICATIONS_START","SUBMIT_BADGE_REQUEST_CERTIFICATIONS_SUCCESS","SUBMIT_BADGE_REQUEST_CERTIFICATIONS_FAIL","REJECT_BADGE_REQUEST_CERTIFICATION_START","REJECT_BADGE_REQUEST_CERTIFICATION_SUCCESS","REJECT_BADGE_REQUEST_CERTIFICATION_FAIL","UPDATE_BADGE_REQUEST","GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_START","GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_SUCCESS","GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_FAIL","GET_ACTION_PROMOTIONS_START","GET_ACTION_PROMOTIONS_SUCCESS","GET_ACTION_PROMOTIONS_FAIL","UPDATE_ACTION_PROMOTION_START","UPDATE_ACTION_PROMOTION_SUCCESS","UPDATE_ACTION_PROMOTION_FAIL","ACCEPT_ACTION_PROMOTION_START","ACCEPT_ACTION_PROMOTION_SUCCESS","ACCEPT_ACTION_PROMOTION_FAIL","DECLINE_ACTION_PROMOTION_START","DECLINE_ACTION_PROMOTION_SUCCESS","DECLINE_ACTION_PROMOTION_FAIL","GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_START","GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_SUCCESS","GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_FAIL","ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START","ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS","ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL","UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START","UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS","UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL","DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START","DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS","DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL","GET_REGISTRATION_REASONS_START","GET_REGISTRATION_REASONS_SUCCESS","GET_REGISTRATION_REASONS_FAIL","ADD_REGISTRATION_REASON_START","ADD_REGISTRATION_REASON_SUCCESS","ADD_REGISTRATION_REASON_FAIL","UPDATE_REGISTRATION_REASON_START","UPDATE_REGISTRATION_REASON_SUCCESS","UPDATE_REGISTRATION_REASON_FAIL","DELETE_REGISTRATION_REASON_START","DELETE_REGISTRATION_REASON_SUCCESS","DELETE_REGISTRATION_REASON_FAIL","MOVE_REGISTRATION_REASON_START","MOVE_REGISTRATION_REASON_SUCCESS","MOVE_REGISTRATION_REASON_FAIL","GET_ACTION_LOGS_START","GET_ACTION_LOGS_SUCCESS","GET_ACTION_LOGS_FAIL","EXPORT_ACTION_LOGS_START","EXPORT_ACTION_LOGS_SUCCESS","EXPORT_ACTION_LOGS_FAIL","REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_START","REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_SUCCESS","REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_FAIL","UPDATE_COPY_SELF_PROFILES_AS_ENDORSED_STATUS","GET_MENTOR_PREFERENCES_START","GET_MENTOR_PREFERENCES_SUCCESS","GET_MENTOR_PREFERENCES_FAIL","ADD_MENTOR_PREFERENCE_START","ADD_MENTOR_PREFERENCE_SUCCESS","ADD_MENTOR_PREFERENCE_FAIL","UPDATE_MENTOR_PREFERENCE_START","UPDATE_MENTOR_PREFERENCE_SUCCESS","UPDATE_MENTOR_PREFERENCE_FAIL","DELETE_MENTOR_PREFERENCE_START","DELETE_MENTOR_PREFERENCE_SUCCESS","DELETE_MENTOR_PREFERENCE_FAIL","APPROVE_SKILL_PROFILES_START","APPROVE_SKILL_PROFILES_SUCCESS","APPROVE_SKILL_PROFILES_FAIL","GET_ADMIN_ROLES_START","GET_ADMIN_ROLES_SUCCESS","GET_ADMIN_ROLES_FAIL","GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_START","GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS","GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL","ADD_ADMIN_ROLE_START","ADD_ADMIN_ROLE_SUCCESS","ADD_ADMIN_ROLE_FAIL","UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_START","UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS","UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL","RENAME_ADMIN_ROLE_START","RENAME_ADMIN_ROLE_SUCCESS","RENAME_ADMIN_ROLE_FAIL","DELETE_ADMIN_ROLE_START","DELETE_ADMIN_ROLE_SUCCESS","DELETE_ADMIN_ROLE_FAIL","withCredentials","tokenData","jwt_decode","exp","PersonId","FirstName","LastName","Email","PersonType","AuthMode","AssessmentId","SfiaVersion","JobProfileReportFormat","SelfAssessedProfileReportFormat","HasPeoples","IsEndorser","OwnJobs","ManageEndorsements","ManageCertifications","LoginWithMembee","LoginWithTeams","ReceiveLicenseNotification","LastActiveUserNotification","AllowSkipSurvey","ManageSelfAssessed","ManageSelfProfiles","HasRelationships","result","CompanyAPI","companyType","getCompanies","getDefaultCompany","getCompanyBrandingLogo","getCompanyFavIcon","createCompany","addNewCompany","updateCompany","updateCompanyProviderSelection","getSelectedProviderCompanies","getProviderCompanies","ConfigAPI","appSetting","ssoSamlEnable","ssoSamlEntityId","ssoSamlIpConfigurationOption","ssoSamlIpMetadataAddress","ssoSamlIpEntityId","ssoSamlIpSingleSignOnEndpoint","ssoSamlIpCertificateKeyVaultName","ssoSamlClaimEmailAddressType","ssoSamlIpCertificateFile","reportTemplateType","reportTemplateFile","getSamlEnabledStatus","getConfigSamlEnabledStatus","getCurrAssessment","getConfigCurrAssessment","getContainerConfig","getContainerConfigWithoutLoading","getAdminConfig","updateAdminConfig","updateAdminPersonMiscellaneousConfig","downloadPowerBIModel","getContainerAppSetting","updateContainerAppSetting","getActiveUserCountStatus","showNotification","executeInactivationUsersLessLogin","inactivationUsersLessLogin","exportMigrationImpactAssessmentReports","exportMigrationImpactAssessmentReportsToEmail","downloadMigrationImpactAssessmentReports","getReportTemplateName","getTemplateReportName","downloadReportTemplate","downloadTemplateReport","updateReportTemplate","updateTemplateReport","clearReportTemplate","clearTemplateReport","ContentAPI","getContentTranslations","LanguageAPI","getLanguages","ProfileAPI","profileType","count","endorsed","suggestedSkills","timezoneOffset","getMyProfileTypesStart","getMyProfileTypesSuccess","getMyProfileTypesFail","getMyProfileTypes","getManagedPeopleProfileTypesStart","getManagedPeopleProfileTypesSuccess","getManagedPeopleProfileTypesFail","getManagedPeopleProfileTypes","getMyProfileVersionsStart","getMyProfileVersionsSuccess","getMyProfileVersionsFail","getMyProfileVersions","getManagedPeopleProfileVersionsStart","getManagedPeopleProfileVersionsSuccess","getManagedPeopleProfileVersionsFail","getManagedPeopleProfileVersions","getMyLorProfileStart","getMyLorProfileSuccess","getMyLorProfileFail","getMyLorProfile","getMyLorPofiles","getManagedPeopleLorProfileStart","getManagedPeopleLorProfileSuccess","getManagedPeopleLorProfileFail","getManagedPeopleLorProfile","getManagedPeopleLorPofiles","getMySkillProfileStart","getMySkillProfileSuccess","getMySkillProfileFail","getMySkillProfile","getMySkillPofiles","getManagedPeopleSkillProfileStart","getManagedPeopleSkillProfileSuccess","getManagedPeopleSkillProfileFail","getManagedPeopleSkillProfile","getManagedPeopleSkillPofiles","printMyProfileStart","printMyProfileSuccess","printMyProfileFail","printMyProfile","printMyPofiles","printManagedPeopleProfileStart","printManagedPeopleProfileSuccess","printManagedPeopleProfileFail","printManagedPeopleProfile","printManagedPeoplePofiles","emailMyProfileReport","emailMyPofilesReport","generatePersonalDataExcel","generateMyPersonalDataExcel","updateMySkillProfile","updateMyProfile","updateManagedPeopleProfile","updateManagedPeopleEndorsedStatus","copyEndorsedProfile","clearCopyEndorsedNotif","updateMySkillProfileCommentStart","updateMySkillProfileCommentSuccess","updateMySkillProfileCommentFail","updateMySkillProfileComment","updateManagedPeopleSkillProfileCommentStart","updateManagedPeopleSkillProfileCommentSuccess","updateManagedPeopleSkillProfileCommentFail","updateManagedPeopleSkillProfileComment","updateMyLorProfileCommentStart","updateMyLorProfileCommentSuccess","updateMyLorProfileCommentFail","updateMyLorProfileComment","updateManagedPeopleLorProfileCommentStart","updateManagedPeopleLorProfileCommentSuccess","updateManagedPeopleLorProfileCommentFail","updateManagedPeopleLorProfileComment","submitUpdateProfileSuggestion","acceptUpdateProfileSuggestionStart","acceptUpdateProfileSuggestionSuccess","acceptUpdateProfileSuggestionFail","acceptUpdateProfileSuggestion","rejectUpdateProfileSuggestionStart","rejectUpdateProfileSuggestionSuccess","rejectUpdateProfileSuggestionFail","rejectUpdateProfileSuggestion","AdminProfileAPI","copiedProfiles","copyProfileRequestIds","AdminPersonAPI","includeEndorsements","includeCopySelfProfileStatus","showAdminOnly","includeSelfAssessedProfile","personsDataFiles","endorsedProfile","columnDisplaySetting","personProfilesJsons","getPersons","getPersonsIncRelationships","getPersonsIncEndorsements","getPersonsIncludeCopySelfProfileStatus","getPersonsIncSelfAssessed","getPersonsSfiaCredentials","getPersonsAdmin","getPersonsDropdown","addPerson","updatePerson","deletePerson","resetPersonPassword","exportPersonsDataExcel","exportPersonsDataExcelTemplate","exportPersonsAssessmentProgressDataExcel","exportEndorsementsDataExcel","importPersonsDataExcel","generatePersonProfileReports","generateProfileReports","reportRequests","downloadProfileReports","generateProfileReportsToEmail","updatePersonRolesStart","updatePersonRolesSuccess","updatePersonRolesFail","updatePersonRoles","assignPersons","unassignPersons","unAssignPersons","invitePersons","getPageAssignments","clearPageAssignmentsState","getPersonPageAssignments","updatePersonPageAssignments","updatePersonEndorser","updatePersonEndorsementAssessor","getColumnDisplaySettings","clearColumnDisplaySettingsState","updateColumnDisplaySetting","requestCopySelfProfilesAsEndorsed","processCopySelfProfilesAsEndorsed","exportPersonsProfiles","importPersonsProfiles","approveProfileRequests","requests","exportLatestSelfAssessedProfilesDataExcel","bgWrapperStyle","backgroundColor","bottom","zIndex","bottomBgStyle","overflow","left","maxWidth","img1BottomStyle","img2BottomStyle","Footer","src","alt","rightImg1Style","right","top","rightImg2Style","FooterContent","logoTimestamp","componentDidUpdate","prevProps","Container","sm","marginBottom","linkRightStyle","padding","NavRight","selectLanguage","setCurrentLanguage","toggle","prevState","dropdownOpen","countryFlags","countryFlag","code","selectedLanguage","Dropdown","DropdownToggle","caret","DropdownMenu","DropdownItem","NavLink","tag","Link","to","pathname","navlinkStyle","navlinkActiveStyle","textDecoration","headerLeftStyle","navbarStyle","borderRadius","headerRightStyle","headerStyle","NavMain","logout","resolve","toggleNavbar","collapsed","onCompany","Navbar","light","onError","onerror","boolLoginMembee","NavbarBrand","NavbarToggler","Collapse","navbar","isAuthenticated","allowSelfRegistration","NavItem","RRNavLink","activeStyle","exact","companyActions","PersonAPI","ignoreSkillGap","jobType","SERVICE_NAME","listConnect","listUpdate","formData","accountId","accountRequest","comments","pageName","getPersonMyProfile","getActionMentorPreferenceStart","getPersonMentorPreferenceFail","getPersonMentorPreference","getPersonMyMentorPreferences","downloadPersonMyProfileStart","downloadPersonMyProfileSuccess","downloadPersonMyProfileFail","downloadPersonMyProfile","updatePersonMyProfile","downloadPersonProfilePicture","downloadManagedPersonProfilePicture","uploadPersonProfilePicture","getPersonLatestAccountStart","getPersonLatestAccountSuccess","getPersonLatestAccountFail","getPersonLatestAccount","getManagedPeopleLatestAccountStart","getManagedPeopleLatestAccountSuccess","getManagedPeopleLatestAccountFail","getManagedPeopleLatestAccount","clearPersonAccountState","updatePersonAccountAttributes","updatePersonAccountAtrributes","updatePersonAccountLorAttributes","updatePersonAccountLorAtrributes","updatePersonAccountNote","updateManagedPeoplePersonAccountNoteStart","updateManagedPeoplePersonAccountNoteSuccess","updateManagedPeoplePersonAccountNoteFail","updateManagedPeoplePersonAccountNote","personAccountRequestApproval","personAccountShowPostponeComment","getPersonMyPeoples","getPersonMyPeopleByEmail","getPersonMyLeaders","approveMyPeopleProfile","approval","postponeApproveMyPeopleProfile","forgetMe","updatePersonActivityStatementInterval","generateActivityStatement","getPersonMyPeoplesTeamAnalitycStart","getPersonMyPeoplesTeamAnalitycSuccess","getPersonMyPeoplesTeamAnalitycFail","getPersonMyPeoplesTeamAnalytic","getPersonSkillCoins","updateColumnDisplaySettingOrderUp","updateColumnDisplaySettingMoveUp","updateColumnDisplaySettingOrderDown","updateColumnDisplaySettingMoveDown","NavRightLogin","NavMainLogin","disconnectSignalR","onPerson","onConfig","onAdminPerson","nav1Label","nav1Link","nav2Label","nav2Link","nav3Label","nav3Link","onLanguage","languageActions","personActions","configActions","adminPersonActions","NavMenu","path","bgWrapStyle","outerWrapStyle","topBgStyle","img1TopStyle","img2TopStyle","Layout","logoUpdated","isAdmin","updateChildrenWithProps","Children","child","cloneElement","ProtectedRoute","component","notLayout","favIconUpdated","rest","search","ForgotPassword","resetEmailSent","Userpilot","initialize","Login","submitLoginWithToken","connectSignalR","identify","authModes","item","loadingInitial","loginMembee","params","boolLoginFail","URLSearchParams","borderColor","ssoMembeeEnable","ssoMembeeClientId","ssoMembeeApiId","onContent","contentActions","Logout","ResetPassword","onConfirmPass","eventValue","inputIdentifier","updateLocalState","isEquals","tokenValid","repassword","expiredDate","moment","_d","now","ResetPasswordConfirmation","TeamTabs","handleDownloadExcel","csvData","tableHeader","emailAddress","filename","appearance","ContentWrapperLg","hidden","NavAdmin","isDdOpen","operations","allow","navigationItems","manageUserNav","title","itemId","elemBefore","icon","faUserPen","assignParticipantsNav","faUserCheck","trackParticipantProgressNav","faBarsProgress","analyticsNav","powerBiReportId","powerBiWorkspaceId","powerBiEmbeddedToken","powerBiEmbeddedUrl","openNewTab","faChartPie","manageSelfAssessedApproveNav","faPersonCircleCheck","manageRelationshipsNav","faUsers","manageRequirementsNav","faBriefcase","manageRequirementFamiliesNav","assignRequirementsNav","manageEndorsementsNav","faCertificate","manageSelfAssessedProfilesNav","faClone","manageSFIACredentialsNav","showSfiaCertificationAdmin","faStamp","manageSkillAttributesNav","faCircleInfo","manageLorNav","eeaFrameworkContainer","faFileCirclePlus","manageTrainingProvidersNav","faBuildingColumns","manageActionsNav","faUserGraduate","assignActionRequirementsNav","faFilter","manageFeaturesSettingsNav","faScrewdriverWrench","manageEmailTemplatesNav","faEnvelopesBulk","manageReportTemplatesNav","uploadCompanyLogoNav","faEye","manageContentsNav","faTag","manageExtraFrameworksNav","showExtraFrameworkAdmin","manageLorCategoryNav","manageSSOSettingNav","allowManageSSOSetting","faIdCard","activeItemId","onSelect","navigationItem","open","focus","items","EvidenceAPI","evidenceId","personEmail","navlinkLeftStyle","paddingLeft","paddingRight","paddingTop","borderTopLeftRadius","borderBottomLeftRadius","borderRight","navlinkCenterStyle","navlinkLeftStyle10","navlinkCenterStyle10","navItem","NavSecondary","backToProfile","navigateBack","routeAdminFrom","goBack","hasBadges","badges","getMyBadges","Array","isArray","fetchedBadges","numberOfMenu","manageProfileByAdminPopup","allowUserSeeTheirRelationships","showBackButton","background","Nav","activeClassName","Admin403Page","AdminCompanyAPI","brandingLogo","favIcon","getBrandingLogo","updateCompanyBrandingLogo","updateBrandingLogo","deleteCompanyBrandingLogo","deleteBrandingLogo","getFavIcon","updateCompanyFavIcon","updateFavIcon","deleteCompanyFavIcon","deleteFavIcon","AdminBranding","handleSelectPicture","imageRef","current","click","handlePictureChange","files","reader","FileReader","addEventListener","selectedImage","readAsDataURL","handleResetPicture","handleUploadPicture","selectedImages","companyError","timestamp","handleDeletePicture","confirm","handleSelectFavIcon","favIconRef","handleFavIconChange","selectedFavIcon","handleResetFavIcon","handleUploadFavIcon","selectedFavIcons","handleDeleteFavIcon","createRef","pageAssignment","accept","maxHeight","op","faImage","companyLoading","adminCompanyActions","Analytics","element","document","getElementById","scrollIntoView","behavior","updateWindowDimensions","removeEventListener","innerHeight","embedConfig","embedUrl","powerBiRepowerBiEmbeddedUrlportId","accessToken","tokenType","models","TokenType","Embed","settings","panes","filters","expanded","BackgroundType","Transparent","eventHandlers","Map","detail","cssClassName","getEmbeddedComponent","embeddedReport","report","AdminEmailTemplateAPI","emailTemplateType","getEmailTemplateTypes","getTemplateTypes","getEmailTemplateByType","getTemplateByType","createUpdateEmailTemplate","createUpdateTemplate","ManageEmailTemplates","getTemplateLoading","showTemplateLoading","onEmailTemplate","emailTemplateLoading","subject","emailBody","emailActive","editWithEditor","haveBasicContent","basicContent","showEditor","isFormDirty","bodyMode","handleChangeEmailTemplate","showUpdateActiveOption","allowHtmlEditorOnly","handleCheckedChange","handleResetClick","handleSaveClick","oriEmailTemplate","emailTemplateError","showMissingLinkNotif","changeBodyMode","togleMissingLinkNotifModal","generateEmailBodyEditorState","blocksFromHtml","htmlToDraft","contentBlocks","entityMap","contentState","ContentState","createFromBlockArray","EditorState","createWithContent","onEditorStateChange","editorContent","html","draftToHtml","convertToRaw","getCurrentContent","modalInterventionDetail","ModalBody","ModalFooter","toolbar","options","inline","inDropdown","undefined","dropdownClassName","basicToolbar","emailBodyEditorState","basicContentEmailBodyEditorState","when","row","defaultChecked","defaultEditorState","stripPastedStyles","toolbarStyle","border","editorStyle","readOnly","ButtonGroup","outline","minRows","minHeight","adminEmailTemplateActions","FileDownload","ManageReportTemplates","getReportTemplateNameByType","detailLoading","reportTemplateLoading","handleChangeReportTemplate","fileName","fileData","handleDownloadTemplate","reportTemplateTypes","downloadLoading","configError","templateName","handleSelectTemplate","templateRef","handleTemplateChange","templateFile","onload","handleUploadTemplate","handleResetTemplate","handleDeleteTemplate","AdminContentAPI","translationsDataFiles","getContentPages","getContents","createContentTranslation","createContent","updateContentTranslation","updateContent","exportContentTranslationsExcel","exportGroupValueTranslationsExcel","importContentTranslationsExcel","importGroupValueTranslationsExcel","parameterizedString","args","str","arg","len","matchedStr","variableIndex","generateRandomString","characters","charactersLength","charAt","pad2","n","formatDate_localeString","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","filterArray","searchKeyword","searchProperties","columnSearchKeywords","filtered","field","val","columnSearchKeyword","searchType","startsWith","customStyles","rows","verticalAlign","headCells","fontWeight","whiteSpace","cells","rowSelectCritera","toggleSelected","caseInsensitiveSort","selector","direction","rowA","rowB","aField","bField","comparison","SkillsTxTable","handleRowClick","selectableRows","clearSelectedRow","toggledClearRows","columns","defaultSortFieldId","pagination","headCellsStyle","cellsStyle","sortFunction","selectableRowsHighlight","clearSelectedRows","onRowClicked","selectableRowSelected","fixedHeader","fixedHeaderScrollHeight","progressPending","noTableHead","persistTableHead","progressComponent","paginationRowsPerPageOptions","SkillsTxTableClearSearch","handleClear","onClear","SkillsTxTableSearchBar","textareaStyle","textareaStyleDisable","ContentDetail","prepareFormState","togleDialogModal","showDialog","handlePerformSave","personsError","adminContentActions","ContentTranslationBulkUpload","excelRef","selectedFiles","handleSelectFiles","handleSelectExcels","handleChangeLanguage","handlePerformUpload","contentsError","importMessage","multiple","ListGroup","ListGroupItem","GroupValueTranslationBulkUpload","ManageContent","handleRefresh","groupedPages","selectedPage","contentsLoading","handleChangePage","openContentDetail","showDialogContentDetailTs","selectedContent","handleAddNew","handleExportTranslations","today","strToday","handleImportTranslations","showDialogImportTranslationTs","handleExportValueTranslations","handleImportValueTranslations","showDialogImportGroupValueTranslationTs","onTableFilterChange","sortable","center","format","faPenToSquare","cursor","UncontrolledTooltip","placement","wordBreak","wrap","faSync","faFileExcel","authPersonId","PersonAssessorCell","togglePopover","popOverUpdateAssessorNameOpen","dirty","newAssessorId","openUpdateAssignment","handleUpdateAssessor","allowEdit","Popover","PopoverHeader","faCircleCheck","faCancel","PopoverBody","PersonEndorserCell","popOverUpdateEndorserOpen","endorserId","newEndorserId","handleUpdateEndorser","endorser","ManageEndorsement","reformPersons","idSkillProfile","idActionPlan","idEndorsedProfile","completeName","strRoles","totalTimeTaken","hasEndorseProfile","hasAction","lastSelfAssessedReportGeneratedVersion","lastSelfAssessedReportGeneratedOn","lastActionReportGeneratedVersion","lastActionReportGeneratedOn","lastEndorsedReportGeneratedVersion","lastEndorsedReportGeneratedOn","latestInvitationEmailReminderNumber","latestInvitationEmailReminderSentOn","havePassword","filterAssignedToMe","modeGenerateReports","toggleSkillProfileSelected","toggleEndorsedSelected","toggleActionSelected","personsSkillProfileSelected","personsEndorsedSelected","personsActionSelected","handleRowClickDummy","handleRowSkillProfileClick","updatedData","handleSelectSkillProfileAll","selectAll","f","handleRowEndorsedClick","handleSelectEndorsedAll","handleRowActionClick","handleSelectActionAll","handleClearSelection","editProfile","approveProfile","handleGenerateReport","handleConfirmGenerateReport","handleCancelGenerateReport","handleToggleAssignedToMe","handleExportEndorsements","getTimezoneOffset","endorserPersons","assessorPersons","routeGoBack","repopulate","mode","allowApprove","allowAssignEndorser","allowGenerateReports","allowExport","faSquare","faSquareCheck","faSquareMinus","omit","endorserA","endorserB","faClipboardCheck","lastUpdatedA","replaceAll","lastUpdatedB","Intl","DateTimeFormat","year","month","day","lastReviewedA","lastReviewedB","lastApprovedA","lastApprovedB","personsLoading","faDownload","paddingBottom","onSkillProfile","skillProfileActions","AdminCategoryAPI","extraFrameworksData","getExtraFrameworkCapabilities","getExtraFrameworkLevels","createExtraFrameworkLevel","updateExtraFrameworkLevel","deleteExtraFrameworkLevel","moveExtraFrameworkLevelUp","moveExtraFrameworkLevelDown","getExtraFrameworkCategories","createExtraFrameworkCategory","updateExtraFrameworkCategory","deleteExtraFrameworkCategory","createExtraFrameworkSubCategory","updateExtraFrameworkSubCategory","deleteExtraFrameworkSubCategory","createExtraFrameworkSkill","updateExtraFrameworkSkill","deleteExtraFrameworkSkill","exportExtraFrameworksDataExcel","exportExtraFrameworksDataExcelTemplate","importExtraFrameworksDataExcel","ExtraFrameworkBulkUpload","onAdminCategory","categoryError","handleChangeOption","importOption","handleImportSuccess","adminCategoryActions","ExtraFrameworkLevelDetail","ManageExtraFrameworkCapabilities","handleRefreshCapabilities","capability","weight","ExtraFrameworkCategoryDetail","prepareForm","handleChangeComplete","hex","handleOpenColorPicker","displayColorPicker","handleCloseColorPicker","disableAlpha","onChangeComplete","ExtraFrameworkSkillDetail","skillLevel","extraFrameworkLevelId","skillLevelId","handleChangeSelectLevel","levelId","handleChangeLevelDescription","ExtraFrameworkSubCategoryDetail","handleOpenSkillColorPicker","displaySkillColorPicker","handleCloseSkillColorPicker","popover","cover","ManageExtraFrameworkCategories","handleRefreshCategories","handleAddNewCategory","showDialogCategoryDetailTs","selectedCategory","handleOpenEditCategory","handleDeleteCategory","handleAddNewSubCategory","showDialogSubCategoryDetailTs","selectedSubCategory","handleOpenEditSubCategory","handleDeleteSubCategory","handleAddNewSkill","showDialogSkillDetailTs","selectedSkill","handleOpenEditSkill","handleDeleteSkill","forceRefreshExtraFrameworks","allowManage","Table","emptyLevels","borderBottom","borderTop","colSpan","levelIndex","elIndex","emptySkillLevels","levelSelection","ManageExtraFrameworkLevels","handleAddNewLevel","showDialogLevelDetailTs","selectedExtraFrameworkLevel","handleOpenLevelDetail","handleMoveLevelUp","handleMoveLevelDown","handleDeleteLevel","allowUpdate","openLevelDetail","moveLevelUp","moveLevelDown","deleteLevel","faMinusCircle","faArrowUp","faArrowDown","handleRefreshLevels","ManageExtraFramework","handleExportExtraFrameworks","handleImportExtraFrameworks","showDialogImportTs","forceRefreshExtraFrameworksTS","extraFrameworkProvided","all","AdminAdminRoleAPI","getAdminRoles","getAdminRolePageAssignments","createAdminRole","createAdminRolePageAssignments","updateAdminRolePageAssignments","deleteAdminRole","renameAdminRole","AdminRoleDeleteConfirmation","reopenManageAdminRole","handleConfirm","handleConfirmDelete","AdminRoleOverwriteConfirmation","handleConfirmOverwrite","AdminRoleRename","handleConfirmRename","adminRoleNameTouched","adminRoleNameInvalid","ManageAdminRole","onAdminRole","reopenPageAssignment","handleLoadViewAdminRole","handleLoadAdminRole","handleViewAdminRole","handleOverwrite","selectedAdminRole","showDialogOverwriteConfirmationTs","handleDelete","showDialogDeleteConfirmationTs","handleRename","showDialogRenameTs","adminAdminRoleActions","UserPageAssignments","updatedAdminRoleName","selectedAdminRoleName","viewAdminRoleMode","staticPersonPageAssignments","reopenPersonDetail","editMode","handleClearAll","personPageAssignment","selectedPerson","handleOpenLoadAdminRoles","showDialogManageAdminRoleTs","manageAdminRoleMode","handleOpenSaveAdminRole","UserDetail","active","preferredName","round","toFixed","isAdminPerson","handleChangeCheckBoxRole","handleDateChange","togleShowEdit","handleShowMoreDetail","showMoreDetails","openPersonPageAssignments","showDialogUserPageAssignmentsTs","handleUpdatePersonAdminRoleName","optionYesOrNo","dateValue","toISOString","countryLoading","jobsLoading","allowUpdateAccess","allowSkipSelfAssessmentSurvey","allowSetAdminRole","dateFormat","isClearable","personMiscellaneous1Enable","personMiscellaneous1Caption","personMiscellaneous2Enable","personMiscellaneous2Caption","personMiscellaneous3Enable","personMiscellaneous3Caption","personMiscellaneous4Enable","personMiscellaneous4Caption","personMiscellaneous5Enable","personMiscellaneous5Caption","disableEdit","JobAssignmentBulkUpload","jobsError","JobAssignmentCell","popOverUpdateAssignmentOpen","jobMatchId","inProgress","newJobMatchId","handleUpdateJobMatch","jobMatch","jobReference","faCheckCircle","ManageJobAssignment","reformJobMatchPersons","currentJobMatchReference","currentJobMatchPercentValidated","futureJobMatchReference","futureJobMatchPercentValidated","proposedJobMatchReference","proposedJobMatchPercentValidated","openPersonDetail","showDialogUserDetailTs","handleExportJobMatches","handleImportJobMatches","handleChangeShowEndorsedMatchPercent","selfRegistransMarkedAsCandidate","restrictRegistransEmailDomain","selfRegistrationConfirmationWording","hasCurrentJobLocked","hasFutureJobLocked","whoAllowApproval","enableApprovalRequest","allowUsersToBeForgotten","defaultActivityStatementFrequency","reminderRepeatInterval","reminderTotal","assessmentTutorialUrl","assessmentDescription","assessmentSurveyTargetCompletionInterval","suppressActivityNotification","allowUserSuppressActivityNotification","allowCertification","stepPanelBackgroundColor","stepPanelFontColor","companyName","entityName","automaticUserInactivationLoginDays","showEndorsedMatchPercentInRequirementAssign","configLoading","faInfoCircle","nameA","nameB","jobMatchA","jobMatchB","jobsSelections","positionA","positionB","teamA","teamB","overflowX","ColumnDisplaySetting","updateable","show","caption","columnName","internalJobMarket","JobBulkUpload","handleAddedJobImports","JobCopyDialog","copyAttributes","selectedJob","jobToCopyId","newName","newReference","handleSaveCopyJob","optionCopy","JobDetail","integrityValid","whoCanSee","jobRole","definedBy","definedById","vacancyOwners","assign","optionActive","optionJobRole","optionWhoCanSee","optionSeniority","optionEmploymentStatus","optionLanguages","selectedJobUpdated","textField","dataKey","autoSelectMatches","personInactive","ManageJobSample","jobsSelected","handleSelectAll","handlePerformCopy","handlePerformCopyJobs","messageHubHostname","ManageJob","searchable","connectJobSignalR","connectionJob","HubConnectionBuilder","withUrl","build","on","start","disconnectJobSignalR","stop","connectJobImportSignalR","connectionJobImport","importJobResponse","item1","item2","disconnectJobImportSignalR","reformJobs","jobFamilySequence","userCountCurrent","jm","userCountFuture","strShowAsRoleBasedSurveyInSelfRegistration","showAsVacancyFilter","openJobDetail","showDialogJobDetailTs","handleDeleteJob","showDeleteJobDialog","togleDeleteJobModal","handleConfirmDeleteJob","renderDeleteJobConfirmation","handleCopyJob","showJobCopyDialogTs","handleExportJobs","handleImportJobs","jobImports","handleRefreshJobQueueu","importedOn","downloadImportJobExcel","jobImport","renderJobImportQueue","searchKeywordQueue","hourCycle","hour","minute","handleShowSampleJobs","showSampleJobsDialogTs","printReportsMode","selectedJobsPrint","handleShowColumnSettings","showColumnSettings","faCopy","ownerA","ownerB","whoCanSeeA","whoCanSeeB","faPlus","faCog","faListUl","buttonStyle","labelCaptionStyle","largeContainer","commonContainer","ManageJobDetail","handleChangeShowEdit","handleSave","selectedCopyJobId","handleSaveJobDetailUpdate","copiedJobIds","handleSaveNewJobDetail","handleCopySkillCheckedChange","createNew","createNewMode","updateSuccess","CustomInput","ManageJobCreate","jobIsUpdating","connection","fetchPersonsDropdown","JobFamilyDetail","selectedJobFamily","ManageJobFamily","jobFamiliesSelected","jobFamilySelectedId","handleSelectRow","showDialogJobFamilyDetailTs","handleOnSelect","handleAfterSearch","jobFamilyEntries","jobFamilyEntriesDeleteSelected","handleEditJobFamily","handleDeleteJobFamily","showLoadingPanel","loadingPanelHeader","loadingPanelBody","handleOnSelectDeleteEntry","jobFamilyEntry","jobFamilyEntryDeleteSelected","handleDeleteJobFamilyEntries","jobFamiliySelectedId","handleOnSelectJob","jobSelected","handleAddJobFamilyEntries","renderLoadingPanel","allowAdd","allowDelete","columnsEntries","jobName","columnsJob","searchKeywordLevel1","overflowY","searchKeywordLevel3","faMinus","searchKeywordLevel2","CategoryAPI","includeAccountAttributes","attributeId","skillsHiddenData","attributesData","getCategories","addSkillAttribute","updateSkillAttribute","deleteSkillAttribute","updateSkillSetIsHidden","updateSkillIsHidden","exportSkillAttributesDataExcel","exportSkillAttributesDataExcelTemplate","importSkillAttributesDataExcel","importAttributesDataExcel","exportSkillsHiddenDataExcel","importSkillsHiddenDataExcel","LorAPI","getLors","updateLor","updateLorSetIsHidden","updateLorIsHidden","updateLorSetOptional","updateLorOptional","addLorAttribute","updateLorAttribute","deleteLorAttribute","exportLorAttributesDataExcel","exportLorAttributesDataExcelTemplate","importLorAttributesDataExcel","AlertDialog","sticky","nowrap","UncontrolledAlert","ManageJobDetailMatches","ManageJobLorAttribute","handleAttributeCheckedChange","lorAttributeId","togleEditLorAttribute","skillAttributes","handleSaveEditAttributeClick","updateLorAttributes","editedLor","editAttribute","valign","tableBodyStyle","tdEditStyle","lorOrders","ManageJobLorProfile","openEditLorAttribute","updatedJobLorAttributes","renderLorProfileList","categoryIndex","showHiddenSkills","lorOrder","lorindex","lorProfile","lorHidden","lorOptional","selectedLorAttributes","currLevel","edited","editedNumericVal","numericVal","faList","levelindex","lorLevel","showEditSkill","enableClickToEditLoR","handleSelectLorLevel","faComment","levelName","openEditLorProfile","faEdit","editedLorProfile","editLorProfile","togleEditLorProfile","handleRadioClick","handleClearProfileClick","editedLevel","editedStringVal","editedLabelVal","stringVal","labelVal","handleEditProfileSkill","handleSaveEditProfileClick","lorCode","renderModalEditProfile","lorProfileElement","lorCategories","lorCategory","categoryHidden","showEdit","ManageJobNote","handleSaveJobNoteUpdate","ManageJobSkillAttribute","skillAttributeId","togleEditSkillAttribute","updateSkillAttributes","editedCategory","editedSubCategory","editedSkill","ManageJobSkillProfile","openEditSkillProfile","editedSkillProfiles","editSkill","togleEditSkillProfile","handleChangeSkillLevel","changedSkill","skillCode","addedSkill","isExtraFramework","skillValueOptions","editedProfiles","editedSkillProfile","selectedSkillValue","handleEditProfileSkills","renderModalEditSkill","menuPlacement","openEditSkillAttribute","updatedJobSkillAttributes","elementSkill","subCategorySkillProfiles","catColour","colFully","colUnmatched","colDesirable","skillLevelDescription","skillVal","elementSkillExtraFramework","isShowJobProfile","showAllSkill","categoryHasValue","catSkillProfilesCodeWithValue","categorySkills","flatMap","subCategoryHasValue","subCatSkillProfilesCodeWithValue","subCategoryHidden","subCatDetailSkillProfiles","hasValue","selectedSkillAttributes","skillHidden","ManageJobProfile","checkSkillProfileLegendInViewport","isTopSkillProfileLegendInViewport","isDivAnchorInViewport","topSkillProfileLegendElement","divAnchorElement","getBoundingClientRect","showFloatingLegend","updateAdminFloatingLegendStatus","onLor","onCategory","selectedProfileVersion","jobError","loadingProfile","startTimer","renderSkillProfileHeader","handleChangeVersion","handleChangeShowDetail","showDetail","handleChangeShowHidden","showHidden","willCreateNewVersion","skillProfilesEdit","editCount","profileEdit","oriProfileEdit","profilesEdit","handleSaveSkillUpdate","profile","isEditable","jobDetailIsUpdating","jobDetailUpdateSuccess","jobDetailNoteIsUpdating","handlePrintDefinition","reportFormat","signalRTimerStarted","setInterval","signalRTimerCount","skillsProfileUpdating","contentLoading","lorProfileResponses","jobLorProfileResponses","skillProfileResponses","jobSkillProfileResponses","zeroVersion","lorProfileResponse","skillProfileResponse","isManagedByOwner","enableSave","visibleLors","lorProfilesAdded","lorSkillProfileEdit","lorProfilesCheck","jobLorProfile","missingAddedLors","l","missingCheckLors","missingLorProfiles","marginTop","isDisabled","allowShowHiddenSkills","thStyle","float","adminCategoryLoading","adminCategoryError","contentError","lorActions","categoryActions","LorAttributeBulkUpload","UpdateLor","manageAttributeWrapper","ManageLor","reformLors","canHide","strattributes","openEditLor","showDialogLorDetailTs","selectedLor","handleHideLor","handleLorOptional","handleExportAttributes","handleImportAttributes","scroll","editAttributeAnchor","handleBackToList","handleAddNewAttribute","editedAttribute","handleEditAttribute","cancelUpdateAttribute","handleChangeAttribute","handleSaveAttribute","lorAttributeIsUpdating","handleDeleteAttribute","optionHidden","nonEEAContainer","faSquarePen","attributeColumns","accountSkillAttributes","faChevronLeft","selectedInterventions","AdminRelationshipAPI","relationships","relationshipIds","relationshipsData","addRelationships","deleteRelationships","exportRelationshipsDataExcel","exportRelationshipsDataExcelTemplate","importRelationshipsDataExcel","AdminRelationshipTypeAPI","getRelationshipTypes","RelationshipBulkUpload","onRelationship","showConfirmDialog","togleDialogConfirmModal","handleConfirmPerformUpload","relationshipActions","ManageRelationships","personsSelected","personSelectedId","personsAvailableSelected","personsAssessedSelected","personSelected","availablePersons","assessedPersons","relationshipsId","relationshipType","JSON","stringify","handleAfterSearchAvailable","handleOnSelectAvailable","availablePerson","personAvailableSelected","handleOnSelectAssessed","assessedPerson","personAssessedSelected","changeMode","handleAssignRelationship","relationshipTypeId","handleRemoveRelationshipsClick","handleExportRelationships","handleImportRelationships","onRelationshipType","relationshipTypeLoading","columnsAvailable","columnsAssessed","allowApprovals","faArrowRight","faArrowLeft","adminRelationshipTypeActions","adminRelationshipActions","selfAssessedStatus","isApprovalRequested","approvalRequestSentOn","modeApprove","handleApproveProfiles","handleConfirmApprove","approvalRequests","approvedPerson","approvedVersion","approvedBy","approvedOn","showApproveDialog","handleCancelApprove","handleExportSelfAssessedProfiles","togleShowApprovalModal","handleCommentChange","renderApprovalDialog","approveInProgress","openProfile","faCheck","ManageProfiles","acc","approvals","lastApprovedOn","copyProfileRequested","copyProfileRequestedOn","copyProfileRequestStatus","toFixedIfNecessary","dp","toggleCopyProfiles","modeCopyProfiles","showProfile","handleConfirmRequestCopyProfile","allowCopy","AdminActionLogAPI","startDate","endDate","adminActionTypes","getActionLogs","exportActionLogsExcel","ManageActionLogs","addDays","days","setDate","searchData","selectedTypes","selectedActionTypeOptions","onActionLog","Set","actionOptions","selectedActionOptions","handleSelectType","selectedList","selectedItem","selectedActions","handleRemoveType","handleSelectAction","handleRemoveAction","handleExport","showUpdateDialog","updateMode","actionTypeOptions","scrollTo","weekAgo","actionDate","second","faMagnifyingGlass","onRemove","selectedValues","displayValue","showCheckbox","actionLogActions","AdminActionTypeAPI","actiontype","getActionTypes","addActionType","createActionType","updateActionType","deleteActionType","ManageActionTypes","onActionType","actionTypeName","openUpdate","editedActionTypeId","handleSubmit","togleUpdateDialog","renderUpdate","isUsed","actionTypeActions","AdminAllowedRegistrationEmailDomainAPI","getAllowedRegistrationEmailDomains","addAllowedRegistrationEmailDomain","createAllowedRegistrationEmailDomain","updateAllowedRegistrationEmailDomain","deleteAllowedRegistrationEmailDomain","ManageAllowedRegistrationEmailDomains","onAllowedRegistrationEmailDomain","allowedEmailDomain","editedAllowedRegistrationEmailDomainId","allowedRegistrationEmailDomainActions","AdminEvidenceTypeAPI","evidencetype","getEvidenceTypes","addEvidenceType","createEvidenceType","updateEvidenceType","deleteEvidenceType","ManageEvidenceTypes","onEvidenceType","evidenceTypeName","editedEvidenceTypeId","evidenceTypeActions","AdminMentorPreferenceAPI","getMentorPreferences","addMentorPreference","createMentorPreference","updateMentorPreference","deleteMentorPreference","ManageMentorPreferences","onMentorPreference","editedMentorPreferenceId","updateMentorPreferenceSelected","editedMentorPrefereneId","mentorPreferenceActions","AdminRegistrationReasonAPI","getRegistrationReasons","addRegistrationReason","createRegistrationReason","updateRegistrationReason","deleteRegistrationReason","moveRegistrationReasonUp","moveRegistrationReasonDown","ManageRegistrationReasons","onRegistrationReasons","editedRegistrationReasonId","handleMoveUp","handleMoveDown","handleRoleSelectionMandatory","moveUp","moveDown","allowedRegistrationReasonsActions","ShowPowerBIReport","toggleDialogModal","showBIReport","closeReport","reportId","modalClassName","ManageSettings","reformFormState","allowUserExportSelfAssessedProfile","enablePromoteAction","actionTargetCompletionDateIsMandatory","badgeProvider","enableFindMentor","allowUpdateProfileAndEvidenceFromAction","allowBadgesFromActions","autoPromptEvidence","oriConfig","changeBodyMode1","bodyMode1","changeBodyMode2","bodyMode2","handleInactivationUsersClick","openManageEvidenceType","showEvidenceTypesDialogTs","openManageMentorPreferences","showMentorPreferencesDialogTs","openManageActionType","showActionTypesDialogTs","openManageActionLog","openManageAllowedEmailDomains","showAllowedEmailDomainsDialogTs","openManageRegistrationReason","showRegistrationReasonsDialogTs","handleDownloadPowerBI","powerBiModelLink","powerBiModelFileName","downloadPowerBiModelLoading","handleShowPowerBIReport","handleOpenBackgroundColorPicker","displayBackgroundColorPicker","handleCloseBackgroundColorPicker","handleChangeBackgroundColorComplete","resetBackgroundColor","handleOpenFontColorPicker","displayFontColorPicker","handleCloseFontColorPicker","handleChangeFontColorComplete","resetFontColor","handleDownloadImpactAssessmentSpreadsheets","exportSfia9MigrationImpactByEmail","containerName","optionWhoAllowApproval","optionWhoAllowApprovalIncludeMentor","optionSelfRegistransMarkedAsCandidate","optionRequirementAssignment","optionDefaultActivityStatementFrequency","optionReminderRepeatInterval","optionReminderTotal","optionJobProfileReportFormat","optionSelfAssessedProfileReportFormat","optionBadgeProvider","accordionsExpanded","onEditorStateChange1","onEditorStateChange2","blocksFromHtml1","contentBlocks1","entityMap1","contentState1","selfRegistrationWordingEditorState","blocksFromHtml2","contentBlocks2","entityMap2","contentState2","selfRegistrationConfirmationWordingEditorState","allowMultipleExpanded","allowZeroExpanded","preExpanded","uuid","faChevronDown","faChevronRight","accountName","accountNumber","licenceAllocations","renewalDate","liveUsers","analyticSyncEnable","analyticSyncStatus","lastAnalyticSyncStartedOn","lastAnalyticSyncSuccessOn","faRotateLeft","sfia9MigrationDone","AdminBadgeRequestAPI","badgeRequestIds","getBadgeRequests","updateBadgeRequestAssessorStart","updateBadgeRequestAssessorFail","updateBadgeRequestAssessor","updateBadgeRequestAssesor","updateBadgeRequestCertificationEntriesStart","updateBadgeRequestCertificationEntriesFail","updateBadgeRequestCertificationEntries","submitBadgeRequestCertificationStart","submitBadgeRequestCertificationFail","submitBadgeRequestCertification","submitBadgeRequestCertificationsStart","submitBadgeRequestCertificationsFail","submitBadgeRequestCertifications","rejectBadgeRequestCertificationStart","rejectBadgeRequestCertificationSuccess","rejectBadgeRequestCertificationFail","rejectBadgeRequestCertification","BadgeRequestAssessorCell","popOverUpdateAssessorOpen","assessor","onBadgeRequest","adminBadgeRequestActions","ManageSfiaCredentials","reformBadgeRequests","submitDate","onAdminBadgeRequest","personsSubmitCertificateSelected","toggleCertificateSelected","certifyProfile","submitCertificateProfile","badgeRequestUpdating","badgeRequestError","handleTogleSubmitCertificate","modeSubmitCertificate","handleRowSubmitCertificateClick","handleSelectSubmitCertificateAll","handleConfirmSubmitCertificates","rejectBadgeRequest","selectedRequestToReject","showRejectBadgeConfirmation","togleRejectBadgesConfirmation","handleRejectBadgeRequest","renderRejectBadgesConfirmation","allowSubmitCertificate","allowReject","allowAssignAssessor","faCircleXmark","adminPersons","certificationCredit","badgeRequestLoading","SkillAttributeBulkUpload","SkillsHiddenBulkUpload","selectedFile","ManageSkillAttributes","handleExportSkillsHidden","handleImportSkillsHidden","showDialogImportSkillTs","handleImportSkillsHiddenSuccess","editedCategoryId","editedSubCategoryId","editSkillAnchor","skillAttributeIsUpdating","handleHideSkill","bordered","ManageSSOSetting","SsoSamlEnable","SsoSamlEntityId","RestrictLoginSsoOnly","ByPassLoginPage","SsoSamlIpConfigurationOption","SsoSamlIpMetadataAddress","SsoSamlIpEntityId","SsoSamlIpSingleSignonEndpoint","SsoSamlIpCertificateKeyVaultName","SsoSamlClaimEmailaddressType","handleIPFileSelected","from","ssoIPCertificateKeyVaultFiles","ClearIPSelectedFile","ipCertFileRef","ssoCertificateKeyVaultPassword","defaultSsoSamlIpMetadataAddress","defaultBaseUrl","formDirty","changeConfigurationOption","option","handleSubmitClick","BaseUrlLink","ActionPlanAPI","arrActionTypes","getActionSkills","printMyActionReportStart","printMyActionReportSuccess","printMyActionReportFail","printMyActionReport","printActionReport","printManagedPeopleActionReportStart","printManagedPeopleActionReportSuccess","printManagedPeopleActionReportFail","printManagedPeopleActionReport","getInterventions","getFilteredInterventions","updateInterventionHiddenStart","updateInterventionHiddenSuccess","updateInterventionHiddenFail","updateHideIntervention","updateHideIntervetion","updateUnHideIntervention","updateUnHideIntervetion","getMyActionsStart","getMyActionsSuccess","getMyActionsFail","getMyActions","getActions","getManagedPeopleActionsStart","getManagedPeopleActionsSuccess","getManagedPeopleActionsFail","getManagedPeopleActions","createAction","createManagedPeopleActionStart","createManagedPeopleActionSuccess","createManagedPeopleActionFail","createManagedPeopleAction","updateAction","updateHideAction","updateUnHideAction","updateManagedPeopleActionStart","updateManagedPeopleActionSuccess","updateManagedPeopleActionFail","updateManagedPeopleAction","issueBadgeManagedPeopleAction","rejectBadgeManagedPeopleAction","deleteAction","deleteManagedPeopleActionStart","deleteManagedPeopleActionSuccess","deleteManagedPeopleActionFail","deleteManagedPeopleAction","sendUpdatedActionPlanNotification","submitActionPromotion","submitProposeAction","acceptUpdateProfileActionProposalStart","acceptUpdateProfileActionProposalSuccess","acceptUpdateProfileActionProposalFail","acceptUpdateProfileActionProposal","acceptUpdateProfileFromActionProposal","rejectUpdateProfileActionProposalStart","rejectUpdateProfileActionProposalSuccess","rejectUpdateProfileActionProposalFail","rejectUpdateProfileActionProposal","rejectUpdateProfileFromActionProposal","AdminInterventionAPI","selectedProviderOnly","includeInterventionJobs","showWorkspaceOwnerActionOnly","interventionIds","interventionsData","interventionJobIds","declineReason","addIntervention","createIntervention","updateIntervention","deleteIntervention","deleteInterventions","exportInterventionsDataExcel","exportInterventionsDataExcelTemplate","importInterventionsDataExcel","assignInterventionJob","deleteInterventionJob","deleteInterventionJobs","getNoOfActiveActionPromotionsStart","getNoOfActiveActionPromotionsSuccess","getNoOfActiveActionPromotionsFail","getNoOfActiveActionPromotions","getNoOfActiveActionPromotion","getActiveActionPromotionsStart","getActiveActionPromotionsSuccess","getActiveActionPromotionsFail","getActionPromotions","getActiveActionPromotions","updateActionPromotion","acceptActionPromotionStart","acceptActionPromotionSuccess","acceptActionPromotionFail","acceptActionPromotion","declineActionPromotionStart","declineActionPromotionSuccess","declineActionPromotionFail","declineActionPromotion","ManageActionPromotionDetail","interventionLevels","interventionLorLevels","handleLorsCheckedChange","lorName","interventionLorLevel","handleSkillsCheckedChange","skillsName","interventionLevel","handleEdit","handleCancel","handleSaveUpdateActionPromotion","handleAcceptActionPromotion","showAcceptActionPromotionConfirmationDialog","handleDeclineActionPromotion","showDeclineActionPromotionConfirmationDialog","reasonDecline","handleCancelAcceptActionPromotion","handleConfirmAcceptActionPromotion","renderAcceptActionPromotionConfirmation","handleChangeReasonDecline","handleCancelDeclineActionPromotion","handleConfirmDeclineActionPromotion","renderDeclineActionPromotionConfirmation","acceptSuccess","declineSuccess","ManageTrainingDetail","skillType","applyNow","applyPreLoadActionNow","showSpinner","handleSaveUpdateIntervention","handleSaveAddIntervention","optionTrueFalse","optionSkillTypes","placeholderText","optionSkillType","TrainingBulkUpload","onIntervention","interventionActions","ManageActionPromotions","interventionLoading","prepareDatas","promoterEmail","levelsString","lorLevelsString","openActionPromotionDetail","selectedActionPromotion","showDialogInterventionDetailTs","selectedIntervention","interventionError","actionPromotionId","handleReturnToList","onActionPlan","openInterventionDetail","handleDeleteIntervention","actionPlanActions","ManageProviderDetail","provider","handleSaveUpdateProvider","handleSaveAddProvider","optionSelected","ProviderSelectCell","popOverUpdateOpen","newIsSelected","newIsPreferred","handleUpdateSelected","ManageProviders","reformProviders","address","providerCompanyId","providerCompany","openProviderDetail","selectedProvider","showDialogProviderDetailTs","handleOnSelectAll","ManageTrainingJobs","selectedInterventionId","prepareInterventions","assignedJobsSelected","assignedJobIds","optionJobs","assignedJobs","handleOnSelectAssignedJob","assignedJob","assignedJobSelected","handleChangeAssignJob","selectedJobId","handleRemoveInterventionJobsClick","handleAssignJobClick","optionJob","nextOption","columnsJobs","faTrash","ManageTrainings","inUse","preLoadToNewUserString","handleDeleteInterventions","handleExportInterventions","handleImportInterventions","handleManageActionPromotions","categoriesLoading","GenerateUserProfileReports","boolSkillProfile","boolActionPlan","boolEndorsedProfile","handlePerformGenerateReports","UserAddNew","UserBulkUpload","UserBulkUploadProfiles","UserRoleCell","popOverUpdateRoleOpen","openUpdateRoles","roleSelection","handleRoleCheckedChange","objRole","handleUpdateRoles","personRolesUpdated","UserUpdatePersonMiscellaneousConfig","defaultColumnNames","ManageUser","strCandidate","strContractor","strMentorIneligible","strAssigned","strInvited","percentageHundred","progress","messageSent","invitedSentOn","surveyStarted","roleId","endorsedProfileCreated","strSkipSelfAssessmentSurvey","assignMode","inviteMode","unassignMode","exportProfileMode","handleChangeMode","openUpdatePersonMiscellaneousConfigDialog","showDialogUpdatePersonMiscellaneousConfigTs","openGeneratePersonReport","showDialogUserReportTs","handleExportIndividuals","handleImportIndividuals","showDialogTs","showDialogNewUserTs","handleDeletePerson","showDeletePersonFirstConfirmationDialog","handleConfirmDeletePersonFirstConfirmation","showDeletePersonSecondConfirmationDialog","togleDeletePersonFirstConfirmationModal","renderDeletePersonFirstConfirmation","handleConfirmDeletePersonSecondConfirmation","togleDeletePersonSecondConfirmationModal","renderDeletePersonSecondConfirmation","handleFilterAssign","handleFilterUnAssign","handleFilterInvite","checkShowInvited","handleCancelAssignInvite","handleProcessAssignInvite","showAssignInviteConfirmationDialog","togleAssignInviteConfirmationDialog","handleConfirmAssignInvite","showContinueToInviteDialog","renderAssignInviteConfirmationDialog","togleContinueToInviteDialog","closeContinueToInviteDialog","handleContinueToInvite","renderContinueToInviteDialog","handleShowAllInviteChanged","showMessageReason","reason","handleExportProfiles","handleProcessExportProfiles","handleCancelExportProfiles","handleImportProfiles","showDialogImportProfileTs","manageUserPageAssignment","assignUserPageAssignment","trackProgressPageAssignment","faPrint","startedA","startedB","started","candidateA","candidateB","contractorA","contractorB","mentorIneligibleA","mentorIneligibleB","approved","statusA","statusB","faEnvelope","faTimes","AdminHome","renderRotateNotification","showRotate","centered","closeRotateModal","subHeaderStyle","MySetting","handleAllowNotificationChange","handleActivityStatementIntervalChange","handleSubmitUpdate","updateProfile","handleSubmitUpdateActivityStatementInterval","handleForgetMe","forgetMeProgress","handleDownloadPersonalData","downloadPersonalDataProgress","skillProfileError","notificationEnabledOptions","downloadPersonProfileProgress","activityStatementIntervalOptions","updateActivityStatementInterval","LoggedInRoute","How","StepProfile","step1Clicked","currentStep","step2Clicked","step3Clicked","stepData","autohide","step1","hover","desc","step2","step3","constantData","titleLevel","pageSize","DivCenter","Title","Typography","WrapperTable","WrapperSubCell","ContainerTable","createCenteredTextColumnHeader","textWrap","createCenteredCheckboxColumnHeader","func","stateCheckbox","indeterminate","isChecked","createCenteredCheckboxColumn","dataIndex","selectable","record","findCheck","list","onRender","sortByText","localeCompare","transformDataSource","MentorTable","refData","nameHeader","nameSelect","setStateCheckbox","useImmer","onCheckboxChanged","isHeader","newStage","allChecked","every","noneChecked","draft","tableData","useMemo","dataSource","sorterFunction","sorter","getColumnDefinitions","useEffect","tempList","tempIsChecked","tempIndeterminate","hideOnSinglePage","ContainerConfirm","ConfirmModal","onOk","onCancel","msg","okText","cancelText","titleText","isCancel","titleNode","questionText","setIsOpen","useState","handleOk","useCallback","TitleRender","gutter","lg","ExclamationCircleOutlined","danger","ContainerCenter","MentorPreferencesModal","updatePersonMentorPreference","dataValue","isShowConfirm","isLoading","rawData","isEdit","setDefaultData","onToggleDialogModal","onSaveClicked","onOkClicked","mentorPreferenceId","PersonService","updatePersonMyMentorPreferences","notification","onCancelClicked","onValueChanged","closable","footer","spinning","tip","delay","span","banner","rangeColors","isMatch","createCenteredArrayColumn","createCenteredNumberColumn","isResponsive","isCenter","getColor","createCenteredTextColumn","sortByTextArray","elemA","elemB","sortByNumber","PossibleMentorTable","PossibleMentorModal","isIgnore","processDataAsync","dataSearchMentors","getSearchMentors","matchedSkillPercent","onConnectClicked","mentorIds","updateConnectMentors","onIgnoreChanged","connectValid","isEmpty","isLimit","isMounted","showIcon","OpenAIAPI","threadId","runId","ChatbotOpenAi","setInput","messages","setMessages","openChatBot","setOpenChatBot","threadCreated","setThreadCreated","thread","setThread","run","setRun","runCompleted","setRunCompleted","pollingIntervalId","setPollingIntervalId","question1Closed","setQuestion1Closed","question2Closed","setQuestion2Closed","question3Closed","setQuestion3Closed","defaultQuestion","setDefaultQuestion","handleSubmitDefaultQuestion","handleOpenQuestion","createThread","userMessage","loadingMessage","prevMessages","aiMessage","createThreadMessage","threadRun","createThreadRun","startPolling","clearInterval","intervalId","updatedRun","getThreadRun","fetchMessages","getThreadRunMessages","runMessage","newAiMessage","cleaned_value","btnGroupStyle","FormAddAction","selectedSkills","selectedOtherSkills","noSkillConfirmationPass","showActionNoSkillConfirmationDialog","actionRequest","targetCompletionOn","skillName","handleActionPlanAdded","handleActionClick","addMode","interventionsLoaded","handleGetJobsWithAction","handleGetInterventions","handleChangeOtherSkill","selectedOtherSkill","currentJob","futureJob","optionsJob","priority","handleFormListedChange","formListed","isFormListedValid","handleChangeGapsFilterSelection","interventionsFilterGapsOnly","handleChangeProviderSelection","interventionsFilter","selectedProviderId","handleChangeSkillInterventionSelection","skillCodeLevel","optionsActionSkills","selectedInterventionSkill","optionsActionSkill","handleChangeJobSelection","handleUpdateShowHiddenInterventionFilter","showHiddenInterventions","handleUpdateHiddenIntervention","handleConfirmActionNoSkillConfirmation","toggleActionNoSkillConfirmationDialog","renderActionNoSkillConfirmationDialog","targetDate","otherSkills","optionsActionTypes","pickedOtherSkills","gaps","showInterventionDetail","shownIntervention","showFilter","handleSkillCheckedChange","handleOtherSkillCheckedChange","handleAddOtherSkill","handleShowInterventionDetail","handleSelectIntervention","togleInterventionDetailModal","submitFormListed","handleTogleShowFilter","interventionFormPanel","selectedDefaultSkill","selectedDefaultSkills","availableLorCodes","availableSkillCodes","actioned","prof","handleChangeDate","unSelectedSkill","interventionsLoading","interventionsError","handleFormListedChangeDate","interventionName","interventionDescription","interventionProviderName","interventionIsValidated","spreadedActionSkills","concat","apply","groupIndex","skillLabel","spreadedProviders","Combobox","defaultValue","spreadedInterventions","group","groupdSpreadedInterventions","resultInterventions","oddIndex","odd","levellIndex","faEyeSlash","handleClose","jobSkillProfile","pickedOtherSkill","tooltipDescription","buttonActionPrimaryStyle","ActionPlanResponsibilityBody","handleAddActionClick","showActionForm","handleActionfinish","addedActionPlans","currentJobLorProfile","futureJobLorProfile","selectedJobLorProfile","notMandatory","showAll","actionPlanId","ActionPlanResponsibility","TableBodyResponsibility","jobGaps","showLors","showCategoryLors","selectedOptionProfile","TableBodyActionPlan","showPopup","togleDescriptionModal","skillNameShown","openSkillLevelDescriptionModal","ActionPlanSkillProfiles","skillLevelDescriptionShow","poppedUpLevel","togleSkillLevelDescriptionModal","renderSkillCategories","renderSkillSubCategories","subIndex","shownLevel","subCatSkillProfilesCodeShown","renderSkills","skillIndex","TableActionPlan","showTable","processJobGapData","loadingAction","topExtraFrameworkCapability","plan","actionSkill","returnOptionActionSkills","ddHeaderStyle","fontsize","ManageActionPlan","handleChageShowAll","handleChageShowHiddenSkills","handleChangeProfile","handleChangeProfileType","handleChangeJob","handleOpenMentorPreference","showMentorPreferenceDialog","handleOpenPossibleMentor","showPossibleMentorDialog","handlePrintReport","returnedOptionsActionSkills","renderMentorPreference","renderPossibleMentor","isBtnMentorPreference","myManageActionWrapper","toLocaleLowerCase","stepActionClicked","proposeActionStarted","optionsProfile","isFindMentor","enableAIChatBot","loadingAdd","responsibilityData","displayNama","personAction","filterOutLoROnProposeAction","Todo","handleSubmitIssueBadge","showActionPlanEdit","showIssueBadgeConfirmationDialog","handleCancelIssueBadge","handleConfirmIssueBadge","editedAction","handleActionPlanUpdated","renderIssueBadgeConfirmation","handleRejectIssueBadge","showRejectBadgeConfirmationDialog","handleCancelRejectBadge","handleConfirmRejectBadge","renderRejectBadgeConfirmation","handleSubmitPromote","showActionPromotionConfirmationDialog","handleCancelSubmitPromote","handleConfirmSubmitPromote","renderActionPromotionConfirmation","handleSubmitPropose","showProposeActionConfirmationDialog","handleCancelSubmitPropose","handleConfirmSubmitPropose","removed","currentCapability","proposeCapability","proposeActionMode","renderProposeActionConfirmation","sortActions","selectedSortOption","selectedSortOptionDirection","orderBy","handleUpdateActionHidden","handleActionPlanHidden","renderTodos","showDone","proposeMode","viewProposedMode","minWidth","openActionPlanEditModal","handleChangeFilterDone","handleChangeFilterHidden","handleStartProposeActionMode","handleProposeActionModeStarted","togleProposeActionMode","handleStartViewProposedActionMode","viewProposedActionMode","togleViewProposedActionMode","optionsStatus","optionProposeCapabilities","showActionPlanDetail","poppedUpAction","optionSorts","showPopUpAsPromoteAction","showPopUpAsProposeAction","showPopUpAsViewProposedAction","openActionPlanDetailModal","togleActionPlanDetailModal","togleActionPlanEditModal","handleSubmitEdit","handleSubmitDelete","handleChangeSortOption","handleChangeSortDirection","promoteAction","proposeAction","viewProposedAction","modalActionPlanDetail","deletedId","handleActionPlanDeleted","renderEditActionPlan","isReadOnly","editedOptionsActionTypes","showIssueBadge","updatedProposedSkills","selectedCapabilityNumber","s","proposedSkill","pickedSkill","issueBadgeRejected","actionPlanUpdated","handleSendUpdatedActionPlanNotification","optionSort","step1Hover","step2Hover","step3Hover","ActionPlan","updatedActionIndex","selectedprofileType","loadingLorProfile","setActionPlanUpdated","showActionPlanUpdatedNotificationConfirmation","handleConfirmSendActionPlanUpdatedNotification","toggleSendActionPlanUpdatedNotificationConfirmation","renderSendActionPlanUpdatedNotificationConfirmation","userResponsibilityData","skillActionPlanData","actionPlanDetailData","actionLoading","listRelationshipType","personLoading","personManagedPeople","errorProfile","errorLorProfile","actionPlanloading","removedActionSkill","deletedAction","coins","initialLoading","actionPlanerror","BadgeRequestAPI","lightenColor","amount","parseInt","substr","g","styles","alignItems","justifyContent","BadgeAvatar","imgSource","bgColor","flexDirection","flex","Badge","lightBgColor","isHover","setIsHover","boxShadow","onMouseOver","onMouseOut","listContainer","flexWrap","gap","sectionTitle","BadgesList","sectionDarkColor","sectionLightColor","badgesData","badge","lightColor","container","iconContainer","primary","LinkComponent","expireOn","hasStatus","api","contextHolder","useNotification","margin","success","navigator","clipboard","writeText","LinkOutlined","emptyContainer","infoContainer","Text","HistoryModal","setFilter","dataToRender","rowData","reverse","dayjs","isBefore","isAfter","strong","substring","image","Empty","PRESENTED_IMAGE_SIMPLE","emailRegex","inputArea","spacing","inputContainer","illustrationContainer","TextArea","Search","ShareBadgesModal","isModalOpen","setSuccessShareData","setSuccessSharedDataPreview","useForm","expirationDate","useWatch","noteForContact","setIsLoading","emails","setEmails","layout","onFinish","respData","BadgeAPI","createBadgeLinkRequest","expDate","remark","expiration","diff","finally","resetFields","Item","rules","pattern","validator","enterButton","onSearch","payload","getFieldError","emailString","oldEmails","setFieldValue","warning","allowClear","onClose","deleteEmail","validateField","disabledDate","endOf","add","submit","skillstxCapabilitiesPdf","contentContainer","textContentSection","tagsTitle","downloadLinkRef","SkillDetailsModal","ArrowRightOutlined","SuccessShareDataModal","previewData","dataList","HourglassOutlined","MessageOutlined","shareContainer","DigitalWallet","setBadges","showByCategory","setShowByCategory","setModalOpen","isShareModalOpen","setShareModalOpen","modalData","setModalData","successShareData","setHistory","successSharedDataPreview","fussionBadgesData","reduce","accumulator","currentValue","isResultsModalOpen","setResultsModalOpen","isHistoryModalOpen","setIsHistoryModalOpen","showResultsModal","handleResultsOk","listOfCategories","origin","MappedData","results","objArr","obj","sub","parChildRes","objects","filteredSkill","categoryName","findSkills","skill_code","skill_type","skill_level","fetchBadges","showModal","getBadgeWalletLink","requestHistory","getMyLatestBadgeRequestStart","getMyLatestBadgeRequestSuccess","getMyLatestBadgeRequestFail","getMyLatestBadgeRequest","submitBadgeRequest","getEvidencesByAccountIdStart","getEvidencesByAccountIdSuccess","getEvidencesByAccountIdFail","getEvidencesByAccountId","getEvidencesByManagedPeopleAccountIdStart","getEvidencesByManagedPeopleAccountIdSuccess","getEvidencesByManagedPeopleAccountIdFail","getEvidencesByManagedPeopleAccountId","addEvidence","addEvidences","addManagedPeopleEvidenceStart","addManagedPeopleEvidenceSuccess","addManagedPeopleEvidenceFail","addManagedPeopleEvidence","updateEvidence","updateEvidenceAIReview","updateManagedPeopleEvidenceStart","updateManagedPeopleEvidenceSuccess","updateManagedPeopleEvidenceFail","updateManagedPeopleEvidence","deleteEvidence","deleteManagedPeopleEvidenceStart","deleteManagedPeopleEvidenceSuccess","deleteManagedPeopleEvidenceFail","deleteManagedPeopleEvidence","downloadEvidenceFileByIdStart","downloadEvidenceFileByIdSuccess","downloadEvidenceFileByIdFail","downloadEvidenceFileById","downloadEvidence","downloadManagedPeopleEvidenceFileByIdStart","downloadManagedPeopleEvidenceFileByIdSuccess","downloadManagedPeopleEvidenceFileByIdFail","downloadManagedPeopleEvidenceFileById","downloadManagedPeopleEvidence","forbiddenExtensions","EvidenceDetail","editedEvidence","evidenceTypeId","supplier","completedOn","expiryOn","notes","evidenceOption","selectedLors","lorLevelId","skillLevels","togleEditEvidenceModal","handleEditMode","handleCancelEditMode","handleChangeEvidenceOption","categorySubCategory","categorySkill","handlelorCheckedChange","unSelectedLor","setEvidenceFile","extension","pop","fileExtension","submitInProgress","onEvidence","handleEvidenceDeleted","handleEvidenceUpdated","handleSubmitAIEvidenceReview","evidenceOptions","isDigitalBadge","isNonEditable","isEditableToCreatorOnly","createdById","showOnly","stxEvidenceOption","showStxIntelligence","enableAIEvidenceReviewer","wordWrap","aiReviewed","aiReviewResult","aiReviewNotes","evidenceActions","EvidenceList","openEditEvidenceModal","showDialogEvidenceDetailTs","renderEvidenceList","loadingEdit","createdBy","showEditEvidence","addedEvidence","loadingEvidence","AddNewEvidenceForm","pendingSaveEvidence","handleEvidencePendingSave","handleEvidenceAdded","defaultSelectedSkill","defaultSelectedSkills","defaultSelectedLor","defaultSelectedLors","shownSkills","EvidenceResponsibilityBody","handleAddEvidenceClick","showAddEvidenceForm","handleCloseAddEvidence","evidencesSkills","evidenceAdded","evidencesSkill","EvidenceResponsibilityBadgeBody","submitBadgeRequestSkills","maxNumberOfBadgeRequestSkill","skillSelected","openSkillDescriptionModal","handleEvidenceBadgeRequestUnSelect","handleEvidenceBadgeRequestSelect","EvidenceSkillBody","ManageEvidence","renderLorProfiles","renderSkillProfiles","submitBadgeRequestMode","EvidenceSkillBadgeBody","poppedUpSkill","skillDescriptionShow","togleSkillDescriptionModal","handleCertifySkills","handleCancelCertifySkills","handleChangeAcceptCheckBox","submitBadgeRequestAccept","handleSubmitBadgeRequest","requestEntries","showSubmitBadgeRequestConfirmationDialog","togleSubmitBadgeRequestConfirmationModal","renderSubmitBadgeRequestConfirmation","badgeRequestActions","Evidence","populateCategories","updatedEvidenceIndex","errorEvidence","loadingLor","errorLor","EvidenceDownload","query","managed","URL","createObjectURL","createElement","setAttribute","appendChild","close","MyLeaders","personA","MyPeople","setManagedPeopleRelationship","relationship","handleGenerateActivityStatement","generateActivityStatementProgress","handleShowColumnsSetting","showUpdateColumnSettingDialog","togleColumnsSettingDialog","updateColumnDisplaySettingVisibility","moveColumnDisplaySettingOrderUp","moveColumnDisplaySettingOrderDown","renderColumnsSettingDialog","showRequestApproval","showHeaderTooltip","hiddenWidth","visibleColumn","separateColumnWidth","faTimesCircle","faExclamationCircle","latestProfileVersion","myPeople","activityStatus","Chart","registerables","ChartDataLabels","chartType","colors","type1","type2","yText","xText","legendText","endName","baseFontConfig","baseTitleConfig","Bar","maxCount","useRef","dataChart","labels","datasets","configChart","scales","ticks","precision","beginAtZero","grid","borderDash","responsive","maintainAspectRatio","barThickness","aspectRatio","elements","line","fill","tension","plugins","datalabels","anchor","offset","legend","tooltip","callbacks","dataset","formattedValue","chartInstance","destroy","TreemapController","TreemapElement","topName","leftName","dataName","boldName","valueName","transparent","TreeMapChart","getColorByContext","defaultColor","colorKey","raw","_data","tree","formatter","v","hoverBackgroundColor","hoverColor","hoverFont","borderWidth","datasetIndex","Wrapper","PieChart","counts","hoverOffset","context","LevelResponsibility","OrderCategory","OrderGeneric","SHOW_PARENT","TreeSelect","CustomSelect","isTreeSelect","expandedKeys","setExpandedKeys","commonProps","setValue","showArrow","treeData","treeCheckable","showCheckedStrategy","treeExpandedKeys","onDropdownVisibleChange","onTreeExpand","WrapperFilter","renderTags","onCloseClicked","isTree","CloseCircleOutlined","renderFilter","isExpand","alignSelf","SkillsWeNeedFilters","objType","objRequirement","objLorSkill","objGeneric","setIsExpand","updatedValue","hasFilter","FilterFilled","FilterTwoTone","ghost","plain","customStyle","tableHeaderBackgroundColor","tableHeaderColor","WrapperTitleCustom","WrapperTooltipCustom","Tooltip","WrapperLevelCustom","WrapperCellCustom","WrapperCellSkillCategoryCustom","WrapperCellSubCategoryCustom","WrapperSlide","SkillGapTable","isContentLoaded","setIsContentLoaded","listExpand","setListExpand","expendedRowKeysRef","setExpendedRowKeysRef","expendedRowKeysCurrent","setExpendedRowKeysCurrent","onCategoryCellRendered","ComponentToRender","isSkill","onExpendClicked","tempExpandStatus","updatedListExpand","rootItem","getRootExpand","hasExpandedChild","onCellExpandClicked","lv","parent","getColumns","onCellTitleRendered","expand","UpOutlined","levelResponsibility","InfoCircleOutlined","onExpandCellTitleRendered","findExpand","isShowExpand","onExpandCellRendered","onCell","defaultStyle","borderStyle","tempLevel","cateColour","onLevelColorCellRendered","onLevelTextCellRendered","baseData","expandItem","skillsData","itemSkill","indexSkill","people","tempListExpand","prevListExpand","temp","expandable","showExpandColumn","expandedRowRender","fullName","askillGap","selfAssessedSkillGap","endorsedSkillGap","skillGap","bskillGap","rowExpandable","expandedRowKeys","WrapperDivToolCustom","WrapperDivToolMTCustom","WrapperDivCustom","WrapperCircleCustom","tableSize","expandedTableSize","skillLevelCount","expandName","bottomName","categoryColors","bold","tint","SkillsWeHaveNeedTable","isNeedSkill","isShowDetail","isSpilt","findLevels","codeCounts","uniqueCodes","onCellRendered","findCategoryColor","subCategoryDetail","need","profileStatus","isApproved","CheckCircleOutlined","commonSkillLevelColumn","RenderTable","SkillsWeHaveNeedTableNormal","isShowProfessional","isShowGeneric","tableProfessional","professional","tableGeneric","generic","ContainerBorder","ContainerContent","ContainerDefault","jobLorProfileLevel","empty","spaceBar","profileStatusName","skillCodeLevelName","desirableName","requiredName","jobTypeList","categoryTitleName","subCategoryName","endorsedName","competencyName","capabilityName","lorCodeName","proficiencyName","knowledgeName","genericAttributeName","personName","keyResult","type3","type4","m","deepClone","distinctArray","dataArray","seen","uniqueArray","hash","itemIn","SkillsWeNeed","setData","genericAttributeData","setGenericAttributeData","selectedLorSkill","setSelectedLorSkill","selectedGeneric","setSelectedGeneric","selectedRequirement","setSelectedRequirement","selectedType","setSelectedType","processData","personPeople","filteredJobs","JobService","flat","processedData","findCategory","findSubCategory","findSkill","findLevel","categoryDetail","skillDetail","levelDetail","processDetail","processJobDetailData","tempMapJob","jobLor","jobRef","itemA","itemB","processGenericAttribute","jobDetailsPromises","generateTreeSelect","categoryIdx","itemsArray","uniqueValues","rootData","isRoot","uniqueValue","valueIdx","childData","optionLorSkillLevel","combinedSkills","uniqueSkills","optionGenericAttribute","optionRequirement","optionType","dataFilter","resultData","dataFilterGenericAttribute","dashboardTableSkillCategory","groupedData","categoryKey","groupedKeys","orderedKeys","orderedGroupedData","categoryValues","generateTableSkillCategory","dashboardTableGeneric","dashboardTableProfessional","dashboardBar","aggregatedData","generateBar","prepareDataNeedSkill","processAllData","SkillsWeHaveFilters","objName","objProfile","SkillsWeHave","selectedName","setSelectedName","selectedProfile","setSelectedProfile","processPersonData","versions","approver","ProfileService","profiles","sortedApprovals","personProfile","profileVersion","prepareDataHaveSkill","personData","listData","mapData","approvedText","optionsName","optionProfileStatus","WarperNode","WarperIconExpand","WrapperTree","getExpandedData","node","renderNode","hasChildren","expandData","shape","UserOutlined","SolutionOutlined","renderTreeNode","OrganizationalChart","onExpandedClicked","found","lineWidth","lineColor","lineBorderRadius","TeamBuilderFilters","objAttribute","objCountry","objSkillLevel","objProfileStatus","objPosition","objSkill","TeamBuilderTable","EyeTwoTone","underline","TeamBuilder","selectedAttribute","setSelectedAttribute","setSelectedSkill","selectedPosition","setSelectedPosition","selectedProfileStatus","setSelectedProfileStatus","selectedCountry","setSelectedCountry","selectedSkillLevel","setSelectedSkillLevel","getCapability","getSubCategory","dataCategories","getDataSkill","baseSkills","selfAssessedSkills","endorsedSkills","mapSkillWithDetails","dataSkill","dataPeoples","dataProfile","dataVersion","selfAssessedDataSkill","endorsedDataSkill","services","CategoryService","fetchData","flatDataCategories","flattenDataCategories","initialData","peoplesData","earliestAccount","accountAttributes","attr","getAttributes","processItem","attributesSet","allAttribute","has","optionsAttribute","optionsSkill","optionsPosition","optionsProfileStatus","optionsCountry","tempData","optionsSkillLevel","dashboardTable","dashboardOrganizationalChart","dataGroup","createNode","isPerson","childItem","generateTreeNode","TeamAnalyticsService","ActionPlanFilters","objSkillCode","objActions","ActionPlanTable","getColorByActionStatus","actionStatus","getIconByActionStatus","MinusCircleOutlined","ClockCircleOutlined","SyncOutlined","spin","RangePicker","DatePicker","ContainerBar","ColumnWithStyle","dataOptions","setDataOptions","actionName","selectedSkillCode","setSelectedSkillCode","selectedActionName","setSelectedActionName","selectedTargetCompletionDate","setSelectedTargetCompletionDate","generatePie","optionsActionName","optionsSkillCode","isBetween","dashboardActionTypePie","dashboardActionStatusPie","dashboardActionProviderPie","actionPlanData","getActionPlan","optionActionName","optionSkillCode","actionProvider","JobMatchFilters","ContainerFilter","WrapperCard","WrapperHeader","sliderDefaultValue","RangeSlider","range","InputRange","addonBefore","addonAfter","MatchRangeFilters","objSelfAssessed","objEndorsed","objPerson","objRequirementMatch","JobMatchTable","JobMatch","selectedMatchRangeSelfAssessed","setSelectedMatchRangeSelfAssessed","selectedMatchRangeEndorsed","setSelectedMatchRangeEndorsed","optionsRequirement","matchPercentSelf","matchPercentValidated","dashboardSelfAssessedCount","dashboardRequirementMatchCount","dataMyPeoples","dataMixJob","jobItem","SelectComponent","placeholderBaseText","showSearch","SkillChangeFilters","objStartVersion","objEndVersion","objCompact","objProfileType","personValue","setPersonValue","profileTypeValue","setProfileTypeValue","startVersionValue","setStartVersionValue","endVersionValue","setEndVersionValue","compactValue","setCompactValue","isStartVersionDisabled","isEndVersionDisabled","isSwitchDisabled","WrapperCellSkillCategory","getCellEmpty","na","SkillChangeTable","hideHeader","onCellTitle","tempBackgroundColor","getDataSource","WrapperDiv","extractDefaults","SkillChange","dataPerson","setDataPerson","dataCategory","setDataCategory","selectPerson","setSelectPerson","selectProfileType","setSelectProfileType","selectStartVersion","setSelectStartVersion","selectEndVersion","setSelectEndVersion","isCompactView","setIsCompactView","fetchProfileVersions","approveVersion","processCategoryData","orderedCats","orderedGeneric","lorNameOrder","lname","genericObj","optionPerson","optionProfileType","optionStartVersion","optionEndVersion","generateTableByProfileLevel","extractedItem","subCategoryKey","extractedSubCategory","skillKey","skillDefaults","extractedSkill","levelKey","levelDefaults","extractedLevel","findSkillProfile","firstTable","secondTable","firstSkillProfiles","secondSkillProfiles","updatedSkillProfiles","foundStartVersion","foundEndVersion","changedSkills","firstSkill","findIndex","subCategoryIndex","checkSecond","originalSkillType","secondSkill","compareTableSkills","first","tempFirst","tempSecond","listDiffCategory","listDiffSubCategories","itemSub","indexSub","listDiffSkills","secondSkillsList","firstSkills","secondSkills","isDiff","findMatchLevel","compareSkills","subCat","cat","compareTables","defaultProfileType","peoples","SkillsComparisonFilters","SkillsComparison","dataHaveSkill","setDataHaveSkill","dataNeedSkill","setDataNeedSkill","genericAttributeHaveSkillData","setGenericAttributeHaveSkillData","genericAttributeNeedSkillData","setGenericAttributeNeedSkillData","setCategories","processGenericAttributeHaveSkillData","processHaveSkillData","processNeedSkillData","jobDetails","processedJobs","processGenericAttributeNeedSkillData","dataFilterSkill","generateTreeMap","groupByCate","hoverColour","uniq","dataFilterHaveSkill","genericAttribute","dashboardTreeMapHaveSkill","dashboardTableSkillCategoryHaveSkill","dashboardTableHaveSkill","dashboardBarHaveSkill","dataFilterSkillWeNeed","dashboardTableSkillCategoryNeedSkill","dashboardTreeMapNeedSkill","dashboardTableNeedSkill","dashboardBarNeedSkill","newDataEntry","SkillGapsFilters","objSkillGap","objSkillType","objRequirementType","stringName","skillGapName","jobNeedName","requirementTypes","NoName","GapName","noGapName","minorName","majorName","getSkillGap","SkillGaps","isDefaultValue","setIsDefaultValue","isNoGap","setIsNoGap","selectedSkillType","setSelectedSkillType","selectedSkillGap","setSelectedSkillGap","filterMatches","validMatches","childMatchesPromises","childMatchesResponses","combinedMatches","version_m","profile_m","skillVersions","skillVersion","jobSkills","skillsProfile","skillsProfileSelfAssessed","skillsProfileEndorsed","jobSkill","matchedSkillProfile","selfAssessedMatchedSkillProfile","endorsedMatchedSkillProfile","jobNeed","selfAssessedProfileStatus","endorsedProfileStatus","getDataFilterByNoGap","getOptionSkillGap","getOptionSkillType","getOptionProfile","getOptionName","skillGaps","requirements","isRequirementSelected","isSkillGapSelected","isProfileSelected","isNameSelected","isSkillType","dashboardLevelSkillCountTable","currentSkill","subCategoryValues","extractStyles","skillValues","levelValues","TeamAnlytics","useRouteMatch","useHistory","routes","TeamAnalytics","teamAnalytics","Note","authLoading","EvidenceListFiltered","handleOpenEvidenceDetailModal","togleEvidenceListModal","evidenceFilterSkillsCode","evidenceFilterLevel","evidenceFilterMode","SkillProfileGapHighlight","animationClass","isShow","fullyColorCode","gapClassName","reqDesValue","fixWidthClass","isFully","rightBorderColor","TableLorProfilesEditAtrribute","LorProfilesEditComment","handleSaveEditCommentClick","processSave","onProfile","updateLorComment","handleChangeComment","editComment","togleEditLorComment","editedLorLevel","editedLorDescription","allowEditComment","TableHeader","showTitle","highlightGap","itemCount","TableProfileResponsibility","handleRadioChange","openEditLorComment","openEvidenceListModal","filterMode","showDialogEvidenceListTs","openEvidenceDetailModal","tableBodyResponsibility","showProposedAction","loadingGap","selectedJobMatchType","proposeLors","openCommentEditor","openCommentAllowEdit","selectedJobLorAttributes","jobLorAttributeColor","showJobLorAttribute","showRow","proposedLor","showProposed","skillLevelReadOnlyEvidences","skillLevelEditableEvidences","skillLevelConfirmedEvidences","numberEvidenceTypes","evidenceAvailable","faFile","faFileShield","faFileCircleCheck","handleAddAction","faPlusCircle","openAddActionDialog","actionedLor","handleCancelAddAction","renderModalAddAction","gapJobLorProfiles","gapJobLorProfile","openAddEvidenceDialog","showCategory","TableSkillProfilesEditAttribute","TableSkillProfilesEditComment","updateSkillComment","togleEditSkillComment","editedSkillLevelDescription","TableSkillProfiles","handleRadioSingleSelectionClick","editExtraFrameworkSkill","lowerOption","leastOption","singleLevelSelectionChecked","handleSuggestUpdateLowerLevelProfile","skillCodeProfiles","isProvidedUpper","openSuggestEditLowerLevelProfile","toggleModalSuggestEditLowerLevelProfileConfirmation","renderModalSuggestEditLowerLevelProfileConfirmation","handleAcceptSuggestEditLowerLevelProfile","topOption","handleManagerSuggestEditLowerLevelProfile","handleSuggestEditLowerLevelProfile","editedSkillEvidence","badgeCertification","editedSkillEvidences","capabilityValueOptions","extraFrameworkCapability","maxNumberExceeded","numberBadgeRequested","requestCertificationEntry","storedStringVal","skillProfilesRequireEvidence","skillProfilesMissingEvidence","showEvidence","saveButtonDisable","skillExtraFrameworkLevel","skillExtraFrameworkLevelId","handleAddPendingSaveEvidence","openEditSkillComment","openSfiaGuidance","showSfiaGuidance","togleOpenSfiaGuidance","renderModalSfiaGuidance","guidance","guidances","levelGuidance","actionedSkill","gapJobSkillProfiles","gapJobSkillProfile","handleAddEvidence","handleCancelAddEvidence","renderModalAddEvidence","actionedSkillProfiles","editedSkillProfilesSubmit","singleLevelSelectionValue","storedNumericVal","storedLabelVal","badgeRequestUpdated","proposeSkills","showSuggestedUpdate","showEditCertify","skillBadgeRequest","colLargely","colPrevious","colProposed","proposedCapabilityNumericVal","colSuggested","skillNumericVal","skillLevelSelection","proposedCapability","colProposedCompetent","colProposedProficient","colProposedKnowledge","extraFrameworkSkillProfiles","extraFrameworkProposeSkills","maxProposeSkill","colSuggestedCompetent","colSuggestedProficient","colSuggestedKnowledge","extraFrameworkSuggestedSkills","maxSuggestedSkill","suggestedSkill","colBackground","showExtraFramework","updateProfileSuggestionSkills","categoryFound","categoryJobSkillProfiles","catSkillProfiles","jobCatSkillProfilesCode","catSuggestedSkills","catSuggestedSkill","catProposeSkills","catProposeSkill","subCatSkillProfiles","subCatSuggestedSkills","subCatProposeSkills","subCatSkillsCodes","subCatJobSkillProfiles","jobSubCatSkillProfilesCode","showGuidance","subCatDetailSuggestedSkills","subCatDetailProposeSkills","isPartially","gapStatus","showWandSuggestion","showAddEvidence","updateProfileSuggested","jobSkillAttributeColor","showJobSkillAttribute","selectedJobSkillAttributes","faCircleQuestion","faCircle","faWandMagicSparkles","personError","TableProfile","updateFloatingLegendStatus","extraFrameworkAvailable","showProposedActionExtraFramework","showSuggestedUpdateExtraFramework","extraFrameworkSkills","extraFrameworkSkillProfilesCodeWithValue","extraFrameworkHidden","skillLoading","JobsProfile","handleChangeShowMoreDetail","showMoreDetail","ValueGroupAPI","groupName","getSeniorityOptions","getValuesByGroupName","getContractTypeOptions","getYearRangeJobOptions","getYearRangeOrgOptions","UpdateProfilePicture","toggleModal","onSelectFile","onImageLoaded","onCropComplete","crop","makeClientCrop","onCropChange","percentCrop","uploadImage","blobUrl","croppedImageUrl","File","pictureUpdated","selectPicture","unit","aspect","getCroppedImg","pixelRatio","devicePixelRatio","scaleX","naturalWidth","scaleY","naturalHeight","setTransform","imageSmoothingQuality","drawImage","toBlob","blob","revokeObjectURL","fileUrl","ruleOfThirds","onComplete","cardProfileStyle","CardProfile","eventClick","showUploadProfilePicture","showProfilePictureModal","selectedPicture","modal","setModal","employmentContract","timeInCurrentRole","timeInOrganisation","recentOrCurrentRole","startEdit","cancelEdit","submitEdit","onGroupValue","faPencilAlt","groupValueActions","containerStyle","subTitleStyle","SkillProgress","openEditJob","selectedCurrentJob","selectedFutureJob","currentSelected","futureSelected","editJob","byPassFutureRequirementCheck","togleEditJob","changeSelectedCurrentJob","changeSelectedFutureJob","handleSaveEditJobClick","oldCurrentJobMatchId","newCurrentJobMatchId","oldFutureJobMatchId","newFutureJobMatchId","managedPeopleEmail","showFutureRequirementCheckDialog","jobUpdating","handleJobMatchesUpdated","handleSearchByJobName","jobTitleSort","searchJobName","handleEnquireVacancy","selectedJobMatch","showJobVacanciesConfirmation","jobVacancyEnquireyComment","togleModalJobVacancyEnquiry","handleConfirmJobVacancyEnquiry","sendSelfAssessedProfileOnVacancy","sendEndorsedProfileOnVacancy","handleUpdateJobVacancyEnquireyCommentChange","renderModalJobVacancyEnquiry","jobVacancyOwner","jobVacancyOwnerEmail","handleSendSelfAssessedProfileOnVacancyCheckedChanged","handleSendEndorsedProfileOnVacancyCheckedChanged","renderModalEditJob","latestEndorsedProfileVersion","jobVacancy","jobShowAsVacancy","togleFutureRequirementCheckDialog","handleConfirmFutureRequirementCheck","renderFutureRequirementCheckDialog","propJobMatches","forceOpenEditJob","isSelfAssessOk","isEndorseOk","Progress","SkillStep","refreshActions","openActionDetail","handleHideAction","loadingFull","newActionPlanAdded","renderEmptyAction","modalEditActionPlan","farCircle","faAdjust","Profile","handleChangeCurrentJob","selectedOptCurrentJob","handleChangeFutureJob","selectedOptFutureJob","handleChangeEndorseCurrentJob","selectedOptEndorseCurrentJob","handleChangeEndorseFutureJob","selectedOptEndorseFutureJob","optionCurrentJobs","optionFutureJobs","endorseCurrentJob","endorseFutureJob","stateJobMatches","stateCurrentJob","stateFutureJob","skillProfileLoading","optCurrentJob","optFutureJob","handleCurrentJob","handleFutureJob","handleEndorseCurrentJob","handleEndorseFutureJob","lorProfileLoading","lorProfileError","MenteeRequestFilters","objStatus","createCenteredButtonColumn","onDeny","onAccept","onClicked","CheckOutlined","CloseOutlined","CheckCircleTwoTone","twoToneColor","CloseCircleTwoTone","MenteeTable","Panel","AcceptDenyModal","setComment","onCommentChanged","modalValid","isCommentRequired","isAccept","okButton","cancelButton","okButtonClassName","header","preferences","MenteeRequestModal","selectedStatus","setSelectedStatus","isShowComment","commentData","isSetStatus","dataMenteeRequests","getMenteeRequests","onCommentOkClicked","dataUpdate","updateMenteeRequests","onCommentCancelClicked","openShowConfirm","onConfirmOkClicked","onConfirmCancelClicked","onAcceptClicked","onDenyClicked","mentorStatus","expandIcon","CaretRightOutlined","rotate","MentorProfileModal","isShowNotMentor","isUpdate","dataPersonPersonMyProfile","getPersonMyMentorProfiles","updatePersonMyMentorProfiles","isMentor","dataBecomeMentor","updateBecomeMentor","processUpdateBecomeMentorAsync","SfiaSkills","handleCreateNewVersion","createNewVersion","proposedUpdateLowerLevelMode","latestUpdatedLorProfiles","latestUpdatedSkillProfiles","handleExportProfile","handleEmailReport","addEvidenceInProgress","evidenceError","selectVersion","fetchSkillProfiles","handleChangeSkill","handleCopyEndorsedProfile","handleRequestAccountApproval","showRequestApprovalFirstDialog","handleRequestApprovalCommentChange","requestApprovalComment","togleRequestApprovalFirstModal","renderRequestApprovalFirstConfirmation","handleFirstConfirmRequestApproval","showRequestApprovalSecondDialog","closeRequestApprovalSecondModal","renderRequestApprovalSecondConfirmation","requestApprovalUpdating","handleConfirmRequestApproval","personUpdating","handleShowPostponedReason","showPostponedReasonDialog","isApprovalPostponedShown","togleShowPostponedReason","renderPostponedReasonDialog","showApprovalPostponed","handleShowMakeLatestConfirmation","showMakeLatestDialog","togleMakeLatestProfileModal","handleConfirmMakeLatestProfile","renderMakeLatestProfileConfirmation","handleChangeEndorsementStatus","selectedEndorsementStatus","showApproveEndorsementDialog","togleApproveEndorsementModal","handleConfirmApproveEndorsement","endorsedProfileApproved","handleOpenMenteeRequest","showMenteeRequestDialog","handleOpenMentorProfile","showMentorProfileDialog","handleCloseMentorProfile","canBeMentor","renderMenteeRequest","renderMentorProfile","renderApproveEndorsementConfirmation","handleTogleEditBadgeRequest","showMaxBadgeExceed","togleMaxBadgeExceedConfirmation","renderMaxBadgeExceedConfirmation","handleSaveBadgeRequest","handleApproveBadgeRequest","showApproveBadgeConfirmation","togleSubmitBadgesConfirmation","showSubmitBadgeConfirmation","renderSubmitBadgesConfirmation","closeWindow","togleApproveBadgesConfirmation","renderApproveBadgesConfirmation","handleConfirmApproveBadgeRequest","handleViewProposedAction","handleCancelViewProposedAction","handleActionProposalCommentChange","acceptRejectActionProposalComment","handleAcceptActionProposal","showAcceptActionProposalConfirmation","togleAcceptActionProposal","renderAcceptActionProposalConfirmation","processActionProposal","handleConfirmAcceptActionProposal","updateProfileEvidenceProposedActionId","handleRejectActionProposal","showRejectActionProposalConfirmation","togleRejectActionProposal","renderRejectActionProposalConfirmation","handleConfirmRejectActionProposal","handleViewSuggestedUpdate","handleCancelSuggestedUpdate","handleUpdateProfileSuggestionCommentChange","acceptRejectUpdateProfileSuggestionComment","handleAcceptUpdateProfileSuggestion","showAcceptUpdateProfileSuggestionConfirmation","togleAcceptUpdateProfileSuggestion","renderAcceptUpdateProfileSuggestionConfirmation","processUpdateProfileSuggestion","handleConfirmAcceptUpdateProfileSuggestion","updateProfileSuggestionId","handleRejectUpdateProfileSuggestion","showRejectUpdateProfileSuggestionConfirmation","togleRejectUpdateProfileSuggestion","renderRejectUpdateProfileSuggestionConfirmation","handleConfirmRejectUpdateProfileSuggestion","handleCancelProposeUpdateLowerLevel","handleProposeUpdateProfileSuggestion","showProposeUpdateProfileSuggestionConfirmation","togleProposeUpdateProfileSuggestion","renderProposeUpdateProfileSuggestionConfirmation","handleConfirmProposeUpdateProfileSuggestion","handleSubmitProposeUpdateLowerLevel","profileTypeOptions","endorsementStatusOptions","mySkillProfileWrapper","forceOpenEditProfile","lastProfileType","unNeededEvidences","unNeededEvidence","manageEndorsementOperation","allowRequestApproval","showRequestApprovalButton","showApprovalPending","showReRequestApproval","showCopyEndorsedButton","showMakeLatestButton","showMakeSelfAssessedButton","showMakeNewVersionButton","showEndorsementStatus","showBeMentor","showMenteeRequest","adminSelfAssessedApproverFound","isFramework","lorProfileCodes","showApproveEndorsement","updateProfileSuggestedBy","updateProfileSuggestedOn","showApprovedProfileOnly","addedEvidences","SkillsProfile","selectedVersion","managedPeopleAccount","showApprovalModal","showPostponeModal","showPostponeDialog","togleShowPostponeModal","handlePostponeCommentChange","postponeComment","renderPostponeDialog","postponeProfile","postponeType","showConfirmPostponeDialog","closeConfirmPostponeModal","renderConfirmPostponeDialog","confirmPostponeProfile","showApprove","profileIsPostponed","showEndorser","endorsedVersion","endorseCreatedAt","endorseApprovedAt","requireApproval","latestEndorsedProfileBy","latestEndorsedProfileCreatedOn","latestEndorsedProfileApprovedOn","latestSelfAssessedProfileVersion","Requirements","ProfilePage","checkDeviceOrientation","matchMedia","matches","isMobile","SurveyAPI","componentGroupId","elementId","getMySurveys","mySurveySelectRoleStart","mySurveySelectRoleSuccess","mySurveySelectRoleFail","mySurveySelectRole","selectRole","getSurveyQuestion","answerQuestion","answer","skipQuestion","completeMySurvey","completeSurvey","resetMySurvey","Survey","invalidToken","loadingSurvey","errorSurvey","onSurvey","surveyActions","ListSurvey","selectSurvey","assessmentPersonResultId","valueId","lastOpened","displaySequence","selectedSurvey","showConfirmTutorial","showTutorial","tutorialWatched","changeRating","newRating","surveyComment","togleConfirmTutorialModal","modalConfirmTutorial","renderTableBody","completed","moduleName","timeEstimate","renderRoleSelection","sx","textTransform","selectedRoleId","completionDateTarget","surveyCompletionTargetDate","showSurveyRating","assessmentName","isComplete","rating","starRatedColor","numberOfStars","starDimension","postRating","resetSurvey","stepAssessmentStyle","stepHeaderStyle","stepInfoStyle","StepAssessment","SurveyAssessment","initSurveyDatas","passwordRequestSent","showSelectRoleConfirmationDialog","togleSelectRoleConfirmationDialog","handleConfimRoleSelection","renderSelectRoleConfirmation","showResetSurveyConfirmationDialog","togleResetSurveyConfirmation","handleConfimResetSurvey","renderResetSurveyConfirmation","buttonActionStyle","answerStyle","SurveyListVersion","setStringVal","handleSelect","selectAnswers","answersData","resultType","selectAnswer","selectedAnswerId","buttonNav1Style","buttonNav2Style","questionStyle","buttonNavStyle","buttonActionSecondaryStyle","SurveyQuestion","initQuestionData","startTime","surveyDesc","next","previous","prevQuestion","componentGroupDescription","elementLabel","allowSkip","skipSurveyConfirmation","surveyAnswer","nextQuestion","enableComments","submitAnswers","curTime","Seconds_from_T1_to_T2","timeTaken","abs","nextElementId","surveyIsComplete","showSkipConfirmation","togleSkipSurveyConfirmation","skipSurvey","UNSAFE_componentWillReceiveProps","nextProps","SelfAssessmentPage","ThankYou","HeaderContainer","ContentContainer","ownerInfoContainer","WalletComponent","walletInfo","setWalletInfo","personInfo","setPersonInfo","useParams","badgeWalletData","getBadgeWallet","categoryResponse","mappedFetchedData","evidenceFileResponse","walletShare","profileUrl","profile_url","Wallet","asyncComponent","importComponent","cmp","default","C","WelcomePage","authAction","App","languageLoading","renderActiveUsersDialog","showActiveUsersDialog","signalRTimerIntervalId","favIconTimestamp","languageName","rightAlign","pathName","paths","isDownloadSfia9MigrationImpactReport","configLoadingPrint","configPrintData","divMembeeLogin","outerHTML","UNSAFE_componentWillMount","unlisten","listen","LoadingSpinner","enableWalkme","Helmet","appGenerateAlert","AppScrollToTop","Boolean","hostname","baseUrl","getElementsByTagName","getAttribute","rootElement","createRoot","basename","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.d870a11c.chunk.js","sourcesContent":["const errorResponseHandler = err => {\n const ErrorResponse = {};\n if (err.response) {\n if (err.response.data.ErrorType) {\n ErrorResponse.errData = {};\n ErrorResponse.errData.ErrorType = err.response.data.ErrorType;\n ErrorResponse.errData.Message = err.response.data.Message;\n ErrorResponse.errStatus = err.response.data.ErrorType;\n } else {\n ErrorResponse.errData = err.response.data;\n ErrorResponse.errStatus = err.response.status + \": \" + err.response.statusText;\n }\n } else {\n ErrorResponse.errData = {ErrorType: \"Error\", Message: \"ERR_FAILED\"};\n }\n return ErrorResponse;\n };\n \n export default errorResponseHandler;\n ","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass CountryAPI {\n static getCountries() {\n return axios\n .get(`/countries`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default CountryAPI;","import * as actionTypes from \"./actionTypes\";\n\nimport CountryAPI from \"./../../common/api/service/CountryService\";\n\nexport const getCountriesStart = () => {\n return {\n type: actionTypes.GET_COUNTRIES_START,\n };\n};\n\nexport const getCountriesSuccess = (countries) => {\n return {\n type: actionTypes.GET_COUNTRIES_SUCCESS,\n countries\n };\n};\n\nexport const getCountriesFail = error => {\n return {\n type: actionTypes.GET_COUNTRIES_FAIL,\n error: error,\n };\n};\n\nexport const getCountries = () => {\n return dispatch => {\n dispatch(getCountriesStart());\n\n return CountryAPI.getCountries()\n .then(res => {\n if (res) {\n dispatch(getCountriesSuccess(res));\n } else {\n dispatch(getCountriesFail(res));\n }\n })\n .catch(err => {\n dispatch(getCountriesFail(err));\n });\n };\n};\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n actionLogs: [],\n printData: null,\n loadingPrint: false,\n};\n\nconst getActionLogsStart = (state) => {\n return updateState(state, { error: null, loading: true, actionLogs: [] });\n};\n\nconst getActionLogsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n actionLogs: action.actionLogs,\n });\n};\n\nconst getActionLogsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst exportActionLogsExcelStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst exportActionLogsExcelSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst exportActionLogsExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ACTION_LOGS_START:\n return getActionLogsStart(state);\n case actionTypes.GET_ACTION_LOGS_SUCCESS:\n return getActionLogsSuccess(state, action);\n case actionTypes.GET_ACTION_LOGS_FAIL:\n return getActionLogsFail(state, action);\n\n case actionTypes.EXPORT_ACTION_LOGS_START:\n return exportActionLogsExcelStart(state);\n case actionTypes.EXPORT_ACTION_LOGS_SUCCESS:\n return exportActionLogsExcelSuccess(state, action);\n case actionTypes.EXPORT_ACTION_LOGS_FAIL:\n return exportActionLogsExcelFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n actionTypes: [],\n};\n\nconst getActionTypesStart = (state) => {\n return updateState(state, { error: null, loading: true, actionTypes: [] });\n};\n\nconst getActionTypesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n actionTypes: action.actionTypes,\n });\n};\n\nconst getActionTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addActionTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addActionTypeSuccess = (state, action) => {\n const actionTypes = state.actionTypes;\n actionTypes.push(action.addedActionType);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n actionTypes: [...actionTypes],\n });\n};\n\nconst addActionTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateActionTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateActionTypeSuccess = (state, action) => {\n const updatedActionType = action.updatedActionType;\n const actionTypes = state.actionTypes;\n\n const actionType = actionTypes.find((it) => it.id == updatedActionType.id);\n if (actionType) {\n actionType.name = updatedActionType.name;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n actionTypes: [...actionTypes],\n });\n};\n\nconst updateActionTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteActionTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteActionTypeSuccess = (state, action) => {\n const deletedActionTypeId = action.deletedActionTypeId;\n const actionTypes = state.actionTypes;\n\n const actionType = actionTypes.find((it) => it.id == deletedActionTypeId);\n if (actionType) {\n const index = actionTypes.indexOf(actionType);\n if (index !== -1) {\n actionTypes.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n actionTypes: [...actionTypes],\n });\n};\n\nconst deleteActionTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ACTIONTYPES_START:\n return getActionTypesStart(state);\n case actionTypes.GET_ACTIONTYPES_SUCCESS:\n return getActionTypesSuccess(state, action);\n case actionTypes.GET_ACTIONTYPES_FAIL:\n return getActionTypesFail(state, action);\n\n case actionTypes.ADD_ACTIONTYPE_START:\n return addActionTypeStart(state);\n case actionTypes.ADD_ACTIONTYPE_SUCCESS:\n return addActionTypeSuccess(state, action);\n case actionTypes.ADD_ACTIONTYPE_FAIL:\n return addActionTypeFail(state, action);\n\n case actionTypes.UPDATE_ACTIONTYPE_START:\n return updateActionTypeStart(state);\n case actionTypes.UPDATE_ACTIONTYPE_SUCCESS:\n return updateActionTypeSuccess(state, action);\n case actionTypes.UPDATE_ACTIONTYPE_FAIL:\n return updateActionTypeFail(state, action);\n\n case actionTypes.DELETE_ACTIONTYPE_START:\n return deleteActionTypeStart(state);\n case actionTypes.DELETE_ACTIONTYPE_SUCCESS:\n return deleteActionTypeSuccess(state, action);\n case actionTypes.DELETE_ACTIONTYPE_FAIL:\n return deleteActionTypeFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n adminRoles: [],\n adminRolePageAssignments: null,\n};\n\nconst getAdminRolesStart = (state) => {\n return updateState(state, { error: null, adminRoles: [], loading: true });\n};\n\nconst getAdminRolesSuccess = (state, action) => {\n return updateState(state, {\n adminRoles: [...action.adminRoles],\n error: null,\n loading: false,\n });\n};\n\nconst getAdminRolesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getAdminRolePageAssignmentsStart = (state) => {\n return updateState(state, { error: null, adminRolePageAssignments: null, loading: true });\n};\n\nconst getAdminRolePageAssignmentsSuccess = (state, action) => {\n return updateState(state, {\n adminRolePageAssignments: [...action.pageAssignments],\n error: null,\n loading: false,\n });\n};\n\nconst getAdminRolePageAssignmentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createAdminRoleStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createAdminRoleSuccess = (state, action) => {\n let adminRoles = state.adminRoles;\n\n if (adminRoles) {\n adminRoles.push(action.adminRole);\n } else {\n adminRoles = [action.adminRole];\n }\n\n return updateState(state, {\n adminRoles: [...adminRoles],\n error: null,\n isUpdating: false,\n });\n};\n\nconst createAdminRoleFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateAdminRolePageAssignmentsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateAdminRolePageAssignmentsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateAdminRolePageAssignmentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteAdminRoleStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteAdminRoleSuccess = (state, action) => {\n let adminRoles = state.adminRoles;\n\n const deletedAdminRole = adminRoles.find((it) => it.id == action.adminRoleId);\n\n if (deletedAdminRole) {\n const index = adminRoles.indexOf(deletedAdminRole);\n if (index !== -1) {\n adminRoles.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n adminRoles: [...adminRoles],\n });\n};\n\nconst deleteAdminRoleFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst renameAdminRoleStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst renameAdminRoleSuccess = (state, action) => {\n let adminRoles = state.adminRoles;\n\n let updatedAdminRole = adminRoles.find((it) => it.id == action.adminRoleId);\n\n if (updatedAdminRole) {\n updatedAdminRole.name = action.name;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n adminRoles: [...adminRoles],\n });\n};\n\nconst renameAdminRoleFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ADMIN_ROLES_START:\n return getAdminRolesStart(state);\n case actionTypes.GET_ADMIN_ROLES_SUCCESS:\n return getAdminRolesSuccess(state, action);\n case actionTypes.GET_ADMIN_ROLES_FAIL:\n return getAdminRolesFail(state, action);\n\n case actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_START:\n return getAdminRolePageAssignmentsStart(state);\n case actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS:\n return getAdminRolePageAssignmentsSuccess(state, action);\n case actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL:\n return getAdminRolePageAssignmentsFail(state, action);\n\n case actionTypes.ADD_ADMIN_ROLE_START:\n return createAdminRoleStart(state);\n case actionTypes.ADD_ADMIN_ROLE_SUCCESS:\n return createAdminRoleSuccess(state, action);\n case actionTypes.ADD_ADMIN_ROLE_FAIL:\n return createAdminRoleFail(state, action);\n\n case actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_START:\n return updateAdminRolePageAssignmentsStart(state);\n case actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS:\n return updateAdminRolePageAssignmentsSuccess(state, action);\n case actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL:\n return updateAdminRolePageAssignmentsFail(state, action);\n\n case actionTypes.DELETE_ADMIN_ROLE_START:\n return deleteAdminRoleStart(state);\n case actionTypes.DELETE_ADMIN_ROLE_SUCCESS:\n return deleteAdminRoleSuccess(state, action);\n case actionTypes.DELETE_ADMIN_ROLE_FAIL:\n return deleteAdminRoleFail(state, action);\n\n case actionTypes.RENAME_ADMIN_ROLE_START:\n return renameAdminRoleStart(state);\n case actionTypes.RENAME_ADMIN_ROLE_SUCCESS:\n return renameAdminRoleSuccess(state, action);\n case actionTypes.RENAME_ADMIN_ROLE_FAIL:\n return renameAdminRoleFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n allowedRegistrationEmailDomains: [],\n};\n\nconst getAllowedRegistrationEmailDomainsStart = (state) => {\n return updateState(state, { error: null, loading: true, allowedRegistrationEmailDomains: [] });\n};\n\nconst getAllowedRegistrationEmailDomainsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n allowedRegistrationEmailDomains: action.allowedRegistrationEmailDomains,\n });\n};\n\nconst getAllowedRegistrationEmailDomainsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addAllowedRegistrationEmailDomainStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addAllowedRegistrationEmailDomainSuccess = (state, action) => {\n const allowedRegistrationEmailDomains = state.allowedRegistrationEmailDomains;\n allowedRegistrationEmailDomains.push(action.addedAllowedRegistrationEmailDomain);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n allowedRegistrationEmailDomains: [...allowedRegistrationEmailDomains],\n });\n};\n\nconst addAllowedRegistrationEmailDomainFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateAllowedRegistrationEmailDomainStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateAllowedRegistrationEmailDomainSuccess = (state, action) => {\n const updatedAllowedRegistrationEmailDomain = action.updatedAllowedRegistrationEmailDomain;\n const allowedRegistrationEmailDomains = state.allowedRegistrationEmailDomains;\n\n const allowedRegistrationEmailDomain = allowedRegistrationEmailDomains.find((it) => it.id == updatedAllowedRegistrationEmailDomain.id);\n if (allowedRegistrationEmailDomain) {\n allowedRegistrationEmailDomain.emailDomain = updatedAllowedRegistrationEmailDomain.emailDomain;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n allowedRegistrationEmailDomains: [...allowedRegistrationEmailDomains],\n });\n};\n\nconst updateAllowedRegistrationEmailDomainFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteAllowedRegistrationEmailDomainStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteAllowedRegistrationEmailDomainSuccess = (state, action) => {\n const deletedAllowedRegistrationEmailDomainId = action.deletedAllowedRegistrationEmailDomainId;\n console.log(\"deletedAllowedRegistrationEmailDomainId\", deletedAllowedRegistrationEmailDomainId);\n const allowedRegistrationEmailDomains = state.allowedRegistrationEmailDomains;\n\n const registrationEmailDomain = allowedRegistrationEmailDomains.find((it) => it.id == deletedAllowedRegistrationEmailDomainId);\n if (registrationEmailDomain) {\n const index = allowedRegistrationEmailDomains.indexOf(registrationEmailDomain);\n if (index !== -1) {\n allowedRegistrationEmailDomains.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n allowedRegistrationEmailDomains: [...allowedRegistrationEmailDomains],\n });\n};\n\nconst deleteAllowedRegistrationEmailDomainFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_START:\n return getAllowedRegistrationEmailDomainsStart(state);\n case actionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_SUCCESS:\n return getAllowedRegistrationEmailDomainsSuccess(state, action);\n case actionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_FAIL:\n return getAllowedRegistrationEmailDomainsFail(state, action);\n\n case actionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START:\n return addAllowedRegistrationEmailDomainStart(state);\n case actionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS:\n return addAllowedRegistrationEmailDomainSuccess(state, action);\n case actionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL:\n return addAllowedRegistrationEmailDomainFail(state, action);\n\n case actionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START:\n return updateAllowedRegistrationEmailDomainStart(state);\n case actionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS:\n return updateAllowedRegistrationEmailDomainSuccess(state, action);\n case actionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL:\n return updateAllowedRegistrationEmailDomainFail(state, action);\n\n case actionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START:\n return deleteAllowedRegistrationEmailDomainStart(state);\n case actionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS:\n return deleteAllowedRegistrationEmailDomainSuccess(state, action);\n case actionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL:\n return deleteAllowedRegistrationEmailDomainFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n badgeRequests: [],\n updatedBadgeRequest: null,\n error: null,\n loading: false,\n isUpdating: false,\n};\n\nconst getBadgeRequestsStart = (state) => {\n return updateState(state, { error: null, badgeRequests: [], loading: true });\n};\n\nconst getBadgeRequestsSuccess = (state, action) => {\n return updateState(state, {\n badgeRequests: action.badgeRequests,\n error: null,\n loading: false,\n });\n};\n\nconst getBadgeRequestsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateBadgeRequestStart = (state) => {\n return updateState(state, { error: null, isUpdating: true, updatedBadgeRequest: null });\n};\n\nconst updateBadgeRequestFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateBadgeRequestAssessorSuccess = (state, action) => {\n let badgeRequests = state.badgeRequests;\n\n const updatedBadgeRequest = badgeRequests.find((x) => x.id == action.badgeRequest.id);\n if (updatedBadgeRequest) {\n updatedBadgeRequest.status = action.badgeRequest.status;\n updatedBadgeRequest.assessorId = action.badgeRequest.assessorId;\n updatedBadgeRequest.assessorName = action.badgeRequest.assessorName;\n }\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateBadgeRequestCertificationEntriesSuccess = (state, action) => {\n let badgeRequests = state.badgeRequests;\n\n const updatedBadgeRequest = badgeRequests.find((x) => x.id == action.badgeRequest.id);\n if (updatedBadgeRequest) {\n updatedBadgeRequest.status = action.badgeRequest.status;\n updatedBadgeRequest.assessedDate = action.badgeRequest.assessedDate;\n updatedBadgeRequest.requestCertificationEntries = [...action.badgeRequest.requestCertificationEntries];\n }\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n updatedBadgeRequest: action.badgeRequest,\n error: null,\n isUpdating: false,\n });\n};\n\nconst submitBadgeRequestCertificationSuccess = (state, action) => {\n let badgeRequests = state.badgeRequests;\n\n const updatedBadgeRequest = badgeRequests.find((x) => x.id == action.badgeRequest.id);\n if (updatedBadgeRequest) {\n updatedBadgeRequest.status = action.badgeRequest.status;\n updatedBadgeRequest.assessedDate = action.badgeRequest.assessedDate;\n updatedBadgeRequest.certificationSubmitted = action.badgeRequest.certificationSubmitted;\n }\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n updatedBadgeRequest: action.badgeRequest,\n error: null,\n isUpdating: false,\n });\n};\n\nconst submitBadgeRequestCertificationsSuccess = (state, action) => {\n let badgeRequests = state.badgeRequests;\n\n action.badgeRequests.forEach((badgeRequest) => {\n const updatedBadgeRequest = badgeRequests.find((x) => x.id == badgeRequest.id);\n if (updatedBadgeRequest) {\n updatedBadgeRequest.status = badgeRequest.status;\n updatedBadgeRequest.assessedDate = badgeRequest.assessedDate;\n updatedBadgeRequest.certificationSubmitted = badgeRequest.certificationSubmitted;\n }\n });\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateBadgeRequest = (state, action) => {\n const badgeRequests = state.badgeRequests;\n const updateBadgeRequest = action.badgeRequest;\n const badgeRequest = badgeRequests.find((it) => it.id == updateBadgeRequest.id);\n if (badgeRequest) {\n badgeRequest.status = updateBadgeRequest.status;\n badgeRequest.assessorId = updateBadgeRequest.assessorId;\n badgeRequest.assessorName = updateBadgeRequest.assessorName;\n badgeRequest.assessedDate = updateBadgeRequest.assessedDate;\n badgeRequest.certificationSubmitted = updateBadgeRequest.certificationSubmitted;\n badgeRequest.requestCertificationEntries = [...updateBadgeRequest.requestCertificationEntries];\n }\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n });\n};\n\nconst rejectBadgeRequestStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst rejectBadgeRequestFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst rejectBadgeRequestSuccess = (state, action) => {\n let badgeRequests = state.badgeRequests;\n\n const rejectedBadgeRequest = badgeRequests.find((x) => x.id == action.badgeRequestId);\n if (rejectedBadgeRequest) {\n const index = badgeRequests.indexOf(rejectedBadgeRequest);\n if (index !== -1) {\n badgeRequests.splice(index, 1);\n }\n }\n\n return updateState(state, {\n badgeRequests: [...badgeRequests],\n error: null,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_BADGE_REQUESTS_START:\n return getBadgeRequestsStart(state);\n case actionTypes.GET_BADGE_REQUESTS_SUCCESS:\n return getBadgeRequestsSuccess(state, action);\n case actionTypes.GET_BADGE_REQUESTS_FAIL:\n return getBadgeRequestsFail(state, action);\n\n case actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_START:\n case actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_START:\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_START:\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_START:\n return updateBadgeRequestStart(state);\n case actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_FAIL:\n case actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_FAIL:\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_FAIL:\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_FAIL:\n return updateBadgeRequestFail(state, action);\n\n case actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_SUCCESS:\n return updateBadgeRequestAssessorSuccess(state, action);\n case actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_SUCCESS:\n return updateBadgeRequestCertificationEntriesSuccess(state, action);\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_SUCCESS:\n return submitBadgeRequestCertificationSuccess(state, action);\n case actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_SUCCESS:\n return submitBadgeRequestCertificationsSuccess(state, action);\n\n case actionTypes.UPDATE_BADGE_REQUEST:\n return updateBadgeRequest(state, action);\n\n case actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_START:\n return rejectBadgeRequestStart(state);\n case actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_FAIL:\n return rejectBadgeRequestFail(state);\n case actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_SUCCESS:\n return rejectBadgeRequestSuccess(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n capabilityLoading: false,\n levelLoading: false,\n categoryLoading: false,\n isUpdating: false,\n extraFrameworkCapabilities: [],\n extraFrameworkLevels: [],\n categories: [],\n\n exportData: null,\n loadingExport: false,\n isImporting: false,\n};\n\nconst getExtraFrameworkCapabilitiesStart = (state) => {\n return updateState(state, { error: null, capabilityLoading: true, extraFrameworkCapabilities: [] });\n};\n\nconst getExtraFrameworkCapabilitiesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n capabilityLoading: false,\n extraFrameworkCapabilities: action.extraFrameworkCapabilities,\n });\n};\n\nconst getExtraFrameworkCapabilitiesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n capabilityLoading: false,\n });\n};\n\nconst getExtraFrameworkLevelsStart = (state) => {\n return updateState(state, { error: null, levelLoading: true, extraFrameworkLevels: [] });\n};\n\nconst getExtraFrameworkLevelsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n levelLoading: false,\n extraFrameworkLevels: action.extraFrameworkLevels,\n });\n};\n\nconst getExtraFrameworkLevelsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n levelLoading: false,\n });\n};\n\nconst createExtraFrameworkLevelStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createExtraFrameworkLevelSuccess = (state, action) => {\n const extraFrameworkLevels = state.extraFrameworkLevels;\n extraFrameworkLevels.push(action.extraFrameworkLevel);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n extraFrameworkLevels: [...extraFrameworkLevels],\n });\n};\n\nconst createExtraFrameworkLevelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateExtraFrameworkLevelStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateExtraFrameworkLevelSuccess = (state, action) => {\n const extraFrameworkLevels = state.extraFrameworkLevels;\n\n const extraFrameworkLevel = extraFrameworkLevels.find((it) => it.id == action.extraFrameworkLevel.id);\n if (extraFrameworkLevel) {\n extraFrameworkLevel.level = action.extraFrameworkLevel.level;\n extraFrameworkLevel.levelNumber = action.extraFrameworkLevel.levelNumber;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n extraFrameworkLevels: [...extraFrameworkLevels],\n });\n};\n\nconst updateExtraFrameworkLevelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteExtraFrameworkLevelStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteExtraFrameworkLevelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n extraFrameworkLevels: [...action.extraFrameworkLevels],\n });\n};\n\nconst deleteExtraFrameworkLevelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst moveExtraFrameworkLevelsStart = (state) => {\n return updateState(state, { error: null, levelLoading: true });\n};\n\nconst moveExtraFrameworkLevelsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n levelLoading: false,\n extraFrameworkLevels: action.extraFrameworkLevels,\n });\n};\n\nconst moveExtraFrameworkLevelsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n levelLoading: false,\n });\n};\n\nconst getExtraFrameworkCategoriesStart = (state) => {\n return updateState(state, { error: null, categoryLoading: true, categories: [] });\n};\n\nconst getExtraFrameworkCategoriesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n categoryLoading: false,\n categories: action.categories,\n });\n};\n\nconst getExtraFrameworkCategoriesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n categoryLoading: false,\n });\n};\n\nconst createExtraFrameworkCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createExtraFrameworkCategorySuccess = (state, action) => {\n const categories = state.categories;\n categories.push(action.category);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst createExtraFrameworkCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateExtraFrameworkCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateExtraFrameworkCategorySuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.category.id);\n if (category) {\n category.name = action.category.name;\n category.description = action.category.description;\n category.colour = action.category.colour;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst updateExtraFrameworkCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteExtraFrameworkCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteExtraFrameworkCategorySuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.id);\n if (category) {\n const index = categories.indexOf(category);\n if (index !== -1) {\n categories.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst deleteExtraFrameworkCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst createExtraFrameworkSubCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createExtraFrameworkSubCategorySuccess = (state, action) => {\n const categories = state.categories;\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n if (category.subCategories) {\n category.subCategories.push(action.subCategory);\n } else {\n category.subCategories = [action.subCategory];\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst createExtraFrameworkSubCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateExtraFrameworkSubCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateExtraFrameworkSubCategorySuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategory.id);\n if (subCategory) {\n subCategory.name = action.subCategory.name;\n subCategory.description = action.subCategory.description;\n subCategory.colour = action.subCategory.colour;\n subCategory.skillColour = action.subCategory.skillColour;\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst updateExtraFrameworkSubCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteExtraFrameworkSubCategoryStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteExtraFrameworkSubCategorySuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const index = category.subCategories.indexOf(subCategory);\n if (index !== -1) {\n category.subCategories.splice(index, 1);\n }\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst deleteExtraFrameworkSubCategoryFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst createExtraFrameworkSkillStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createExtraFrameworkSkillSuccess = (state, action) => {\n const categories = state.categories;\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n if (subCategory.skills) {\n subCategory.skills.push(action.skill);\n } else {\n subCategory.skills = [action.skill];\n }\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst createExtraFrameworkSkillFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateExtraFrameworkSkillStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateExtraFrameworkSkillSuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skill.id);\n if (skill) {\n skill.name = action.skill.name;\n skill.description = action.skill.description;\n skill.skillsCode = action.skill.skillsCode;\n skill.levels = action.skill.levels;\n }\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst updateExtraFrameworkSkillFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteExtraFrameworkSkillStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteExtraFrameworkSkillSuccess = (state, action) => {\n const categories = state.categories;\n\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skillId);\n if (skill) {\n const index = subCategory.skills.indexOf(skill);\n if (index !== -1) {\n subCategory.skills.splice(index, 1);\n }\n }\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n categories: [...categories],\n });\n};\n\nconst deleteExtraFrameworkSkillFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportExtraFrameworksDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportExtraFrameworksDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportExtraFrameworksDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importExtraFrameworksDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true });\n};\n\nconst importExtraFrameworksDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importExtraFrameworksDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_START:\n return getExtraFrameworkCapabilitiesStart(state);\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS:\n return getExtraFrameworkCapabilitiesSuccess(state, action);\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL:\n return getExtraFrameworkCapabilitiesFail(state, action);\n\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_START:\n return getExtraFrameworkLevelsStart(state);\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_SUCCESS:\n return getExtraFrameworkLevelsSuccess(state, action);\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_FAIL:\n return getExtraFrameworkLevelsFail(state, action);\n\n case actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_START:\n return createExtraFrameworkLevelStart(state);\n case actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_SUCCESS:\n return createExtraFrameworkLevelSuccess(state, action);\n case actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_FAIL:\n return createExtraFrameworkLevelFail(state, action);\n\n case actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_START:\n return updateExtraFrameworkLevelStart(state);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_SUCCESS:\n return updateExtraFrameworkLevelSuccess(state, action);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_FAIL:\n return updateExtraFrameworkLevelFail(state, action);\n\n case actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_START:\n return deleteExtraFrameworkLevelStart(state);\n case actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_SUCCESS:\n return deleteExtraFrameworkLevelSuccess(state, action);\n case actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_FAIL:\n return deleteExtraFrameworkLevelFail(state, action);\n\n case actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_START:\n return moveExtraFrameworkLevelsStart(state);\n case actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_SUCCESS:\n return moveExtraFrameworkLevelsSuccess(state, action);\n case actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_FAIL:\n return moveExtraFrameworkLevelsFail(state, action);\n\n case actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_START:\n return getExtraFrameworkCategoriesStart(state);\n case actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_SUCCESS:\n return getExtraFrameworkCategoriesSuccess(state, action);\n case actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_FAIL:\n return getExtraFrameworkCategoriesFail(state, action);\n\n case actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_START:\n return createExtraFrameworkCategoryStart(state);\n case actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS:\n return createExtraFrameworkCategorySuccess(state, action);\n case actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_FAIL:\n return createExtraFrameworkCategoryFail(state, action);\n\n case actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_START:\n return updateExtraFrameworkCategoryStart(state);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS:\n return updateExtraFrameworkCategorySuccess(state, action);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_FAIL:\n return updateExtraFrameworkCategoryFail(state, action);\n\n case actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_START:\n return deleteExtraFrameworkCategoryStart(state);\n case actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_SUCCESS:\n return deleteExtraFrameworkCategorySuccess(state, action);\n case actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_FAIL:\n return deleteExtraFrameworkCategoryFail(state, action);\n\n case actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_START:\n return createExtraFrameworkSubCategoryStart(state);\n case actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS:\n return createExtraFrameworkSubCategorySuccess(state, action);\n case actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL:\n return createExtraFrameworkSubCategoryFail(state, action);\n\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_START:\n return updateExtraFrameworkSubCategoryStart(state);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS:\n return updateExtraFrameworkSubCategorySuccess(state, action);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL:\n return updateExtraFrameworkSubCategoryFail(state, action);\n\n case actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_START:\n return deleteExtraFrameworkSubCategoryStart(state);\n case actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS:\n return deleteExtraFrameworkSubCategorySuccess(state, action);\n case actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL:\n return deleteExtraFrameworkSubCategoryFail(state, action);\n\n case actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_START:\n return createExtraFrameworkSkillStart(state);\n case actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_SUCCESS:\n return createExtraFrameworkSkillSuccess(state, action);\n case actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_FAIL:\n return createExtraFrameworkSkillFail(state, action);\n\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_START:\n return updateExtraFrameworkSkillStart(state);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_SUCCESS:\n return updateExtraFrameworkSkillSuccess(state, action);\n case actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_FAIL:\n return updateExtraFrameworkSkillFail(state, action);\n\n case actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_START:\n return deleteExtraFrameworkSkillStart(state);\n case actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_SUCCESS:\n return deleteExtraFrameworkSkillSuccess(state, action);\n case actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_FAIL:\n return deleteExtraFrameworkSkillFail(state, action);\n\n case actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_START:\n return exportExtraFrameworksDataExcelStart(state);\n case actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_SUCCESS:\n return exportExtraFrameworksDataExcelSuccess(state, action);\n case actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_FAIL:\n return exportExtraFrameworksDataExcelFail(state, action);\n\n case actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_START:\n return importExtraFrameworksDataExcelStart(state);\n case actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_SUCCESS:\n return importExtraFrameworksDataExcelSuccess(state, action);\n case actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_FAIL:\n return importExtraFrameworksDataExcelFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n brandingLogoFound: false,\n favIconFound: false,\n};\n\nconst getCompanyBrandingLogoStart = (state) => {\n return updateState(state, { error: null, loading: true, brandingLogoFound: false });\n};\n\nconst getCompanyBrandingLogoSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n brandingLogoFound: true,\n });\n};\n\nconst getCompanyBrandingLogoFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateCompanyBrandingLogoStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateCompanyBrandingLogoSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateCompanyBrandingLogoFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getCompanyFavIconStart = (state) => {\n return updateState(state, { error: null, loading: true, favIconFound: false });\n};\n\nconst getCompanyFavIconSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n favIconFound: true,\n });\n};\n\nconst getCompanyFavIconFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateCompanyFavIconStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateCompanyFavIconSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateCompanyFavIconFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_START:\n return getCompanyBrandingLogoStart(state);\n case actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_SUCCESS:\n return getCompanyBrandingLogoSuccess(state, action);\n case actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_FAIL:\n return getCompanyBrandingLogoFail(state, action);\n\n case actionTypes.UPDATE_COMPANY_BRANDING_LOGO_START:\n return updateCompanyBrandingLogoStart(state);\n case actionTypes.UPDATE_COMPANY_BRANDING_LOGO_SUCCESS:\n return updateCompanyBrandingLogoSuccess(state, action);\n case actionTypes.UPDATE_COMPANY_BRANDING_LOGO_FAIL:\n return updateCompanyBrandingLogoFail(state, action);\n\n case actionTypes.GET_ADMIN_COMPANY_FAVICON_START:\n return getCompanyFavIconStart(state);\n case actionTypes.GET_ADMIN_COMPANY_FAVICON_SUCCESS:\n return getCompanyFavIconSuccess(state, action);\n case actionTypes.GET_ADMIN_COMPANY_FAVICON_FAIL:\n return getCompanyFavIconFail(state, action);\n\n case actionTypes.UPDATE_COMPANY_FAVICON_START:\n return updateCompanyFavIconStart(state);\n case actionTypes.UPDATE_COMPANY_FAVICON_SUCCESS:\n return updateCompanyFavIconSuccess(state, action);\n case actionTypes.UPDATE_COMPANY_FAVICON_FAIL:\n return updateCompanyFavIconFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n pages: [],\n contents: [],\n contentTranslations: [],\n printData: null,\n loadingPrint: false,\n isImporting: false,\n};\n\nconst getContentPagesStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getContentPagesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n pages: action.pages,\n });\n};\n\nconst getContentPagesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getContentsStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getContentsSuccess = (state, action) => {\n const filterContents = [\n \"SfiaProfileStep1Description\",\n \"SfiaProfileStep1Hover\",\n \"SfiaProfileStep2Description\",\n \"SfiaProfileStep2Hover\",\n \"SfiaProfileStep3Description\",\n \"SfiaProfileStep3Hover\",\n \"SfiaPlanStep1Description\",\n \"SfiaPlanStep1Hover\",\n \"SfiaPlanStep2Description\",\n \"SfiaPlanStep2Hover\",\n \"SfiaPlanStep3Description\",\n \"SfiaPlanStep3Hover\",\n ];\n const contents = action.contents.filter((it) => filterContents.includes(it.name));\n return updateState(state, {\n error: null,\n loading: false,\n contents: [...contents],\n });\n};\n\nconst getContentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getContentTranslationsStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getContentTranslationsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n translations: action.translations,\n });\n};\n\nconst getContentTranslationsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createContentTranslationStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createContentTranslationSuccess = (state, action) => {\n const contents = state.contents;\n contents.push(action.addedContent);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n contents: [...contents],\n });\n};\n\nconst createContentTranslationFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateContentTranslationStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateContentTranslationSuccess = (state, action) => {\n const updatedContent = action.updatedContent;\n const contents = state.contents;\n\n const content = contents.find((it) => it.id == updatedContent.id);\n if (content) {\n content.contentId = updatedContent.contentId;\n content.contentTranslationId = updatedContent.contentTranslationId;\n content.page = updatedContent.page;\n content.name = updatedContent.name;\n content.contentText = updatedContent.contentText;\n content.contentTextTranslation = updatedContent.contentTextTranslation;\n content.languageId = updatedContent.languageId;\n content.language = updatedContent.language;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n contents: [...contents],\n });\n};\n\nconst updateContentTranslationFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportContentTranslationsExcelStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst exportContentTranslationsExcelSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst exportContentTranslationsExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst importContentTranslationsExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true });\n};\n\nconst importContentTranslationsExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importContentTranslationsExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_CONTENT_PAGES_START:\n return getContentPagesStart(state);\n case actionTypes.GET_CONTENT_PAGES_SUCCESS:\n return getContentPagesSuccess(state, action);\n case actionTypes.GET_CONTENT_PAGES_FAIL:\n return getContentPagesFail(state, action);\n\n case actionTypes.GET_CONTENTS_START:\n return getContentsStart(state);\n case actionTypes.GET_CONTENTS_SUCCESS:\n return getContentsSuccess(state, action);\n case actionTypes.GET_CONTENTS_FAIL:\n return getContentsFail(state, action);\n\n case actionTypes.GET_CONTENT_TRANSLATIONS_START:\n return getContentTranslationsStart(state);\n case actionTypes.GET_CONTENT_TRANSLATIONS_SUCCESS:\n return getContentTranslationsSuccess(state, action);\n case actionTypes.GET_CONTENT_TRANSLATIONS_FAIL:\n return getContentTranslationsFail(state, action);\n\n case actionTypes.EXPORT_CONTENT_TRANSLATIONS_START:\n return exportContentTranslationsExcelStart(state);\n case actionTypes.EXPORT_CONTENT_TRANSLATIONS_SUCCESS:\n return exportContentTranslationsExcelSuccess(state, action);\n case actionTypes.EXPORT_CONTENT_TRANSLATIONS_FAIL:\n return exportContentTranslationsExcelFail(state, action);\n\n case actionTypes.IMPORT_CONTENT_TRANSLATIONS_START:\n return importContentTranslationsExcelStart(state);\n case actionTypes.IMPORT_CONTENT_TRANSLATIONS_SUCCESS:\n return importContentTranslationsExcelSuccess(state, action);\n case actionTypes.IMPORT_CONTENT_TRANSLATIONS_FAIL:\n return importContentTranslationsExcelFail(state, action);\n\n case actionTypes.CREATE_CONTENT_TRANSLATION_START:\n return createContentTranslationStart(state);\n case actionTypes.CREATE_CONTENT_TRANSLATION_SUCCESS:\n return createContentTranslationSuccess(state, action);\n case actionTypes.CREATE_CONTENT_TRANSLATION_FAIL:\n return createContentTranslationFail(state, action);\n\n case actionTypes.UPDATE_CONTENT_TRANSLATION_START:\n return updateContentTranslationStart(state);\n case actionTypes.UPDATE_CONTENT_TRANSLATION_SUCCESS:\n return updateContentTranslationSuccess(state, action);\n case actionTypes.UPDATE_CONTENT_TRANSLATION_FAIL:\n return updateContentTranslationFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/adminActionTypes\";\n\nimport { updateState } from \"../../utility\";\n\nconst initialState = {\n emailTemplateTypes: [],\n emailTemplate: null,\n error: null,\n loading: false,\n isUpdating: false,\n};\n\nconst getEmailTemplateTypesStart = (state) => {\n return updateState(state, { error: null, emailTemplateTypes: [], loading: true });\n};\n\nconst getEmailTemplateTypesSuccess = (state, action) => {\n return updateState(state, {\n emailTemplateTypes: action.emailTemplateTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getEmailTemplateTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getEmailTemplateByTypeStart = (state) => {\n return updateState(state, { error: null, emailTemplate: null, loading: true });\n};\n\nconst getEmailTemplateByTypeSuccess = (state, action) => {\n return updateState(state, {\n emailTemplate: action.emailTemplate,\n error: null,\n loading: false,\n });\n};\n\nconst getEmailTemplateByTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createUpdateEmailTemplateStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createUpdateEmailTemplateSuccess = (state, action) => {\n return updateState(state, {\n emailTemplate: action.emailTemplate,\n error: null,\n isUpdating: false,\n });\n};\n\nconst createUpdateEmailTemplateFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_EMAIL_TEMPLATE_TYPES_START:\n return getEmailTemplateTypesStart(state);\n case actionTypes.GET_EMAIL_TEMPLATE_TYPES_SUCCESS:\n return getEmailTemplateTypesSuccess(state, action);\n case actionTypes.GET_EMAIL_TEMPLATE_TYPES_FAIL:\n return getEmailTemplateTypesFail(state, action);\n\n case actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_START:\n return getEmailTemplateByTypeStart(state);\n case actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_SUCCESS:\n return getEmailTemplateByTypeSuccess(state, action);\n case actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_FAIL:\n return getEmailTemplateByTypeFail(state, action);\n\n case actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_START:\n return createUpdateEmailTemplateStart(state);\n case actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS:\n return createUpdateEmailTemplateSuccess(state, action);\n case actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_FAIL:\n return createUpdateEmailTemplateFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n evidenceTypes: [],\n};\n\nconst getEvidenceTypesStart = (state) => {\n return updateState(state, { error: null, loading: true, evidenceTypes: [] });\n};\n\nconst getEvidenceTypesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n evidenceTypes: action.evidenceTypes,\n });\n};\n\nconst getEvidenceTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addEvidenceTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addEvidenceTypeSuccess = (state, action) => {\n const evidenceTypes = state.evidenceTypes;\n evidenceTypes.push(action.addedEvidenceType);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n evidenceTypes: [...evidenceTypes],\n });\n};\n\nconst addEvidenceTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateEvidenceTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateEvidenceTypeSuccess = (state, action) => {\n const updatedEvidenceType = action.updatedEvidenceType;\n const evidenceTypes = state.evidenceTypes;\n\n const evidenceType = evidenceTypes.find((it) => it.id == updatedEvidenceType.id);\n if (evidenceType) {\n evidenceType.name = updatedEvidenceType.name;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n evidenceTypes: [...evidenceTypes],\n });\n};\n\nconst updateEvidenceTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteEvidenceTypeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteEvidenceTypeSuccess = (state, action) => {\n const deletedEvidenceTypeId = action.deletedEvidenceTypeId;\n const evidenceTypes = state.evidenceTypes;\n\n const evidenceType = evidenceTypes.find((it) => it.id == deletedEvidenceTypeId);\n if (evidenceType) {\n const index = evidenceTypes.indexOf(evidenceType);\n if (index !== -1) {\n evidenceTypes.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n evidenceTypes: [...evidenceTypes],\n });\n};\n\nconst deleteEvidenceTypeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_EVIDENCETYPES_START:\n return getEvidenceTypesStart(state);\n case actionTypes.GET_EVIDENCETYPES_SUCCESS:\n return getEvidenceTypesSuccess(state, action);\n case actionTypes.GET_EVIDENCETYPES_FAIL:\n return getEvidenceTypesFail(state, action);\n\n case actionTypes.ADD_EVIDENCETYPE_START:\n return addEvidenceTypeStart(state);\n case actionTypes.ADD_EVIDENCETYPE_SUCCESS:\n return addEvidenceTypeSuccess(state, action);\n case actionTypes.ADD_EVIDENCETYPE_FAIL:\n return addEvidenceTypeFail(state, action);\n\n case actionTypes.UPDATE_EVIDENCETYPE_START:\n return updateEvidenceTypeStart(state);\n case actionTypes.UPDATE_EVIDENCETYPE_SUCCESS:\n return updateEvidenceTypeSuccess(state, action);\n case actionTypes.UPDATE_EVIDENCETYPE_FAIL:\n return updateEvidenceTypeFail(state, action);\n\n case actionTypes.DELETE_EVIDENCETYPE_START:\n return deleteEvidenceTypeStart(state);\n case actionTypes.DELETE_EVIDENCETYPE_SUCCESS:\n return deleteEvidenceTypeSuccess(state, action);\n case actionTypes.DELETE_EVIDENCETYPE_FAIL:\n return deleteEvidenceTypeFail(state, action); \n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n interventions: [],\n actionPromotions: [],\n numberActiveActionPromotions: null,\n\n exportData: null,\n loadingExport: false,\n isImporting: false,\n};\n\nconst getInterventionsStart = (state) => {\n return updateState(state, { error: null, loading: true, interventions: [] });\n};\n\nconst getInterventionsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n interventions: action.interventions,\n });\n};\n\nconst getInterventionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addInterventionStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addInterventionSuccess = (state, action) => {\n const interventions = state.interventions;\n interventions.push(action.addedIntervention);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst addInterventionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateInterventionStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateInterventionSuccess = (state, action) => {\n const updatedIntervention = action.updatedIntervention;\n const interventions = state.interventions;\n\n const intervention = interventions.find((it) => it.id == updatedIntervention.id);\n if (intervention) {\n intervention.companyId = updatedIntervention.companyId;\n intervention.company = updatedIntervention.company;\n intervention.actionType = updatedIntervention.actionType;\n intervention.name = updatedIntervention.name;\n intervention.description = updatedIntervention.description;\n intervention.isActive = updatedIntervention.isActive;\n intervention.duration = updatedIntervention.duration;\n intervention.durationHours = updatedIntervention.durationHours;\n intervention.link = updatedIntervention.link;\n intervention.versionNumber = updatedIntervention.versionNumber;\n intervention.publishedOn = updatedIntervention.publishedOn;\n intervention.retireOn = updatedIntervention.retireOn;\n intervention.reviewOn = updatedIntervention.reviewOn;\n intervention.isValidated = updatedIntervention.isValidated;\n intervention.sfiaVersion = updatedIntervention.sfiaVersion;\n intervention.levels = updatedIntervention.levels;\n intervention.lorLevels = updatedIntervention.lorLevels;\n intervention.badgeIssuer = updatedIntervention.badgeIssuer;\n intervention.preLoadToNewUser = updatedIntervention.preLoadToNewUser;\n intervention.targetCompletionDays = updatedIntervention.targetCompletionDays;\n intervention.createdAsInactive = updatedIntervention.createdAsInactive;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst updateInterventionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteInterventionStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteInterventionSuccess = (state, action) => {\n const deletedInterventionId = action.deletedInterventionId;\n const interventions = state.interventions;\n\n const intervention = interventions.find((it) => it.id == deletedInterventionId);\n if (intervention) {\n const index = interventions.indexOf(intervention);\n if (index !== -1) {\n interventions.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst deleteInterventionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteInterventionsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteInterventionsSuccess = (state, action) => {\n const deletedInterventionIds = action.deletedInterventionIds;\n const interventions = state.interventions;\n\n deletedInterventionIds.map((deletedInterventionId) => {\n const intervention = interventions.find((it) => it.id == deletedInterventionId);\n if (intervention) {\n const index = interventions.indexOf(intervention);\n if (index !== -1) {\n interventions.splice(index, 1);\n }\n }\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst deleteInterventionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportInterventionsDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportInterventionsDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportInterventionsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importInterventionsDataExcelStart = (state) => {\n return updateState(state, {\n error: null,\n isImporting: true,\n //addedJobImports: []\n });\n};\n\nconst importInterventionsDataExcelSuccess = (state, action) => {\n // let jobImportQueue = state.jobImportQueue;\n // const addedJobImportQueue = action.addedJobImportQueue;\n\n return updateState(state, {\n error: null,\n isImporting: false,\n //addedJobImports: addedJobImportQueue,\n });\n};\n\nconst importInterventionsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst assignInterventionJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst assignInterventionJobSuccess = (state, action) => {\n const addedInterventionJob = action.addedInterventionJob;\n const interventions = state.interventions;\n\n const intervention = interventions.find((it) => it.id == addedInterventionJob.interventionId);\n if (intervention) {\n intervention.jobs.push(addedInterventionJob);\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst assignInterventionJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteInterventionJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteInterventionJobSuccess = (state, action) => {\n const deletedInterventionJobId = action.deletedInterventionJobId;\n const interventions = state.interventions;\n\n const intervention = interventions.find((it) => it.jobs.find((it) => it.id == deletedInterventionJobId));\n const interventionJob = intervention.jobs.find((it) => it.id == deletedInterventionJobId);\n if (interventionJob) {\n const index = intervention.jobs.indexOf(interventionJob);\n if (index !== -1) {\n intervention.jobs.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst deleteInterventionJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteInterventionJobsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteInterventionJobsSuccess = (state, action) => {\n const deletedInterventionJobIds = action.deletedInterventionJobIds;\n const interventions = state.interventions;\n\n deletedInterventionJobIds.forEach((deletedInterventionJobId) => {\n const intervention = interventions.find((it) => it.jobs.find((it) => it.id == deletedInterventionJobId));\n const interventionJob = intervention.jobs.find((it) => it.id == deletedInterventionJobId);\n if (interventionJob) {\n const index = intervention.jobs.indexOf(interventionJob);\n if (index !== -1) {\n intervention.jobs.splice(index, 1);\n }\n }\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n interventions: [...interventions],\n });\n};\n\nconst deleteInterventionJobsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getNumberActiveActionPromotionsStart = (state) => {\n return updateState(state, { error: null, numberActiveActionPromotions: null });\n};\n\nconst getNumberActiveActionPromotionsSuccess = (state, action) => {\n return updateState(state, {\n numberActiveActionPromotions: action.numberActiveActionPromotions,\n error: null,\n });\n};\n\nconst getNumberActiveActionPromotionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n });\n};\n\nconst getActionPromotionsStart = (state) => {\n return updateState(state, { error: null, actionPromotions: [], loading: true });\n};\n\nconst getActionPromotionsSuccess = (state, action) => {\n return updateState(state, {\n actionPromotions: action.actionPromotions,\n error: null,\n loading: false,\n });\n};\n\nconst getActionPromotionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateActionPromotionStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateActionPromotionSuccess = (state, action) => {\n const updatedActionPromotion = action.updatedActionPromotion;\n const actionPromotions = state.actionPromotions;\n\n const actionPromotion = actionPromotions.find((it) => it.id == updatedActionPromotion.id);\n if (actionPromotion) {\n actionPromotion.status = updatedActionPromotion.status;\n actionPromotion.actionType = updatedActionPromotion.actionType;\n actionPromotion.name = updatedActionPromotion.name;\n actionPromotion.description = updatedActionPromotion.description;\n actionPromotion.isActive = updatedActionPromotion.isActive;\n actionPromotion.duration = updatedActionPromotion.duration;\n actionPromotion.durationHours = updatedActionPromotion.durationHours;\n actionPromotion.link = updatedActionPromotion.link;\n actionPromotion.levels = updatedActionPromotion.levels;\n actionPromotion.lorLevels = updatedActionPromotion.lorLevels;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n actionPromotions: [...actionPromotions],\n });\n};\n\nconst updateActionPromotionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_INTERVENTIONS_START:\n return getInterventionsStart(state);\n case actionTypes.GET_INTERVENTIONS_SUCCESS:\n return getInterventionsSuccess(state, action);\n case actionTypes.GET_INTERVENTIONS_FAIL:\n return getInterventionsFail(state, action);\n\n case actionTypes.ADD_INTERVENTION_START:\n return addInterventionStart(state);\n case actionTypes.ADD_INTERVENTION_SUCCESS:\n return addInterventionSuccess(state, action);\n case actionTypes.ADD_INTERVENTION_FAIL:\n return addInterventionFail(state, action);\n\n case actionTypes.UPDATE_INTERVENTION_START:\n return updateInterventionStart(state);\n case actionTypes.UPDATE_INTERVENTION_SUCCESS:\n return updateInterventionSuccess(state, action);\n case actionTypes.UPDATE_INTERVENTION_FAIL:\n return updateInterventionFail(state, action);\n\n case actionTypes.DELETE_INTERVENTION_START:\n return deleteInterventionStart(state);\n case actionTypes.DELETE_INTERVENTION_SUCCESS:\n return deleteInterventionSuccess(state, action);\n case actionTypes.DELETE_INTERVENTION_FAIL:\n return deleteInterventionFail(state, action);\n\n case actionTypes.DELETE_INTERVENTIONS_START:\n return deleteInterventionsStart(state);\n case actionTypes.DELETE_INTERVENTIONS_SUCCESS:\n return deleteInterventionsSuccess(state, action);\n case actionTypes.DELETE_INTERVENTIONS_FAIL:\n return deleteInterventionsFail(state, action);\n\n case actionTypes.EXPORT_INTERVENTIONS_DATA_START:\n return exportInterventionsDataExcelStart(state);\n case actionTypes.EXPORT_INTERVENTIONS_DATA_SUCCESS:\n return exportInterventionsDataExcelSuccess(state, action);\n case actionTypes.EXPORT_INTERVENTIONS_DATA_FAIL:\n return exportInterventionsDataExcelFail(state, action);\n\n case actionTypes.IMPORT_INTERVENTIONS_DATA_START:\n return importInterventionsDataExcelStart(state);\n case actionTypes.IMPORT_INTERVENTIONS_DATA_SUCCESS:\n return importInterventionsDataExcelSuccess(state, action);\n case actionTypes.IMPORT_INTERVENTIONS_DATA_FAIL:\n return importInterventionsDataExcelFail(state, action);\n\n case actionTypes.ASSIGN_INTERVENTION_JOB_START:\n return assignInterventionJobStart(state);\n case actionTypes.ASSIGN_INTERVENTION_JOB_SUCCESS:\n return assignInterventionJobSuccess(state, action);\n case actionTypes.ASSIGN_INTERVENTION_JOB_FAIL:\n return assignInterventionJobFail(state, action);\n\n case actionTypes.DELETE_INTERVENTION_JOB_START:\n return deleteInterventionJobStart(state);\n case actionTypes.DELETE_INTERVENTION_JOB_SUCCESS:\n return deleteInterventionJobSuccess(state, action);\n case actionTypes.DELETE_INTERVENTION_JOB_FAIL:\n return deleteInterventionJobFail(state, action);\n\n case actionTypes.DELETE_INTERVENTION_JOBS_START:\n return deleteInterventionJobsStart(state);\n case actionTypes.DELETE_INTERVENTION_JOBS_SUCCESS:\n return deleteInterventionJobsSuccess(state, action);\n case actionTypes.DELETE_INTERVENTION_JOBS_FAIL:\n return deleteInterventionJobsFail(state, action);\n\n case actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_START:\n return getNumberActiveActionPromotionsStart(state);\n case actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_SUCCESS:\n return getNumberActiveActionPromotionsSuccess(state, action);\n case actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_FAIL:\n return getNumberActiveActionPromotionsFail(state, action);\n\n case actionTypes.GET_ACTION_PROMOTIONS_START:\n return getActionPromotionsStart(state);\n case actionTypes.GET_ACTION_PROMOTIONS_SUCCESS:\n return getActionPromotionsSuccess(state, action);\n case actionTypes.GET_ACTION_PROMOTIONS_FAIL:\n return getActionPromotionsFail(state, action);\n\n case actionTypes.UPDATE_ACTION_PROMOTION_START:\n case actionTypes.ACCEPT_ACTION_PROMOTION_START:\n case actionTypes.DECLINE_ACTION_PROMOTION_START:\n return updateActionPromotionStart(state);\n case actionTypes.UPDATE_ACTION_PROMOTION_SUCCESS:\n case actionTypes.ACCEPT_ACTION_PROMOTION_SUCCESS:\n case actionTypes.DECLINE_ACTION_PROMOTION_SUCCESS:\n return updateActionPromotionSuccess(state, action);\n case actionTypes.UPDATE_ACTION_PROMOTION_FAIL:\n case actionTypes.ACCEPT_ACTION_PROMOTION_FAIL:\n case actionTypes.DECLINE_ACTION_PROMOTION_FAIL:\n return updateActionPromotionFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n mentorPreferences: [],\n};\n\nconst getMentorPreferencesStart = (state) => {\n return updateState(state, { error: null, loading: true, mentorPreferences: [] });\n};\n\nconst getMentorPreferencesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n mentorPreferences: action.mentorPreferences,\n });\n};\n\nconst getMentorPreferencesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addMentorPreferenceStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addMentorPreferenceSuccess = (state, action) => {\n const mentorPreferences = state.mentorPreferences;\n mentorPreferences.push(action.addedMentorPreference);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n mentorPreferences: [...mentorPreferences],\n });\n};\n\nconst addMentorPreferenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateMentorPreferenceStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateMentorPreferenceSuccess = (state, action) => {\n const updatedMentorPreference = action.updatedMentorPreference;\n const mentorPreferences = state.mentorPreferences;\n\n const mentorPreference = mentorPreferences.find((it) => it.id == updatedMentorPreference.id);\n if (mentorPreference) {\n mentorPreference.preference = updatedMentorPreference.preference;\n mentorPreference.selected = updatedMentorPreference.selected;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n mentorPreferences: [...mentorPreferences],\n });\n};\n\nconst updateMentorPreferenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteMentorPreferenceStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteMentorPreferenceSuccess = (state, action) => {\n const deletedMentorPreferenceId = action.deletedMentorPreferenceId;\n const mentorPreferences = state.mentorPreferences;\n\n const mentorPreference = mentorPreferences.find((it) => it.id == deletedMentorPreferenceId);\n if (mentorPreference) {\n const index = mentorPreferences.indexOf(mentorPreference);\n if (index !== -1) {\n mentorPreferences.splice(index, 1);\n }\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n mentorPreferences: [...mentorPreferences],\n });\n};\n\nconst deleteMentorPreferenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_MENTOR_PREFERENCES_START:\n return getMentorPreferencesStart(state);\n case actionTypes.GET_MENTOR_PREFERENCES_SUCCESS:\n return getMentorPreferencesSuccess(state, action);\n case actionTypes.GET_MENTOR_PREFERENCES_FAIL:\n return getMentorPreferencesFail(state, action);\n\n case actionTypes.ADD_MENTOR_PREFERENCE_START:\n return addMentorPreferenceStart(state);\n case actionTypes.ADD_MENTOR_PREFERENCE_SUCCESS:\n return addMentorPreferenceSuccess(state, action);\n case actionTypes.ADD_MENTOR_PREFERENCE_FAIL:\n return addMentorPreferenceFail(state, action);\n\n case actionTypes.UPDATE_MENTOR_PREFERENCE_START:\n return updateMentorPreferenceStart(state);\n case actionTypes.UPDATE_MENTOR_PREFERENCE_SUCCESS:\n return updateMentorPreferenceSuccess(state, action);\n case actionTypes.UPDATE_MENTOR_PREFERENCE_FAIL:\n return updateMentorPreferenceFail(state, action);\n\n case actionTypes.DELETE_MENTOR_PREFERENCE_START:\n return deleteMentorPreferenceStart(state);\n case actionTypes.DELETE_MENTOR_PREFERENCE_SUCCESS:\n return deleteMentorPreferenceSuccess(state, action);\n case actionTypes.DELETE_MENTOR_PREFERENCE_FAIL:\n return deleteMentorPreferenceFail(state, action); \n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nvar _ = require(\"lodash\");\nconst initialState = {\n persons: [],\n personsAdmin: [],\n personsDropdown: null,\n error: null,\n loading: false,\n updatedRoles: [],\n isUpdating: false,\n printData: null,\n loadingPrint: false,\n isImporting: false,\n message: null,\n roleUpdating: false,\n resetPasswordSent: false,\n pageAssignments: null,\n personPageAssignments: null,\n columnDisplaySettings: null,\n columnDisplaySettingLoadings: [],\n copyProfileRequests: [],\n};\n\nconst getPersonsStart = (state) => {\n return updateState(state, { error: null, persons: [], loading: true });\n};\n\nconst getPersonsSuccess = (state, action) => {\n return updateState(state, {\n persons: action.persons,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getPersonsAdminStart = (state) => {\n return updateState(state, { error: null, personsAdmin: [], loading: true });\n};\n\nconst getPersonsAdminSuccess = (state, action) => {\n return updateState(state, {\n personsAdmin: action.persons,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonsAdminFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getPersonsDropdownStart = (state) => {\n return updateState(state, { error: null, personsDropdown: [], loading: true });\n};\n\nconst getPersonsDropdownSuccess = (state, action) => {\n return updateState(state, {\n personsDropdown: action.persons,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonsDropdownFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst addPersonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addPersonSuccess = (state, action) => {\n const persons = state.persons;\n\n return updateState(state, {\n persons: [...persons, action.person],\n error: null,\n isUpdating: false,\n });\n};\n\nconst addPersonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updatePersonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updatePersonSuccess = (state, action) => {\n let persons = state.persons;\n\n const updatedPerson = persons.find((x) => x.id == action.person.id);\n if (updatedPerson) {\n updatedPerson.firstName = action.person.firstName;\n updatedPerson.lastName = action.person.lastName;\n updatedPerson.email = action.person.email;\n updatedPerson.salutation = action.person.salutation;\n updatedPerson.position = action.person.position;\n updatedPerson.inactive = action.person.inactive;\n updatedPerson.personType = action.person.personType;\n updatedPerson.accessGroup = action.person.accessGroup;\n updatedPerson.allowNotifications = action.person.allowNotifications;\n updatedPerson.lastActivityOn = action.person.lastActivityOn;\n updatedPerson.lastActivitySystem = action.person.lastActivitySystem;\n updatedPerson.createdOn = action.person.createdOn;\n updatedPerson.countryCode = action.person.countryCode;\n updatedPerson.country = action.person.country;\n updatedPerson.location = action.person.location;\n updatedPerson.selfAssessmentReason = action.person.selfAssessmentReason;\n updatedPerson.encryptedId = action.person.encryptedId;\n updatedPerson.team = action.person.team;\n updatedPerson.usePreferredName = action.person.usePreferredName;\n updatedPerson.other = action.person.other;\n updatedPerson.department = action.person.department;\n updatedPerson.businessUnit = action.person.businessUnit;\n updatedPerson.division = action.person.division;\n updatedPerson.territory = action.person.territory;\n updatedPerson.costCentre = action.person.costCentre;\n updatedPerson.supervisor = action.person.supervisor;\n updatedPerson.validatedDate = action.person.validatedDate;\n updatedPerson.isCandidate = action.person.isCandidate;\n updatedPerson.isAnalyticsUser = action.person.isAnalyticsUser;\n updatedPerson.leaveOn = action.person.leaveOn;\n updatedPerson.accounts = action.person.accounts;\n updatedPerson.teams = action.person.teams;\n updatedPerson.profilePictureUrl = action.person.profilePictureUrl;\n updatedPerson.activityStatementInterval = action.person.activityStatementInterval;\n updatedPerson.lastUpdatedOn = action.person.lastUpdatedOn;\n updatedPerson.lastUpdatedVersion = action.person.lastUpdatedVersion;\n updatedPerson.latestAssessmentId = action.person.latestAssessmentId;\n updatedPerson.cartridgeId = action.person.cartridgeId;\n updatedPerson.hasOutstandingAction = action.person.hasOutstandingAction;\n updatedPerson.roles = action.person.roles;\n updatedPerson.groups = action.person.groups;\n updatedPerson.invitationEmailMessageId = action.person.invitationEmailMessageId;\n updatedPerson.invitationEmailMessageStatus = action.person.invitationEmailMessageStatus;\n updatedPerson.invitationEmailMessageReason = action.person.invitationEmailMessageReason;\n\n updatedPerson.miscellaneous1 = action.person.miscellaneous1;\n updatedPerson.miscellaneous2 = action.person.miscellaneous2;\n updatedPerson.miscellaneous3 = action.person.miscellaneous3;\n updatedPerson.miscellaneous4 = action.person.miscellaneous4;\n updatedPerson.miscellaneous5 = action.person.miscellaneous5;\n\n updatedPerson.skipSelfAssessmentSurvey = action.person.skipSelfAssessmentSurvey;\n updatedPerson.roleBasedSurveyId = action.person.roleBasedSurveyId;\n updatedPerson.roleBasedSurvey = action.person.roleBasedSurvey;\n updatedPerson.isContractor = action.person.isContractor;\n updatedPerson.isMentorIneligible = action.person.isMentorIneligible;\n updatedPerson.fte = action.person.fte;\n }\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updatePersonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deletePersonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deletePersonSuccess = (state, action) => {\n let persons = state.persons;\n\n const deletedPerson = persons.find((it) => it.id == action.id);\n\n if (deletedPerson) {\n const index = persons.indexOf(deletedPerson);\n if (index !== -1) {\n persons.splice(index, 1);\n }\n }\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst deletePersonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst resetPersonPasswordStart = (state) => {\n return updateState(state, { error: null, resetPasswordSent: false });\n};\n\nconst resetPersonPasswordSuccess = (state, action) => {\n let persons = state.persons;\n\n const updatedPerson = persons.find((x) => x.id == action.id);\n if (updatedPerson) {\n updatedPerson.resetPasswordRequested = true;\n }\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n resetPasswordSent: true,\n });\n};\n\nconst resetPersonPasswordFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n resetPasswordSent: false,\n });\n};\n\nconst exportPersonsDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst exportPersonsDataExcelSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst exportPersonsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst updatePersonRoleStart = (state) => {\n return updateState(state, { error: null, updatedRoles: [], roleUpdating: true });\n};\n\nconst updatePersonRoleSuccess = (state, action) => {\n const updatedRoles = action.roles;\n let personId = null;\n if (updatedRoles && updatedRoles.length > 0) {\n personId = updatedRoles[0].personId;\n }\n\n let persons = state.persons;\n\n let updatedPerson = persons.find((x) => x.id == personId);\n if (updatedPerson) {\n updatedPerson.roles = [...updatedRoles];\n }\n\n return updateState(state, {\n updatedRoles: action.roles,\n persons: [...persons],\n error: null,\n roleUpdating: false,\n });\n};\n\nconst updatePersonRoleFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n roleUpdating: false,\n });\n};\n\nconst importPersonsDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importPersonsDataExcelSuccess = (state, action) => {\n let persons = state.persons;\n const importedPersons = action.importedPersons;\n\n persons\n .filter((x) => importedPersons.find((y) => y.email == x.email))\n .forEach((updatedPerson) => {\n const importedPerson = importedPersons.find((it) => it.email == updatedPerson.email);\n if (importedPerson) {\n updatedPerson.firstName = importedPerson.firstName;\n updatedPerson.lastName = importedPerson.lastName;\n updatedPerson.email = importedPerson.email;\n updatedPerson.salutation = importedPerson.salutation;\n updatedPerson.position = importedPerson.position;\n updatedPerson.inactive = importedPerson.inactive;\n updatedPerson.personType = importedPerson.personType;\n updatedPerson.accessGroup = importedPerson.accessGroup;\n updatedPerson.allowNotifications = importedPerson.allowNotifications;\n updatedPerson.lastActivityOn = importedPerson.lastActivityOn;\n updatedPerson.lastActivitySystem = importedPerson.lastActivitySystem;\n updatedPerson.createdOn = importedPerson.createdOn;\n updatedPerson.countryCode = importedPerson.countryCode;\n updatedPerson.country = importedPerson.country;\n updatedPerson.location = importedPerson.location;\n updatedPerson.selfAssessmentReason = importedPerson.selfAssessmentReason;\n updatedPerson.encryptedId = importedPerson.encryptedId;\n updatedPerson.team = importedPerson.team;\n updatedPerson.usePreferredName = importedPerson.usePreferredName;\n updatedPerson.other = importedPerson.other;\n updatedPerson.department = importedPerson.department;\n updatedPerson.businessUnit = importedPerson.businessUnit;\n updatedPerson.division = importedPerson.division;\n updatedPerson.territory = importedPerson.territory;\n updatedPerson.costCentre = importedPerson.costCentre;\n updatedPerson.supervisor = importedPerson.supervisor;\n updatedPerson.validatedDate = importedPerson.validatedDate;\n updatedPerson.isCandidate = importedPerson.isCandidate;\n updatedPerson.isAnalyticsUser = importedPerson.isAnalyticsUser;\n updatedPerson.leaveOn = importedPerson.leaveOn;\n updatedPerson.accounts = importedPerson.accounts;\n updatedPerson.teams = importedPerson.teams;\n updatedPerson.profilePictureUrl = importedPerson.profilePictureUrl;\n updatedPerson.activityStatementInterval = importedPerson.activityStatementInterval;\n updatedPerson.lastUpdatedOn = importedPerson.lastUpdatedOn;\n updatedPerson.lastUpdatedVersion = importedPerson.lastUpdatedVersion;\n updatedPerson.latestAssessmentId = importedPerson.latestAssessmentId;\n updatedPerson.cartridgeId = importedPerson.cartridgeId;\n updatedPerson.hasOutstandingAction = importedPerson.hasOutstandingAction;\n updatedPerson.roles = importedPerson.roles;\n updatedPerson.groups = importedPerson.groups;\n\n updatedPerson.miscellaneous1 = importedPerson.miscellaneous1;\n updatedPerson.miscellaneous2 = importedPerson.miscellaneous2;\n updatedPerson.miscellaneous3 = importedPerson.miscellaneous3;\n updatedPerson.miscellaneous4 = importedPerson.miscellaneous4;\n updatedPerson.miscellaneous5 = importedPerson.miscellaneous5;\n\n updatedPerson.skipSelfAssessmentSurvey = importedPerson.skipSelfAssessmentSurvey;\n updatedPerson.roleBasedSurveyId = importedPerson.roleBasedSurveyId;\n updatedPerson.roleBasedSurvey = importedPerson.roleBasedSurvey;\n updatedPerson.isContractor = importedPerson.isContractor;\n updatedPerson.isMentorIneligible = importedPerson.isMentorIneligible;\n updatedPerson.fte = importedPerson.fte;\n }\n });\n\n const addedPersons = importedPersons.filter((x) => !persons.find((y) => x.email == y.email));\n\n return updateState(state, {\n error: null,\n isImporting: false,\n message: action.message,\n persons: [...persons, ...addedPersons],\n });\n};\n\nconst importPersonsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst assignPersonsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst assignPersonsSuccess = (state, action) => {\n const persons = state.persons;\n const updatedPersons = persons.filter((it) => action.personIds.includes(it.id));\n\n updatedPersons.forEach((it) => {\n it.isAssigned = true;\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n persons: [...persons],\n });\n};\n\nconst assignPersonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst invitePersonsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst invitePersonsSuccess = (state, action) => {\n const persons = state.persons;\n const updatedPersons = persons.filter((it) => action.personIds.includes(it.id));\n\n updatedPersons.forEach((it) => {\n it.isInvited = true;\n it.invitedOn = new Date();\n it.invitationEmailMessageId = null;\n it.invitationEmailMessageStatus = null;\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n persons: [...persons],\n });\n};\n\nconst invitePersonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst unassignPersonsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst unassignPersonsSuccess = (state, action) => {\n const persons = state.persons;\n const updatedPersons = persons.filter((it) => action.personIds.includes(it.id));\n\n updatedPersons.forEach((it) => {\n it.isAssigned = false;\n it.isInvited = false;\n it.accounts = null;\n it.teams = null;\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n persons: [...persons],\n });\n};\n\nconst unassignPersonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst addRelationshipsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addRelationshipsSuccess = (state, action) => {\n const addedRelationships = action.addedRelationships;\n let persons = state.persons;\n\n const groupedPersonAIds = _.groupBy(\n addedRelationships.map((it) => {\n return it.personAId;\n }),\n function (it) {\n return it;\n }\n );\n\n const groupedPersonBIds = _.groupBy(\n addedRelationships.map((it) => {\n return it.personBId;\n }),\n function (it) {\n return it;\n }\n );\n\n const personAIds = [];\n const personBIds = [];\n\n Object.keys(groupedPersonAIds).forEach((key) => {\n personAIds.push(groupedPersonAIds[key][0]);\n });\n\n Object.keys(groupedPersonBIds).forEach((key) => {\n personBIds.push(groupedPersonBIds[key][0]);\n });\n\n persons\n .filter((it) => personAIds.includes(it.id))\n .forEach((person) => {\n const thisAddedRelationships = addedRelationships.filter((it) => it.personAId == person.id);\n if (thisAddedRelationships.length > 0) {\n if (person.upRelationships) {\n person.upRelationships = [...person.upRelationships, ...thisAddedRelationships];\n } else {\n person.upRelationships = [...thisAddedRelationships];\n }\n }\n });\n\n persons\n .filter((it) => personBIds.includes(it.id))\n .forEach((person) => {\n const thisAddedRelationships = addedRelationships.filter((it) => it.personBId == person.id);\n if (thisAddedRelationships.length > 0) {\n if (person.downRelationships) {\n person.downRelationships = [...person.downRelationships, ...thisAddedRelationships];\n } else {\n person.downRelationships = [...thisAddedRelationships];\n }\n }\n });\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst addRelationshipsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteRelationshipsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteRelationshipsSuccess = (state, action) => {\n const deletedRelationshipIds = action.deletedRelationshipIds;\n let persons = state.persons;\n\n persons\n .filter((it) => it.downRelationships.some((r) => deletedRelationshipIds.includes(r.id)) || it.upRelationships.some((r) => deletedRelationshipIds.includes(r.id)))\n .forEach((person) => {\n if (person.downRelationships.some((r) => deletedRelationshipIds.includes(r.id))) {\n person.downRelationships = person.downRelationships.filter((it) => !deletedRelationshipIds.includes(it.id));\n }\n\n if (person.upRelationships.some((r) => deletedRelationshipIds.includes(r.id))) {\n person.upRelationships = person.upRelationships.filter((it) => !deletedRelationshipIds.includes(it.id));\n }\n });\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst deleteRelationshipsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getPageAssignmentsStart = (state) => {\n return updateState(state, { pageAssignments: null, error: null, loading: true });\n};\n\nconst getPageAssignmentsSuccess = (state, action) => {\n return updateState(state, {\n pageAssignments: [...action.pageAssignments],\n error: null,\n loading: false,\n });\n};\n\nconst getPageAssignmentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst clearPageAssignments = (state) => {\n return updateState(state, { pageAssignments: null });\n};\n\nconst getPersonPageAssignmentsStart = (state) => {\n return updateState(state, { personPageAssignments: null, error: null, loading: true });\n};\n\nconst getPersonPageAssignmentsSuccess = (state, action) => {\n return updateState(state, {\n personPageAssignments: [...action.pageAssignments],\n error: null,\n loading: false,\n });\n};\n\nconst getPersonPageAssignmentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updatePersonPageAssignmentsStart = (state) => {\n return updateState(state, { personPageAssignments: null, error: null, isUpdating: true });\n};\n\nconst updatePersonPageAssignmentsSuccess = (state, action) => {\n let updatedPageAssignments = state.pageAssignments;\n const personPageAssignments = action.pageAssignments;\n const personId = action.personId;\n const adminRoleName = action.adminRoleName;\n\n let persons = state.persons;\n\n if (personId && adminRoleName) {\n const updatedPerson = persons.find((x) => x.id == personId);\n if (updatedPerson) {\n updatedPerson.adminRoleName = adminRoleName;\n }\n }\n\n if (updatedPageAssignments[0].personId == personPageAssignments[0].personId) {\n updatedPageAssignments = [...action.pageAssignments];\n }\n\n return updateState(state, {\n personPageAssignments: [...action.pageAssignments],\n pageAssignments: [...updatedPageAssignments],\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updatePersonPageAssignmentsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst generatePersonProfileReportsStart = (state) => {\n return updateState(state, { error: null, printData: null, loadingPrint: true });\n};\n\nconst generatePersonProfileReportsSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst generatePersonProfileReportsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst generateProfileReportsStart = (state) => {\n return updateState(state, { error: null, printData: null, loadingPrint: true });\n};\n\nconst generateProfileReportsSuccess = (state, action) => {\n const persons = state.persons;\n const updatedPersons = action.updatedPersons;\n\n updatedPersons.forEach((it) => {\n const person = persons.find((p) => p.id == it.personId);\n if (person) {\n if (it.selfAssessedReport) {\n person.selfAssessedReportGenerated = true;\n }\n\n if (it.endorsedReport) {\n person.endorsedReportGenerated = true;\n }\n\n if (it.actionReport) {\n person.actionReportGenerated = true;\n }\n }\n });\n\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n persons: [...persons],\n });\n};\n\nconst generateProfileReportsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst updatePersonSelfAssessedApproved = (state, action) => {\n const persons = state.persons;\n const updatedPerson = action.updatedPerson;\n const person = persons.find((it) => it.id == updatedPerson.personId);\n if (person) {\n person.selfAssessedLastProfileApproved = true;\n person.selfAssessedLastApprovedOn = updatedPerson.selfAssessedLastApprovedOn;\n person.selfAssessedLastApprovedBy = updatedPerson.selfAssessedLastApprovedBy;\n person.selfAssessedLastApprovedById = updatedPerson.selfAssessedLastApprovedById;\n person.selfAssessedLastApprovedVersion = updatedPerson.selfAssessedLastApprovedVersion;\n }\n\n return updateState(state, {\n persons: [...persons],\n });\n};\n\nconst updatePersonSelfAssessedPostPoned = (state, action) => {\n const persons = state.persons;\n const updatedPerson = action.updatedPerson;\n const person = persons.find((it) => it.id == updatedPerson.personId);\n if (person) {\n const account = person.accounts && person.accounts.length > 0 ? person.accounts.sort((a, b) => (b.createdOn > a.createdOn ? 1 : -1))[0] : null;\n if (account) {\n account.isApprovalPostponed = true;\n account.approvalPostponedOn = updatedPerson.approvalPostponedOn;\n account.approvalPostponedById = updatedPerson.approvalPostponedById;\n account.approvalPostponedBy = updatedPerson.approvalPostponedBy;\n account.approvalPostponedType = updatedPerson.approvalPostponedType;\n account.approvalPostponedComment = updatedPerson.approvalPostponedComment;\n }\n }\n\n return updateState(state, {\n persons: [...persons],\n });\n};\n\nconst updatePersonEndorsement = (state, action) => {\n const persons = state.persons;\n const personEndorsement = action.personEndorsement;\n const person = persons.find((it) => it.id == personEndorsement.personId);\n if (person) {\n person.endorsedById = personEndorsement.endorsedById;\n person.endorsedBy = personEndorsement.endorsedBy;\n person.endorsementLatestStatus = personEndorsement.latestStatus;\n person.endorsementLastUpdatedById = personEndorsement.lastUpdatedById;\n person.endorsementLastUpdatedBy = personEndorsement.lastUpdatedBy;\n person.endorsementLastUpdated = personEndorsement.lastUpdated;\n person.endorsementLastUpdatedVersion = personEndorsement.lastUpdatedVersion;\n person.endorsementLastReviewedById = personEndorsement.lastReviewedById;\n person.endorsementLastReviewedBy = personEndorsement.lastReviewedBy;\n person.endorsementLastReviewed = personEndorsement.lastReviewed;\n person.endorsementLastReviewedVersion = personEndorsement.lastReviewedVersion;\n person.endorsementLastApprovedById = personEndorsement.lastApprovedById;\n person.endorsementLastApprovedBy = personEndorsement.lastApprovedBy;\n person.endorsementLastApproved = personEndorsement.lastApproved;\n person.endorsementLastApprovedVersion = personEndorsement.lastApprovedVersion;\n\n person.assessorId = personEndorsement.assessorId;\n person.assessorName = personEndorsement.assessorName;\n }\n\n return updateState(state, {\n persons: [...persons],\n });\n};\n\nconst updatePersonEndorserStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updatePersonEndorserSuccess = (state, action) => {\n const persons = state.persons;\n const personEndorsement = action.personEndorsement;\n const person = persons.find((it) => it.id == personEndorsement.personId);\n if (person) {\n person.endorsedById = personEndorsement.endorsedById;\n person.endorsedBy = personEndorsement.endorsedBy;\n person.endorsementLatestStatus = personEndorsement.latestStatus;\n person.endorsementLastUpdatedById = personEndorsement.lastUpdatedById;\n person.endorsementLastUpdatedBy = personEndorsement.lastUpdatedBy;\n person.endorsementLastUpdated = personEndorsement.lastUpdated;\n person.endorsementLastUpdatedVersion = personEndorsement.lastUpdatedVersion;\n person.endorsementLastReviewedById = personEndorsement.lastReviewedById;\n person.endorsementLastReviewedBy = personEndorsement.lastReviewedBy;\n person.endorsementLastReviewed = personEndorsement.lastReviewed;\n person.endorsementLastReviewedVersion = personEndorsement.lastReviewedVersion;\n person.endorsementLastApprovedById = personEndorsement.lastApprovedById;\n person.endorsementLastApprovedBy = personEndorsement.lastApprovedBy;\n person.endorsementLastApproved = personEndorsement.lastApproved;\n person.endorsementLastApprovedVersion = personEndorsement.lastApprovedVersion;\n\n person.assessorId = personEndorsement.assessorId;\n person.assessorName = personEndorsement.assessorName;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n persons: [...persons],\n });\n};\n\nconst updatePersonEndorserFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst clearColumnDisplaySettings = (state) => {\n return updateState(state, { columnDisplaySettings: null, columnDisplaySettingLoadings: [] });\n};\n\nconst getColumnDisplaySettingsStart = (state) => {\n return updateState(state, { columnDisplaySettings: null, error: null });\n};\n\nconst getColumnDisplaySettingsSuccess = (state, action) => {\n return updateState(state, {\n columnDisplaySettings: [...action.columnDisplaySettings],\n error: null,\n columnDisplaySettingLoadings: [],\n });\n};\n\nconst getColumnDisplaySettingsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n });\n};\n\nconst updateColumnDisplaySettingStart = (state, action) => {\n let columnDisplaySettingLoadings = state.columnDisplaySettingLoadings;\n let columnDisplaySettingLoading = columnDisplaySettingLoadings.find((it) => it.id == action.id);\n if (columnDisplaySettingLoading) {\n columnDisplaySettingLoading.loading = true;\n } else {\n columnDisplaySettingLoadings.push({\n id: action.id,\n loading: true,\n });\n }\n\n return updateState(state, { error: null, columnDisplaySettingLoadings: [...columnDisplaySettingLoadings] });\n};\n\nconst updateColumnDisplaySettingSuccess = (state, action) => {\n const updatedColumnDisplaySetting = action.updatedColumnDisplaySetting;\n let columnDisplaySettings = state.columnDisplaySettings;\n let oriColumnDisplaySetting = columnDisplaySettings.find((it) => it.id == updatedColumnDisplaySetting.id);\n if (oriColumnDisplaySetting) {\n oriColumnDisplaySetting.visible = updatedColumnDisplaySetting.visible;\n } else {\n columnDisplaySettings.push(updatedColumnDisplaySetting);\n }\n\n let columnDisplaySettingLoadings = state.columnDisplaySettingLoadings;\n\n let columnDisplaySettingLoading = columnDisplaySettingLoadings.find((it) => it.id == updatedColumnDisplaySetting.id);\n\n if (columnDisplaySettingLoading) {\n columnDisplaySettingLoading.loading = false;\n }\n\n return updateState(state, {\n columnDisplaySettingLoadings: [...columnDisplaySettingLoadings],\n columnDisplaySettings: [...action.columnDisplaySettings],\n error: null,\n });\n};\n\nconst updateColumnDisplaySettingFail = (state, action) => {\n let columnDisplaySettingLoadings = state.columnDisplaySettingLoadings;\n let columnDisplaySettingLoading = columnDisplaySettingLoadings.find((it) => it.id == action.id);\n\n if (columnDisplaySettingLoading) {\n columnDisplaySettingLoading.loading = false;\n }\n\n return updateState(state, {\n error: action.error,\n columnDisplaySettingLoadings: [...columnDisplaySettingLoadings],\n });\n};\n\nconst requestCopySelfProfilesAsEndorsedStart = (state) => {\n return updateState(state, { error: null, isUpdating: true, copyProfileRequests: [] });\n};\n\nconst requestCopySelfProfilesAsEndorsedSuccess = (state, action) => {\n let persons = state.persons;\n const copyProfileRequests = action.copyProfileRequests;\n\n copyProfileRequests.forEach((copyProfileRequest) => {\n const updatedPerson = persons.find((x) => x.id == copyProfileRequest.personId && x.selfAssessedLastApprovedVersion == copyProfileRequest.version);\n if (updatedPerson) {\n updatedPerson.selfAssessedCopyProfileRequested = true;\n updatedPerson.selfAssessedCopyProfileRequestedOn = copyProfileRequest.createdOn;\n updatedPerson.selfAssessedCopyProfileRequestStatus = copyProfileRequest.status;\n }\n });\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n copyProfileRequests,\n });\n};\n\nconst requestCopySelfProfilesAsEndorsedFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateCopySelfProfilesAsEndorsedStatus = (state, action) => {\n let persons = state.persons;\n const copyProfileRequestResponse = action.copyProfileRequestResponse;\n\n const updatedPerson = persons.find((x) => x.id == copyProfileRequestResponse.personId && x.selfAssessedLastApprovedVersion == copyProfileRequestResponse.version);\n if (updatedPerson) {\n updatedPerson.selfAssessedCopyProfileRequested = true;\n updatedPerson.selfAssessedCopyProfileRequestedOn = copyProfileRequestResponse.createdOn;\n updatedPerson.selfAssessedCopyProfileRequestStatus = copyProfileRequestResponse.status;\n }\n\n return updateState(state, {\n persons: [...persons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst exportPersonsProfilesStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst exportPersonsProfilesSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst exportPersonsProfilesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst importPersonsProfilesStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importPersonsProfilesSuccess = (state, action) => {\n let persons = state.persons;\n const importedPersons = action.importedPersons;\n\n persons\n .filter((x) => importedPersons.find((y) => y.email == x.email))\n .forEach((updatedPerson) => {\n const importedPerson = importedPersons.find((it) => it.email == updatedPerson.email);\n if (importedPerson) {\n updatedPerson.firstName = importedPerson.firstName;\n updatedPerson.lastName = importedPerson.lastName;\n updatedPerson.email = importedPerson.email;\n updatedPerson.salutation = importedPerson.salutation;\n updatedPerson.position = importedPerson.position;\n updatedPerson.inactive = importedPerson.inactive;\n updatedPerson.personType = importedPerson.personType;\n updatedPerson.accessGroup = importedPerson.accessGroup;\n updatedPerson.allowNotifications = importedPerson.allowNotifications;\n updatedPerson.lastActivityOn = importedPerson.lastActivityOn;\n updatedPerson.lastActivitySystem = importedPerson.lastActivitySystem;\n updatedPerson.createdOn = importedPerson.createdOn;\n updatedPerson.countryCode = importedPerson.countryCode;\n updatedPerson.country = importedPerson.country;\n updatedPerson.location = importedPerson.location;\n updatedPerson.selfAssessmentReason = importedPerson.selfAssessmentReason;\n updatedPerson.encryptedId = importedPerson.encryptedId;\n updatedPerson.team = importedPerson.team;\n updatedPerson.usePreferredName = importedPerson.usePreferredName;\n updatedPerson.other = importedPerson.other;\n updatedPerson.department = importedPerson.department;\n updatedPerson.businessUnit = importedPerson.businessUnit;\n updatedPerson.division = importedPerson.division;\n updatedPerson.territory = importedPerson.territory;\n updatedPerson.costCentre = importedPerson.costCentre;\n updatedPerson.supervisor = importedPerson.supervisor;\n updatedPerson.validatedDate = importedPerson.validatedDate;\n updatedPerson.isCandidate = importedPerson.isCandidate;\n updatedPerson.isAnalyticsUser = importedPerson.isAnalyticsUser;\n updatedPerson.leaveOn = importedPerson.leaveOn;\n updatedPerson.accounts = importedPerson.accounts;\n updatedPerson.teams = importedPerson.teams;\n updatedPerson.profilePictureUrl = importedPerson.profilePictureUrl;\n updatedPerson.activityStatementInterval = importedPerson.activityStatementInterval;\n updatedPerson.lastUpdatedOn = importedPerson.lastUpdatedOn;\n updatedPerson.lastUpdatedVersion = importedPerson.lastUpdatedVersion;\n updatedPerson.latestAssessmentId = importedPerson.latestAssessmentId;\n updatedPerson.cartridgeId = importedPerson.cartridgeId;\n updatedPerson.hasOutstandingAction = importedPerson.hasOutstandingAction;\n updatedPerson.roles = importedPerson.roles;\n updatedPerson.groups = importedPerson.groups;\n\n updatedPerson.totalQuestions = importedPerson.totalQuestions;\n updatedPerson.answeredQuestions = importedPerson.answeredQuestions;\n updatedPerson.percentage = importedPerson.percentage;\n\n updatedPerson.miscellaneous1 = importedPerson.miscellaneous1;\n updatedPerson.miscellaneous2 = importedPerson.miscellaneous2;\n updatedPerson.miscellaneous3 = importedPerson.miscellaneous3;\n updatedPerson.miscellaneous4 = importedPerson.miscellaneous4;\n updatedPerson.miscellaneous5 = importedPerson.miscellaneous5;\n }\n });\n\n const addedPersons = importedPersons.filter((x) => !persons.find((y) => x.email == y.email));\n\n return updateState(state, {\n error: null,\n isImporting: false,\n message: action.message,\n persons: [...persons, ...addedPersons],\n });\n};\n\nconst importPersonsProfilesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst approveProfileRequestsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst approveProfileRequestsSuccess = (state, action) => {\n const persons = state.persons;\n const updatedPersons = action.updatedPersons;\n\n updatedPersons.forEach((updatedPerson) => {\n const person = persons.find((it) => it.id == updatedPerson.id);\n if (person) {\n person.selfAssessedLastProfileVersion = updatedPerson.selfAssessedLastProfileVersion;\n person.selfAssessedLastProfileUpdatedOn = updatedPerson.selfAssessedLastProfileUpdatedOn;\n person.selfAssessedLastProfileApproved = updatedPerson.selfAssessedLastProfileApproved;\n person.selfAssessedLastProfileUpdatedById = updatedPerson.selfAssessedLastProfileUpdatedById;\n person.selfAssessedLastProfileUpdatedBy = updatedPerson.selfAssessedLastProfileUpdatedBy;\n\n person.selfAssessedLastApprovedById = updatedPerson.selfAssessedLastProfileVersion;\n person.selfAssessedLastApprovedBy = updatedPerson.selfAssessedLastApprovedBy;\n person.selfAssessedLastApprovedOn = updatedPerson.selfAssessedLastApprovedOn;\n person.selfAssessedLastApprovedVersion = updatedPerson.selfAssessedLastApprovedVersion;\n\n person.selfAssessedLastProfileNumberOfChange = updatedPerson.selfAssessedLastProfileNumberOfChange;\n }\n });\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n persons: [...persons],\n });\n};\n\nconst approveProfileRequestsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_PERSONS_START:\n return getPersonsStart(state);\n case actionTypes.GET_PERSONS_SUCCESS:\n return getPersonsSuccess(state, action);\n case actionTypes.GET_PERSONS_FAIL:\n return getPersonsFail(state, action);\n\n case actionTypes.GET_ADMIN_PERSONS_START:\n return getPersonsAdminStart(state);\n case actionTypes.GET_ADMIN_PERSONS_SUCCESS:\n return getPersonsAdminSuccess(state, action);\n case actionTypes.GET_ADMIN_PERSONS_FAIL:\n return getPersonsAdminFail(state, action);\n\n case actionTypes.GET_PERSONS_DROPDOWN_START:\n return getPersonsDropdownStart(state);\n case actionTypes.GET_PERSONS_DROPDOWN_SUCCESS:\n return getPersonsDropdownSuccess(state, action);\n case actionTypes.GET_PERSONS_DROPDOWN_FAIL:\n return getPersonsDropdownFail(state, action);\n\n case actionTypes.ADD_PERSON_START:\n return addPersonStart(state);\n case actionTypes.ADD_PERSON_SUCCESS:\n return addPersonSuccess(state, action);\n case actionTypes.ADD_PERSON_FAIL:\n return addPersonFail(state, action);\n\n case actionTypes.UPDATE_PERSON_START:\n return updatePersonStart(state);\n case actionTypes.UPDATE_PERSON_SUCCESS:\n return updatePersonSuccess(state, action);\n case actionTypes.UPDATE_PERSON_FAIL:\n return updatePersonFail(state, action);\n\n case actionTypes.DELETE_PERSON_START:\n return deletePersonStart(state);\n case actionTypes.DELETE_PERSON_SUCCESS:\n return deletePersonSuccess(state, action);\n case actionTypes.DELETE_PERSON_FAIL:\n return deletePersonFail(state, action);\n\n case actionTypes.RESET_PERSON_PASSWORD_START:\n return resetPersonPasswordStart(state);\n case actionTypes.RESET_PERSON_PASSWORD_SUCCESS:\n return resetPersonPasswordSuccess(state, action);\n case actionTypes.RESET_PERSON_PASSWORD_FAIL:\n return resetPersonPasswordFail(state, action);\n\n case actionTypes.EXPORT_PERSONS_DATA_START:\n return exportPersonsDataExcelStart(state);\n case actionTypes.EXPORT_PERSONS_DATA_SUCCESS:\n return exportPersonsDataExcelSuccess(state, action);\n case actionTypes.EXPORT_PERSONS_DATA_FAIL:\n return exportPersonsDataExcelFail(state, action);\n\n case actionTypes.UPDATE_PERSON_ROLES_START:\n return updatePersonRoleStart(state);\n case actionTypes.UPDATE_PERSON_ROLES_SUCCESS:\n return updatePersonRoleSuccess(state, action);\n case actionTypes.UPDATE_PERSON_ROLES_FAIL:\n return updatePersonRoleFail(state, action);\n\n case actionTypes.IMPORT_PERSONS_DATA_START:\n return importPersonsDataExcelStart(state);\n case actionTypes.IMPORT_PERSONS_DATA_SUCCESS:\n return importPersonsDataExcelSuccess(state, action);\n case actionTypes.IMPORT_PERSONS_DATA_FAIL:\n return importPersonsDataExcelFail(state, action);\n\n case actionTypes.ASSIGN_PERSONS_START:\n return assignPersonsStart(state);\n case actionTypes.ASSIGN_PERSONS_SUCCESS:\n return assignPersonsSuccess(state, action);\n case actionTypes.ASSIGN_PERSONS_FAIL:\n return assignPersonsFail(state, action);\n\n case actionTypes.INVITE_PERSONS_START:\n return invitePersonsStart(state);\n case actionTypes.INVITE_PERSONS_SUCCESS:\n return invitePersonsSuccess(state, action);\n case actionTypes.INVITE_PERSONS_FAIL:\n return invitePersonsFail(state, action);\n\n case actionTypes.UNASSIGN_PERSONS_START:\n return unassignPersonsStart(state);\n case actionTypes.UNASSIGN_PERSONS_SUCCESS:\n return unassignPersonsSuccess(state, action);\n case actionTypes.UNASSIGN_PERSONS_FAIL:\n return unassignPersonsFail(state, action);\n\n case actionTypes.ADD_RELATIONSHIPS_START:\n return addRelationshipsStart(state);\n case actionTypes.ADD_RELATIONSHIPS_SUCCESS:\n return addRelationshipsSuccess(state, action);\n case actionTypes.ADD_RELATIONSHIPS_FAIL:\n return addRelationshipsFail(state, action);\n\n case actionTypes.DELETE_RELATIONSHIPS_START:\n return deleteRelationshipsStart(state);\n case actionTypes.DELETE_RELATIONSHIPS_SUCCESS:\n return deleteRelationshipsSuccess(state, action);\n case actionTypes.DELETE_RELATIONSHIPS_FAIL:\n return deleteRelationshipsFail(state, action);\n\n case actionTypes.GET_PAGE_ASSIGNMENTS_START:\n return getPageAssignmentsStart(state);\n case actionTypes.GET_PAGE_ASSIGNMENTS_SUCCESS:\n return getPageAssignmentsSuccess(state, action);\n case actionTypes.GET_PAGE_ASSIGNMENTS_FAIL:\n return getPageAssignmentsFail(state, action);\n case actionTypes.CLEAR_PAGE_ASSIGNMENTS:\n return clearPageAssignments(state, action);\n\n case actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_START:\n return getPersonPageAssignmentsStart(state);\n case actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_SUCCESS:\n return getPersonPageAssignmentsSuccess(state, action);\n case actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_FAIL:\n return getPersonPageAssignmentsFail(state, action);\n\n case actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_START:\n return updatePersonPageAssignmentsStart(state);\n case actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_SUCCESS:\n return updatePersonPageAssignmentsSuccess(state, action);\n case actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_FAIL:\n return updatePersonPageAssignmentsFail(state, action);\n\n case actionTypes.GENERATE_PERSON_PROFILE_REPORTS_START:\n return generatePersonProfileReportsStart(state);\n case actionTypes.GENERATE_PERSON_PROFILE_REPORTS_SUCCESS:\n return generatePersonProfileReportsSuccess(state, action);\n case actionTypes.GENERATE_PERSON_PROFILE_REPORTS_FAIL:\n return generatePersonProfileReportsFail(state, action);\n\n case actionTypes.GENERATE_PROFILE_REPORTS_START:\n return generateProfileReportsStart(state);\n case actionTypes.GENERATE_PROFILE_REPORTS_SUCCESS:\n return generateProfileReportsSuccess(state, action);\n case actionTypes.GENERATE_PROFILE_REPORTS_FAIL:\n return generateProfileReportsFail(state, action);\n\n case actionTypes.UPDATE_PERSON_ENDORSEMENT:\n return updatePersonEndorsement(state, action);\n\n case actionTypes.UPDATE_PERSON_SELFASSESSED_APPROVED:\n return updatePersonSelfAssessedApproved(state, action);\n case actionTypes.UPDATE_PERSON_SELFASSESSED_POSTPONED:\n return updatePersonSelfAssessedPostPoned(state, action);\n\n case actionTypes.UPDATE_PERSON_ENDORSER_START:\n return updatePersonEndorserStart(state, action);\n case actionTypes.UPDATE_PERSON_ENDORSER_SUCCESS:\n return updatePersonEndorserSuccess(state, action);\n case actionTypes.UPDATE_PERSON_ENDORSER_FAIL:\n return updatePersonEndorserFail(state, action);\n\n case actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_START:\n return getColumnDisplaySettingsStart(state);\n case actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_SUCCESS:\n return getColumnDisplaySettingsSuccess(state, action);\n case actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_FAIL:\n return getColumnDisplaySettingsFail(state, action);\n case actionTypes.CLEAR_COLUMN_DISPLAY_SETTINGS:\n return clearColumnDisplaySettings(state, action);\n\n case actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_START:\n return updateColumnDisplaySettingStart(state, action);\n case actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_SUCCESS:\n return updateColumnDisplaySettingSuccess(state, action);\n case actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_FAIL:\n return updateColumnDisplaySettingFail(state, action);\n\n case actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_START:\n return requestCopySelfProfilesAsEndorsedStart(state);\n case actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_SUCCESS:\n return requestCopySelfProfilesAsEndorsedSuccess(state, action);\n case actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_FAIL:\n return requestCopySelfProfilesAsEndorsedFail(state, action);\n case actionTypes.UPDATE_COPY_SELF_PROFILES_AS_ENDORSED_STATUS:\n return updateCopySelfProfilesAsEndorsedStatus(state, action);\n\n case actionTypes.EXPORT_PERSONS_PROFILES_START:\n return exportPersonsProfilesStart(state);\n case actionTypes.EXPORT_PERSONS_PROFILES_SUCCESS:\n return exportPersonsProfilesSuccess(state, action);\n case actionTypes.EXPORT_PERSONS_PROFILES_FAIL:\n return exportPersonsProfilesFail(state, action);\n\n case actionTypes.IMPORT_PERSONS_PROFILES_START:\n return importPersonsProfilesStart(state);\n case actionTypes.IMPORT_PERSONS_PROFILES_SUCCESS:\n return importPersonsProfilesSuccess(state, action);\n case actionTypes.IMPORT_PERSONS_PROFILES_FAIL:\n return importPersonsProfilesFail(state, action);\n\n case actionTypes.APPROVE_SKILL_PROFILES_START:\n return approveProfileRequestsStart(state, action);\n case actionTypes.APPROVE_SKILL_PROFILES_SUCCESS:\n return approveProfileRequestsSuccess(state, action);\n case actionTypes.APPROVE_SKILL_PROFILES_FAIL:\n return approveProfileRequestsFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n error: null,\n loading: false,\n isUpdating: false,\n registrationReasons: [],\n};\n\nconst getRegistrationReasonsStart = (state) => {\n return updateState(state, { error: null, loading: true, registrationReasons: [] });\n};\n\nconst getRegistrationReasonsSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n loading: false,\n registrationReasons: action.registrationReasons,\n });\n};\n\nconst getRegistrationReasonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addRegistrationReasonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addRegistrationReasonSuccess = (state, action) => {\n const registrationReasons = state.registrationReasons;\n registrationReasons.push(action.addedRegistrationReason);\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n registrationReasons: [...registrationReasons],\n });\n};\n\nconst addRegistrationReasonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateRegistrationReasonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateRegistrationReasonSuccess = (state, action) => {\n const updatedRegistrationReason = action.updatedRegistrationReason;\n const registrationReasons = state.registrationReasons;\n\n const registrationReason = registrationReasons.find((it) => it.id == updatedRegistrationReason.id);\n if (registrationReason) {\n registrationReason.value = updatedRegistrationReason.value;\n registrationReason.label = updatedRegistrationReason.label;\n registrationReason.roleSelectionMandatory = updatedRegistrationReason.roleSelectionMandatory;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n registrationReasons: [...registrationReasons],\n });\n};\n\nconst updateRegistrationReasonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteRegistrationReasonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteRegistrationReasonSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n registrationReasons: action.registrationReasons,\n });\n};\n\nconst deleteRegistrationReasonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst moveRegistrationReasonStart = (state) => {\n return updateState(state, { error: null });\n};\n\nconst moveRegistrationReasonSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n registrationReasons: action.registrationReasons,\n });\n};\n\nconst moveRegistrationReasonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_REGISTRATION_REASONS_START:\n return getRegistrationReasonsStart(state);\n case actionTypes.GET_REGISTRATION_REASONS_SUCCESS:\n return getRegistrationReasonsSuccess(state, action);\n case actionTypes.GET_REGISTRATION_REASONS_FAIL:\n return getRegistrationReasonsFail(state, action);\n\n case actionTypes.ADD_REGISTRATION_REASON_START:\n return addRegistrationReasonStart(state);\n case actionTypes.ADD_REGISTRATION_REASON_SUCCESS:\n return addRegistrationReasonSuccess(state, action);\n case actionTypes.ADD_REGISTRATION_REASON_FAIL:\n return addRegistrationReasonFail(state, action);\n\n case actionTypes.UPDATE_REGISTRATION_REASON_START:\n return updateRegistrationReasonStart(state);\n case actionTypes.UPDATE_REGISTRATION_REASON_SUCCESS:\n return updateRegistrationReasonSuccess(state, action);\n case actionTypes.UPDATE_REGISTRATION_REASON_FAIL:\n return updateRegistrationReasonFail(state, action);\n\n case actionTypes.DELETE_REGISTRATION_REASON_START:\n return deleteRegistrationReasonStart(state);\n case actionTypes.DELETE_REGISTRATION_REASON_SUCCESS:\n return deleteRegistrationReasonSuccess(state, action);\n case actionTypes.DELETE_REGISTRATION_REASON_FAIL:\n return deleteRegistrationReasonFail(state, action);\n\n case actionTypes.MOVE_REGISTRATION_REASON_START:\n return moveRegistrationReasonStart(state);\n case actionTypes.MOVE_REGISTRATION_REASON_SUCCESS:\n return moveRegistrationReasonSuccess(state, action);\n case actionTypes.MOVE_REGISTRATION_REASON_FAIL:\n return moveRegistrationReasonFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import { updateState } from \"../../utility\";\nimport * as actionTypes from \"../actions/adminActionTypes\";\n\nconst initialState = {\n exportData: null,\n loadingExport: false,\n isImporting: false,\n};\n\nconst exportRelationshipsDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportRelationshipsDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportRelationshipsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importRelationshipsDataExcelStart = (state) => {\n return updateState(state, {\n error: null,\n isImporting: true,\n });\n};\n\nconst importRelationshipsDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importRelationshipsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.EXPORT_RELATIONSHIPS_DATA_START:\n return exportRelationshipsDataExcelStart(state);\n case actionTypes.EXPORT_RELATIONSHIPS_DATA_SUCCESS:\n return exportRelationshipsDataExcelSuccess(state, action);\n case actionTypes.EXPORT_RELATIONSHIPS_DATA_FAIL:\n return exportRelationshipsDataExcelFail(state, action);\n\n case actionTypes.IMPORT_RELATIONSHIPS_DATA_START:\n return importRelationshipsDataExcelStart(state);\n case actionTypes.IMPORT_RELATIONSHIPS_DATA_SUCCESS:\n return importRelationshipsDataExcelSuccess(state, action);\n case actionTypes.IMPORT_RELATIONSHIPS_DATA_FAIL:\n return importRelationshipsDataExcelFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/adminActionTypes\";\n\nimport { updateState } from \"../../utility\";\n\nconst initialState = {\n relationshipTypes: [],\n error: null,\n loading: false,\n};\n\nconst getRelationshipTypesStart = (state) => {\n return updateState(state, { error: null, relationshipTypes: [], loading: true });\n};\n\nconst getRelationshipTypesSuccess = (state, action) => {\n return updateState(state, {\n relationshipTypes: action.relationshipTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getRelationshipTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_RELATIONSHIP_TYPES_START:\n return getRelationshipTypesStart(state);\n case actionTypes.GET_RELATIONSHIP_TYPES_SUCCESS:\n return getRelationshipTypesSuccess(state, action);\n case actionTypes.GET_RELATIONSHIP_TYPES_FAIL:\n return getRelationshipTypesFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n actionTypes: [],\n actionSkills: [],\n actions: [],\n error: null,\n loading: false,\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n addedAction: null,\n interventions: [],\n\n loadingPrint: false,\n printData: null,\n};\n\nconst getActionTypesStart = (state) => {\n return updateState(state, { error: null, actionTypes: [], loading: true });\n};\n\nconst getActionTypesSuccess = (state, action) => {\n return updateState(state, {\n actionTypes: action.actionTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getActionTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getActionSkillsStart = (state) => {\n return updateState(state, { error: null, actionSkills: [], loading: true });\n};\n\nconst getActionSkillsSuccess = (state, action) => {\n return updateState(state, {\n actionSkills: action.actionSkills,\n error: null,\n loading: false,\n });\n};\n\nconst getActionSkillsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst printActionReportStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst printActionReportSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst printActionReportFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst getInterventionsStart = (state) => {\n return updateState(state, { error: null, interventions: [], loading: true });\n};\n\nconst getInterventionsSuccess = (state, action) => {\n return updateState(state, {\n interventions: action.interventions,\n error: null,\n loading: false,\n });\n};\n\nconst getInterventionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getActionsStart = (state) => {\n return updateState(state, { error: null, actions: [], loading: true });\n};\n\nconst getActionsSuccess = (state, action) => {\n return updateState(state, {\n actions: action.actions,\n error: null,\n loading: false,\n });\n};\n\nconst getActionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createActionStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n addedAction: null,\n });\n};\n\nconst createActionSuccess = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n addedAction: action.addedAction,\n });\n};\n\nconst createActionFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst updateActionStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n addedAction: null,\n });\n};\n\nconst updateActionSuccess = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n addedAction: action.addedAction,\n });\n};\n\nconst updateActionFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst deleteActionStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n });\n};\n\nconst deleteActionSuccess = (state) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n });\n};\n\nconst deleteActionFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst sendUpdatedActionPlanNotificationStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n });\n};\n\nconst sendUpdatedActionPlanNotificationSuccess = (state) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n });\n};\n\nconst sendUpdatedActionPlanNotificationFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst submitActionPromotionStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n });\n};\n\nconst submitActionPromotionSuccess = (state, action) => {\n const actionPromotion = action.actionPromotion;\n let actions = state.actions;\n\n const updatedAction = actions.find((x) => x.id == (actionPromotion ? actionPromotion.actionId : null));\n\n if (updatedAction) {\n updatedAction.promoted = true;\n updatedAction.promotedOn = actionPromotion.promotedOn;\n updatedAction.promotedById = actionPromotion.promoterId;\n updatedAction.promotedBy = actionPromotion.promoterName;\n }\n\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n actions: [...actions],\n });\n};\n\nconst submitActionPromotionFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst submitProposeActionStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n });\n};\n\nconst submitProposeActionSuccess = (state, action) => {\n const proposedAction = action.proposedAction;\n let actions = state.actions;\n\n const updatedAction = actions.find((x) => x.id == (proposedAction ? proposedAction.id : null));\n\n if (updatedAction) {\n updatedAction.updateProfileEvidenceProposed = true;\n updatedAction.updateProfileEvidenceProposedBy = proposedAction.updateProfileEvidenceProposedBy;\n updatedAction.updateProfileEvidenceProposedById = proposedAction.updateProfileEvidenceProposedById;\n updatedAction.updateProfileEvidenceProposedByEmail = proposedAction.updateProfileEvidenceProposedByEmail;\n updatedAction.updateProfileEvidenceProposedOn = proposedAction.updateProfileEvidenceProposedOn;\n updatedAction.updateProfileEvidenceProposalStatus = proposedAction.updateProfileEvidenceProposalStatus;\n updatedAction.updateProfileEvidenceProposalSkills = proposedAction.updateProfileEvidenceProposalSkills;\n }\n\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: null,\n actions: [...actions],\n });\n};\n\nconst submitProposeActionFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst acceptRejectActionProposalStart = (state) => {\n return updateState(state, {\n actionPlanUpdating: true,\n actionPlanUpdatingError: null,\n });\n};\n\nconst acceptRejectActionProposalSuccess = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n });\n};\n\nconst acceptRejectActionProposalFail = (state, action) => {\n return updateState(state, {\n actionPlanUpdating: false,\n actionPlanUpdatingError: action.error,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_ACTION_TYPES_START:\n return getActionTypesStart(state);\n case actionTypes.GET_ACTION_TYPES_SUCCESS:\n return getActionTypesSuccess(state, action);\n case actionTypes.GET_ACTION_TYPES_FAIL:\n return getActionTypesFail(state, action);\n case actionTypes.GET_ACTION_SKILLS_START:\n return getActionSkillsStart(state);\n case actionTypes.GET_ACTION_SKILLS_SUCCESS:\n return getActionSkillsSuccess(state, action);\n case actionTypes.GET_ACTION_SKILLS_FAIL:\n return getActionSkillsFail(state, action);\n\n case actionTypes.PRINT_MY_ACTION_REPORT_START:\n case actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_START:\n return printActionReportStart(state);\n case actionTypes.PRINT_MY_ACTION_REPORT_SUCCESS:\n case actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_SUCCESS:\n return printActionReportSuccess(state, action);\n case actionTypes.PRINT_MY_ACTION_REPORT_FAIL:\n case actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_FAIL:\n return printActionReportFail(state, action);\n\n case actionTypes.GET_INTERVENTIONS_START:\n return getInterventionsStart(state);\n case actionTypes.GET_INTERVENTIONS_SUCCESS:\n return getInterventionsSuccess(state, action);\n case actionTypes.GET_INTERVENTIONS_FAIL:\n return getInterventionsFail(state, action);\n case actionTypes.GET_MY_ACTIONS_START:\n case actionTypes.GET_MANAGED_PEOPLE_ACTIONS_START:\n return getActionsStart(state);\n case actionTypes.GET_MY_ACTIONS_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_ACTIONS_SUCCESS:\n return getActionsSuccess(state, action);\n case actionTypes.GET_MY_ACTIONS_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_ACTIONS_FAIL:\n return getActionsFail(state, action);\n\n case actionTypes.CREATE_ACTION_START:\n case actionTypes.CREATE_MANAGED_PEOPLE_ACTION_START:\n return createActionStart(state);\n case actionTypes.CREATE_ACTION_SUCCESS:\n case actionTypes.CREATE_MANAGED_PEOPLE_ACTION_SUCCESS:\n return createActionSuccess(state, action);\n case actionTypes.CREATE_ACTION_FAIL:\n case actionTypes.CREATE_MANAGED_PEOPLE_ACTION_FAIL:\n return createActionFail(state, action);\n\n case actionTypes.UPDATE_ACTION_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_START:\n return updateActionStart(state);\n case actionTypes.UPDATE_ACTION_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_SUCCESS:\n return updateActionSuccess(state, action);\n case actionTypes.UPDATE_ACTION_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_FAIL:\n return updateActionFail(state, action);\n\n case actionTypes.DELETE_ACTION_START:\n case actionTypes.DELETE_MANAGED_PEOPLE_ACTION_START:\n return deleteActionStart(state);\n case actionTypes.DELETE_ACTION_SUCCESS:\n case actionTypes.DELETE_MANAGED_PEOPLE_ACTION_SUCCESS:\n return deleteActionSuccess(state);\n case actionTypes.DELETE_ACTION_FAIL:\n case actionTypes.DELETE_MANAGED_PEOPLE_ACTION_FAIL:\n return deleteActionFail(state, action);\n\n case actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_START:\n return sendUpdatedActionPlanNotificationStart(state);\n case actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_SUCCESS:\n return sendUpdatedActionPlanNotificationSuccess(state);\n case actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_FAIL:\n return sendUpdatedActionPlanNotificationFail(state, action);\n\n case actionTypes.SUBMIT_ACTION_PROMOTION_START:\n return submitActionPromotionStart(state);\n case actionTypes.SUBMIT_ACTION_PROMOTION_SUCCESS:\n return submitActionPromotionSuccess(state, action);\n case actionTypes.SUBMIT_ACTION_PROMOTION_FAIL:\n return submitActionPromotionFail(state, action);\n\n case actionTypes.SUBMIT_PROPOSE_ACTION_START:\n return submitProposeActionStart(state);\n case actionTypes.SUBMIT_PROPOSE_ACTION_SUCCESS:\n return submitProposeActionSuccess(state, action);\n case actionTypes.SUBMIT_PROPOSE_ACTION_FAIL:\n return submitProposeActionFail(state, action);\n\n case actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START:\n case actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START:\n return acceptRejectActionProposalStart(state);\n case actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS:\n case actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS:\n return acceptRejectActionProposalSuccess(state, action);\n case actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL:\n case actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL:\n return acceptRejectActionProposalFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n email: null,\n error: null,\n loading: false,\n isLogout: false,\n redirectUrl: null,\n token: null,\n hasPeoples: false,\n hasRelationships: false,\n isEndorser: false,\n manageEndorsements: false,\n manageCertifications: false,\n manageSelfAssessed: false,\n manageSelfProfiles: false,\n loginWithMembee: false,\n loginWithTeams: false,\n assessmentId: null,\n sfiaVersion: null,\n jobProfileReportFormat: null,\n selfAssessedProfileReportFormat: null,\n authMode: null,\n loginResult: null,\n personId: null,\n ownJobs: false,\n\n errorRegister: null,\n loadingRegister: false,\n registerToken: null,\n resetPassword: null,\n errorResetPassword: null,\n loadingResetPassword: false,\n\n errorCheckEmail: null,\n loadingCheckEmail: false,\n emailCheckingExist: null,\n\n managedPeople: null,\n};\n\nconst authRegisterEmailCheckingStart = (state) => {\n return updateState(state, {\n errorCheckEmail: null,\n loadingCheckEmail: true,\n emailCheckingExist: null,\n });\n};\n\nconst authRegisterEmailCheckingSuccess = (state, action) => {\n return updateState(state, {\n errorCheckEmail: null,\n loadingCheckEmail: false,\n emailCheckingExist: action.emailCheckingExist,\n });\n};\n\nconst authRegisterEmailCheckingFail = (state, action) => {\n return updateState(state, {\n errorCheckEmail: action.error,\n loadingCheckEmail: false,\n emailCheckingExist: null,\n });\n};\n\nconst signInStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst signInSuccess = (state, action) => {\n return updateState(state, {\n email: action.email,\n error: null,\n loading: false,\n token: action.token,\n assessmentId: action.assessmentId,\n sfiaVersion: action.sfiaVersion,\n jobProfileReportFormat: action.jobProfileReportFormat,\n selfAssessedProfileReportFormat: action.selfAssessedProfileReportFormat,\n hasPeoples: action.hasPeoples && action.hasPeoples == \"True\" ? true : action.hasPeoples == \"False\" ? false : action.hasPeoples,\n isEndorser: action.isEndorser && action.isEndorser == \"True\" ? true : action.isEndorser == \"False\" ? false : action.isEndorser,\n ownJobs: action.ownJobs && action.ownJobs == \"True\" ? true : action.ownJobs == \"False\" ? false : action.ownJobs,\n authMode: action.authMode,\n personId: action.personId,\n manageEndorsements: action.manageEndorsements && action.manageEndorsements == \"True\" ? true : action.manageEndorsements == \"False\" ? false : action.manageEndorsements,\n manageCertifications: action.manageCertifications && action.manageCertifications == \"True\" ? true : action.manageCertifications == \"False\" ? false : action.manageCertifications,\n loginWithMembee: action.loginWithMembee && action.loginWithMembee == \"True\" ? true : action.loginWithMembee == \"False\" ? false : action.loginWithMembee,\n loginWithTeams: action.loginWithTeams && action.loginWithTeams == \"True\" ? true : action.loginWithTeams == \"False\" ? false : action.loginWithTeams,\n receiveLicenseNotification: action.receiveLicenseNotification && action.receiveLicenseNotification == \"True\" ? true : action.receiveLicenseNotification == \"False\" ? false : action.receiveLicenseNotification,\n lastActiveUserNotification: action.lastActiveUserNotification && action.lastActiveUserNotification != \"NULL\" ? new Date(action.lastActiveUserNotification) : null,\n allowSkipSurvey: action.allowSkipSurvey && action.allowSkipSurvey == \"True\" ? true : action.allowSkipSurvey == \"False\" ? false : action.allowSkipSurvey,\n manageSelfAssessed: action.manageSelfAssessed && action.manageSelfAssessed == \"True\" ? true : action.manageSelfAssessed == \"False\" ? false : action.manageSelfAssessed,\n manageSelfProfiles: action.manageSelfProfiles && action.manageSelfProfiles == \"True\" ? true : action.manageSelfProfiles == \"False\" ? false : action.manageSelfProfiles,\n hasRelationships: action.hasRelationships && action.hasRelationships == \"True\" ? true : action.hasRelationships == \"False\" ? false : action.hasRelationships,\n });\n};\n\nconst signInSuccessWithWait = (state, action) => {\n return updateState(state, {\n email: action.email,\n error: null,\n loading: false,\n token: action.token.token,\n loginResult: action.token,\n assessmentId: action.assessmentId,\n sfiaVersion: action.sfiaVersion,\n jobProfileReportFormat: action.jobProfileReportFormat,\n selfAssessedProfileReportFormat: action.selfAssessedProfileReportFormat,\n hasPeoples: action.hasPeoples && action.hasPeoples == \"True\" ? true : action.hasPeoples == \"False\" ? false : action.hasPeoples,\n isEndorser: action.isEndorser && action.isEndorser == \"True\" ? true : action.isEndorser == \"False\" ? false : action.isEndorser,\n ownJobs: action.ownJobs && action.ownJobs == \"True\" ? true : action.ownJobs == \"False\" ? false : action.ownJobs,\n authMode: action.authMode,\n personId: action.personId,\n manageEndorsements: action.manageEndorsements && action.manageEndorsements == \"True\" ? true : action.manageEndorsements == \"False\" ? false : action.manageEndorsements,\n manageCertifications: action.manageCertifications && action.manageCertifications == \"True\" ? true : action.manageCertifications == \"False\" ? false : action.manageCertifications,\n loginWithMembee: action.loginWithMembee && action.loginWithMembee == \"True\" ? true : action.loginWithMembee == \"False\" ? false : action.loginWithMembee,\n loginWithTeams: action.loginWithTeams && action.loginWithTeams == \"True\" ? true : action.loginWithTeams == \"False\" ? false : action.loginWithTeams,\n receiveLicenseNotification: action.receiveLicenseNotification && action.receiveLicenseNotification == \"True\" ? true : action.receiveLicenseNotification == \"False\" ? false : action.receiveLicenseNotification,\n lastActiveUserNotification: action.lastActiveUserNotification && action.lastActiveUserNotification != \"NULL\" ? new Date(action.lastActiveUserNotification) : null,\n managedPeople: action.managedPeople,\n allowSkipSurvey: action.allowSkipSurvey && action.allowSkipSurvey == \"True\" ? true : action.allowSkipSurvey == \"False\" ? false : action.allowSkipSurvey,\n manageSelfAssessed: action.manageSelfAssessed && action.manageSelfAssessed == \"True\" ? true : action.manageSelfAssessed == \"False\" ? false : action.manageSelfAssessed,\n manageSelfProfiles: action.manageSelfProfiles && action.manageSelfProfiles == \"True\" ? true : action.manageSelfProfiles == \"False\" ? false : action.manageSelfProfiles,\n hasRelationships: action.hasRelationships && action.hasRelationships == \"True\" ? true : action.hasRelationships == \"False\" ? false : action.hasRelationships,\n });\n};\n\nconst authCheckStateSuccess = (state) => {\n return updateState(state, {\n error: null,\n loading: false,\n });\n};\n\nconst signInFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst authLogoutStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst authLogoutSuccess = (state) => {\n return updateState(state, {\n token: null,\n email: null,\n loading: false,\n hasPeoples: false,\n isEndorser: false,\n hasRelationships: false,\n redirectUrl: null,\n });\n};\n\nconst authLogoutIntendedSuccess = (state) => {\n return updateState(state, {\n token: null,\n email: null,\n loading: false,\n isLogout: true,\n hasPeoples: false,\n isEndorser: false,\n hasRelationships: false,\n redirectUrl: null,\n });\n};\n\nconst authLogoutFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst authRegisterStart = (state) => {\n return updateState(state, {\n errorRegister: null,\n loadingRegister: true,\n registerToken: null,\n });\n};\n\nconst authRegisterSuccess = (state, action) => {\n return updateState(state, {\n errorRegister: null,\n loadingRegister: false,\n registerToken: action.token,\n });\n};\n\nconst authRegisterFail = (state, action) => {\n return updateState(state, {\n errorRegister: action.error,\n loadingRegister: false,\n registerToken: null,\n });\n};\n\nconst forgotPasswordStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst forgotPasswordSuccess = (state) => {\n return updateState(state, {\n error: null,\n loading: false,\n });\n};\n\nconst forgotPasswordFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createAccountStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst createAccountSuccess = (state) => {\n return updateState(state, {\n error: null,\n loading: false,\n });\n};\n\nconst createAccountFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getResetPasswordStart = (state) => {\n return updateState(state, { errorResetPassword: null, loadingResetPassword: true });\n};\n\nconst getResetPasswordSuccess = (state, action) => {\n return updateState(state, {\n errorResetPassword: null,\n loadingResetPassword: false,\n resetPassword: action.resetPassword,\n });\n};\n\nconst getResetPasswordFail = (state, action) => {\n return updateState(state, {\n errorResetPassword: action.error,\n loadingResetPassword: false,\n });\n};\n\nconst processResetPasswordStart = (state) => {\n return updateState(state, { errorResetPassword: null, loadingResetPassword: true });\n};\n\nconst processResetPasswordSuccess = (state) => {\n return updateState(state, {\n errorResetPassword: null,\n loadingResetPassword: false,\n });\n};\n\nconst processResetPasswordFail = (state, action) => {\n return updateState(state, {\n errorResetPassword: action.error,\n loadingResetPassword: false,\n });\n};\n\nconst myPeopleSetManagedRelationship = (state, action) => {\n return updateState(state, {\n managedPeople: action.managedPeople,\n });\n};\n\nconst myPeopleClearManagedRelationship = (state) => {\n return updateState(state, {\n managedPeople: null,\n });\n};\n\nconst setRedirectUrl = (state, action) => {\n return updateState(state, {\n // isLogout: action.isLogout,\n // redirectUrl: action.redirectUrl,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.SIGN_IN_START:\n return signInStart(state);\n case actionTypes.SIGN_IN_SUCCESS:\n return signInSuccess(state, action);\n case actionTypes.SIGN_IN_SUCCESS_WITH_WAIT:\n return signInSuccessWithWait(state, action);\n case actionTypes.SIGN_IN_FAIL:\n return signInFail(state, action);\n case actionTypes.AUTH_CHECK_SUCCESS:\n return authCheckStateSuccess(state);\n case actionTypes.AUTH_LOGOUT_START:\n return authLogoutStart(state);\n case actionTypes.AUTH_LOGOUT_SUCCESS:\n return authLogoutSuccess(state);\n case actionTypes.AUTH_LOGOUT_INTENDED_SUCCESS:\n return authLogoutIntendedSuccess(state);\n case actionTypes.AUTH_LOGOUT_FAIL:\n return authLogoutFail(state, action);\n case actionTypes.AUTH_REGISTER_START:\n return authRegisterStart(state);\n case actionTypes.AUTH_REGISTER_SUCCESS:\n return authRegisterSuccess(state, action);\n case actionTypes.AUTH_REGISTER_FAIL:\n return authRegisterFail(state, action);\n case actionTypes.FORGOT_PASSWORD_START:\n return forgotPasswordStart(state);\n case actionTypes.FORGOT_PASSWORD_SUCCESS:\n return forgotPasswordSuccess(state);\n case actionTypes.FORGOT_PASSWORD_FAIL:\n return forgotPasswordFail(state, action);\n case actionTypes.CREATE_ACCOUNT_START:\n return createAccountStart(state);\n case actionTypes.CREATE_ACCOUNT_SUCCESS:\n return createAccountSuccess(state);\n case actionTypes.CREATE_ACCOUNT_FAIL:\n return createAccountFail(state, action);\n case actionTypes.GET_RESET_PASSWORD_START:\n return getResetPasswordStart(state);\n case actionTypes.GET_RESET_PASSWORD_SUCCESS:\n return getResetPasswordSuccess(state, action);\n case actionTypes.GET_RESET_PASSWORD_FAIL:\n return getResetPasswordFail(state, action);\n case actionTypes.PROCESS_RESET_PASSWORD_START:\n return processResetPasswordStart(state);\n case actionTypes.PROCESS_RESET_PASSWORD_SUCCESS:\n return processResetPasswordSuccess(state);\n case actionTypes.PROCESS_RESET_PASSWORD_FAIL:\n return processResetPasswordFail(state, action);\n\n case actionTypes.AUTH_REGISTER_EMAIL_CHECKING_START:\n return authRegisterEmailCheckingStart(state);\n case actionTypes.AUTH_REGISTER_EMAIL_CHECKING_SUCCESS:\n return authRegisterEmailCheckingSuccess(state, action);\n case actionTypes.AUTH_REGISTER_EMAIL_CHECKING_FAIL:\n return authRegisterEmailCheckingFail(state, action);\n\n case actionTypes.MYPEOPLES_SET_MANAGED_RELATIONSHIP:\n return myPeopleSetManagedRelationship(state, action);\n case actionTypes.MYPEOPLES_CLEAR_MANAGED_RELATIONSHIP:\n return myPeopleClearManagedRelationship(state);\n\n case actionTypes.AUTH_SET_REDIRECT_URL:\n return setRedirectUrl(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n myBadgeRequest: null,\n error: null,\n loading: false,\n isUpdating: false,\n};\n\nconst getBadgeRequestStart = (state) => {\n return updateState(state, { error: null, myBadgeRequest: null, loading: true });\n};\n\nconst getBadgeRequestSuccess = (state, action) => {\n return updateState(state, {\n myBadgeRequest: action.myBadgeRequest,\n error: null,\n loading: false,\n });\n};\n\nconst getBadgeRequestFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst submitBadgeRequestStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst submitBadgeRequestSuccess = (state, action) => {\n return updateState(state, {\n myBadgeRequest: action.badgeRequest,\n error: null,\n isUpdating: false,\n });\n};\n\nconst submitBadgeRequestFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_MY_LATEST_BADGE_REQUEST_START:\n return getBadgeRequestStart(state);\n case actionTypes.GET_MY_LATEST_BADGE_REQUEST_SUCCESS:\n return getBadgeRequestSuccess(state, action);\n case actionTypes.GET_MY_LATEST_BADGE_REQUEST_FAIL:\n return getBadgeRequestFail(state, action);\n\n case actionTypes.SUBMIT_BADGE_REQUEST_START:\n return submitBadgeRequestStart(state);\n case actionTypes.SUBMIT_BADGE_REQUEST_SUCCESS:\n return submitBadgeRequestSuccess(state, action);\n case actionTypes.SUBMIT_BADGE_REQUEST_FAIL:\n return submitBadgeRequestFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n categories: [],\n error: null,\n loading: false,\n exportData: null,\n loadingExport: false,\n isImporting: false,\n isUpdating: false,\n extraFrameworkCapabilities: [],\n extraFrameworkLevels: [],\n};\n\nconst getExtraFrameworkCapabilitiesStart = (state) => {\n return updateState(state, { error: null, extraFrameworkCapabilities: [], loading: true });\n};\n\nconst getExtraFrameworkCapabilitiesSuccess = (state, action) => {\n return updateState(state, {\n extraFrameworkCapabilities: action.extraFrameworkCapabilities,\n error: null,\n loading: false,\n });\n};\n\nconst getExtraFrameworkCapabilitiesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getExtraFrameworkLevelsStart = (state) => {\n return updateState(state, { error: null, extraFrameworkLevels: [], loading: true });\n};\n\nconst getExtraFrameworkLevelsSuccess = (state, action) => {\n return updateState(state, {\n extraFrameworkLevels: action.extraFrameworkLevels,\n error: null,\n loading: false,\n });\n};\n\nconst getExtraFrameworkLevelsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getCategoriesStart = (state) => {\n return updateState(state, { error: null, categories: [], loading: true });\n};\n\nconst getCategoriesSuccess = (state, action) => {\n const categoryOrders = [\n {\n category: \"Strategy and architecture\",\n order: 1,\n },\n {\n category: \"Change and transformation\",\n order: 2,\n },\n {\n category: \"Development and implementation\",\n order: 3,\n },\n {\n category: \"Delivery and operation\",\n order: 4,\n },\n {\n category: \"People and skills\",\n order: 5,\n },\n {\n category: \"Relationship and engagement\",\n order: 6,\n },\n ];\n\n let categories = action.categories;\n categories.forEach((category) => {\n const categoryOrder = categoryOrders.find((it) => it.category.trim().toLowerCase() == category.name.trim().toLowerCase());\n if (categoryOrder) {\n category.order = categoryOrder.order + 100;\n } else {\n category.order = 999;\n }\n });\n\n return updateState(state, {\n categories: categories.sort((a, b) => a.order - b.order || a.oldId - b.oldId),\n error: null,\n loading: false,\n });\n};\n\nconst getCategoriesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addSkillAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addSkillAttributeSuccess = (state, action) => {\n const categories = state.categories;\n\n const addedAttribute = action.addedAttribute;\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skillId);\n if (skill) {\n if (skill.attributes) {\n skill.attributes.push({\n id: addedAttribute.id,\n assessmentId: addedAttribute.assessmentId,\n attribute: addedAttribute.attribute,\n link: addedAttribute.link,\n isHidden: addedAttribute.isHidden,\n });\n } else {\n skill.attributes = [\n {\n id: addedAttribute.id,\n assessmentId: addedAttribute.assessmentId,\n attribute: addedAttribute.attribute,\n link: addedAttribute.link,\n isHidden: addedAttribute.isHidden,\n },\n ];\n }\n }\n }\n }\n\n return updateState(state, {\n categories: categories,\n error: null,\n isUpdating: false,\n });\n};\n\nconst addSkillAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateSkillAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateSkillAttributeSuccess = (state, action) => {\n const categories = state.categories;\n\n const updatedAttribute = action.updatedAttribute;\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skillId);\n if (skill) {\n const attribute = skill.attributes.find((it) => it.id == updatedAttribute.id);\n if (attribute) {\n attribute.attribute = updatedAttribute.attribute;\n attribute.link = updatedAttribute.link;\n attribute.isHidden = updatedAttribute.isHidden;\n }\n }\n }\n }\n\n return updateState(state, {\n categories: categories,\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateSkillAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateSkillSetIsHiddenStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateSkillSetIsHiddenSuccess = (state, action) => {\n const categories = state.categories;\n\n const isHidden = action.isHidden;\n\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skillId);\n if (skill) {\n skill.isHidden = isHidden;\n }\n }\n }\n\n return updateState(state, {\n categories: categories,\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateSkillSetIsHiddenFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteSkillAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteSkillAttributeSuccess = (state, action) => {\n const categories = state.categories;\n\n const deletedAttributeId = action.deletedAttributeId;\n const category = categories.find((it) => it.id == action.categoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == action.subCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == action.skillId);\n if (skill) {\n const attribute = skill.attributes.find((it) => it.id == deletedAttributeId);\n if (attribute) {\n var index = skill.attributes.indexOf(attribute);\n if (index !== -1) {\n skill.attributes.splice(index, 1);\n }\n }\n }\n }\n }\n\n return updateState(state, {\n categories: categories,\n error: null,\n isUpdating: false,\n });\n};\n\nconst deleteSkillAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportSkillAttributesDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportSkillAttributesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportSkillAttributesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importSkillAttributesDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importSkillAttributesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importSkillAttributesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst exportSkillsHiddenDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportSkillsHiddenDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportSkillsHiddenDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importSkillsHiddenDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importSkillsHiddenDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importSkillsHiddenDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_START:\n return getExtraFrameworkCapabilitiesStart(state);\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS:\n return getExtraFrameworkCapabilitiesSuccess(state, action);\n case actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL:\n return getExtraFrameworkCapabilitiesFail(state, action);\n\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_START:\n return getExtraFrameworkLevelsStart(state);\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_SUCCESS:\n return getExtraFrameworkLevelsSuccess(state, action);\n case actionTypes.GET_EXTRAFRAMEWORK_LEVELS_FAIL:\n return getExtraFrameworkLevelsFail(state, action);\n\n case actionTypes.GET_CATEGORIES_START:\n return getCategoriesStart(state);\n case actionTypes.GET_CATEGORIES_SUCCESS:\n return getCategoriesSuccess(state, action);\n case actionTypes.GET_CATEGORIES_FAIL:\n return getCategoriesFail(state, action);\n\n case actionTypes.ADD_SKILL_ATTRIBUTE_DATA_START:\n return addSkillAttributeStart(state);\n case actionTypes.ADD_SKILL_ATTRIBUTE_DATA_SUCCESS:\n return addSkillAttributeSuccess(state, action);\n case actionTypes.ADD_SKILL_ATTRIBUTE_DATA_FAIL:\n return addSkillAttributeFail(state, action);\n\n case actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_START:\n return updateSkillAttributeStart(state);\n case actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_SUCCESS:\n return updateSkillAttributeSuccess(state, action);\n case actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_FAIL:\n return updateSkillAttributeFail(state, action);\n\n case actionTypes.UPDATE_SKILL_SET_ISHIDDEN_START:\n return updateSkillSetIsHiddenStart(state);\n case actionTypes.UPDATE_SKILL_SET_ISHIDDEN_SUCCESS:\n return updateSkillSetIsHiddenSuccess(state, action);\n case actionTypes.UPDATE_SKILL_SET_ISHIDDEN_FAIL:\n return updateSkillSetIsHiddenFail(state, action);\n\n case actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_START:\n return deleteSkillAttributeStart(state);\n case actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_SUCCESS:\n return deleteSkillAttributeSuccess(state, action);\n case actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_FAIL:\n return deleteSkillAttributeFail(state, action);\n\n case actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_START:\n return exportSkillAttributesDataExcelStart(state);\n case actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_SUCCESS:\n return exportSkillAttributesDataExcelSuccess(state, action);\n case actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_FAIL:\n return exportSkillAttributesDataExcelFail(state, action);\n\n case actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_START:\n return importSkillAttributesDataExcelStart(state);\n case actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_SUCCESS:\n return importSkillAttributesDataExcelSuccess(state, action);\n case actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_FAIL:\n return importSkillAttributesDataExcelFail(state, action);\n\n case actionTypes.EXPORT_SKILLS_HIDDEN_DATA_START:\n return exportSkillsHiddenDataExcelStart(state);\n case actionTypes.EXPORT_SKILLS_HIDDEN_DATA_SUCCESS:\n return exportSkillsHiddenDataExcelSuccess(state, action);\n case actionTypes.EXPORT_SKILLS_HIDDEN_DATA_FAIL:\n return exportSkillsHiddenDataExcelFail(state, action);\n\n case actionTypes.IMPORT_SKILLS_HIDDEN_DATA_START:\n return importSkillsHiddenDataExcelStart(state);\n case actionTypes.IMPORT_SKILLS_HIDDEN_DATA_SUCCESS:\n return importSkillsHiddenDataExcelSuccess(state, action);\n case actionTypes.IMPORT_SKILLS_HIDDEN_DATA_FAIL:\n return importSkillsHiddenDataExcelFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n companies: [],\n providers: [],\n selectedProviders: [],\n error: null,\n loading: false,\n defaultCompany: null,\n brandingLogoImage: null,\n brandingLogoChecked: false,\n favIconImage: null,\n favIconChecked: false,\n};\n\nconst getCompaniesStart = (state) => {\n return updateState(state, { error: null, companies: [], loading: true });\n};\n\nconst getCompaniesSuccess = (state, action) => {\n return updateState(state, {\n companies: action.companies,\n error: null,\n loading: false,\n });\n};\n\nconst getCompaniesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getDefaultCompanyStart = (state) => {\n return updateState(state, { error: null, defaultCompany: null, loading: true });\n};\n\nconst getDefaultCompanySuccess = (state, action) => {\n return updateState(state, {\n defaultCompany: action.defaultCompany,\n error: null,\n loading: false,\n });\n};\n\nconst getDefaultCompanyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getCompanyBrandingLogoStart = (state) => {\n return updateState(state, { error: null, brandingLogoImage: null, loading: true, brandingLogoChecked: false });\n};\n\nconst getCompanyBrandingLogoSuccess = (state, action) => {\n return updateState(state, {\n brandingLogoImage: action.brandingLogoImage,\n error: null,\n loading: false,\n brandingLogoChecked: true,\n });\n};\n\nconst getCompanyBrandingLogoFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n brandingLogoChecked: true,\n });\n};\n\nconst getCompanyFavIconStart = (state) => {\n return updateState(state, { error: null, favIconImage: null, loading: true, favIconChecked: false });\n};\n\nconst getCompanyFavIconSuccess = (state, action) => {\n return updateState(state, {\n favIconImage: action.favIconImage,\n error: null,\n loading: false,\n favIconChecked: true,\n });\n};\n\nconst getCompanyFavIconFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n favIconChecked: true,\n });\n};\n\nconst createCompanyStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst createCompanySuccess = (state, action) => {\n const addedCompany = action.addedCompany;\n let companies = state.companies;\n\n return updateState(state, {\n companies: [...companies, addedCompany],\n error: null,\n loading: false,\n });\n};\n\nconst createCompanyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateCompanyStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst updateCompanySuccess = (state, action) => {\n const updatedCompany = action.updatedCompany;\n let companies = state.companies;\n const company = companies.find((it) => it.id == updatedCompany.id);\n if (company) {\n company.name = updatedCompany.name;\n company.website = updatedCompany.website;\n company.country = updatedCompany.country;\n company.isSelected = updatedCompany.isSelected;\n company.isPreferred = updatedCompany.isPreferred;\n }\n\n return updateState(state, {\n companies: [...companies],\n error: null,\n loading: false,\n });\n};\n\nconst updateCompanyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getSelectedProviderCompaniesStart = (state) => {\n return updateState(state, { error: null, selectedProviders: [], loading: true });\n};\n\nconst getSelectedProviderCompaniesSuccess = (state, action) => {\n return updateState(state, {\n selectedProviders: action.companies,\n error: null,\n loading: false,\n });\n};\n\nconst getSelectedProviderCompaniesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getProviderCompaniesStart = (state) => {\n return updateState(state, { error: null, providers: [], loading: true });\n};\n\nconst getProviderCompaniesSuccess = (state, action) => {\n return updateState(state, {\n providers: action.companies,\n error: null,\n loading: false,\n });\n};\n\nconst getProviderCompaniesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_COMPANIES_START:\n return getCompaniesStart(state);\n case actionTypes.GET_COMPANIES_SUCCESS:\n return getCompaniesSuccess(state, action);\n case actionTypes.GET_COMPANIES_FAIL:\n return getCompaniesFail(state, action);\n\n case actionTypes.GET_DEFAULT_COMPANY_START:\n return getDefaultCompanyStart(state);\n case actionTypes.GET_DEFAULT_COMPANY_SUCCESS:\n return getDefaultCompanySuccess(state, action);\n case actionTypes.GET_DEFAULT_COMPANY_FAIL:\n return getDefaultCompanyFail(state, action);\n\n case actionTypes.GET_COMPANY_BRANDING_LOGO_START:\n return getCompanyBrandingLogoStart(state);\n case actionTypes.GET_COMPANY_BRANDING_LOGO_SUCCESS:\n return getCompanyBrandingLogoSuccess(state, action);\n case actionTypes.GET_COMPANY_BRANDING_LOGO_FAIL:\n return getCompanyBrandingLogoFail(state, action);\n\n case actionTypes.GET_COMPANY_FAVICON_START:\n return getCompanyFavIconStart(state);\n case actionTypes.GET_COMPANY_FAVICON_SUCCESS:\n return getCompanyFavIconSuccess(state, action);\n case actionTypes.GET_COMPANY_FAVICON_FAIL:\n return getCompanyFavIconFail(state, action);\n\n case actionTypes.CREATE_COMPANY_START:\n return createCompanyStart(state);\n case actionTypes.CREATE_COMPANY_SUCCESS:\n return createCompanySuccess(state, action);\n case actionTypes.CREATE_COMPANY_FAIL:\n return createCompanyFail(state, action);\n\n case actionTypes.UPDATE_COMPANY_START:\n return updateCompanyStart(state);\n case actionTypes.UPDATE_COMPANY_SUCCESS:\n return updateCompanySuccess(state, action);\n case actionTypes.UPDATE_COMPANY_FAIL:\n return updateCompanyFail(state, action);\n\n case actionTypes.GET_SELECTED_PROVIDER_COMPANIES_START:\n return getSelectedProviderCompaniesStart(state);\n case actionTypes.GET_SELECTED_PROVIDER_COMPANIES_SUCCESS:\n return getSelectedProviderCompaniesSuccess(state, action);\n case actionTypes.GET_SELECTED_PROVIDER_COMPANIES_FAIL:\n return getSelectedProviderCompaniesFail(state, action);\n\n case actionTypes.GET_PROVIDER_COMPANIES_START:\n return getProviderCompaniesStart(state);\n case actionTypes.GET_PROVIDER_COMPANIES_SUCCESS:\n return getProviderCompaniesSuccess(state, action);\n case actionTypes.GET_PROVIDER_COMPANIES_FAIL:\n return getProviderCompaniesFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n samlEnabled: null,\n restrictLoginSSOOnly: null,\n byPassLoginPage: null,\n error: null,\n loading: false,\n currAssessment: null,\n containerConfig: null,\n config: null,\n isUpdating: false,\n blobData: null,\n loadingExport: false,\n containerAppSetting: null,\n activeUserCountStatusFetched: false,\n activeUserCount: null,\n showActiveUserCountNotification: null,\n activeUserCountStatusLoading: false,\n numberOfPersonsPutToInactive: null,\n printData: null,\n loadingPrint: false,\n reportTemplateName: null,\n};\n\nconst getSamlEnabledStatusStart = (state) => {\n return updateState(state, { error: null, samlEnabled: null, loading: true });\n};\n\nconst getSamlEnabledStatusSuccess = (state, action) => {\n return updateState(state, {\n samlEnabled: action.samlEnabled,\n restrictLoginSSOOnly: action.restrictLoginSSOOnly,\n byPassLoginPage: action.byPassLoginPage,\n error: null,\n loading: false,\n });\n};\n\nconst getSamlEnabledStatusFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst clearSAMLEnabledStatus = (state) => {\n return updateState(state, {\n samlEnabled: null,\n restrictLoginSSOOnly: null,\n byPassLoginPage: null,\n });\n};\n\nconst getCurrAssessmentStart = (state) => {\n return updateState(state, { error: null, currAssessment: null, loading: true });\n};\n\nconst getCurrAssessmentSuccess = (state, action) => {\n return updateState(state, {\n currAssessment: action.currAssessment,\n error: null,\n loading: false,\n });\n};\n\nconst getCurrAssessmentFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst clearCurrAssessment = (state) => {\n return updateState(state, { currAssessment: null });\n};\n\nconst getContainerConfigStart = (state) => {\n return updateState(state, { error: null, containerConfig: null, loading: true });\n};\n\nconst getContainerConfigSuccess = (state, action) => {\n return updateState(state, {\n containerConfig: action.containerConfig,\n error: null,\n loading: false,\n });\n};\n\nconst getContainerConfigFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getContainerConfigWithoutLoadingStart = (state) => {\n return updateState(state, { error: null });\n};\n\nconst getContainerConfigWithoutLoadingSuccess = (state, action) => {\n return updateState(state, {\n containerConfig: action.containerConfig,\n error: null,\n });\n};\n\nconst getContainerConfigWithoutLoadingFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n containerConfig: null,\n });\n};\n\nconst getAdminConfigStart = (state) => {\n return updateState(state, { error: null, config: null, loading: true });\n};\n\nconst getAdminConfigSuccess = (state, action) => {\n return updateState(state, {\n config: action.config,\n error: null,\n loading: false,\n });\n};\n\nconst getAdminConfigFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateAdminConfigStart = (state) => {\n return updateState(state, { error: null, config: null, isUpdating: true });\n};\n\nconst updateAdminConfigSuccess = (state, action) => {\n return updateState(state, {\n config: action.updatedConfig,\n containerConfig: action.updatedConfig,\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateAdminConfigFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst executeInactivationUsersLessLoginStart = (state) => {\n return updateState(state, { error: null, numberOfPersonsPutToInactive: null, isUpdating: true });\n};\n\nconst executeInactivationUsersLessLoginSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n numberOfPersonsPutToInactive: action.numberOfPersonsPutToInactive,\n });\n};\n\nconst executeInactivationUsersLessLoginFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst downloadPowerBIModelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst downloadPowerBIModelSuccess = (state, action) => {\n return updateState(state, {\n blobData: action.blobData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst downloadPowerBIModelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst getContainerAppSettingStart = (state) => {\n return updateState(state, { error: null, containerAppSetting: null, loading: true });\n};\n\nconst getContainerAppSettingSuccess = (state, action) => {\n return updateState(state, {\n containerAppSetting: action.containerAppSetting,\n error: null,\n loading: false,\n });\n};\n\nconst getContainerAppSettingFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateContainerAppSettingStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateContainerAppSettingSuccess = (state, action) => {\n return updateState(state, {\n containerAppSetting: action.containerAppSetting,\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateContainerAppSettingFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getActiveUserCountStatusStart = (state) => {\n return updateState(state, { error: null, activeUserCountStatusFetched: false, activeUserCount: null, showActiveUserCountNotification: null, activeUserCountStatusLoading: true });\n};\n\nconst getActiveUserCountStatusSuccess = (state, action) => {\n return updateState(state, {\n activeUserCount: action.activeUserCount,\n showActiveUserCountNotification: action.showActiveUserCountNotification,\n activeUserCountStatusFetched: true,\n error: null,\n activeUserCountStatusLoading: false,\n });\n};\n\nconst getActiveUserCountStatusFail = (state, action) => {\n return updateState(state, {\n activeUserCountStatusFetched: false,\n error: action.error,\n activeUserCountStatusLoading: false,\n });\n};\n\nconst clearActiveUserCountStatusState = (state, action) => {\n return updateState(state, {\n activeUserCountStatusFetched: false,\n activeUserCount: null,\n showActiveUserCountNotification: null,\n });\n};\n\nconst exportMigrationImpactAssessmentReportsStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst exportMigrationImpactAssessmentReportsToEmailStart = (state) => {\n return updateState(state, { error: null });\n};\n\nconst exportMigrationImpactAssessmentReportsSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst exportMigrationImpactAssessmentReportsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst getReportTemplateNameStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getReportTemplateNameSuccess = (state, action) => {\n return updateState(state, {\n reportTemplateName: action.reportTemplateName,\n error: null,\n loading: false,\n });\n};\n\nconst getReportTemplateNameFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst downloadReportTemplateStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst downloadReportTemplateSuccess = (state, action) => {\n return updateState(state, {\n blobData: action.blobData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst downloadReportTemplateFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst updateReportTemplateStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateReportTemplateSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateReportTemplateFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_START:\n return getSamlEnabledStatusStart(state);\n case actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_SUCCESS:\n return getSamlEnabledStatusSuccess(state, action);\n case actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_FAIL:\n return getSamlEnabledStatusFail(state, action);\n\n case actionTypes.GET_CONFIG_CURR_ASSESSMENT_START:\n return getCurrAssessmentStart(state);\n case actionTypes.GET_CONFIG_CURR_ASSESSMENT_SUCCESS:\n return getCurrAssessmentSuccess(state, action);\n case actionTypes.GET_CONFIG_CURR_ASSESSMENT_FAIL:\n return getCurrAssessmentFail(state, action);\n\n case actionTypes.CLEAR_CONFIG_CURR_ASSESSMENT:\n return clearCurrAssessment(state);\n\n case actionTypes.GET_CONTAINER_CONFIG_START:\n return getContainerConfigStart(state);\n case actionTypes.GET_CONTAINER_CONFIG_SUCCESS:\n return getContainerConfigSuccess(state, action);\n case actionTypes.GET_CONTAINER_CONFIG_FAIL:\n return getContainerConfigFail(state, action);\n\n case actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_START:\n return getContainerConfigWithoutLoadingStart(state);\n case actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_SUCCESS:\n return getContainerConfigWithoutLoadingSuccess(state, action);\n case actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_FAIL:\n return getContainerConfigWithoutLoadingFail(state, action);\n\n case actionTypes.GET_ADMIN_CONFIG_START:\n return getAdminConfigStart(state);\n case actionTypes.GET_ADMIN_CONFIG_SUCCESS:\n return getAdminConfigSuccess(state, action);\n case actionTypes.GET_ADMIN_CONFIG_FAIL:\n return getAdminConfigFail(state, action);\n\n case actionTypes.UPDATE_ADMIN_CONFIG_START:\n return updateAdminConfigStart(state);\n case actionTypes.UPDATE_ADMIN_CONFIG_SUCCESS:\n return updateAdminConfigSuccess(state, action);\n case actionTypes.UPDATE_ADMIN_CONFIG_FAIL:\n return updateAdminConfigFail(state, action);\n\n case actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_START:\n return executeInactivationUsersLessLoginStart(state);\n case actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_SUCCESS:\n return executeInactivationUsersLessLoginSuccess(state, action);\n case actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_FAIL:\n return executeInactivationUsersLessLoginFail(state, action);\n\n case actionTypes.DOWNLOAD_POWERBIMODEL_START:\n return downloadPowerBIModelStart(state);\n case actionTypes.DOWNLOAD_POWERBIMODEL_SUCCESS:\n return downloadPowerBIModelSuccess(state, action);\n case actionTypes.DOWNLOAD_POWERBIMODEL_FAIL:\n return downloadPowerBIModelFail(state, action);\n\n case actionTypes.GET_CONTAINER_APP_SETTING_START:\n return getContainerAppSettingStart(state);\n case actionTypes.GET_CONTAINER_APP_SETTING_SUCCESS:\n return getContainerAppSettingSuccess(state, action);\n case actionTypes.GET_CONTAINER_APP_SETTING_FAIL:\n return getContainerAppSettingFail(state, action);\n\n case actionTypes.UPDATE_CONTAINER_APP_SETTING_START:\n return updateContainerAppSettingStart(state);\n case actionTypes.UPDATE_CONTAINER_APP_SETTING_SUCCESS:\n return updateContainerAppSettingSuccess(state, action);\n case actionTypes.UPDATE_CONTAINER_APP_SETTING_FAIL:\n return updateContainerAppSettingFail(state, action);\n\n case actionTypes.GET_ACTIVE_USER_COUNT_STATUS_START:\n return getActiveUserCountStatusStart(state);\n case actionTypes.GET_ACTIVE_USER_COUNT_STATUS_SUCCESS:\n return getActiveUserCountStatusSuccess(state, action);\n case actionTypes.GET_ACTIVE_USER_COUNT_STATUS_FAIL:\n return getActiveUserCountStatusFail(state, action);\n case actionTypes.CLEAR_ACTIVE_USER_COUNT_STATUS:\n return clearActiveUserCountStatusState(state, action);\n case actionTypes.CLEAR_SAML_ENABLED_STATUS:\n return clearSAMLEnabledStatus(state);\n\n case actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_START:\n return exportMigrationImpactAssessmentReportsStart(state);\n case actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_TOEMAIL_START:\n return exportMigrationImpactAssessmentReportsToEmailStart(state);\n case actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_SUCCESS:\n return exportMigrationImpactAssessmentReportsSuccess(state, action);\n case actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_FAIL:\n return exportMigrationImpactAssessmentReportsFail(state, action);\n\n case actionTypes.GET_REPORT_TEMPLATE_NAME_START:\n return getReportTemplateNameStart(state);\n case actionTypes.GET_REPORT_TEMPLATE_NAME_SUCCESS:\n return getReportTemplateNameSuccess(state, action);\n case actionTypes.GET_REPORT_TEMPLATE_NAME_FAIL:\n return getReportTemplateNameFail(state, action);\n\n case actionTypes.DOWNLOAD_REPORT_TEMPLATE_START:\n return downloadReportTemplateStart(state);\n case actionTypes.DOWNLOAD_REPORT_TEMPLATE_SUCCESS:\n return downloadReportTemplateSuccess(state, action);\n case actionTypes.DOWNLOAD_REPORT_TEMPLATE_FAIL:\n return downloadReportTemplateFail(state, action);\n\n case actionTypes.UPDATE_REPORT_TEMPLATE_START:\n return updateReportTemplateStart(state);\n case actionTypes.UPDATE_REPORT_TEMPLATE_SUCCESS:\n return updateReportTemplateSuccess(state, action);\n case actionTypes.UPDATE_REPORT_TEMPLATE_FAIL:\n return updateReportTemplateFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n contentTranslations: [],\n error: null,\n loading: false,\n};\n\nconst getContentTranslationsStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getContentTranslationsSuccess = (state, action) => {\n let currContentTranslations = state.contentTranslations ? [...state.contentTranslations] : [];\n const actionContentTranslations = action.contentTranslations;\n const updatedContentTranslations = currContentTranslations.map((currContentTranslation) => {\n try {\n if (actionContentTranslations.find((x) => x.page == currContentTranslation.page && x.name == currContentTranslation.name)) {\n var actionContentTranslation = actionContentTranslations.find((x) => x.page == currContentTranslation.page && x.name == currContentTranslation.name); \n\n return {\n id: currContentTranslation.id,\n page: currContentTranslation.page,\n name: currContentTranslation.name,\n contentId: currContentTranslation.contentId,\n contentTranslationId: currContentTranslation.contentTranslationId,\n languageId: currContentTranslation.languageId,\n language: currContentTranslation.language,\n contentText: actionContentTranslation.contentText,\n contentTextTranslation: actionContentTranslation.contentTextTranslation,\n };\n } else {\n return {\n id: currContentTranslation.id,\n page: currContentTranslation.page,\n name: currContentTranslation.name,\n contentId: currContentTranslation.contentId,\n contentTranslationId: currContentTranslation.contentTranslationId,\n languageId: currContentTranslation.languageId,\n language: currContentTranslation.language,\n contentText: currContentTranslation.contentText,\n contentTextTranslation: currContentTranslation.contentText,\n };\n }\n } catch (err) {\n console.log(err.message);\n }\n });\n\n let addedContentTranslations = actionContentTranslations.filter((it) => !currContentTranslations.some((x) => x.page == it.page && x.name == it.name));\n const latestContentTranslations = [...updatedContentTranslations, ...addedContentTranslations];\n\n return updateState(state, {\n contentTranslations: [...latestContentTranslations],\n error: null,\n loading: false,\n });\n};\n\nconst getContentTranslationsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_CONTENT_TRANSLATIONS_START:\n return getContentTranslationsStart(state);\n case actionTypes.GET_CONTENT_TRANSLATIONS_SUCCESS:\n return getContentTranslationsSuccess(state, action);\n case actionTypes.GET_CONTENT_TRANSLATIONS_FAIL:\n return getContentTranslationsFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\n\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n countries: [],\n error: null,\n loading: false,\n};\n\nconst getCountriesStart = (state) => {\n return updateState(state, { error: null, countries: [], loading: true });\n};\n\nconst getCountriesSuccess = (state, action) => {\n return updateState(state, {\n countries: action.countries,\n error: null,\n loading: false,\n });\n};\n\nconst getCountriesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_COUNTRIES_START:\n return getCountriesStart(state);\n case actionTypes.GET_COUNTRIES_SUCCESS:\n return getCountriesSuccess(state, action);\n case actionTypes.GET_COUNTRIES_FAIL:\n return getCountriesFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n error: null,\n loading: false,\n evidenceTypes: [],\n evidences: [],\n evidenceFile: null,\n updateInProgress: false,\n updatedEvidence: null,\n};\n\nconst getEvidenceTypesStart = (state) => {\n return updateState(state, { error: null, evidenceTypes: [], loading: true });\n};\n\nconst getEvidenceTypesSuccess = (state, action) => {\n const evidenceTypes = action.evidenceTypes;\n return updateState(state, {\n evidenceTypes: evidenceTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getEvidenceTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst addEvidenceStart = (state) => {\n return updateState(state, { error: null, updatedEvidence: null, updateInProgress: true });\n};\n\nconst addEvidenceSuccess = (state, action) => {\n return updateState(state, {\n updatedEvidence: action.evidence,\n error: null,\n updateInProgress: false,\n });\n};\n\nconst addEvidenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updateInProgress: false,\n });\n};\n\nconst addEvidencesStart = (state) => {\n return updateState(state, { error: null, updatedEvidences: null, updateInProgress: true });\n};\n\nconst addEvidencesSuccess = (state, action) => {\n return updateState(state, {\n updatedEvidences: [...action.evidences],\n error: null,\n updateInProgress: false,\n });\n};\n\nconst addEvidencesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updateInProgress: false,\n });\n};\n\nconst updateEvidenceStart = (state) => {\n return updateState(state, { error: null, updatedEvidence: null, updateInProgress: true });\n};\n\nconst updateEvidenceSuccess = (state, action) => {\n return updateState(state, {\n updatedEvidence: action.evidence,\n error: null,\n updateInProgress: false,\n });\n};\n\nconst updateEvidenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updateInProgress: false,\n });\n};\n\nconst deleteEvidenceStart = (state) => {\n return updateState(state, { error: null, updateInProgress: true });\n};\n\nconst deleteEvidenceSuccess = (state) => {\n return updateState(state, {\n error: null,\n updateInProgress: false,\n });\n};\n\nconst deleteEvidenceFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updateInProgress: false,\n });\n};\n\nconst getEvidencesStart = (state) => {\n return updateState(state, { error: null, evidences: [], loading: true });\n};\n\nconst getEvidencesSuccess = (state, action) => {\n return updateState(state, {\n evidences: action.evidences,\n error: null,\n loading: false,\n });\n};\n\nconst getEvidencesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst downloadEvidenceByIdStart = (state) => {\n return updateState(state, { error: null, evidenceFile: null, loading: true });\n};\n\nconst downloadEvidenceByIdSuccess = (state, action) => {\n return updateState(state, {\n evidenceFile: action.evidenceFile,\n error: null,\n loading: false,\n });\n};\n\nconst downloadEvidenceByIdFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_EVIDENCE_TYPES_START:\n return getEvidenceTypesStart(state);\n case actionTypes.GET_EVIDENCE_TYPES_SUCCESS:\n return getEvidenceTypesSuccess(state, action);\n case actionTypes.GET_EVIDENCE_TYPES_FAIL:\n return getEvidenceTypesFail(state, action);\n\n case actionTypes.GET_EVIDENCES_BYACCOUNTID_START:\n case actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_START:\n return getEvidencesStart(state);\n case actionTypes.GET_EVIDENCES_BYACCOUNTID_SUCCESS:\n case actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_SUCCESS:\n return getEvidencesSuccess(state, action);\n case actionTypes.GET_EVIDENCES_BYACCOUNTID_FAIL:\n case actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_FAIL:\n return getEvidencesFail(state, action);\n\n case actionTypes.ADD_EVIDENCE_START:\n case actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_START:\n return addEvidenceStart(state);\n case actionTypes.ADD_EVIDENCE_SUCCESS:\n case actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_SUCCESS:\n return addEvidenceSuccess(state, action);\n case actionTypes.ADD_EVIDENCE_FAIL:\n case actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_FAIL:\n return addEvidenceFail(state, action);\n\n case actionTypes.ADD_EVIDENCES_START:\n return addEvidencesStart(state);\n case actionTypes.ADD_EVIDENCES_SUCCESS:\n return addEvidencesSuccess(state, action);\n case actionTypes.ADD_EVIDENCES_FAIL:\n return addEvidencesFail(state, action);\n\n case actionTypes.UPDATE_EVIDENCE_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_EVIDENCE_START:\n return updateEvidenceStart(state);\n case actionTypes.UPDATE_EVIDENCE_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_EVIDENCE_SUCCESS:\n return updateEvidenceSuccess(state, action);\n case actionTypes.UPDATE_EVIDENCE_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_EVIDENCE_FAIL:\n return updateEvidenceFail(state, action);\n case actionTypes.DELETE_EVIDENCE_START:\n case actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_START:\n return deleteEvidenceStart(state);\n case actionTypes.DELETE_EVIDENCE_SUCCESS:\n case actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_SUCCESS:\n return deleteEvidenceSuccess(state);\n case actionTypes.DELETE_EVIDENCE_FAIL:\n case actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_FAIL:\n return deleteEvidenceFail(state, action);\n\n case actionTypes.DOWNLOAD_EVIDENCE_BYID_START:\n case actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_START:\n return downloadEvidenceByIdStart(state);\n case actionTypes.DOWNLOAD_EVIDENCE_BYID_SUCCESS:\n case actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_SUCCESS:\n return downloadEvidenceByIdSuccess(state, action);\n case actionTypes.DOWNLOAD_EVIDENCE_BYID_FAIL:\n case actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_FAIL:\n return downloadEvidenceByIdFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\n\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n seniorityOptions: [],\n contractTypeOptions: [],\n yearRangeJobOptions: [],\n yearRangeOrgOptions: [],\n};\n\nconst getSeniorityOptionsStart = (state) => {\n return updateState(state, { seniorityOptions: [] });\n};\n\nconst getSeniorityOptionsSuccess = (state, action) => {\n return updateState(state, {\n seniorityOptions: action.values,\n });\n};\n\nconst getSeniorityOptionsFail = (state) => {\n return updateState(state, {\n seniorityOptions: [],\n });\n};\n\nconst getContractTypeOptionsStart = (state) => {\n return updateState(state, { contractTypeOptions: [] });\n};\n\nconst getContractTypeOptionsSuccess = (state, action) => {\n return updateState(state, {\n contractTypeOptions: action.values,\n });\n};\n\nconst getContractTypeOptionsFail = (state) => {\n return updateState(state, {\n contractTypeOptions: [],\n });\n};\n\nconst getYearRangeJobOptionsStart = (state) => {\n return updateState(state, { yearRangeJobOptions: [] });\n};\n\nconst getYearRangeJobOptionsSuccess = (state, action) => {\n return updateState(state, {\n yearRangeJobOptions: action.values,\n });\n};\n\nconst getYearRangeJobOptionsFail = (state) => {\n return updateState(state, {\n yearRangeJobOptions: [],\n });\n};\n\nconst getYearRangeOrgOptionsStart = (state) => {\n return updateState(state, { yearRangeOrgOptions: [] });\n};\n\nconst getYearRangeOrgOptionsSuccess = (state, action) => {\n return updateState(state, {\n yearRangeOrgOptions: action.values,\n });\n};\n\nconst getYearRangeOrgOptionsFail = (state) => {\n return updateState(state, {\n yearRangeOrgOptions: [],\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_SENIORITY_VALUES_START:\n return getSeniorityOptionsStart(state);\n case actionTypes.GET_SENIORITY_VALUES_SUCCESS:\n return getSeniorityOptionsSuccess(state, action);\n case actionTypes.GET_SENIORITY_VALUES_FAIL:\n return getSeniorityOptionsFail(state);\n case actionTypes.GET_CONTRACT_TYPE_VALUES_START:\n return getContractTypeOptionsStart(state);\n case actionTypes.GET_CONTRACT_TYPE_VALUES_SUCCESS:\n return getContractTypeOptionsSuccess(state, action);\n case actionTypes.GET_CONTRACT_TYPE_VALUES_FAIL:\n return getContractTypeOptionsFail(state);\n case actionTypes.GET_YEAR_RANGE_JOB_VALUES_START:\n return getYearRangeJobOptionsStart(state);\n case actionTypes.GET_YEAR_RANGE_JOB_VALUES_SUCCESS:\n return getYearRangeJobOptionsSuccess(state, action);\n case actionTypes.GET_YEAR_RANGE_JOB_VALUES_FAIL:\n return getYearRangeJobOptionsFail(state);\n case actionTypes.GET_YEAR_RANGE_ORG_VALUES_START:\n return getYearRangeOrgOptionsStart(state);\n case actionTypes.GET_YEAR_RANGE_ORG_VALUES_SUCCESS:\n return getYearRangeOrgOptionsSuccess(state, action);\n case actionTypes.GET_YEAR_RANGE_ORG_VALUES_FAIL:\n return getYearRangeOrgOptionsFail(state);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n job: null,\n jobs: [],\n jobFamilies: [],\n sampleJobs: [],\n jobMatchTypes: [],\n jobMatchesLoading: false,\n jobMatches: [],\n jobMatchesUpdated: false,\n error: null,\n loading: false,\n jobLorProfiles: [],\n jobSkillProfiles: [],\n jobSkillAttributes: [],\n jobLorAttributes: [],\n profileVersions: [],\n\n profileUpdating: false,\n profileUpdatingSuccess: false,\n profileUpdatingError: null,\n udpatedSkills: null,\n\n isUpdating: false,\n\n jobMatchPersons: [],\n jobImportSessionId: null,\n\n exportData: null,\n loadingExport: false,\n isImporting: false,\n\n jobImportQueue: [],\n addedJobImports: [],\n\n loadingPrint: false,\n printData: null,\n};\n\nconst getJobsStart = (state) => {\n return updateState(state, { error: null, jobs: [], loading: true });\n};\n\nconst getJobsSuccess = (state, action) => {\n return updateState(state, {\n jobs: action.jobs,\n error: null,\n loading: false,\n });\n};\n\nconst getJobsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getSampleJobsStart = (state) => {\n return updateState(state, { error: null, sampleJobs: [], loading: true });\n};\n\nconst getSampleJobsSuccess = (state, action) => {\n return updateState(state, {\n sampleJobs: action.sampleJobs,\n error: null,\n loading: false,\n });\n};\n\nconst getSampleJobsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getJobStart = (state) => {\n return updateState(state, { error: null, job: null, loading: true });\n};\n\nconst getJobSuccess = (state, action) => {\n return updateState(state, {\n job: action.job,\n error: null,\n loading: false,\n });\n};\n\nconst getJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst printJobReportStart = (state) => {\n return updateState(state, { error: null, printData: null, loadingPrint: true });\n};\n\nconst printJobReportSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst printJobReportFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst printJobReportsStart = (state) => {\n return updateState(state, { error: null, printData: null, loadingPrint: true });\n};\n\nconst printJobReportsSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst printJobReportsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst createJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst createJobSuccess = (state, action) => {\n const addedJob = action.addedJob;\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n job: addedJob,\n });\n};\n\nconst createJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateJobSuccess = (state, action) => {\n let jobs = state.jobs;\n const updatedJob = jobs.find((x) => x.id == action.updatedJob.id);\n if (updatedJob) {\n updatedJob.name = action.updatedJob.name;\n updatedJob.description = action.updatedJob.description;\n updatedJob.reference = action.updatedJob.reference;\n updatedJob.customerReference = action.updatedJob.customerReference;\n updatedJob.sequence = action.updatedJob.sequence;\n updatedJob.isRole = action.updatedJob.isRole;\n updatedJob.createdOn = action.updatedJob.createdOn;\n updatedJob.defineById = action.updatedJob.defineById;\n updatedJob.defineBy = action.updatedJob.defineBy;\n updatedJob.reportingTo = action.updatedJob.reportingTo;\n updatedJob.seniority = action.updatedJob.seniority;\n updatedJob.employmentStatus = action.updatedJob.employmentStatus;\n updatedJob.department = action.updatedJob.department;\n updatedJob.location = action.updatedJob.location;\n updatedJob.purpose = action.updatedJob.purpose;\n updatedJob.keyAccountibilities = action.updatedJob.keyAccountibilities;\n updatedJob.keyProcesses = action.updatedJob.keyProcesses;\n updatedJob.educationRequirements = action.updatedJob.educationRequirements;\n updatedJob.qualificationRequirements = action.updatedJob.qualificationRequirements;\n updatedJob.otherRequirements = action.updatedJob.otherRequirements;\n updatedJob.comment = action.updatedJob.comment;\n updatedJob.isHidden = action.updatedJob.isHidden;\n updatedJob.isCandidateJob = action.updatedJob.isCandidateJob;\n updatedJob.inActive = action.updatedJob.inActive;\n updatedJob.isSample = action.updatedJob.isSample;\n updatedJob.ownerId = action.updatedJob.ownerId;\n updatedJob.owner = action.updatedJob.owner;\n updatedJob.fte = action.updatedJob.fte;\n updatedJob.language = action.updatedJob.language;\n updatedJob.languageId = action.updatedJob.languageId;\n updatedJob.updatedOn = action.updatedJob.updatedOn;\n updatedJob.showAsRoleBasedSurveyInSelfRegistration = action.updatedJob.showAsRoleBasedSurveyInSelfRegistration;\n updatedJob.showAsVacancy = action.updatedJob.showAsVacancy;\n updatedJob.vacancyOwner = action.updatedJob.vacancyOwner;\n updatedJob.vacancyOwnerId = action.updatedJob.vacancyOwnerId;\n }\n\n return updateState(state, {\n jobs: [...jobs],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateJobByNotification = (state, action) => {\n let jobs = state.jobs;\n const updatedJob = jobs.find((x) => x.id == action.updatedJob.id);\n if (updatedJob) {\n updatedJob.name = action.updatedJob.name;\n updatedJob.description = action.updatedJob.description;\n updatedJob.reference = action.updatedJob.reference;\n updatedJob.customerReference = action.updatedJob.customerReference;\n updatedJob.sequence = action.updatedJob.sequence;\n updatedJob.isRole = action.updatedJob.isRole;\n updatedJob.createdOn = action.updatedJob.createdOn;\n updatedJob.defineById = action.updatedJob.defineById;\n updatedJob.defineBy = action.updatedJob.defineBy;\n updatedJob.reportingTo = action.updatedJob.reportingTo;\n updatedJob.seniority = action.updatedJob.seniority;\n updatedJob.employmentStatus = action.updatedJob.employmentStatus;\n updatedJob.department = action.updatedJob.department;\n updatedJob.location = action.updatedJob.location;\n updatedJob.purpose = action.updatedJob.purpose;\n updatedJob.keyAccountibilities = action.updatedJob.keyAccountibilities;\n updatedJob.keyProcesses = action.updatedJob.keyProcesses;\n updatedJob.educationRequirements = action.updatedJob.educationRequirements;\n updatedJob.qualificationRequirements = action.updatedJob.qualificationRequirements;\n updatedJob.otherRequirements = action.updatedJob.otherRequirements;\n updatedJob.comment = action.updatedJob.comment;\n updatedJob.isHidden = action.updatedJob.isHidden;\n updatedJob.isCandidateJob = action.updatedJob.isCandidateJob;\n updatedJob.inActive = action.updatedJob.inActive;\n updatedJob.isSample = action.updatedJob.isSample;\n updatedJob.ownerId = action.updatedJob.ownerId;\n updatedJob.owner = action.updatedJob.owner;\n updatedJob.fte = action.updatedJob.fte;\n updatedJob.language = action.updatedJob.language;\n updatedJob.languageId = action.updatedJob.languageId;\n updatedJob.updatedOn = action.updatedJob.updatedOn;\n updatedJob.showAsRoleBasedSurveyInSelfRegistration = action.updatedJob.showAsRoleBasedSurveyInSelfRegistration;\n updatedJob.showAsVacancy = action.updatedJob.showAsVacancy;\n updatedJob.vacancyOwner = action.updatedJob.vacancyOwner;\n updatedJob.vacancyOwnerId = action.updatedJob.vacancyOwnerId;\n }\n\n return updateState(state, {\n jobs: [...jobs],\n });\n};\n\nconst updateJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateJobNoteStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateJobNoteSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateJobNoteFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteJobSuccess = (state, action) => {\n let jobs = state.jobs;\n const deletedJob = jobs.find((it) => it.id == action.id);\n\n if (deletedJob) {\n const index = jobs.indexOf(deletedJob);\n if (index !== -1) {\n jobs.splice(index, 1);\n }\n }\n\n return updateState(state, {\n jobs: [...jobs],\n error: null,\n isUpdating: false,\n });\n};\n\nconst deleteJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst copyJobStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst copyJobSuccess = (state, action) => {\n const addedJob = action.addedJob;\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n job: addedJob,\n jobs: [...state.jobs, addedJob],\n });\n};\n\nconst copyJobFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst copyJobsStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst copyJobsSuccess = (state, action) => {\n const addedJobs = action.addedJobs;\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n jobs: [...state.jobs, ...addedJobs],\n });\n};\n\nconst copyJobsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateJobSkillAttributesStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateJobSkillAttributesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n jobSkillAttributes: action.jobSkillAttributes,\n });\n};\n\nconst updateJobSkillAttributesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateJobLorAttributesStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateJobLorAttributesSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isUpdating: false,\n jobLorAttributes: action.jobLorAttributes,\n });\n};\n\nconst updateJobLorAttributesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getMyJobMatchTypesStart = (state) => {\n return updateState(state, { error: null, jobMatchTypes: [], loading: true });\n};\n\nconst getMyJobMatchTypesSuccess = (state, action) => {\n return updateState(state, {\n jobMatchTypes: action.jobMatchTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getMyJobMatchTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getJobMatchesStart = (state) => {\n return updateState(state, { error: null, lors: [], jobMatchesLoading: true });\n};\n\nconst getJobMatchesSuccess = (state, action) => {\n return updateState(state, {\n jobMatches: action.jobMatches,\n error: null,\n jobMatchesLoading: false,\n });\n};\n\nconst getJobMatchesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n jobMatchesLoading: false,\n });\n};\n\nconst updateJobMatchesStart = (state) => {\n return updateState(state, { error: null, isUpdating: true, jobMatchesUpdated: false });\n};\n\nconst updateJobMatchesSuccess = (state, action) => {\n return updateState(state, {\n jobMatches: action.jobMatches,\n error: null,\n isUpdating: false,\n jobMatchesUpdated: true,\n });\n};\n\nconst updateJobMatchesFail = (state, action) => {\n return updateState(state, {\n jobMatches: [],\n jobMatchesUpdated: false,\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst getJobProfileVersionsStart = (state) => {\n return updateState(state, { error: null, profileVersions: [], loading: true });\n};\n\nconst getJobProfileVersionsSuccess = (state, action) => {\n return updateState(state, {\n profileVersions: action.profileVersions,\n error: null,\n loading: false,\n });\n};\n\nconst getJobProfileVersionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getJobLorProfilesStart = (state) => {\n return updateState(state, { error: null, jobLorProfiles: [], loading: true });\n};\n\nconst getJobLorProfilesSuccess = (state, action) => {\n return updateState(state, {\n jobLorProfiles: action.jobLorProfiles,\n error: null,\n loading: false,\n });\n};\n\nconst getJobLorProfilesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getJobSkillProfilesStart = (state) => {\n return updateState(state, { error: null, jobSkillProfiles: [], loading: true });\n};\n\nconst getJobSkillProfilesSuccess = (state, action) => {\n return updateState(state, {\n jobSkillProfiles: action.jobSkillProfiles,\n error: null,\n loading: false,\n });\n};\n\nconst getJobSkillProfilesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateJobSkillProfilesStart = (state) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: true, profileUpdatingSuccess: false, udpatedSkills: null });\n};\n\nconst updateJobSkillProfilesSuccess = (state, action) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: false, profileUpdatingSuccess: true, udpatedSkills: action.udpatedSkills });\n};\n\nconst updateJobSkillProfilesFail = (state, action) => {\n return updateState(state, { profileUpdatingError: action.error, profileUpdating: false });\n};\n\nconst clearUpdateJobSkillProfiles = (state) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: false, profileUpdatingSuccess: false, udpatedSkills: null });\n};\n\nconst getJobSkillAttributesStart = (state) => {\n return updateState(state, { error: null, jobSkillAttributes: [], loading: true });\n};\n\nconst getJobSkillAttributesSuccess = (state, action) => {\n return updateState(state, {\n jobSkillAttributes: action.jobSkillAttributes,\n error: null,\n loading: false,\n });\n};\n\nconst getJobSkillAttributesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getJobLorAttributesStart = (state) => {\n return updateState(state, { error: null, jobLorAttributes: [], loading: true });\n};\n\nconst getJobLorAttributesSuccess = (state, action) => {\n return updateState(state, {\n jobLorAttributes: action.jobLorAttributes,\n error: null,\n loading: false,\n });\n};\n\nconst getJobLorAttributesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst setJobImportSessionId = (state, action) => {\n return updateState(state, {\n jobImportSessionId: action.jobImportSessionId,\n });\n};\n\nconst exportJobsDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportJobsDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportJobsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importJobsDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, addedJobImports: [] });\n};\n\nconst importJobsDataExcelSuccess = (state, action) => {\n let jobImportQueue = state.jobImportQueue;\n const addedJobImportQueue = action.addedJobImportQueue;\n\n return updateState(state, {\n error: null,\n isImporting: false,\n jobImportQueue: [...jobImportQueue, ...addedJobImportQueue],\n addedJobImports: addedJobImportQueue,\n });\n};\n\nconst importJobsDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst getJobImportQueueStart = (state) => {\n return updateState(state, { error: null, jobImportQueue: [], loading: true });\n};\n\nconst getJobImportQueueSuccess = (state, action) => {\n return updateState(state, {\n jobImportQueue: action.jobImportQueue,\n error: null,\n loading: false,\n });\n};\n\nconst getJobImportQueueFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateImportJobStatus = (state, action) => {\n const updatedImportJobRequest = action.updatedImportJobRequest;\n const importedJobs = action.updatedJobs;\n\n let jobs = state.jobs;\n const jobImportQueue = state.jobImportQueue;\n\n if (jobImportQueue.find((it) => it.id == updatedImportJobRequest.id)) {\n const updatedJobImport = jobImportQueue.find((it) => it.id == updatedImportJobRequest.id);\n updatedJobImport.status = updatedImportJobRequest.status;\n updatedJobImport.statusMessage = updatedImportJobRequest.statusMessage;\n updatedJobImport.message = updatedImportJobRequest.message;\n }\n\n jobs.filter((x) => importedJobs.find((y) => y.id == x.id)).forEach((updatedJob) => {\n const importedJob = importedJobs.find((y) => y.id == updatedJob.id);\n if (importedJob) {\n updatedJob.name = importedJob.name;\n updatedJob.description = importedJob.description;\n updatedJob.reference = importedJob.reference;\n updatedJob.customerReference = importedJob.customerReference;\n updatedJob.isRole = importedJob.isRole;\n updatedJob.reportingTo = importedJob.reportingTo;\n updatedJob.employmentStatus = importedJob.employmentStatus;\n updatedJob.department = importedJob.department;\n updatedJob.location = importedJob.location;\n updatedJob.purpose = importedJob.purpose;\n updatedJob.keyAccountibilities = importedJob.keyAccountibilities;\n updatedJob.keyProcesses = importedJob.keyProcesses;\n updatedJob.educationRequirements = importedJob.educationRequirements;\n updatedJob.qualificationRequirements = importedJob.qualificationRequirements;\n updatedJob.otherRequirements = importedJob.otherRequirements;\n\n updatedJob.inActive = importedJob.inActive;\n updatedJob.showAsRoleBasedSurveyInSelfRegistration = importedJob.showAsRoleBasedSurveyInSelfRegistration;\n updatedJob.showAsVacancy = importedJob.showAsVacancy;\n updatedJob.vacancyOwner = importedJob.vacancyOwner;\n updatedJob.vacancyOwnerId = importedJob.vacancyOwnerId;\n }\n });\n\n const addedJobs = importedJobs.filter((x) => !jobs.find((y) => x.id == y.id));\n\n return updateState(state, {\n jobImportQueue,\n jobs: [...jobs, ...addedJobs],\n });\n};\n\nconst getJobMatchPersonsStart = (state) => {\n return updateState(state, { error: null, jobMatchPersons: [], loading: true });\n};\n\nconst getJobMatchPersonsSuccess = (state, action) => {\n return updateState(state, {\n jobMatchPersons: action.jobMatchPersons,\n error: null,\n loading: false,\n });\n};\n\nconst getJobMatchPersonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst assignJobMatchPersonStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst assignJobMatchPersonSuccess = (state, action) => {\n const updatedJobMatch = action.updatedJobMatch;\n const jobMatchPersons = state.jobMatchPersons;\n\n const updatedJobMatchPerson = jobMatchPersons.find((it) => it.personId == updatedJobMatch.personId);\n if (updatedJobMatchPerson) {\n updatedJobMatchPerson.currentJobMatchId = updatedJobMatch.currentJobMatchId;\n updatedJobMatchPerson.currentJobMatch = updatedJobMatch.currentJobMatch;\n updatedJobMatchPerson.currentJobReference = updatedJobMatch.currentJobReference;\n updatedJobMatchPerson.currentJobMatchPercentSelf = updatedJobMatch.currentJobMatchPercentSelf;\n updatedJobMatchPerson.currentJobMatchUpdatedOn = updatedJobMatch.currentJobMatchUpdatedOn;\n\n updatedJobMatchPerson.futureJobMatchId = updatedJobMatch.futureJobMatchId;\n updatedJobMatchPerson.futureJobMatch = updatedJobMatch.futureJobMatch;\n updatedJobMatchPerson.futureJobReference = updatedJobMatch.futureJobReference;\n updatedJobMatchPerson.futureJobMatchPercentSelf = updatedJobMatch.futureJobMatchPercentSelf;\n updatedJobMatchPerson.futureJobMatchUpdatedOn = updatedJobMatch.futureJobMatchUpdatedOn;\n\n updatedJobMatchPerson.proposedJobMatchId = updatedJobMatch.proposedJobMatchId;\n updatedJobMatchPerson.proposedJobMatch = updatedJobMatch.proposedJobMatch;\n updatedJobMatchPerson.proposedJobReference = updatedJobMatch.proposedJobReference;\n updatedJobMatchPerson.proposedJobMatchPercentSelf = updatedJobMatch.proposedJobMatchPercentSelf;\n updatedJobMatchPerson.proposedJobMatchUpdatedOn = updatedJobMatch.proposedJobMatchUpdatedOn;\n\n updatedJobMatchPerson.lastUpdatedOn = updatedJobMatch.lastUpdatedOn;\n updatedJobMatchPerson.lastUpdatedOn1 = updatedJobMatch.lastUpdatedOn1;\n updatedJobMatchPerson.lastUpdatedOn2 = updatedJobMatch.lastUpdatedOn2;\n updatedJobMatchPerson.lastUpdatedOn3 = updatedJobMatch.lastUpdatedOn3;\n }\n\n return updateState(state, {\n jobMatchPersons: [...jobMatchPersons],\n error: null,\n isUpdating: false,\n });\n};\n\nconst assignJobMatchPersonFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportJobMatchesDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportJobMatchesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportJobMatchesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importJobMatchesDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importJobMatchesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importJobMatchesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst getJobFamiliesStart = (state) => {\n return updateState(state, { error: null, jobFamilies: [], loading: true });\n};\n\nconst getJobFamiliesSuccess = (state, action) => {\n return updateState(state, {\n jobFamilies: action.jobFamilies,\n error: null,\n loading: false,\n });\n};\n\nconst getJobFamiliesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateJobFamilyStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateJobFamilySuccess = (state, action) => {\n const jobFamily = action.jobFamily;\n const jobs = state.jobs;\n\n const deletedJobIds = action.deletedJobIds;\n\n const jobFamilies = state.jobFamilies;\n\n const oriJobFamily = jobFamilies.find((it) => it.id == jobFamily.id);\n if (oriJobFamily) {\n oriJobFamily.name = jobFamily.name;\n oriJobFamily.entries = jobFamily.entries;\n } else {\n jobFamilies.push(jobFamily);\n }\n\n if (jobFamily.entries && jobFamily.entries.length > 0) {\n jobFamily.entries.forEach((entry) => {\n const job = jobs.find((j) => j.id == entry.jobId);\n if (job) {\n job.jobFamilyId = jobFamily.id;\n job.jobFamily = jobFamily.name;\n }\n });\n }\n\n if (deletedJobIds && deletedJobIds.length > 0) {\n deletedJobIds.forEach((deletedJobId) => {\n const job = jobs.find((j) => j.id == deletedJobId);\n if (job) {\n job.jobFamilyId = null;\n job.jobFamily = null;\n }\n });\n }\n\n return updateState(state, {\n jobFamilies: [...jobFamilies],\n jobs: [...jobs],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateJobFamilyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteJobFamilyStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteJobFamilySuccess = (state, action) => {\n const deletedJobFamilyId = action.deletedJobFamilyId;\n const jobs = state.jobs;\n const jobFamilies = state.jobFamilies;\n\n const oriJobFamily = jobFamilies.find((it) => it.id == deletedJobFamilyId);\n if (oriJobFamily) {\n var index = jobFamilies.indexOf(oriJobFamily);\n if (index !== -1) {\n jobFamilies.splice(index, 1);\n }\n\n const deletedJobs = jobs.filter((j) => j.jobFamilyId == deletedJobFamilyId);\n deletedJobs.forEach((job) => {\n job.jobFamilyId = null;\n job.jobFamily = null;\n });\n }\n\n return updateState(state, {\n jobFamilies: [...jobFamilies],\n jobs: [...jobs],\n error: null,\n isUpdating: false,\n });\n};\n\nconst deleteJobFamilyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst enquireJobVacancyStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst enquireJobVacancySuccess = (state, action) => {\n const enquiredJobId = action.jobId;\n const jobMatches = state.jobMatches;\n const enquiredJobMatches = jobMatches.find((j) => j.jobId == enquiredJobId);\n if (enquiredJobMatches) {\n enquiredJobMatches.alreadyEnquired = true;\n }\n\n return updateState(state, {\n error: null,\n isUpdating: false,\n jobMatches: [...jobMatches],\n });\n};\n\nconst enquireJobVacancyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_JOBS_START:\n return getJobsStart(state);\n case actionTypes.GET_JOBS_SUCCESS:\n return getJobsSuccess(state, action);\n case actionTypes.GET_JOBS_FAIL:\n return getJobsFail(state, action);\n\n case actionTypes.GET_SAMPLE_JOBS_START:\n return getSampleJobsStart(state);\n case actionTypes.GET_SAMPLE_JOBS_SUCCESS:\n return getSampleJobsSuccess(state, action);\n case actionTypes.GET_SAMPLE_JOBS_FAIL:\n return getSampleJobsFail(state, action);\n\n case actionTypes.GET_JOB_START:\n return getJobStart(state);\n case actionTypes.GET_JOB_SUCCESS:\n return getJobSuccess(state, action);\n case actionTypes.GET_JOB_FAIL:\n return getJobFail(state, action);\n\n case actionTypes.PRINT_JOB_REPORT_START:\n return printJobReportStart(state);\n case actionTypes.PRINT_JOB_REPORT_SUCCESS:\n return printJobReportSuccess(state, action);\n case actionTypes.PRINT_JOB_REPORT_FAIL:\n return printJobReportFail(state, action);\n\n case actionTypes.PRINT_JOB_REPORTS_START:\n return printJobReportsStart(state);\n case actionTypes.PRINT_JOB_REPORTS_SUCCESS:\n return printJobReportsSuccess(state, action);\n case actionTypes.PRINT_JOB_REPORTS_FAIL:\n return printJobReportsFail(state, action);\n\n case actionTypes.CREATE_JOB_START:\n return createJobStart(state);\n case actionTypes.CREATE_JOB_SUCCESS:\n return createJobSuccess(state, action);\n case actionTypes.CREATE_JOB_FAIL:\n return createJobFail(state, action);\n\n case actionTypes.UPDATE_JOB_START:\n return updateJobStart(state);\n case actionTypes.UPDATE_JOB_SUCCESS:\n return updateJobSuccess(state, action);\n case actionTypes.UPDATE_JOB_BY_NOTIFICATION:\n return updateJobByNotification(state, action);\n case actionTypes.UPDATE_JOB_FAIL:\n return updateJobFail(state, action);\n\n case actionTypes.UPDATE_JOB_NOTE_START:\n return updateJobNoteStart(state);\n case actionTypes.UPDATE_JOB_NOTE_SUCCESS:\n return updateJobNoteSuccess(state, action);\n case actionTypes.UPDATE_JOB_NOTE_FAIL:\n return updateJobNoteFail(state, action);\n\n case actionTypes.DELETE_JOB_START:\n return deleteJobStart(state);\n case actionTypes.DELETE_JOB_SUCCESS:\n return deleteJobSuccess(state, action);\n case actionTypes.DELETE_JOB_FAIL:\n return deleteJobFail(state, action);\n\n case actionTypes.COPY_JOB_START:\n return copyJobStart(state);\n case actionTypes.COPY_JOB_SUCCESS:\n return copyJobSuccess(state, action);\n case actionTypes.COPY_JOB_FAIL:\n return copyJobFail(state, action);\n\n case actionTypes.COPY_JOBS_START:\n return copyJobsStart(state);\n case actionTypes.COPY_JOBS_SUCCESS:\n return copyJobsSuccess(state, action);\n case actionTypes.COPY_JOBS_FAIL:\n return copyJobsFail(state, action);\n\n case actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_START:\n return updateJobSkillAttributesStart(state);\n case actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_SUCCESS:\n return updateJobSkillAttributesSuccess(state, action);\n case actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_FAIL:\n return updateJobSkillAttributesFail(state, action);\n\n case actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_START:\n return updateJobLorAttributesStart(state);\n case actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_SUCCESS:\n return updateJobLorAttributesSuccess(state, action);\n case actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_FAIL:\n return updateJobLorAttributesFail(state, action);\n\n case actionTypes.GET_JOB_MATCH_PERSONS_START:\n return getJobMatchPersonsStart(state);\n case actionTypes.GET_JOB_MATCH_PERSONS_SUCCESS:\n return getJobMatchPersonsSuccess(state, action);\n case actionTypes.GET_JOB_MATCH_PERSONS_FAIL:\n return getJobMatchPersonsFail(state, action);\n\n case actionTypes.ASSIGN_JOB_MATCH_PERSON_START:\n return assignJobMatchPersonStart(state);\n case actionTypes.ASSIGN_JOB_MATCH_PERSON_SUCCESS:\n return assignJobMatchPersonSuccess(state, action);\n case actionTypes.ASSIGN_JOB_MATCH_PERSON_FAIL:\n return assignJobMatchPersonFail(state, action);\n\n case actionTypes.EXPORT_JOB_MATCHES_DATA_START:\n return exportJobMatchesDataExcelStart(state);\n case actionTypes.EXPORT_JOB_MATCHES_DATA_SUCCESS:\n return exportJobMatchesDataExcelSuccess(state, action);\n case actionTypes.EXPORT_JOB_MATCHES_DATA_FAIL:\n return exportJobMatchesDataExcelFail(state, action);\n\n case actionTypes.GET_MY_JOB_MATCH_TYPES_START:\n return getMyJobMatchTypesStart(state);\n case actionTypes.GET_MY_JOB_MATCH_TYPES_SUCCESS:\n return getMyJobMatchTypesSuccess(state, action);\n case actionTypes.GET_MY_JOB_MATCH_TYPES_FAIL:\n return getMyJobMatchTypesFail(state, action);\n\n case actionTypes.GET_MY_JOB_MATCHES_START:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_START:\n return getJobMatchesStart(state);\n case actionTypes.GET_MY_JOB_MATCHES_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS:\n return getJobMatchesSuccess(state, action);\n case actionTypes.GET_MY_JOB_MATCHES_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_FAIL:\n return getJobMatchesFail(state, action);\n\n case actionTypes.UPDATE_MY_JOB_MATCHES_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_START:\n return updateJobMatchesStart(state);\n case actionTypes.UPDATE_MY_JOB_MATCHES_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS:\n return updateJobMatchesSuccess(state, action);\n case actionTypes.UPDATE_MY_JOB_MATCHES_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_FAIL:\n return updateJobMatchesFail(state, action);\n\n case actionTypes.GET_JOB_PROFILES_VERSIONS_START:\n return getJobProfileVersionsStart(state);\n case actionTypes.GET_JOB_PROFILES_VERSIONS_SUCCESS:\n return getJobProfileVersionsSuccess(state, action);\n case actionTypes.GET_JOB_PROFILES_VERSIONS_FAIL:\n return getJobProfileVersionsFail(state, action);\n\n case actionTypes.GET_JOB_LOR_PROFILES_START:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_START:\n return getJobLorProfilesStart(state);\n case actionTypes.GET_JOB_LOR_PROFILES_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_SUCCESS:\n return getJobLorProfilesSuccess(state, action);\n case actionTypes.GET_JOB_LOR_PROFILES_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_FAIL:\n return getJobLorProfilesFail(state, action);\n case actionTypes.GET_JOB_SKILL_PROFILES_START:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_START:\n return getJobSkillProfilesStart(state);\n case actionTypes.GET_JOB_SKILL_PROFILES_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_SUCCESS:\n return getJobSkillProfilesSuccess(state, action);\n case actionTypes.GET_JOB_SKILL_PROFILES_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_FAIL:\n return getJobSkillProfilesFail(state, action);\n\n case actionTypes.UPDATE_JOB_SKILL_PROFILES_START:\n return updateJobSkillProfilesStart(state);\n case actionTypes.UPDATE_JOB_SKILL_PROFILES_SUCCESS:\n return updateJobSkillProfilesSuccess(state, action);\n case actionTypes.UPDATE_JOB_SKILL_PROFILES_FAIL:\n return updateJobSkillProfilesFail(state, action);\n case actionTypes.CLEAR_UPDATE_JOB_SKILL_PROFILES:\n return clearUpdateJobSkillProfiles(state);\n\n case actionTypes.GET_JOB_SKILL_ATTRIBUTES_START:\n return getJobSkillAttributesStart(state);\n case actionTypes.GET_JOB_SKILL_ATTRIBUTES_SUCCESS:\n return getJobSkillAttributesSuccess(state, action);\n case actionTypes.GET_JOB_SKILL_ATTRIBUTES_FAIL:\n return getJobSkillAttributesFail(state, action);\n\n case actionTypes.GET_JOB_LOR_ATTRIBUTES_START:\n return getJobLorAttributesStart(state);\n case actionTypes.GET_JOB_LOR_ATTRIBUTES_SUCCESS:\n return getJobLorAttributesSuccess(state, action);\n case actionTypes.GET_JOB_LOR_ATTRIBUTES_FAIL:\n return getJobLorAttributesFail(state, action);\n\n case actionTypes.SET_JOBIMPORT_SESSIONID:\n return setJobImportSessionId(state, action);\n\n case actionTypes.EXPORT_JOBS_DATA_START:\n return exportJobsDataExcelStart(state);\n case actionTypes.EXPORT_JOBS_DATA_SUCCESS:\n return exportJobsDataExcelSuccess(state, action);\n case actionTypes.EXPORT_JOBS_DATA_FAIL:\n return exportJobsDataExcelFail(state, action);\n\n case actionTypes.IMPORT_JOBS_DATA_START:\n return importJobsDataExcelStart(state);\n case actionTypes.IMPORT_JOBS_DATA_SUCCESS:\n return importJobsDataExcelSuccess(state, action);\n case actionTypes.IMPORT_JOBS_DATA_FAIL:\n return importJobsDataExcelFail(state, action);\n\n case actionTypes.UPDATE_IMPORT_JOB_STATUS:\n return updateImportJobStatus(state, action);\n\n case actionTypes.GET_JOB_IMPORT_QUEUE_START:\n return getJobImportQueueStart(state);\n case actionTypes.GET_JOB_IMPORT_QUEUE_SUCCESS:\n return getJobImportQueueSuccess(state, action);\n case actionTypes.GET_JOB_IMPORT_QUEUE_FAIL:\n return getJobImportQueueFail(state, action);\n\n case actionTypes.IMPORT_JOB_MATCHES_DATA_START:\n return importJobMatchesDataExcelStart(state);\n case actionTypes.IMPORT_JOB_MATCHES_DATA_SUCCESS:\n return importJobMatchesDataExcelSuccess(state, action);\n case actionTypes.IMPORT_JOB_MATCHES_DATA_FAIL:\n return importJobMatchesDataExcelFail(state, action);\n\n case actionTypes.GET_JOB_FAMILIES_START:\n return getJobFamiliesStart(state);\n case actionTypes.GET_JOB_FAMILIES_SUCCESS:\n return getJobFamiliesSuccess(state, action);\n case actionTypes.GET_JOB_FAMILIES_FAIL:\n return getJobFamiliesFail(state, action);\n\n case actionTypes.UPDATE_JOB_FAMILY_START:\n return updateJobFamilyStart(state);\n case actionTypes.UPDATE_JOB_FAMILY_SUCCESS:\n return updateJobFamilySuccess(state, action);\n case actionTypes.UPDATE_JOB_FAMILY_FAIL:\n return updateJobFamilyFail(state, action);\n\n case actionTypes.DELETE_JOB_FAMILY_START:\n return deleteJobFamilyStart(state);\n case actionTypes.DELETE_JOB_FAMILY_SUCCESS:\n return deleteJobFamilySuccess(state, action);\n case actionTypes.DELETE_JOB_FAMILY_FAIL:\n return deleteJobFamilyFail(state, action);\n\n case actionTypes.ENQUIRE_JOB_VACANCY_START:\n return enquireJobVacancyStart(state);\n case actionTypes.ENQUIRE_JOB_VACANCY_SUCCESS:\n return enquireJobVacancySuccess(state, action);\n case actionTypes.ENQUIRE_JOB_VACANCY_FAIL:\n return enquireJobVacancyFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\n\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n languages: [],\n language: null,\n error: null,\n loading: false,\n};\n\nconst getLanguagesStart = (state) => {\n return updateState(state, { error: null, languages: [], loading: true });\n};\n\nconst getLanguagesSuccess = (state, action) => { \n return updateState(state, {\n languages: action.languages,\n error: null,\n loading: false,\n });\n};\n\nconst getLanguagesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst setLanguage = (state, action) => {\n return updateState(state, {\n language: action.language\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_LANGUAGES_START:\n return getLanguagesStart(state);\n case actionTypes.GET_LANGUAGES_SUCCESS:\n return getLanguagesSuccess(state, action);\n case actionTypes.GET_LANGUAGES_FAIL:\n return getLanguagesFail(state, action);\n case actionTypes.SET_LANGUAGE:\n return setLanguage(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n lors: [],\n error: null,\n loading: false,\n exportData: null,\n loadingExport: false,\n isImporting: false,\n isUpdating: false,\n};\n\nconst getLorsStart = (state) => {\n return updateState(state, { error: null, lors: [], loading: true });\n};\n\nconst getLorsSuccess = (state, action) => {\n return updateState(state, {\n lors: action.lors,\n error: null,\n loading: false,\n });\n};\n\nconst getLorsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updateLorStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateLorSuccess = (state, action) => {\n let lors = state.lors;\n\n const updatedLor = lors.find((x) => x.id == action.lor.id);\n if (updatedLor) {\n updatedLor.category = action.lor.category;\n updatedLor.categoryColor = action.lor.categoryColor;\n updatedLor.lorColor = action.lor.lorColor;\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateLorFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateLorSetIsHiddenStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateLorSetIsHiddenSuccess = (state, action) => {\n const lors = state.lors;\n\n const isHidden = action.isHidden;\n\n const lor = lors.find((it) => it.id == action.id);\n\n if (lor) {\n lor.isHidden = isHidden;\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateLorSetOptionalSuccess = (state, action) => {\n const lors = state.lors;\n\n const optional = action.optional;\n\n const lor = lors.find((it) => it.id == action.id);\n\n if (lor) {\n lor.optional = optional;\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateLorSetIsHiddenFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst addLorAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst addLorAttributeSuccess = (state, action) => {\n const lors = state.lors;\n\n const addedAttribute = action.addedAttribute;\n const lor = lors.find((it) => it.id == action.lorId);\n if (lor) {\n if (lor.attributes) {\n lor.attributes.push({\n id: addedAttribute.id,\n assessmentId: addedAttribute.assessmentId,\n attribute: addedAttribute.attribute,\n link: addedAttribute.link,\n isHidden: addedAttribute.isHidden,\n });\n } else {\n lor.attributes = [\n {\n id: addedAttribute.id,\n assessmentId: addedAttribute.assessmentId,\n attribute: addedAttribute.attribute,\n link: addedAttribute.link,\n isHidden: addedAttribute.isHidden,\n },\n ];\n }\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst addLorAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst updateLorAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst updateLorAttributeSuccess = (state, action) => {\n const lors = state.lors;\n\n const updatedAttribute = action.updatedAttribute;\n const lor = lors.find((it) => it.id == action.lorId);\n if (lor) {\n const attribute = lor.attributes && lor.attributes.find((it) => it.id == updatedAttribute.id);\n if (attribute) {\n attribute.attribute = updatedAttribute.attribute;\n attribute.link = updatedAttribute.link;\n attribute.isHidden = updatedAttribute.isHidden;\n }\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst updateLorAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst deleteLorAttributeStart = (state) => {\n return updateState(state, { error: null, isUpdating: true });\n};\n\nconst deleteLorAttributeSuccess = (state, action) => {\n const lors = state.lors;\n\n const deletedAttributeId = action.deletedAttributeId;\n const lor = lors.find((it) => it.id == action.lorId);\n if (lor) {\n const attribute = lor.attributes && lor.attributes.find((it) => it.id == deletedAttributeId);\n if (attribute) {\n var index = lor.attributes.indexOf(attribute);\n if (index !== -1) {\n lor.attributes.splice(index, 1);\n }\n }\n }\n\n return updateState(state, {\n lors: [...lors],\n error: null,\n isUpdating: false,\n });\n};\n\nconst deleteLorAttributeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isUpdating: false,\n });\n};\n\nconst exportLorAttributesDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst exportLorAttributesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst exportLorAttributesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst importLorAttributesDataExcelStart = (state) => {\n return updateState(state, { error: null, isImporting: true, message: null });\n};\n\nconst importLorAttributesDataExcelSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n isImporting: false,\n });\n};\n\nconst importLorAttributesDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n isImporting: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_LORS_START:\n return getLorsStart(state);\n case actionTypes.GET_LORS_SUCCESS:\n return getLorsSuccess(state, action);\n case actionTypes.GET_LORS_FAIL:\n return getLorsFail(state, action);\n\n case actionTypes.UPDATE_LOR_START:\n return updateLorStart(state);\n case actionTypes.UPDATE_LOR_SUCCESS:\n return updateLorSuccess(state, action);\n case actionTypes.UPDATE_LOR_FAIL:\n return updateLorFail(state, action);\n\n case actionTypes.UPDATE_LOR_SET_ISHIDDEN_START:\n return updateLorSetIsHiddenStart(state);\n case actionTypes.UPDATE_LOR_SET_ISHIDDEN_SUCCESS:\n return updateLorSetIsHiddenSuccess(state, action);\n case actionTypes.UPDATE_LOR_SET_OPTIONAL_SUCCESS:\n return updateLorSetOptionalSuccess(state, action);\n case actionTypes.UPDATE_LOR_SET_ISHIDDEN_FAIL:\n return updateLorSetIsHiddenFail(state, action);\n\n case actionTypes.ADD_LOR_ATTRIBUTE_DATA_START:\n return addLorAttributeStart(state);\n case actionTypes.ADD_LOR_ATTRIBUTE_DATA_SUCCESS:\n return addLorAttributeSuccess(state, action);\n case actionTypes.ADD_LOR_ATTRIBUTE_DATA_FAIL:\n return addLorAttributeFail(state, action);\n\n case actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_START:\n return updateLorAttributeStart(state);\n case actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_SUCCESS:\n return updateLorAttributeSuccess(state, action);\n case actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_FAIL:\n return updateLorAttributeFail(state, action);\n\n case actionTypes.DELETE_LOR_ATTRIBUTE_DATA_START:\n return deleteLorAttributeStart(state);\n case actionTypes.DELETE_LOR_ATTRIBUTE_DATA_SUCCESS:\n return deleteLorAttributeSuccess(state, action);\n case actionTypes.DELETE_LOR_ATTRIBUTE_DATA_FAIL:\n return deleteLorAttributeFail(state, action);\n\n case actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_START:\n return exportLorAttributesDataExcelStart(state);\n case actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_SUCCESS:\n return exportLorAttributesDataExcelSuccess(state, action);\n case actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_FAIL:\n return exportLorAttributesDataExcelFail(state, action);\n\n case actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_START:\n return importLorAttributesDataExcelStart(state);\n case actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_SUCCESS:\n return importLorAttributesDataExcelSuccess(state, action);\n case actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_FAIL:\n return importLorAttributesDataExcelFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n person: {},\n account: null,\n error: null,\n loading: false,\n updating: false,\n myPeoples: [],\n myLeaders: [],\n managedPeople: null,\n mentorPreference: [],\n attributes: [],\n lorAttributes: [],\n myPeopleTeamAnalytic: null,\n\n profilePicture: null,\n skillCoins: [],\n\n loadingExport: false,\n exportData: null,\n\n columnDisplaySettings: null,\n columnDisplaySettingsLoading: false,\n};\n\nconst getPersonMyProfileStart = (state) => {\n return updateState(state, { error: null, person: null, loading: true });\n};\n\nconst getPersonMyProfileSuccess = (state, action) => {\n return updateState(state, {\n person: action.person,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonMyProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updatePersonMyProfileStart = (state) => {\n return updateState(state, { error: null, person: null, updating: true });\n};\n\nconst updatePersonMyProfileSuccess = (state, action) => {\n return updateState(state, {\n person: action.person,\n error: null,\n updating: false,\n });\n};\n\nconst updatePersonMyProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst getLatestAccountStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getLatestAccountSuccess = (state, action) => {\n return updateState(state, {\n account: action.account,\n error: null,\n loading: false,\n });\n};\n\nconst getLatestAccountFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst updatePersonAccountStart = (state) => {\n return updateState(state, { error: null, attributes: [], lorAttributes: [], updating: true });\n};\n\nconst updatePersonAccountSuccess = (state, action) => {\n let account = state.account;\n\n account.attributes = action.attributes ? [...action.attributes] : [];\n account.lorAttributes = action.lorAttributes ? [...action.lorAttributes] : [];\n\n return updateState(state, {\n attributes: action.attributes,\n lorAttributes: action.lorAttributes,\n account: account,\n error: null,\n updating: false,\n });\n};\n\nconst updatePersonAccountFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst updatePersonAccountNoteStart = (state) => {\n return updateState(state, { error: null, account: null, updating: true });\n};\n\nconst updatePersonAccountNoteSuccess = (state, action) => {\n return updateState(state, {\n account: action.account,\n error: null,\n updating: false,\n });\n};\n\nconst updatePersonAccountNoteFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst personAccountRequestApprovalStart = (state) => {\n return updateState(state, { error: null, account: null, updating: true });\n};\n\nconst personAccountRequestApprovalSuccess = (state, action) => {\n return updateState(state, {\n account: action.account,\n error: null,\n updating: false,\n });\n};\n\nconst personAccountRequestApprovalFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst getPersonMyPeoplesStart = (state) => {\n return updateState(state, { error: null, myPeoples: [], loading: true });\n};\n\nconst getPersonMyPeoplesSuccess = (state, action) => {\n return updateState(state, {\n myPeoples: action.myPeoples,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonMyPeoplesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getPersonMyPeopleByEmailStart = (state) => {\n return updateState(state, {\n error: null,\n managedPeople: null,\n loading: true,\n });\n};\n\nconst getPersonMyPeopleByEmailSuccess = (state, action) => {\n return updateState(state, {\n managedPeople: action.managedPeople,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonMyPeopleByEmailFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getPersonMyLeadersStart = (state) => {\n return updateState(state, { error: null, myLeaders: [], loading: true });\n};\n\nconst getPersonMyLeadersSuccess = (state, action) => {\n return updateState(state, {\n myLeaders: action.myLeaders,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonMyLeadersFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst approveMyPeopleProfileStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst approveMyPeopleProfileSuccess = (state) => {\n return updateState(state, {\n error: null,\n updating: false,\n });\n};\n\nconst approveMyPeopleProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst postponeApproveMyPeopleProfileStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst postponeApproveMyPeopleProfileSuccess = (state) => {\n return updateState(state, {\n error: null,\n updating: false,\n });\n};\n\nconst postponeApproveMyPeopleProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst forgetMeStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst forgetMeSuccess = (state) => {\n return updateState(state, {\n error: null,\n updating: false,\n });\n};\n\nconst forgetMeFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst clearAccountData = (state, action) => {\n return updateState(state, {\n account: null,\n });\n};\n\nconst downloadPersonProfilePictureStart = (state) => {\n return updateState(state, { error: null, profilePicture: null });\n};\n\nconst downloadPersonProfilePictureSuccess = (state, action) => {\n return updateState(state, {\n profilePicture: action.profilePicture,\n error: null,\n });\n};\n\nconst downloadPersonProfilePictureFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n });\n};\n\nconst uploadPersonProfilePictureStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst uploadPersonProfilePictureSuccess = (state, action) => {\n let curPerson = state.person;\n\n if (curPerson) {\n curPerson.profilePictureUrl = action.profilePictureUrl;\n }\n\n return updateState(state, {\n person: curPerson,\n error: null,\n updating: false,\n });\n};\n\nconst uploadPersonProfilePictureFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst updatePersonActivityStatementIntervalStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst updatePersonActivityStatementIntervalSuccess = (state, action) => {\n const person = state.person;\n\n if (person) {\n person.activityStatementInterval = action.activityStatementInterval;\n }\n\n return updateState(state, {\n error: null,\n updating: false,\n person,\n });\n};\n\nconst updatePersonActivityStatementIntervalFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst generateActivityStatementStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst generateActivityStatementSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n updating: false,\n });\n};\n\nconst generateActivityStatementFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n updating: false,\n });\n};\n\nconst getPersonMyPeoplesTeamAnalyticStart = (state) => {\n return updateState(state, {\n error: null,\n myPeopleTeamAnalytic: null,\n loading: true,\n });\n};\n\nconst getPersonMyPeoplesTeamAnalyticSuccess = (state, action) => {\n return updateState(state, {\n myPeopleTeamAnalytic: action.myPeopleTeamAnalytic,\n error: null,\n loading: false,\n });\n};\n\nconst getPersonMyPeoplesTeamAnalyticFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst clearManagePeopleEndorsedStatus = (state) => {\n let managedPeople = state.managedPeople;\n if (managedPeople) {\n managedPeople.isEndorser = false;\n managedPeople.endorsementStatus = \"\";\n }\n\n return updateState(state, {\n managedPeople,\n });\n};\n\nconst updateManagePeopleEndorsedStatus = (state, action) => {\n let managedPeople = state.managedPeople;\n if (managedPeople) {\n managedPeople.endorsementStatus = action.status;\n }\n\n return updateState(state, {\n managedPeople,\n });\n};\n\nconst getPersonSkillCoinsStart = (state) => {\n return updateState(state, { error: null, loading: true, skillCoins: [] });\n};\n\nconst getPersonSkillCoinsSuccess = (state, action) => {\n return updateState(state, {\n skillCoins: [...action.skillCoins],\n error: null,\n loading: false,\n });\n};\n\nconst getPersonSkillCoinsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst downloadMyProfileStart = (state) => {\n return updateState(state, { error: null, loadingExport: true });\n};\n\nconst downloadMyProfileSuccess = (state, action) => {\n return updateState(state, {\n exportData: action.exportData,\n error: null,\n loadingExport: false,\n });\n};\n\nconst downloadMyProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingExport: false,\n });\n};\n\nconst getColumnDisplaySettingsStart = (state) => {\n return updateState(state, {\n columnDisplaySettings: null,\n error: null,\n columnDisplaySettingsLoading: true,\n });\n};\n\nconst getColumnDisplaySettingsSuccess = (state, action) => {\n return updateState(state, {\n columnDisplaySettings: [...action.columnDisplaySettings],\n error: null,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst getColumnDisplaySettingsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst updateColumnDisplaySettingStart = (state, action) => {\n return updateState(state, {\n error: null,\n columnDisplaySettingsLoading: true,\n });\n};\n\nconst updateColumnDisplaySettingSuccess = (state, action) => {\n const updatedColumnDisplaySetting = action.updatedColumnDisplaySetting;\n let columnDisplaySettings = state.columnDisplaySettings;\n let oriColumnDisplaySetting = columnDisplaySettings.find((it) => it.id == updatedColumnDisplaySetting.id);\n if (oriColumnDisplaySetting) {\n oriColumnDisplaySetting.visible = updatedColumnDisplaySetting.visible;\n } else {\n columnDisplaySettings.push(updatedColumnDisplaySetting);\n }\n\n return updateState(state, {\n columnDisplaySettings: [...action.columnDisplaySettings],\n error: null,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst updateColumnDisplaySettingFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst updateColumnDisplaySettingOrderStart = (state, action) => {\n return updateState(state, {\n error: null,\n columnDisplaySettingsLoading: true,\n });\n};\n\nconst updateColumnDisplaySettingOrderSuccess = (state, action) => {\n const updatedColumnDisplaySettings = action.updatedColumnDisplaySettings;\n\n let columnDisplaySettings = state.columnDisplaySettings;\n updatedColumnDisplaySettings.map((updatedColumnDisplaySetting) => {\n let oriColumnDisplaySetting = columnDisplaySettings.find((it) => it.id == updatedColumnDisplaySetting.id);\n if (oriColumnDisplaySetting) {\n oriColumnDisplaySetting.visible = updatedColumnDisplaySetting.visible;\n oriColumnDisplaySetting.order = updatedColumnDisplaySetting.order;\n } else {\n columnDisplaySettings.push(updatedColumnDisplaySetting);\n }\n });\n\n return updateState(state, {\n columnDisplaySettings: [...columnDisplaySettings],\n error: null,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst updateColumnDisplaySettingOrderFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n columnDisplaySettingsLoading: false,\n });\n};\n\nconst getPersonMentorPreferenceStart = (state) => {\n return updateState(state, { mentorPreference: null });\n};\n\nconst getPersonMentorPreferenceSuccess = (state, action) => {\n return updateState(state, {\n mentorPreference: action.mentorPreference,\n });\n};\n\nconst getPersonMentorPreferenceFail = (state, action) => {\n // return updateState(state, {\n // error: action.error,\n // loading: false,\n // });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_PERSON_MYPROFILE_START:\n return getPersonMyProfileStart(state);\n case actionTypes.GET_PERSON_MYPROFILE_SUCCESS:\n return getPersonMyProfileSuccess(state, action);\n case actionTypes.GET_PERSON_MYPROFILE_FAIL:\n return getPersonMyProfileFail(state, action);\n case actionTypes.DOWNLOAD_PERSON_MYPROFILE_START:\n return downloadMyProfileStart(state);\n case actionTypes.DOWNLOAD_PERSON_MYPROFILE_SUCCESS:\n return downloadMyProfileSuccess(state, action);\n case actionTypes.DOWNLOAD_PERSON_MYPROFILE_FAIL:\n return downloadMyProfileFail(state, action);\n case actionTypes.UPDATE_PERSON_MYPROFILE_START:\n return updatePersonMyProfileStart(state);\n case actionTypes.UPDATE_PERSON_MYPROFILE_SUCCESS:\n return updatePersonMyProfileSuccess(state, action);\n case actionTypes.UPDATE_PERSON_MYPROFILE_FAIL:\n return updatePersonMyProfileFail(state, action);\n\n case actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_START:\n return downloadPersonProfilePictureStart(state);\n case actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_SUCCESS:\n return downloadPersonProfilePictureSuccess(state, action);\n case actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_FAIL:\n return downloadPersonProfilePictureFail(state, action);\n\n case actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_START:\n return uploadPersonProfilePictureStart(state);\n case actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_SUCCESS:\n return uploadPersonProfilePictureSuccess(state, action);\n case actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_FAIL:\n return uploadPersonProfilePictureFail(state, action);\n\n case actionTypes.GET_PERSON_LATESTACCOUNT_START:\n case actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_START:\n return getLatestAccountStart(state);\n case actionTypes.GET_PERSON_LATESTACCOUNT_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_SUCCESS:\n return getLatestAccountSuccess(state, action);\n case actionTypes.GET_PERSON_LATESTACCOUNT_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_FAIL:\n return getLatestAccountFail(state, action);\n\n case actionTypes.UPDATE_PERSON_ACCOUNT_START:\n return updatePersonAccountStart(state);\n case actionTypes.UPDATE_PERSON_ACCOUNT_SUCCESS:\n return updatePersonAccountSuccess(state, action);\n case actionTypes.UPDATE_PERSON_ACCOUNT_FAIL:\n return updatePersonAccountFail(state, action);\n\n case actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_START:\n return updatePersonAccountNoteStart(state);\n case actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_SUCCESS:\n return updatePersonAccountNoteSuccess(state, action);\n case actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_FAIL:\n return updatePersonAccountNoteFail(state, action);\n\n case actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_START:\n return personAccountRequestApprovalStart(state);\n case actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_SUCCESS:\n return personAccountRequestApprovalSuccess(state, action);\n case actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_FAIL:\n return personAccountRequestApprovalFail(state, action);\n case actionTypes.GET_PERSON_MYPEOPLES_START:\n return getPersonMyPeoplesStart(state);\n case actionTypes.GET_PERSON_MYPEOPLES_SUCCESS:\n return getPersonMyPeoplesSuccess(state, action);\n case actionTypes.GET_PERSON_MYPEOPLES_FAIL:\n return getPersonMyPeoplesFail(state, action);\n case actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_START:\n return getPersonMyPeopleByEmailStart(state);\n case actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_SUCCESS:\n return getPersonMyPeopleByEmailSuccess(state, action);\n case actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_FAIL:\n return getPersonMyPeopleByEmailFail(state, action);\n case actionTypes.GET_PERSON_MYLEADERS_START:\n return getPersonMyLeadersStart(state);\n case actionTypes.GET_PERSON_MYLEADERS_SUCCESS:\n return getPersonMyLeadersSuccess(state, action);\n case actionTypes.GET_PERSON_MYLEADERS_FAIL:\n return getPersonMyLeadersFail(state, action);\n case actionTypes.APPROVE_MYPEOPLE_PROFILE_START:\n return approveMyPeopleProfileStart(state);\n case actionTypes.APPROVE_MYPEOPLE_PROFILE_SUCCESS:\n return approveMyPeopleProfileSuccess(state);\n case actionTypes.APPROVE_MYPEOPLE_PROFILE_FAIL:\n return approveMyPeopleProfileFail(state, action);\n case actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_START:\n return postponeApproveMyPeopleProfileStart(state);\n case actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_SUCCESS:\n return postponeApproveMyPeopleProfileSuccess(state);\n case actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_FAIL:\n return postponeApproveMyPeopleProfileFail(state, action);\n case actionTypes.PERSON_FORGET_ME_START:\n return forgetMeStart(state);\n case actionTypes.PERSON_FORGET_ME_SUCCESS:\n return forgetMeSuccess(state);\n case actionTypes.PERSON_FORGET_ME_FAIL:\n return forgetMeFail(state, action);\n case actionTypes.CLEAR_PERSON_ACCOUNT_STATE:\n return clearAccountData(state, action);\n\n case actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_START:\n return updatePersonActivityStatementIntervalStart(state);\n case actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_SUCCESS:\n return updatePersonActivityStatementIntervalSuccess(state, action);\n case actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_FAIL:\n return updatePersonActivityStatementIntervalFail(state, action);\n\n case actionTypes.GENERATE_ACTIVITYSTATEMENT_START:\n return generateActivityStatementStart(state);\n case actionTypes.GENERATE_ACTIVITYSTATEMENT_SUCCESS:\n return generateActivityStatementSuccess(state, action);\n case actionTypes.GENERATE_ACTIVITYSTATEMENT_FAIL:\n return generateActivityStatementFail(state, action);\n\n case actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_START:\n return getPersonMyPeoplesTeamAnalyticStart(state);\n case actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_SUCCESS:\n return getPersonMyPeoplesTeamAnalyticSuccess(state, action);\n case actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_FAIL:\n return getPersonMyPeoplesTeamAnalyticFail(state, action);\n case actionTypes.CLEAR_MANAGE_PEOPLE_ENDORSED_STATUS:\n return clearManagePeopleEndorsedStatus(state);\n case actionTypes.UPDATE_MANAGE_PEOPLE_ENDORSED_STATUS:\n return updateManagePeopleEndorsedStatus(state, action);\n\n case actionTypes.GET_PERSON_SKILL_COINS_START:\n return getPersonSkillCoinsStart(state);\n case actionTypes.GET_PERSON_SKILL_COINS_SUCCESS:\n return getPersonSkillCoinsSuccess(state, action);\n case actionTypes.GET_PERSON_SKILL_COINS_FAIL:\n return getPersonSkillCoinsFail(state, action);\n\n case actionTypes.GET_COLUMN_DISPLAY_SETTINGS_START:\n return getColumnDisplaySettingsStart(state);\n case actionTypes.GET_COLUMN_DISPLAY_SETTINGS_SUCCESS:\n return getColumnDisplaySettingsSuccess(state, action);\n case actionTypes.GET_COLUMN_DISPLAY_SETTINGS_FAIL:\n return getColumnDisplaySettingsFail(state, action);\n\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_START:\n return updateColumnDisplaySettingStart(state, action);\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_SUCCESS:\n return updateColumnDisplaySettingSuccess(state, action);\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_FAIL:\n return updateColumnDisplaySettingFail(state, action);\n\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_START:\n return updateColumnDisplaySettingOrderStart(state, action);\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_SUCCESS:\n return updateColumnDisplaySettingOrderSuccess(state, action);\n case actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_FAIL:\n return updateColumnDisplaySettingOrderFail(state, action);\n\n case actionTypes.GET_PERSON_MENTOR_PREFERENCE_START:\n return getPersonMentorPreferenceStart(state, action);\n case actionTypes.GET_PERSON_MENTOR_PREFERENCE_SUCCESS:\n return getPersonMentorPreferenceSuccess(state, action);\n case actionTypes.GET_PERSON_MENTOR_PREFERENCE_FAIL:\n return getPersonMentorPreferenceFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n registerReasons: [],\n error: null,\n loading: false,\n};\n\nconst getRegisterReasonsStart = (state) => {\n return updateState(state, { error: null, registerReasons: [], loading: true });\n};\n\nconst getRegisterReasonsSuccess = (state, action) => {\n return updateState(state, {\n registerReasons: action.registerReasons,\n error: null,\n loading: false,\n });\n};\n\nconst getRegisterReasonsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_REGISTER_REASONS_START:\n return getRegisterReasonsStart(state);\n case actionTypes.GET_REGISTER_REASONS_SUCCESS:\n return getRegisterReasonsSuccess(state, action);\n case actionTypes.GET_REGISTER_REASONS_FAIL:\n return getRegisterReasonsFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n profileTypes: [],\n profileVersions: [],\n skillProfiles: [],\n error: null,\n loading: false,\n updating: false,\n\n lorProfiles: [],\n lorError: null,\n lorLoading: false,\n\n profileUpdating: false,\n profileUpdatingSuccess: false,\n profileUpdatingError: null,\n udpatedSkills: null,\n\n endorsedProfileCopying: false,\n endorsedProfileCopyingSuccess: false,\n endorsedProfileCopyingError: null,\n endorsedProfileCopyingSuccessNotif: null,\n\n copyProfile: false,\n copyProfileError: null,\n copyProfileSuccess: false,\n\n updateEndorsedStatus: false,\n updateEndorsedStatusError: null,\n updatedPersonEndorsement: null,\n\n loadingPrint: false,\n printData: null,\n};\n\nconst getProfileTypesStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getProfileTypesSuccess = (state, action) => {\n const profileTypes = action.profileTypes;\n return updateState(state, {\n profileTypes,\n error: null,\n loading: false,\n });\n};\n\nconst getProfileTypesFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getProfileVersionsStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getProfileVersionsSuccess = (state, action) => {\n const profileVersions = action.profileVersions;\n return updateState(state, {\n profileVersions,\n error: null,\n loading: false,\n });\n};\n\nconst getProfileVersionsFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst getLorProfileStart = (state) => {\n return updateState(state, { lorError: null, lorLoading: true });\n};\n\nconst getLorProfileSuccess = (state, action) => {\n const lorProfiles = action.lorProfiles;\n return updateState(state, {\n lorProfiles: lorProfiles,\n lorError: null,\n lorLoading: false,\n });\n};\n\nconst getLorProfileFail = (state, action) => {\n return updateState(state, {\n lorError: action.error,\n lorLoading: false,\n });\n};\n\nconst getSkillProfileStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getSkillProfileSuccess = (state, action) => {\n const skillProfiles = action.skillProfiles;\n\n return updateState(state, {\n skillProfiles: skillProfiles,\n error: null,\n loading: false,\n });\n};\n\nconst getSkillProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst printProfileStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst printProfileSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst printProfileFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst emailMyProfileReportStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst emailMyProfileReportSuccess = (state) => {\n return updateState(state, {\n error: null,\n loadingPrint: false,\n });\n};\n\nconst emailMyProfileReportFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst generatePersonalDataExcelStart = (state) => {\n return updateState(state, { error: null, loadingPrint: true });\n};\n\nconst generatePersonalDataExcelSuccess = (state, action) => {\n return updateState(state, {\n printData: action.printData,\n error: null,\n loadingPrint: false,\n });\n};\n\nconst generatePersonalDataExcelFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loadingPrint: false,\n });\n};\n\nconst updateMySkillProfileStart = (state) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: true, profileUpdatingSuccess: false, udpatedSkills: null });\n};\n\nconst updateMySkillProfileSuccess = (state, action) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: false, profileUpdatingSuccess: true, udpatedSkills: action.udpatedSkills });\n};\n\nconst updateMySkillProfileFail = (state, action) => {\n return updateState(state, { profileUpdatingError: action.error, profileUpdating: false });\n};\n\nconst clearUpdateMySkillProfile = (state) => {\n return updateState(state, { profileUpdatingError: null, profileUpdating: false, profileUpdatingSuccess: false, udpatedSkills: null });\n};\n\nconst updateEndorsedStatusStart = (state) => {\n return updateState(state, { updateEndorsedStatus: true, updateEndorsedStatusError: null });\n};\n\nconst updateEndorsedStatusSuccess = (state, action) => {\n return updateState(state, { updateEndorsedStatus: false, updatedPersonEndorsement: action.updatedPersonEndorsement });\n};\n\nconst updateEndorsedStatusFail = (state, action) => {\n return updateState(state, { updateEndorsedStatus: false, updateEndorsedStatusError: action.error });\n};\n\nconst copyEndorsedProfileStart = (state) => {\n return updateState(state, { endorsedProfileCopyingError: null, endorsedProfileCopying: true, endorsedProfileCopyingSuccess: false, endorsedProfileCopyingSuccessNotif: null });\n};\n\nconst copyEndorsedProfileSuccess = (state) => {\n return updateState(state, { endorsedProfileCopyingError: null, endorsedProfileCopying: false, endorsedProfileCopyingSuccess: true, endorsedProfileCopyingSuccessNotif: true });\n};\n\nconst copyEndorsedProfileFail = (state, action) => {\n return updateState(state, { endorsedProfileCopyingError: action.error, endorsedProfileCopying: false });\n};\n\nconst clearCopyEndorsedProfileNotif = (state) => {\n return updateState(state, { endorsedProfileCopyingSuccessNotif: null });\n};\n\nconst copyProfileStart = (state) => {\n return updateState(state, { copyProfileError: null, copyProfile: true, copyProfileSuccess: false, udpatedSkills: null });\n};\n\nconst copyProfileSuccess = (state, action) => {\n return updateState(state, { copyProfileError: null, copyProfile: false, copyProfileSuccess: true, udpatedSkills: action.udpatedSkills });\n};\n\nconst copyProfileFail = (state, action) => {\n return updateState(state, { copyProfileError: action.error, copyProfile: false, copyProfileSuccess: false, udpatedSkills: null });\n};\n\nconst updateSkillProfileCommentStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst updateSkillProfileCommentSuccess = (state) => {\n return updateState(state, { error: null, updating: false });\n};\n\nconst updateSkillProfileCommentFail = (state, action) => {\n return updateState(state, { error: action.error, updating: false });\n};\n\nconst updateLorProfileCommentStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst updateLorProfileCommentSuccess = (state) => {\n return updateState(state, { error: null, updating: false });\n};\n\nconst updateLorProfileCommentFail = (state, action) => {\n return updateState(state, { error: action.error, updating: false });\n};\n\nconst submitUpdateProfileSuggestionStart = (state) => {\n return updateState(state, { error: null, updating: true });\n};\n\nconst submitUpdateProfileSuggestionSuccess = (state) => {\n return updateState(state, { error: null, updating: false });\n};\n\nconst submitUpdateProfileSuggestionFail = (state, action) => {\n return updateState(state, { error: action.error, updating: false });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_MY_PROFILE_TYPES_START:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_START:\n return getProfileTypesStart(state);\n case actionTypes.GET_MY_PROFILE_TYPES_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_SUCCESS:\n return getProfileTypesSuccess(state, action);\n case actionTypes.GET_MY_PROFILE_TYPES_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_FAIL:\n return getProfileTypesFail(state, action);\n\n case actionTypes.GET_MY_PROFILE_VERSIONS_START:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_START:\n return getProfileVersionsStart(state);\n case actionTypes.GET_MY_PROFILE_VERSIONS_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_SUCCESS:\n return getProfileVersionsSuccess(state, action);\n case actionTypes.GET_MY_PROFILE_VERSIONS_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_FAIL:\n return getProfileVersionsFail(state, action);\n\n case actionTypes.GET_MY_LOR_PROFILE_START:\n case actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_START:\n return getLorProfileStart(state);\n case actionTypes.GET_MY_LOR_PROFILE_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_SUCCESS:\n return getLorProfileSuccess(state, action);\n case actionTypes.GET_MY_LOR_PROFILE_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_FAIL:\n return getLorProfileFail(state, action);\n case actionTypes.GET_MY_SKILL_PROFILE_START:\n case actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_START:\n return getSkillProfileStart(state);\n case actionTypes.GET_MY_SKILL_PROFILE_SUCCESS:\n case actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_SUCCESS:\n return getSkillProfileSuccess(state, action);\n case actionTypes.GET_MY_SKILL_PROFILE_FAIL:\n case actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_FAIL:\n return getSkillProfileFail(state, action);\n\n case actionTypes.PRINT_MY_PROFILE_START:\n case actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_START:\n return printProfileStart(state);\n case actionTypes.PRINT_MY_PROFILE_SUCCESS:\n case actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_SUCCESS:\n return printProfileSuccess(state, action);\n case actionTypes.PRINT_MY_PROFILE_FAIL:\n case actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_FAIL:\n return printProfileFail(state, action);\n\n case actionTypes.EMAIL_MY_PROFILE_REPORT_START:\n return emailMyProfileReportStart(state);\n case actionTypes.EMAIL_MY_PROFILE_REPORT_SUCCESS:\n return emailMyProfileReportSuccess(state);\n case actionTypes.EMAIL_MY_PROFILE_REPORT_FAIL:\n return emailMyProfileReportFail(state, action);\n\n case actionTypes.GENERATE_PERSONAL_DATA_EXCEL_START:\n return generatePersonalDataExcelStart(state);\n case actionTypes.GENERATE_PERSONAL_DATA_EXCEL_SUCCESS:\n return generatePersonalDataExcelSuccess(state, action);\n case actionTypes.GENERATE_PERSONAL_DATA_EXCEL_FAIL:\n return generatePersonalDataExcelFail(state, action);\n\n case actionTypes.UPDATE_SKILL_PROFILES_START:\n return updateMySkillProfileStart(state);\n case actionTypes.UPDATE_SKILL_PROFILES_SUCCESS:\n return updateMySkillProfileSuccess(state, action);\n case actionTypes.UPDATE_SKILL_PROFILES_FAIL:\n return updateMySkillProfileFail(state, action);\n case actionTypes.CLEAR_UPDATE_SKILL_PROFILES:\n return clearUpdateMySkillProfile(state);\n\n case actionTypes.UPDATE_ENDORSED_STATUS_START:\n return updateEndorsedStatusStart(state);\n case actionTypes.UPDATE_ENDORSED_STATUS_SUCCESS:\n return updateEndorsedStatusSuccess(state, action);\n case actionTypes.UPDATE_ENDORSED_STATUS_FAIL:\n return updateEndorsedStatusFail(state, action);\n\n case actionTypes.COPY_ENDORSED_PROFILES_START:\n return copyEndorsedProfileStart(state);\n case actionTypes.COPY_ENDORSED_PROFILES_SUCCESS:\n return copyEndorsedProfileSuccess(state);\n case actionTypes.COPY_ENDORSED_PROFILES_FAIL:\n return copyEndorsedProfileFail(state, action);\n case actionTypes.CLEAR_COPY_ENDORSED_NOTIF:\n return clearCopyEndorsedProfileNotif(state);\n\n case actionTypes.COPY_PROFILE_START:\n return copyProfileStart(state);\n case actionTypes.COPY_PROFILE_SUCCESS:\n return copyProfileSuccess(state, action);\n case actionTypes.COPY_PROFILE_FAIL:\n return copyProfileFail(state, action);\n\n case actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_START:\n return updateSkillProfileCommentStart(state);\n case actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_SUCCESS:\n return updateSkillProfileCommentSuccess(state);\n case actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_FAIL:\n return updateSkillProfileCommentFail(state, action);\n\n case actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_START:\n case actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_START:\n case actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_START:\n return submitUpdateProfileSuggestionStart(state);\n case actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_SUCCESS:\n case actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_SUCCESS:\n case actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_SUCCESS:\n return submitUpdateProfileSuggestionSuccess(state);\n case actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_FAIL:\n case actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_FAIL:\n case actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_FAIL:\n return submitUpdateProfileSuggestionFail(state, action);\n\n case actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_START:\n case actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_START:\n return updateLorProfileCommentStart(state);\n case actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_SUCCESS:\n case actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_SUCCESS:\n return updateLorProfileCommentSuccess(state);\n case actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_FAIL:\n case actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_FAIL:\n return updateLorProfileCommentFail(state, action);\n\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\n\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n error: null,\n loading: false,\n surveys: [],\n surveyRoles: [],\n question: null,\n answerResult: null,\n answerLoading: false,\n};\n\nconst getMySurveysStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getMySurveysSuccess = (state, action) => {\n return updateState(state, {\n surveys: action.surveys,\n surveyRoles: action.surveyRoles,\n error: null,\n loading: false,\n });\n};\n\nconst getMySurveysFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst selectRoleStart = (state) => {\n return updateState(state, { error: null, answerLoading: true });\n};\n\nconst selectRoleSuccess = (state, action) => {\n return updateState(state, {\n error: null,\n answerLoading: false,\n });\n};\n\nconst selectRoleFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n answerLoading: false,\n });\n};\n\nconst getSurveyQuestionStart = (state) => {\n return updateState(state, { error: null, loading: true });\n};\n\nconst getSurveyQuestionSuccess = (state, action) => {\n return updateState(state, {\n question: action.question,\n error: null,\n loading: false,\n });\n};\n\nconst getSurveyQuestionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst answerQuestionStart = (state) => {\n return updateState(state, { error: null, answerLoading: true });\n};\n\nconst answerQuestionSuccess = (state, action) => {\n return updateState(state, {\n answerResult: action.answerResult,\n error: null,\n answerLoading: false,\n });\n};\n\nconst answerQuestionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n answerLoading: false,\n });\n};\n\nconst skipQuestionStart = (state) => {\n return updateState(state, { error: null, answerLoading: true });\n};\n\nconst skipQuestionSuccess = (state, action) => {\n return updateState(state, {\n answerResult: action.answerResult,\n error: null,\n answerLoading: false,\n });\n};\n\nconst skipQuestionFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n answerLoading: false,\n });\n};\n\nconst completeMySurveyStart = (state) => {\n return updateState(state, { error: null, });\n};\n\nconst completeMySurveySuccess = (state) => {\n return updateState(state, {\n error: null,\n });\n};\n\nconst completeMySurveyFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n });\n};\n\nconst resetMySurveyStart = (state) => {\n return updateState(state, { error: null, answerLoading: true });\n};\n\nconst resetMySurveySuccess = (state) => {\n return updateState(state, {\n answerLoading: false,\n error: null,\n });\n};\n\nconst resetMySurveyFail = (state, action) => {\n return updateState(state, {\n answerLoading: false,\n error: action.error,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.GET_MY_SURVEYS_START:\n return getMySurveysStart(state);\n case actionTypes.GET_MY_SURVEYS_SUCCESS:\n return getMySurveysSuccess(state, action);\n case actionTypes.GET_MY_SURVEYS_FAIL:\n return getMySurveysFail(state, action);\n case actionTypes.MY_SURVEYS_SELECT_ROLE_START:\n return selectRoleStart(state);\n case actionTypes.MY_SURVEYS_SELECT_ROLE_SUCCESS:\n return selectRoleSuccess(state, action);\n case actionTypes.MY_SURVEYS_SELECT_ROLE_FAIL:\n return selectRoleFail(state, action);\n case actionTypes.GET_SURVEY_QUESTION_START:\n return getSurveyQuestionStart(state);\n case actionTypes.GET_SURVEY_QUESTION_SUCCESS:\n return getSurveyQuestionSuccess(state, action);\n case actionTypes.GET_SURVEY_QUESTION_FAIL:\n return getSurveyQuestionFail(state, action);\n case actionTypes.ANSWER_QUESTION_START:\n return answerQuestionStart(state);\n case actionTypes.ANSWER_QUESTION_SUCCESS:\n return answerQuestionSuccess(state, action);\n case actionTypes.ANSWER_QUESTION_FAIL:\n return answerQuestionFail(state, action);\n case actionTypes.SKIP_QUESTION_START:\n return skipQuestionStart(state);\n case actionTypes.SKIP_QUESTION_SUCCESS:\n return skipQuestionSuccess(state, action);\n case actionTypes.SKIP_QUESTION_FAIL:\n return skipQuestionFail(state, action);\n case actionTypes.COMPLETE_MY_SURVEYS_START:\n return completeMySurveyStart(state);\n case actionTypes.COMPLETE_MY_SURVEYS_SUCCESS:\n return completeMySurveySuccess(state);\n case actionTypes.COMPLETE_MY_SURVEYS_FAIL:\n return completeMySurveyFail(state, action);\n\n case actionTypes.RESET_MY_SURVEYS_START:\n return resetMySurveyStart(state);\n case actionTypes.RESET_MY_SURVEYS_SUCCESS:\n return resetMySurveySuccess(state);\n case actionTypes.RESET_MY_SURVEYS_FAIL:\n return resetMySurveyFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from \"../actions/actionTypes\";\n\nimport { updateState } from \"../utility\";\n\nconst initialState = {\n user: {},\n error: null,\n loading: false,\n};\n\nconst registerUserStart = (state) => {\n return updateState(state, { error: null, user: null, loading: true });\n};\n\nconst registerUserSuccess = (state, action) => {\n const user = {\n id: action.id,\n firstName: action.firstName,\n lastName: action.lastName,\n email: action.email\n }\n return updateState(state, {\n user: user,\n error: null,\n loading: false,\n });\n};\n\nconst registerUserFail = (state, action) => {\n return updateState(state, {\n error: action.error,\n loading: false,\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.REGISTER_USER_START:\n return registerUserStart(state);\n case actionTypes.REGISTER_USER_SUCCESS:\n return registerUserSuccess(state, action);\n case actionTypes.REGISTER_USER_FAIL:\n return registerUserFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import adminActionLogReducer from \"./../admin/reducers/adminActionLogReducer\";\nimport adminActionTypeReducer from \"./../admin/reducers/adminActionTypeReducer\";\nimport adminAdminRoleReducer from \"./../admin/reducers/adminAdminRoleReducer\";\nimport adminAllowedRegistrationEmailDomainReducer from \"./../admin/reducers/adminAllowedRegistrationEmailDomainReducer\";\nimport adminBadgeRequestReducer from \"./../admin/reducers/adminBadgeRequestReducer\";\nimport adminCategoryReducer from \"./../admin/reducers/adminCategoryReducer\";\nimport adminCompanyReducer from \"./../admin/reducers/adminCompanyReducer\";\nimport adminContentReducer from \"./../admin/reducers/adminContentReducer\";\nimport adminEmailTemplateReducer from \"./../admin/reducers/adminEmailTemplateReducer\";\nimport adminEvidenceTypeReducer from \"./../admin/reducers/adminEvidenceTypeReducer\";\nimport adminInterventionReducer from \"./../admin/reducers/adminInterventionReducer\";\nimport adminMentorPreferenceReducer from \"./../admin/reducers/adminMentorPreferenceReducer\";\nimport adminPersonReducer from \"./../admin/reducers/adminPersonReducer\";\nimport adminRegistrationReasonReducer from \"./../admin/reducers/adminRegistrationReasonReducer\";\nimport adminRelationshipReducer from \"./../admin/reducers/adminRelationshipReducer\";\nimport adminRelationshipTypeReducer from \"./../admin/reducers/adminRelationshipTypeReducer\";\nimport actionPlanReducer from \"./actionPlanReducer\";\nimport authReducer from \"./authReducer\";\nimport badgeRequestReducer from \"./badgeRequestReducer\";\nimport categoryReducer from \"./categoryReducer\";\nimport companyReducer from \"./companyReducer\";\nimport configReducer from \"./configReducer\";\nimport contentReducer from \"./contentReducer\";\nimport countryReducer from \"./countryReducer\";\nimport evidenceReducer from \"./evidenceReducer\";\nimport groupValueReducer from \"./groupValueReducer\";\nimport jobReducer from \"./jobReducer\";\nimport languageReducer from \"./languageReducer\";\nimport lorReducer from \"./lorReducer\";\nimport personReducer from \"./personReducer\";\nimport registerReasonReducer from \"./registerReasonReducer\";\nimport skillProfileReducer from \"./skillProfileReducer\";\nimport surveyReducer from \"./surveyReducer\";\nimport userReducer from \"./userReducer\";\nimport { combineReducers } from \"redux\";\n\nconst rootReducer = combineReducers({\n country: countryReducer,\n registerReason: registerReasonReducer,\n category: categoryReducer,\n lor: lorReducer,\n user: userReducer,\n auth: authReducer,\n person: personReducer,\n skillProfile: skillProfileReducer,\n job: jobReducer,\n actionPlan: actionPlanReducer,\n groupValue: groupValueReducer,\n company: companyReducer,\n survey: surveyReducer,\n evidence: evidenceReducer,\n language: languageReducer,\n content: contentReducer,\n config: configReducer,\n adminPerson: adminPersonReducer,\n adminCompany: adminCompanyReducer,\n adminRelationshipType: adminRelationshipTypeReducer,\n adminEmailTemplate: adminEmailTemplateReducer,\n adminBadgeRequest: adminBadgeRequestReducer,\n adminIntervention: adminInterventionReducer,\n adminRelationship: adminRelationshipReducer,\n adminActionType: adminActionTypeReducer,\n adminEvidenceType: adminEvidenceTypeReducer,\n adminMentorPreference: adminMentorPreferenceReducer,\n adminContent: adminContentReducer,\n adminCategory: adminCategoryReducer,\n adminAllowedRegistrationEmailDomain: adminAllowedRegistrationEmailDomainReducer,\n adminRegistrationReason: adminRegistrationReasonReducer,\n adminActionLog: adminActionLogReducer,\n badgeRequest: badgeRequestReducer,\n adminAdminRole: adminAdminRoleReducer,\n});\n\nexport default rootReducer;\n","import {applyMiddleware, compose, createStore} from 'redux';\n\nimport rootReducer from './reducers';\nimport thunk from 'redux-thunk';\n\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)));\n\nexport default store;\n","export const RESPONSIBILITY_SKILL_DESCRIPTION = [\n { name: \"Autonomy\", description: \"Autonomy is described as freedom to determine one's own actions, behaviour, etc.\" },\n { name: \"Influence\", description: \"Influence is described as ability to sway resulting from ability, position, etc.\" },\n { name: \"Complexity\", description: \"Complexity is described as Involved, intricate or complicated etc.\" },\n { name: \"Knowledge\", description: \"Knowledge is described as; facts, information, and skills acquired by a person through experience or education; the theoretical or practical understanding of a subject.\" },\n { name: \"Business Skills\", description: \"Business Skills is described as understanding the business environment.\" },\n];\n\nexport const REASON_ASSESSMENT_OPTIONS = [\n {\n label: \"Select Reason\",\n value: \"\",\n },\n {\n value: \"Apply for job\",\n label: \"I am or will apply for a job that includes SFIA skills\"\n },\n {\n value: \"Looking for work\",\n label: \"I am or maybe looking for work and wanted to include SFIA skills in my CV/Resume\"\n },\n {\n value: \"Curious\",\n label: \"I curious and want to learn more about SFIA\"\n },\n {\n value: \"Recommendation\",\n label: \"Someone recommended/suggested it to me\"\n },\n {\n value: \"Assignment\",\n label: \"As a university or college assignment\"\n },\n {\n value: \"Career Planning\",\n label: \"I want to use a SFIA profile to help plan my career development\"\n },\n {\n value: \"Organisational use\",\n label: \"I want to assess SFIA/SkillsTx for use in my organisation\"\n },\n {\n value: \"None of the above\",\n label: \"None of the above\"\n },\n];\n\nexport const OPTIONS_SENIORITY_GROUP_NAME = \"SFIA_Status\";\nexport const OPTIONS_CONTRACT_TYPE_GROUP_NAME = \"Contract_Type\";\nexport const OPTIONS_YEAR_RANGE_JOB_GROUP_NAME = \"SFIA_YearRangeJob\";\nexport const OPTIONS_YEAR_RANGE_ORG_GROUP_NAME = \"SFIA_YearRangeOrg\";\n\n// export const OPTIONS_SENIORITY = [\n// { label: \"Senior or Executive Manager\", value: \"Senior or Executive Manager\" },\n// { label: \"Senior Advisor\", value: \"Senior Advisor\" },\n// { label: \"Line Manager\", value: \"Line Manager\" },\n// { label: \"Team Leader\", value: \"Team Leader\" },\n// { label: \"Senior Employee\", value: \"Senior Employee\" },\n// { label: \"Experienced Employee\", value: \"Experienced Employee\" },\n// { label: \"Junior Employee\", value: \"Junior Employee\" },\n// { label: \"None of the above (please comment)\", value: \"None of the above (please comment)\" },\n// { label: \"Not Applicable\", value: \"NA\" },\n// ];\n\n// export const OPTIONS_EMPLOYMENT_CONTRACT = [\n// { label: \"Permanent Full-time\", value: \"Permanent Full-time\" },\n// { label: \"Permanent Part-time\", value: \"Permanent Part-time\" },\n// { label: \"1-2 year contract\", value: \"1-2 year contract\" },\n// { label: \"2-5 year contract\", value: \"2-5 year contract\" },\n// { label: \"Consultant/Contractor\", value: \"Consultant/Contractor\" },\n// { label: \"Casual\", value: \"Casual\" },\n// { label: \"Other (Please comment)\", value: \"Other (Please comment)\" },\n// { label: \"NA\", value: \"Not Applicable\" },\n// ];\n\n// export const OPTIONS_TIME_IN_CURRENT_ROLE = [\n// { label: \"New to role or not yet started\", value: \"New to role or not yet started\" },\n// { label: \"Less than 1 Year\", value: \"Less than 1 Year\" },\n// { label: \"1 to 3 Years\", value: \"1 to 3 Years\" },\n// { label: \"3 to 7 Years\", value: \"3 to 7 Years\" },\n// { label: \"More than 7 Years\", value: \"More than 7 Years\" },\n// ];\n\n// export const OPTIONS_TIME_IN_ORGANISATION = [\n// { label: \"Less than 2 Years\", value: \"Less than 2 Years\" },\n// { label: \"2 to 5 Years\", value: \"2 to 5 Years\" },\n// { label: \"5 to 10 Years\", value: \"5 to 10 Years\" },\n// { label: \"10 to 20 Years\", value: \"10 to 20 Years\" },\n// { label: \"More than 20 Years\", value: \"More than 20 Years\" },\n// ];\n\nexport const OPTIONS_COMPANY_TYPE_CUSTOMER = \"Customer\";\nexport const OPTIONS_COMPANY_TYPE_PROVIDER = \"Provider\";","export const GET_COUNTRIES_START = \"GET_COUNTRIES_START\";\nexport const GET_COUNTRIES_SUCCESS = \"GET_COUNTRIES_SUCCESS\";\nexport const GET_COUNTRIES_FAIL = \"GET_COUNTRIES_FAIL\";\n\nexport const GET_REGISTER_REASONS_START = \"GET_REGISTER_REASONS_START\";\nexport const GET_REGISTER_REASONS_SUCCESS = \"GET_REGISTER_REASONS_SUCCESS\";\nexport const GET_REGISTER_REASONS_FAIL = \"GET_REGISTER_REASONS_FAIL\";\n\nexport const GET_LORS_START = \"GET_LORS_START\";\nexport const GET_LORS_SUCCESS = \"GET_LORS_SUCCESS\";\nexport const GET_LORS_FAIL = \"GET_LORS_FAIL\";\n\nexport const UPDATE_LOR_START = \"UPDATE_LOR_START\";\nexport const UPDATE_LOR_SUCCESS = \"UPDATE_LOR_SUCCESS\";\nexport const UPDATE_LOR_FAIL = \"UPDATE_LOR_FAIL\";\n\nexport const UPDATE_LOR_SET_ISHIDDEN_START = \"UPDATE_LOR_SET_ISHIDDEN_START\";\nexport const UPDATE_LOR_SET_ISHIDDEN_SUCCESS = \"UPDATE_LOR_SET_ISHIDDEN_SUCCESS\";\nexport const UPDATE_LOR_SET_OPTIONAL_SUCCESS = \"UPDATE_LOR_SET_OPTIONAL_SUCCESS\";\nexport const UPDATE_LOR_SET_ISHIDDEN_FAIL = \"UPDATE_LOR_SET_ISHIDDEN_FAIL\";\n\nexport const GET_CATEGORIES_START = \"GET_CATEGORIES_START\";\nexport const GET_CATEGORIES_SUCCESS = \"GET_CATEGORIES_SUCCESS\";\nexport const GET_CATEGORIES_FAIL = \"GET_CATEGORIES_FAIL\";\n\nexport const REGISTER_USER_START = \"REGISTER_USER_START\";\nexport const REGISTER_USER_SUCCESS = \"REGISTER_USER_SUCCESS\";\nexport const REGISTER_USER_FAIL = \"REGISTER_USER_FAIL\";\n\nexport const GET_PERSON_MYPROFILE_START = \"GET_PERSON_MYPROFILE_START\";\nexport const GET_PERSON_MYPROFILE_SUCCESS = \"GET_PERSON_MYPROFILE_SUCCESS\";\nexport const GET_PERSON_MYPROFILE_FAIL = \"GET_PERSON_MYPROFILE_FAIL\";\n\nexport const DOWNLOAD_PERSON_MYPROFILE_START = \"DOWNLOAD_PERSON_MYPROFILE_START\";\nexport const DOWNLOAD_PERSON_MYPROFILE_SUCCESS = \"DOWNLOAD_PERSON_MYPROFILE_SUCCESS\";\nexport const DOWNLOAD_PERSON_MYPROFILE_FAIL = \"DOWNLOAD_PERSON_MYPROFILE_FAIL\";\n\nexport const GET_PERSON_LATESTACCOUNT_START = \"GET_PERSON_LATESTACCOUNT_START\";\nexport const GET_PERSON_LATESTACCOUNT_SUCCESS = \"GET_PERSON_LATESTACCOUNT_SUCCESS\";\nexport const GET_PERSON_LATESTACCOUNT_FAIL = \"GET_PERSON_LATESTACCOUNT_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_LATESTACCOUNT_START = \"GET_MANAGED_PEOPLE_LATESTACCOUNT_START\";\nexport const GET_MANAGED_PEOPLE_LATESTACCOUNT_SUCCESS = \"GET_MANAGED_PEOPLE_LATESTACCOUNT_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_LATESTACCOUNT_FAIL = \"GET_MANAGED_PEOPLE_LATESTACCOUNT_FAIL\";\n\nexport const CLEAR_PERSON_ACCOUNT_STATE = \"CLEAR_PERSON_ACCOUNT_STATE\";\n\nexport const UPDATE_PERSON_MYPROFILE_START = \"UPDATE_PERSON_MYPROFILE_START\";\nexport const UPDATE_PERSON_MYPROFILE_SUCCESS = \"UPDATE_PERSON_MYPROFILE_SUCCESS\";\nexport const UPDATE_PERSON_MYPROFILE_FAIL = \"UPDATE_PERSON_MYPROFILE_FAIL\";\n\nexport const DOWNLOAD_PERSON_PROFILE_PICTURE_START = \"DOWNLOAD_PERSON_PROFILE_PICTURE_START\";\nexport const DOWNLOAD_PERSON_PROFILE_PICTURE_SUCCESS = \"DOWNLOAD_PERSON_PROFILE_PICTURE_SUCCESS\";\nexport const DOWNLOAD_PERSON_PROFILE_PICTURE_FAIL = \"DOWNLOAD_PERSON_PROFILE_PICTURE_FAIL\";\n\nexport const UPLOAD_PERSON_PROFILE_PICTURE_START = \"UPLOAD_PERSON_PROFILE_PICTURE_START\";\nexport const UPLOAD_PERSON_PROFILE_PICTURE_SUCCESS = \"UPLOAD_PERSON_PROFILE_PICTURE_SUCCESS\";\nexport const UPLOAD_PERSON_PROFILE_PICTURE_FAIL = \"UPLOAD_PERSON_PROFILE_PICTURE_FAIL\";\n\nexport const UPDATE_PERSON_ACCOUNT_START = \"UPDATE_PERSON_ACCOUNT_START\";\nexport const UPDATE_PERSON_ACCOUNT_SUCCESS = \"UPDATE_PERSON_ACCOUNT_SUCCESS\";\nexport const UPDATE_PERSON_ACCOUNT_FAIL = \"UPDATE_PERSON_ACCOUNT_FAIL\";\n\nexport const UPDATE_PERSON_ACCOUNT_NOTE_START = \"UPDATE_PERSON_ACCOUNT_NOTE_START\";\nexport const UPDATE_PERSON_ACCOUNT_NOTE_SUCCESS = \"UPDATE_PERSON_ACCOUNT_NOTE_SUCCESS\";\nexport const UPDATE_PERSON_ACCOUNT_NOTE_FAIL = \"UPDATE_PERSON_ACCOUNT_NOTE_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_START = \"UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_START\";\nexport const UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_SUCCESS = \"UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_FAIL = \"UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_FAIL\";\n\nexport const PERSON_ACCOUNT_REQUEST_APPROVAL_START = \"PERSON_ACCOUNT_REQUEST_APPROVAL_START\";\nexport const PERSON_ACCOUNT_REQUEST_APPROVAL_SUCCESS = \"PERSON_ACCOUNT_REQUEST_APPROVAL_SUCCESS\";\nexport const PERSON_ACCOUNT_REQUEST_APPROVAL_FAIL = \"PERSON_ACCOUNT_REQUEST_APPROVAL_FAIL\";\n\nexport const UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_START = \"UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_START\";\nexport const UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_SUCCESS = \"UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_SUCCESS\";\nexport const UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_FAIL = \"UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_FAIL\";\n\nexport const AUTH_REGISTER_START = \"AUTH_REGISTER_START\";\nexport const AUTH_REGISTER_SUCCESS = \"AUTH_REGISTER_SUCCESS\";\nexport const AUTH_REGISTER_FAIL = \"AUTH_REGISTER_FAIL\";\n\nexport const AUTH_REGISTER_EMAIL_CHECKING_START = \"AUTH_REGISTER_EMAIL_CHECKING_START\";\nexport const AUTH_REGISTER_EMAIL_CHECKING_SUCCESS = \"AUTH_REGISTER_EMAIL_CHECKING_SUCCESS\";\nexport const AUTH_REGISTER_EMAIL_CHECKING_FAIL = \"AUTH_REGISTER_EMAIL_CHECKING_FAIL\";\n\nexport const AUTH_FAIL = \"AUTH_FAIL\";\nexport const AUTH_LOGOUT_START = \"AUTH_LOGOUT_START\";\nexport const AUTH_LOGOUT_SUCCESS = \"AUTH_LOGOUT_SUCCESS\";\nexport const AUTH_LOGOUT_FAIL = \"AUTH_LOGOUT_FAIL\";\n\nexport const AUTH_LOGOUT_INTENDED_SUCCESS = \"AUTH_LOGOUT_INTENDED_SUCCESS\";\n\nexport const SIGN_IN_START = \"SIGN_IN_START\";\nexport const SIGN_IN_SUCCESS = \"SIGN_IN_SUCCESS\";\nexport const SIGN_IN_SUCCESS_WITH_WAIT = \"SIGN_IN_SUCCESS_WITH_WAIT\";\nexport const SIGN_IN_FAIL = \"SIGN_IN_FAIL\";\n\nexport const AUTH_CHECK_SUCCESS = \"AUTH_CHECK_SUCCESS\";\nexport const AUTH_SET_REDIRECT_URL = \"AUTH_SET_REDIRECT_URL\";\n\nexport const FORGOT_PASSWORD_START = \"FORGOT_PASSWORD_START\";\nexport const FORGOT_PASSWORD_SUCCESS = \"FORGOT_PASSWORD_SUCCESS\";\nexport const FORGOT_PASSWORD_FAIL = \"FORGOT_PASSWORD_FAIL\";\n\nexport const CREATE_ACCOUNT_START = \"CREATE_ACCOUNT_START\";\nexport const CREATE_ACCOUNT_SUCCESS = \"CREATE_ACCOUNT_SUCCESS\";\nexport const CREATE_ACCOUNT_FAIL = \"CREATE_ACCOUNT_FAIL\";\n\nexport const GET_RESET_PASSWORD_START = \"GET_RESET_PASSWORD_START\";\nexport const GET_RESET_PASSWORD_SUCCESS = \"GET_RESET_PASSWORD_SUCCESS\";\nexport const GET_RESET_PASSWORD_FAIL = \"GET_RESET_PASSWORD_FAIL\";\n\nexport const PROCESS_RESET_PASSWORD_START = \"PROCESS_RESET_PASSWORD_START\";\nexport const PROCESS_RESET_PASSWORD_SUCCESS = \"PROCESS_RESET_PASSWORD_SUCCESS\";\nexport const PROCESS_RESET_PASSWORD_FAIL = \"PROCESS_RESET_PASSWORD_FAIL\";\n\nexport const GET_JOBS_START = \"GET_JOBS_START\";\nexport const GET_JOBS_SUCCESS = \"GET_JOBS_SUCCESS\";\nexport const GET_JOBS_FAIL = \"GET_JOBS_FAIL\";\n\nexport const GET_SAMPLE_JOBS_START = \"GET_SAMPLE_JOBS_START\";\nexport const GET_SAMPLE_JOBS_SUCCESS = \"GET_SAMPLE_JOBS_SUCCESS\";\nexport const GET_SAMPLE_JOBS_FAIL = \"GET_SAMPLE_JOBS_FAIL\";\n\nexport const GET_JOB_START = \"GET_JOB_START\";\nexport const GET_JOB_SUCCESS = \"GET_JOB_SUCCESS\";\nexport const GET_JOB_FAIL = \"GET_JOB_FAIL\";\n\nexport const PRINT_JOB_REPORT_START = \"PRINT_JOB_REPORT_START\";\nexport const PRINT_JOB_REPORT_SUCCESS = \"PRINT_JOB_REPORT_SUCCESS\";\nexport const PRINT_JOB_REPORT_FAIL = \"PRINT_JOB_REPORT_FAIL\";\n\nexport const PRINT_JOB_REPORTS_START = \"PRINT_JOB_REPORTS_START\";\nexport const PRINT_JOB_REPORTS_SUCCESS = \"PRINT_JOB_REPORTS_SUCCESS\";\nexport const PRINT_JOB_REPORTS_FAIL = \"PRINT_JOB_REPORTS_FAIL\";\n\nexport const CREATE_JOB_START = \"CREATE_JOB_START\";\nexport const CREATE_JOB_SUCCESS = \"CREATE_JOB_SUCCESS\";\nexport const CREATE_JOB_FAIL = \"CREATE_JOB_FAIL\";\n\nexport const UPDATE_JOB_START = \"UPDATE_JOB_START\";\nexport const UPDATE_JOB_SUCCESS = \"UPDATE_JOB_SUCCESS\";\nexport const UPDATE_JOB_FAIL = \"UPDATE_JOB_FAIL\";\n\nexport const UPDATE_JOB_BY_NOTIFICATION = \"UPDATE_JOB_BY_NOTIFICATION\";\n\nexport const UPDATE_JOB_NOTE_START = \"UPDATE_JOB_NOTE_START\";\nexport const UPDATE_JOB_NOTE_SUCCESS = \"UPDATE_JOB_NOTE_SUCCESS\";\nexport const UPDATE_JOB_NOTE_FAIL = \"UPDATE_JOB_NOTE_FAIL\";\n\nexport const UPDATE_JOB_SKILL_ATTRIBUTES_START = \"UPDATE_JOB_SKILL_ATTRIBUTES_START\";\nexport const UPDATE_JOB_SKILL_ATTRIBUTES_SUCCESS = \"UPDATE_JOB_SKILL_ATTRIBUTES_SUCCESS\";\nexport const UPDATE_JOB_SKILL_ATTRIBUTES_FAIL = \"UPDATE_JOB_SKILL_ATTRIBUTES_FAIL\";\n\nexport const UPDATE_JOB_LOR_ATTRIBUTES_START = \"UPDATE_JOB_LOR_ATTRIBUTES_START\";\nexport const UPDATE_JOB_LOR_ATTRIBUTES_SUCCESS = \"UPDATE_JOB_LOR_ATTRIBUTES_SUCCESS\";\nexport const UPDATE_JOB_LOR_ATTRIBUTES_FAIL = \"UPDATE_JOB_LOR_ATTRIBUTES_FAIL\";\n\nexport const DELETE_JOB_START = \"DELETE_JOB_START\";\nexport const DELETE_JOB_SUCCESS = \"DELETE_JOB_SUCCESS\";\nexport const DELETE_JOB_FAIL = \"DELETE_JOB_FAIL\";\n\nexport const COPY_JOB_START = \"COPY_JOB_START\";\nexport const COPY_JOB_SUCCESS = \"COPY_JOB_SUCCESS\";\nexport const COPY_JOB_FAIL = \"COPY_JOB_FAIL\";\n\nexport const COPY_JOBS_START = \"COPY_JOBS_START\";\nexport const COPY_JOBS_SUCCESS = \"COPY_JOBS_SUCCESS\";\nexport const COPY_JOBS_FAIL = \"COPY_JOBS_FAIL\";\n\nexport const GET_SENIORITY_VALUES_START = \"GET_SENIORITY_VALUES_START\";\nexport const GET_SENIORITY_VALUES_SUCCESS = \"GET_SENIORITY_VALUES_SUCCESS\";\nexport const GET_SENIORITY_VALUES_FAIL = \"GET_SENIORITY_VALUES_FAIL\";\n\nexport const GET_CONTRACT_TYPE_VALUES_START = \"GET_CONTRACT_TYPE_VALUES_START\";\nexport const GET_CONTRACT_TYPE_VALUES_SUCCESS = \"GET_CONTRACT_TYPE_VALUES_SUCCESS\";\nexport const GET_CONTRACT_TYPE_VALUES_FAIL = \"GET_CONTRACT_TYPE_VALUES_FAIL\";\n\nexport const GET_YEAR_RANGE_JOB_VALUES_START = \"GET_YEAR_RANGE_JOB_VALUES_START\";\nexport const GET_YEAR_RANGE_JOB_VALUES_SUCCESS = \"GET_YEAR_RANGE_JOB_VALUES_SUCCESS\";\nexport const GET_YEAR_RANGE_JOB_VALUES_FAIL = \"GET_YEAR_RANGE_JOB_VALUES_FAIL\";\n\nexport const GET_YEAR_RANGE_ORG_VALUES_START = \"GET_YEAR_RANGE_ORG_VALUES_START\";\nexport const GET_YEAR_RANGE_ORG_VALUES_SUCCESS = \"GET_YEAR_RANGE_ORG_VALUES_SUCCESS\";\nexport const GET_YEAR_RANGE_ORG_VALUES_FAIL = \"GET_YEAR_RANGE_ORG_VALUES_FAIL\";\n\nexport const GET_MY_PROFILE_TYPES_START = \"GET_MY_PROFILE_TYPES_START\";\nexport const GET_MY_PROFILE_TYPES_SUCCESS = \"GET_MY_PROFILE_TYPES_SUCCESS\";\nexport const GET_MY_PROFILE_TYPES_FAIL = \"GET_MY_PROFILE_TYPES_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_PROFILE_TYPES_START = \"GET_MANAGED_PEOPLE_PROFILE_TYPES_START\";\nexport const GET_MANAGED_PEOPLE_PROFILE_TYPES_SUCCESS = \"GET_MANAGED_PEOPLE_PROFILE_TYPES_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_PROFILE_TYPES_FAIL = \"GET_MANAGED_PEOPLE_PROFILE_TYPES_FAIL\";\n\nexport const GET_MY_PROFILE_VERSIONS_START = \"GET_MY_PROFILE_VERSIONS_START\";\nexport const GET_MY_PROFILE_VERSIONS_SUCCESS = \"GET_MY_PROFILE_VERSIONS_SUCCESS\";\nexport const GET_MY_PROFILE_VERSIONS_FAIL = \"GET_MY_PROFILE_VERSIONS_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_PROFILE_VERSIONS_START = \"GET_MANAGED_PEOPLE_PROFILE_VERSIONS_START\";\nexport const GET_MANAGED_PEOPLE_PROFILE_VERSIONS_SUCCESS = \"GET_MANAGED_PEOPLE_PROFILE_VERSIONS_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_PROFILE_VERSIONS_FAIL = \"GET_MANAGED_PEOPLE_PROFILE_VERSIONS_FAIL\";\n\nexport const GET_MY_SKILL_PROFILE_START = \"GET_MY_SKILL_PROFILE_START\";\nexport const GET_MY_SKILL_PROFILE_SUCCESS = \"GET_MY_SKILL_PROFILE_SUCCESS\";\nexport const GET_MY_SKILL_PROFILE_FAIL = \"GET_MY_SKILL_PROFILE_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_SKILL_PROFILE_START = \"GET_MANAGED_PEOPLE_SKILL_PROFILE_START\";\nexport const GET_MANAGED_PEOPLE_SKILL_PROFILE_SUCCESS = \"GET_MANAGED_PEOPLE_SKILL_PROFILE_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_SKILL_PROFILE_FAIL = \"GET_MANAGED_PEOPLE_SKILL_PROFILE_FAIL\";\n\nexport const GET_MY_LOR_PROFILE_START = \"GET_MY_LOR_PROFILE_START\";\nexport const GET_MY_LOR_PROFILE_SUCCESS = \"GET_MY_LOR_PROFILE_SUCCESS\";\nexport const GET_MY_LOR_PROFILE_FAIL = \"GET_MY_LOR_PROFILE_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_LOR_PROFILE_START = \"GET_MANAGED_PEOPLE_LOR_PROFILE_START\";\nexport const GET_MANAGED_PEOPLE_LOR_PROFILE_SUCCESS = \"GET_MANAGED_PEOPLE_LOR_PROFILE_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_LOR_PROFILE_FAIL = \"GET_MANAGED_PEOPLE_LOR_PROFILE_FAIL\";\n\nexport const PRINT_MY_PROFILE_START = \"PRINT_MY_PROFILE_START\";\nexport const PRINT_MY_PROFILE_SUCCESS = \"PRINT_MY_PROFILE_SUCCESS\";\nexport const PRINT_MY_PROFILE_FAIL = \"PRINT_MY_PROFILE_FAIL\";\n\nexport const PRINT_MANAGED_PEOPLE_PROFILE_START = \"PRINT_MANAGED_PEOPLE_PROFILE_START\";\nexport const PRINT_MANAGED_PEOPLE_PROFILE_SUCCESS = \"PRINT_MANAGED_PEOPLE_PROFILE_SUCCESS\";\nexport const PRINT_MANAGED_PEOPLE_PROFILE_FAIL = \"PRINT_MANAGED_PEOPLE_PROFILE_FAIL\";\n\nexport const GENERATE_PERSONAL_DATA_EXCEL_START = \"GENERATE_PERSONAL_DATA_EXCEL_START\";\nexport const GENERATE_PERSONAL_DATA_EXCEL_SUCCESS = \"GENERATE_PERSONAL_DATA_EXCEL_SUCCESS\";\nexport const GENERATE_PERSONAL_DATA_EXCEL_FAIL = \"GENERATE_PERSONAL_DATA_EXCEL_FAIL\";\n\nexport const EMAIL_MY_PROFILE_REPORT_START = \"EMAIL_MY_PROFILE_REPORT_START\";\nexport const EMAIL_MY_PROFILE_REPORT_SUCCESS = \"EMAIL_MY_PROFILE_REPORT_SUCCESS\";\nexport const EMAIL_MY_PROFILE_REPORT_FAIL = \"EMAIL_MY_PROFILE_REPORT_FAIL\";\n\nexport const UPDATE_SKILL_PROFILES_START = \"UPDATE_SKILL_PROFILES_START\";\nexport const UPDATE_SKILL_PROFILES_SUCCESS = \"UPDATE_SKILL_PROFILES_SUCCESS\";\nexport const UPDATE_SKILL_PROFILES_FAIL = \"UPDATE_SKILL_PROFILES_FAIL\";\nexport const CLEAR_UPDATE_SKILL_PROFILES = \"CLEAR_UPDATE_SKILL_PROFILES\";\n\nexport const SUBMIT_UPDATE_PROFILE_SUGGESTION_START = \"SUBMIT_UPDATE_PROFILE_SUGGESTION_START\";\nexport const SUBMIT_UPDATE_PROFILE_SUGGESTION_SUCCESS = \"SUBMIT_UPDATE_PROFILE_SUGGESTION_SUCCESS\";\nexport const SUBMIT_UPDATE_PROFILE_SUGGESTION_FAIL = \"SUBMIT_UPDATE_PROFILE_SUGGESTION_FAIL\";\n\nexport const ACCEPT_UPDATE_PROFILE_SUGGESTION_START = \"ACCEPT_UPDATE_PROFILE_SUGGESTION_START\";\nexport const ACCEPT_UPDATE_PROFILE_SUGGESTION_SUCCESS = \"ACCEPT_UPDATE_PROFILE_SUGGESTION_SUCCESS\";\nexport const ACCEPT_UPDATE_PROFILE_SUGGESTION_FAIL = \"ACCEPT_UPDATE_PROFILE_SUGGESTION_FAIL\";\n\nexport const REJECT_UPDATE_PROFILE_SUGGESTION_START = \"REJECT_UPDATE_PROFILE_SUGGESTION_START\";\nexport const REJECT_UPDATE_PROFILE_SUGGESTION_SUCCESS = \"REJECT_UPDATE_PROFILE_SUGGESTION_SUCCESS\";\nexport const REJECT_UPDATE_PROFILE_SUGGESTION_FAIL = \"REJECT_UPDATE_PROFILE_SUGGESTION_FAIL\";\n\nexport const UPDATE_ENDORSED_STATUS_START = \"UPDATE_ENDORSED_STATUS_START\";\nexport const UPDATE_ENDORSED_STATUS_SUCCESS = \"UPDATE_ENDORSED_STATUS_SUCCESS\";\nexport const UPDATE_ENDORSED_STATUS_FAIL = \"UPDATE_ENDORSED_STATUS_FAIL\";\n\nexport const CLEAR_MANAGE_PEOPLE_ENDORSED_STATUS = \"CLEAR_MANAGE_PEOPLE_ENDORSED_STATUS\";\nexport const UPDATE_MANAGE_PEOPLE_ENDORSED_STATUS = \"UPDATE_MANAGE_PEOPLE_ENDORSED_STATUS\";\n\nexport const COPY_ENDORSED_PROFILES_START = \"COPY_ENDORSED_PROFILES_START\";\nexport const COPY_ENDORSED_PROFILES_SUCCESS = \"COPY_ENDORSED_PROFILES_SUCCESS\";\nexport const COPY_ENDORSED_PROFILES_FAIL = \"COPY_ENDORSED_PROFILES_FAIL\";\n\nexport const COPY_PROFILE_START = \"COPY_PROFILE_START\";\nexport const COPY_PROFILE_SUCCESS = \"COPY_PROFILE_SUCCESS\";\nexport const COPY_PROFILE_FAIL = \"COPY_PROFILE_FAIL\";\n\nexport const CLEAR_COPY_ENDORSED_NOTIF = \"CLEAR_COPY_ENDORSED_NOTIF\";\n\nexport const UPDATE_MY_SKILL_PROFILE_COMMENT_START = \"UPDATE_MY_SKILL_PROFILE_COMMENT_START\";\nexport const UPDATE_MY_SKILL_PROFILE_COMMENT_SUCCESS = \"UPDATE_MY_SKILL_PROFILE_COMMENT_SUCCESS\";\nexport const UPDATE_MY_SKILL_PROFILE_COMMENT_FAIL = \"UPDATE_MY_SKILL_PROFILE_COMMENT_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_START = \"UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_START\";\nexport const UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_SUCCESS = \"UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_FAIL = \"UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_FAIL\";\n\nexport const UPDATE_MY_LOR_PROFILE_COMMENT_START = \"UPDATE_MY_LOR_PROFILE_COMMENT_START\";\nexport const UPDATE_MY_LOR_PROFILE_COMMENT_SUCCESS = \"UPDATE_MY_LOR_PROFILE_COMMENT_SUCCESS\";\nexport const UPDATE_MY_LOR_PROFILE_COMMENT_FAIL = \"UPDATE_MY_LOR_PROFILE_COMMENT_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_START = \"UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_START\";\nexport const UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_SUCCESS = \"UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_FAIL = \"UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_FAIL\";\n\nexport const GET_MY_JOB_MATCH_TYPES_START = \"GET_MY_JOB_MATCH_TYPES_START\";\nexport const GET_MY_JOB_MATCH_TYPES_SUCCESS = \"GET_MY_JOB_MATCH_TYPES_SUCCESS\";\nexport const GET_MY_JOB_MATCH_TYPES_FAIL = \"GET_MY_JOB_MATCH_TYPES_FAIL\";\n\nexport const GET_MY_JOB_MATCHES_START = \"GET_MY_JOB_MATCHES_START\";\nexport const GET_MY_JOB_MATCHES_SUCCESS = \"GET_MY_JOB_MATCHES_SUCCESS\";\nexport const GET_MY_JOB_MATCHES_FAIL = \"GET_MY_JOB_MATCHES_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_JOB_MATCHES_START = \"GET_MANAGED_PEOPLE_JOB_MATCHES_START\";\nexport const GET_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS = \"GET_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_JOB_MATCHES_FAIL = \"GET_MANAGED_PEOPLE_JOB_MATCHES_FAIL\";\n\nexport const UPDATE_MY_JOB_MATCHES_START = \"UPDATE_MY_JOB_MATCHES_START\";\nexport const UPDATE_MY_JOB_MATCHES_SUCCESS = \"UPDATE_MY_JOB_MATCHES_SUCCESS\";\nexport const UPDATE_MY_JOB_MATCHES_FAIL = \"UPDATE_MY_JOB_MATCHES_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_JOB_MATCHES_START = \"UPDATE_MANAGED_PEOPLE_JOB_MATCHES_START\";\nexport const UPDATE_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS = \"UPDATE_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_JOB_MATCHES_FAIL = \"UPDATE_MANAGED_PEOPLE_JOB_MATCHES_FAIL\";\n\nexport const GET_JOB_PROFILES_VERSIONS_START = \"GET_JOB_PROFILES_VERSIONS_START\";\nexport const GET_JOB_PROFILES_VERSIONS_SUCCESS = \"GET_JOB_PROFILES_VERSIONS_SUCCESS\";\nexport const GET_JOB_PROFILES_VERSIONS_FAIL = \"GET_JOB_PROFILES_VERSIONS_FAIL\";\n\nexport const GET_JOB_SKILL_PROFILES_START = \"GET_JOB_SKILL_PROFILES_START\";\nexport const GET_JOB_SKILL_PROFILES_SUCCESS = \"GET_JOB_SKILL_PROFILES_SUCCESS\";\nexport const GET_JOB_SKILL_PROFILES_FAIL = \"GET_JOB_SKILL_PROFILES_FAIL\";\n\nexport const GET_JOB_LOR_PROFILES_START = \"GET_JOB_LOR_PROFILES_START\";\nexport const GET_JOB_LOR_PROFILES_SUCCESS = \"GET_JOB_LOR_PROFILES_SUCCESS\";\nexport const GET_JOB_LOR_PROFILES_FAIL = \"GET_JOB_LOR_PROFILES_FAIL\";\n\nexport const UPDATE_JOB_SKILL_PROFILES_START = \"UPDATE_JOB_SKILL_PROFILES_START\";\nexport const UPDATE_JOB_SKILL_PROFILES_SUCCESS = \"UPDATE_JOB_SKILL_PROFILES_SUCCESS\";\nexport const UPDATE_JOB_SKILL_PROFILES_FAIL = \"UPDATE_JOB_SKILL_PROFILES_FAIL\";\nexport const CLEAR_UPDATE_JOB_SKILL_PROFILES = \"CLEAR_UPDATE_JOB_SKILL_PROFILES\";\n\nexport const GET_JOB_SKILL_ATTRIBUTES_START = \"GET_JOB_SKILL_ATTRIBUTES_START\";\nexport const GET_JOB_SKILL_ATTRIBUTES_SUCCESS = \"GET_JOB_SKILL_ATTRIBUTES_SUCCESS\";\nexport const GET_JOB_SKILL_ATTRIBUTES_FAIL = \"GET_JOB_SKILL_ATTRIBUTES_FAIL\";\n\nexport const GET_JOB_LOR_ATTRIBUTES_START = \"GET_JOB_LOR_ATTRIBUTES_START\";\nexport const GET_JOB_LOR_ATTRIBUTES_SUCCESS = \"GET_JOB_LOR_ATTRIBUTES_SUCCESS\";\nexport const GET_JOB_LOR_ATTRIBUTES_FAIL = \"GET_JOB_LOR_ATTRIBUTES_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_START = \"GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_START\";\nexport const GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_SUCCESS = \"GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_FAIL = \"GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_START = \"GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_START\";\nexport const GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_SUCCESS = \"GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_FAIL = \"GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_FAIL\";\n\nexport const GET_MY_ACTIONS_START = \"GET_MY_ACTIONS_START\";\nexport const GET_MY_ACTIONS_SUCCESS = \"GET_MY_ACTIONS_SUCCESS\";\nexport const GET_MY_ACTIONS_FAIL = \"GET_MY_ACTIONS_FAIL\";\n\nexport const GET_MANAGED_PEOPLE_ACTIONS_START = \"GET_MANAGED_PEOPLE_ACTIONS_START\";\nexport const GET_MANAGED_PEOPLE_ACTIONS_SUCCESS = \"GET_MANAGED_PEOPLE_ACTIONS_SUCCESS\";\nexport const GET_MANAGED_PEOPLE_ACTIONS_FAIL = \"GET_MANAGED_PEOPLE_ACTIONS_FAIL\";\n\nexport const CREATE_ACTION_START = \"CREATE_ACTION_START\";\nexport const CREATE_ACTION_SUCCESS = \"CREATE_ACTION_SUCCESS\";\nexport const CREATE_ACTION_FAIL = \"CREATE_ACTION_FAIL\";\n\nexport const UPDATE_ACTION_START = \"UPDATE_ACTION_START\";\nexport const UPDATE_ACTION_SUCCESS = \"UPDATE_ACTION_SUCCESS\";\nexport const UPDATE_ACTION_FAIL = \"UPDATE_ACTION_FAIL\";\n\nexport const DELETE_ACTION_START = \"DELETE_ACTION_START\";\nexport const DELETE_ACTION_SUCCESS = \"DELETE_ACTION_SUCCESS\";\nexport const DELETE_ACTION_FAIL = \"DELETE_ACTION_FAIL\";\n\nexport const PRINT_MY_ACTION_REPORT_START = \"PRINT_MY_ACTION_REPORT_START\";\nexport const PRINT_MY_ACTION_REPORT_SUCCESS = \"PRINT_MY_ACTION_REPORT_SUCCESS\";\nexport const PRINT_MY_ACTION_REPORT_FAIL = \"PRINT_MY_ACTION_REPORT_FAIL\";\n\nexport const CREATE_MANAGED_PEOPLE_ACTION_START = \"CREATE_MANAGED_PEOPLE_ACTION_START\";\nexport const CREATE_MANAGED_PEOPLE_ACTION_SUCCESS = \"CREATE_MANAGED_PEOPLE_ACTION_SUCCESS\";\nexport const CREATE_MANAGED_PEOPLE_ACTION_FAIL = \"CREATE_MANAGED_PEOPLE_ACTION_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_ACTION_START = \"UPDATE_MANAGED_PEOPLE_ACTION_START\";\nexport const UPDATE_MANAGED_PEOPLE_ACTION_SUCCESS = \"UPDATE_MANAGED_PEOPLE_ACTION_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_ACTION_FAIL = \"UPDATE_MANAGED_PEOPLE_ACTION_FAIL\";\n\nexport const DELETE_MANAGED_PEOPLE_ACTION_START = \"DELETE_MANAGED_PEOPLE_ACTION_START\";\nexport const DELETE_MANAGED_PEOPLE_ACTION_SUCCESS = \"DELETE_MANAGED_PEOPLE_ACTION_SUCCESS\";\nexport const DELETE_MANAGED_PEOPLE_ACTION_FAIL = \"DELETE_MANAGED_PEOPLE_ACTION_FAIL\";\n\nexport const PRINT_MANAGED_PEOPLE_ACTION_REPORT_START = \"PRINT_MANAGED_PEOPLE_ACTION_REPORT_START\";\nexport const PRINT_MANAGED_PEOPLE_ACTION_REPORT_SUCCESS = \"PRINT_MANAGED_PEOPLE_ACTION_REPORT_SUCCESS\";\nexport const PRINT_MANAGED_PEOPLE_ACTION_REPORT_FAIL = \"PRINT_MANAGED_PEOPLE_ACTION_REPORT_FAIL\";\n\nexport const SEND_UPDATED_ACTIONPLAN_NOTIFICATION_START = \"SEND_UPDATED_ACTIONPLAN_NOTIFICATION_START\";\nexport const SEND_UPDATED_ACTIONPLAN_NOTIFICATION_SUCCESS = \"SEND_UPDATED_ACTIONPLAN_NOTIFICATION_SUCCESS\";\nexport const SEND_UPDATED_ACTIONPLAN_NOTIFICATION_FAIL = \"SEND_UPDATED_ACTIONPLAN_NOTIFICATION_FAIL\";\n\nexport const GET_ACTION_TYPES_START = \"GET_ACTION_TYPES_START\";\nexport const GET_ACTION_TYPES_SUCCESS = \"GET_ACTION_TYPES_SUCCESS\";\nexport const GET_ACTION_TYPES_FAIL = \"GET_ACTION_TYPES_FAIL\";\n\nexport const GET_ACTION_SKILLS_START = \"GET_ACTION_SKILLS_START\";\nexport const GET_ACTION_SKILLS_SUCCESS = \"GET_ACTION_SKILLS_SUCCESS\";\nexport const GET_ACTION_SKILLS_FAIL = \"GET_ACTION_SKILLS_FAIL\";\n\nexport const GET_INTERVENTIONS_START = \"GET_INTERVENTIONS_START\";\nexport const GET_INTERVENTIONS_SUCCESS = \"GET_INTERVENTIONS_SUCCESS\";\nexport const GET_INTERVENTIONS_FAIL = \"GET_INTERVENTIONS_FAIL\";\n\nexport const UPDATE_INTERVENTION_HIDDEN_START = \"UPDATE_INTERVENTION_HIDDEN_START\";\nexport const UPDATE_INTERVENTION_HIDDEN_SUCCESS = \"UPDATE_INTERVENTION_HIDDEN_SUCCESS\";\nexport const UPDATE_INTERVENTION_HIDDEN_FAIL = \"UPDATE_INTERVENTION_HIDDEN_FAIL\";\n\nexport const GET_COMPANIES_START = \"GET_COMPANIES_START\";\nexport const GET_COMPANIES_SUCCESS = \"GET_COMPANIES_SUCCESS\";\nexport const GET_COMPANIES_FAIL = \"GET_COMPANIES_FAIL\";\n\nexport const GET_DEFAULT_COMPANY_START = \"GET_DEFAULT_COMPANY_START\";\nexport const GET_DEFAULT_COMPANY_SUCCESS = \"GET_DEFAULT_COMPANY_SUCCESS\";\nexport const GET_DEFAULT_COMPANY_FAIL = \"GET_DEFAULT_COMPANY_FAIL\";\n\nexport const GET_COMPANY_BRANDING_LOGO_START = \"GET_COMPANY_BRANDING_LOGO_START\";\nexport const GET_COMPANY_BRANDING_LOGO_SUCCESS = \"GET_COMPANY_BRANDING_LOGO_SUCCESS\";\nexport const GET_COMPANY_BRANDING_LOGO_FAIL = \"GET_COMPANY_BRANDING_LOGO_FAIL\";\n\nexport const CREATE_COMPANY_START = \"CREATE_COMPANY_START\";\nexport const CREATE_COMPANY_SUCCESS = \"CREATE_COMPANY_SUCCESS\";\nexport const CREATE_COMPANY_FAIL = \"CREATE_COMPANY_FAIL\";\n\nexport const UPDATE_COMPANY_START = \"UPDATE_COMPANY_START\";\nexport const UPDATE_COMPANY_SUCCESS = \"UPDATE_COMPANY_SUCCESS\";\nexport const UPDATE_COMPANY_FAIL = \"UPDATE_COMPANY_FAIL\";\n\nexport const GET_COMPANY_FAVICON_START = \"GET_COMPANY_FAVICON_START\";\nexport const GET_COMPANY_FAVICON_SUCCESS = \"GET_COMPANY_FAVICON_SUCCESS\";\nexport const GET_COMPANY_FAVICON_FAIL = \"GET_COMPANY_FAVICON_FAIL\";\n\nexport const GET_SELECTED_PROVIDER_COMPANIES_START = \"GET_SELECTED_PROVIDER_COMPANIES_START\";\nexport const GET_SELECTED_PROVIDER_COMPANIES_SUCCESS = \"GET_SELECTED_PROVIDER_COMPANIES_SUCCESS\";\nexport const GET_SELECTED_PROVIDER_COMPANIES_FAIL = \"GET_SELECTED_PROVIDER_COMPANIES_FAIL\";\n\nexport const GET_PROVIDER_COMPANIES_START = \"GET_PROVIDER_COMPANIES_START\";\nexport const GET_PROVIDER_COMPANIES_SUCCESS = \"GET_PROVIDER_COMPANIES_SUCCESS\";\nexport const GET_PROVIDER_COMPANIES_FAIL = \"GET_PROVIDER_COMPANIES_FAIL\";\n\nexport const GET_MY_SURVEYS_START = \"GET_MY_SURVEYS_START\";\nexport const GET_MY_SURVEYS_SUCCESS = \"GET_MY_SURVEYS_SUCCESS\";\nexport const GET_MY_SURVEYS_FAIL = \"GET_MY_SURVEYS_FAIL\";\n\nexport const MY_SURVEYS_SELECT_ROLE_START = \"MY_SURVEYS_SELECT_ROLE_START\";\nexport const MY_SURVEYS_SELECT_ROLE_SUCCESS = \"MY_SURVEYS_SELECT_ROLE_SUCCESS\";\nexport const MY_SURVEYS_SELECT_ROLE_FAIL = \"MY_SURVEYS_SELECT_ROLE_FAIL\";\n\nexport const GET_SURVEY_QUESTION_START = \"GET_SURVEY_QUESTION_START\";\nexport const GET_SURVEY_QUESTION_SUCCESS = \"GET_SURVEY_QUESTION_SUCCESS\";\nexport const GET_SURVEY_QUESTION_FAIL = \"GET_SURVEY_QUESTION_FAIL\";\n\nexport const ANSWER_QUESTION_START = \"ANSWER_QUESTION_START\";\nexport const ANSWER_QUESTION_SUCCESS = \"ANSWER_QUESTION_SUCCESS\";\nexport const ANSWER_QUESTION_FAIL = \"ANSWER_QUESTION_FAIL\";\n\nexport const SKIP_QUESTION_START = \"SKIP_QUESTION_START\";\nexport const SKIP_QUESTION_SUCCESS = \"SKIP_QUESTION_SUCCESS\";\nexport const SKIP_QUESTION_FAIL = \"SKIP_QUESTION_FAIL\";\n\nexport const COMPLETE_MY_SURVEYS_START = \"COMPLETE_MY_SURVEYS_START\";\nexport const COMPLETE_MY_SURVEYS_SUCCESS = \"COMPLETE_MY_SURVEYS_SUCCESS\";\nexport const COMPLETE_MY_SURVEYS_FAIL = \"COMPLETE_MY_SURVEYS_FAIL\";\n\nexport const RESET_MY_SURVEYS_START = \"RESET_MY_SURVEYS_START\";\nexport const RESET_MY_SURVEYS_SUCCESS = \"RESET_MY_SURVEYS_SUCCESS\";\nexport const RESET_MY_SURVEYS_FAIL = \"RESET_MY_SURVEYS_FAIL\";\n\nexport const GET_EVIDENCE_TYPES_START = \"GET_EVIDENCE_TYPES_START\";\nexport const GET_EVIDENCE_TYPES_SUCCESS = \"GET_EVIDENCE_TYPES_SUCCESS\";\nexport const GET_EVIDENCE_TYPES_FAIL = \"GET_EVIDENCE_TYPES_FAIL\";\n\nexport const GET_EVIDENCES_BYACCOUNTID_START = \"GET_EVIDENCES_BYACCOUNTID_START\";\nexport const GET_EVIDENCES_BYACCOUNTID_SUCCESS = \"GET_EVIDENCES_BYACCOUNTID_SUCCESS\";\nexport const GET_EVIDENCES_BYACCOUNTID_FAIL = \"GET_EVIDENCES_BYACCOUNTID_FAIL\";\n\nexport const GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_START = \"GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_START\";\nexport const GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_SUCCESS = \"GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_SUCCESS\";\nexport const GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_FAIL = \"GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_FAIL\";\n\nexport const ADD_EVIDENCE_START = \"ADD_EVIDENCE_START\";\nexport const ADD_EVIDENCE_SUCCESS = \"ADD_EVIDENCE_SUCCESS\";\nexport const ADD_EVIDENCE_FAIL = \"ADD_EVIDENCE_FAIL\";\n\nexport const ADD_EVIDENCES_START = \"ADD_EVIDENCES_START\";\nexport const ADD_EVIDENCES_SUCCESS = \"ADD_EVIDENCES_SUCCESS\";\nexport const ADD_EVIDENCES_FAIL = \"ADD_EVIDENCES_FAIL\";\n\nexport const ADD_MANAGED_PEOPLE_EVIDENCE_START = \"ADD_MANAGED_PEOPLE_EVIDENCE_START\";\nexport const ADD_MANAGED_PEOPLE_EVIDENCE_SUCCESS = \"ADD_MANAGED_PEOPLE_EVIDENCE_SUCCESS\";\nexport const ADD_MANAGED_PEOPLE_EVIDENCE_FAIL = \"ADD_MANAGED_PEOPLE_EVIDENCE_FAIL\";\n\nexport const UPDATE_EVIDENCE_START = \"UPDATE_EVIDENCE_START\";\nexport const UPDATE_EVIDENCE_SUCCESS = \"UPDATE_EVIDENCE_SUCCESS\";\nexport const UPDATE_EVIDENCE_FAIL = \"UPDATE_EVIDENCE_FAIL\";\n\nexport const UPDATE_MANAGED_PEOPLE_EVIDENCE_START = \"UPDATE_MANAGED_PEOPLE_EVIDENCE_START\";\nexport const UPDATE_MANAGED_PEOPLE_EVIDENCE_SUCCESS = \"UPDATE_MANAGED_PEOPLE_EVIDENCE_SUCCESS\";\nexport const UPDATE_MANAGED_PEOPLE_EVIDENCE_FAIL = \"UPDATE_MANAGED_PEOPLE_EVIDENCE_FAIL\";\n\nexport const DELETE_EVIDENCE_START = \"DELETE_EVIDENCE_START\";\nexport const DELETE_EVIDENCE_SUCCESS = \"DELETE_EVIDENCE_SUCCESS\";\nexport const DELETE_EVIDENCE_FAIL = \"DELETE_EVIDENCE_FAIL\";\n\nexport const DELETE_MANAGED_PEOPLE_EVIDENCE_START = \"DELETE_MANAGED_PEOPLE_EVIDENCE_START\";\nexport const DELETE_MANAGED_PEOPLE_EVIDENCE_SUCCESS = \"DELETE_MANAGED_PEOPLE_EVIDENCE_SUCCESS\";\nexport const DELETE_MANAGED_PEOPLE_EVIDENCE_FAIL = \"DELETE_MANAGED_PEOPLE_EVIDENCE_FAIL\";\n\nexport const DOWNLOAD_EVIDENCE_BYID_START = \"DOWNLOAD_EVIDENCE_BYID_START\";\nexport const DOWNLOAD_EVIDENCE_BYID_SUCCESS = \"DOWNLOAD_EVIDENCE_BYID_SUCCESS\";\nexport const DOWNLOAD_EVIDENCE_BYID_FAIL = \"DOWNLOAD_EVIDENCE_BYID_FAIL\";\n\nexport const DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_START = \"DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_START\";\nexport const DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_SUCCESS = \"DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_SUCCESS\";\nexport const DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_FAIL = \"DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_FAIL\";\n\nexport const GET_PERSON_MYPEOPLES_START = \"GET_PERSON_MYPEOPLES_START\";\nexport const GET_PERSON_MYPEOPLES_SUCCESS = \"GET_PERSON_MYPEOPLES_SUCCESS\";\nexport const GET_PERSON_MYPEOPLES_FAIL = \"GET_PERSON_MYPEOPLES_FAIL\";\n\nexport const GET_PERSON_MYPEOPLE_BYEMAIL_START = \"GET_PERSON_MYPEOPLE_BYEMAIL_START\";\nexport const GET_PERSON_MYPEOPLE_BYEMAIL_SUCCESS = \"GET_PERSON_MYPEOPLE_BYEMAIL_SUCCESS\";\nexport const GET_PERSON_MYPEOPLE_BYEMAIL_FAIL = \"GET_PERSON_MYPEOPLE_BYEMAIL_FAIL\";\n\nexport const GET_PERSON_MYPEOPLES_TEAMANALYTIC_START = \"GET_PERSON_MYPEOPLES_TEAMANALYTIC_START\";\nexport const GET_PERSON_MYPEOPLES_TEAMANALYTIC_SUCCESS = \"GET_PERSON_MYPEOPLES_TEAMANALYTIC_SUCCESS\";\nexport const GET_PERSON_MYPEOPLES_TEAMANALYTIC_FAIL = \"GET_PERSON_MYPEOPLES_TEAMANALYTIC_FAIL\";\n\nexport const GET_PERSON_MYLEADERS_START = \"GET_PERSON_MYLEADERS_START\";\nexport const GET_PERSON_MYLEADERS_SUCCESS = \"GET_PERSON_MYLEADERS_SUCCESS\";\nexport const GET_PERSON_MYLEADERS_FAIL = \"GET_PERSON_MYLEADERS_FAIL\";\n\nexport const PERSON_FORGET_ME_START = \"PERSON_FORGET_ME_START\";\nexport const PERSON_FORGET_ME_SUCCESS = \"PERSON_FORGET_ME_SUCCESS\";\nexport const PERSON_FORGET_ME_FAIL = \"PERSON_FORGET_ME_FAIL\";\n\nexport const MYPEOPLES_SET_MANAGED_RELATIONSHIP = \"MYPEOPLES_SET_MANAGED_RELATIONSHIP\";\nexport const MYPEOPLES_CLEAR_MANAGED_RELATIONSHIP = \"MYPEOPLES_CLEAR_MANAGED_RELATIONSHIP\";\n\nexport const APPROVE_MYPEOPLE_PROFILE_START = \"APPROVE_MYPEOPLE_PROFILE_START\";\nexport const APPROVE_MYPEOPLE_PROFILE_SUCCESS = \"APPROVE_MYPEOPLE_PROFILE_SUCCESS\";\nexport const APPROVE_MYPEOPLE_PROFILE_FAIL = \"APPROVE_MYPEOPLE_PROFILE_FAIL\";\n\nexport const POSTPONE_APPROVE_MYPEOPLE_PROFILE_START = \"POSTPONE_APPROVE_MYPEOPLE_PROFILE_START\";\nexport const POSTPONE_APPROVE_MYPEOPLE_PROFILE_SUCCESS = \"POSTPONE_APPROVE_MYPEOPLE_PROFILE_SUCCESS\";\nexport const POSTPONE_APPROVE_MYPEOPLE_PROFILE_FAIL = \"POSTPONE_APPROVE_MYPEOPLE_PROFILE_FAIL\";\n\nexport const GET_LANGUAGES_START = \"GET_LANGUAGES_START\";\nexport const GET_LANGUAGES_SUCCESS = \"GET_LANGUAGES_SUCCESS\";\nexport const GET_LANGUAGES_FAIL = \"GET_LANGUAGES_FAIL\";\n\nexport const SET_LANGUAGE = \"SET_LANGUAGE\";\n\nexport const GET_CONTENT_TRANSLATIONS_START = \"GET_CONTENT_TRANSLATIONS_START\";\nexport const GET_CONTENT_TRANSLATIONS_SUCCESS = \"GET_CONTENT_TRANSLATIONS_SUCCESS\";\nexport const GET_CONTENT_TRANSLATIONS_FAIL = \"GET_CONTENT_TRANSLATIONS_FAIL\";\n\nexport const GENERATE_ACTIVITYSTATEMENT_START = \"GENERATE_ACTIVITYSTATEMENT_START\";\nexport const GENERATE_ACTIVITYSTATEMENT_SUCCESS = \"GENERATE_ACTIVITYSTATEMENT_SUCCESS\";\nexport const GENERATE_ACTIVITYSTATEMENT_FAIL = \"GENERATE_ACTIVITYSTATEMENT_FAIL\";\n\nexport const SET_JOBIMPORT_SESSIONID = \"SET_JOBIMPORT_SESSIONID\";\n\nexport const EXPORT_JOBS_DATA_START = \"EXPORT_JOBS_DATA_START\";\nexport const EXPORT_JOBS_DATA_SUCCESS = \"EXPORT_JOBS_DATA_SUCCESS\";\nexport const EXPORT_JOBS_DATA_FAIL = \"EXPORT_JOBS_DATA_FAIL\";\n\nexport const IMPORT_JOBS_DATA_START = \"IMPORT_JOBS_DATA_START\";\nexport const IMPORT_JOBS_DATA_SUCCESS = \"IMPORT_JOBS_DATA_SUCCESS\";\nexport const IMPORT_JOBS_DATA_FAIL = \"IMPORT_JOBS_DATA_FAIL\";\n\nexport const UPDATE_IMPORT_JOB_STATUS = \"UPDATE_IMPORT_JOB_STATUS\";\n\nexport const GET_JOB_IMPORT_QUEUE_START = \"GET_JOB_IMPORT_QUEUE_START\";\nexport const GET_JOB_IMPORT_QUEUE_SUCCESS = \"GET_JOB_IMPORT_QUEUE_SUCCESS\";\nexport const GET_JOB_IMPORT_QUEUE_FAIL = \"GET_JOB_IMPORT_QUEUE_FAIL\";\n\nexport const GET_JOB_MATCH_PERSONS_START = \"GET_JOB_MATCH_PERSONS_START\";\nexport const GET_JOB_MATCH_PERSONS_SUCCESS = \"GET_JOB_MATCH_PERSONS_SUCCESS\";\nexport const GET_JOB_MATCH_PERSONS_FAIL = \"GET_JOB_MATCH_PERSONS_FAIL\";\n\nexport const ASSIGN_JOB_MATCH_PERSON_START = \"ASSIGN_JOB_MATCH_PERSON_START\";\nexport const ASSIGN_JOB_MATCH_PERSON_SUCCESS = \"ASSIGN_JOB_MATCH_PERSON_SUCCESS\";\nexport const ASSIGN_JOB_MATCH_PERSON_FAIL = \"ASSIGN_JOB_MATCH_PERSON_FAIL\";\n\nexport const EXPORT_JOB_MATCHES_DATA_START = \"EXPORT_JOB_MATCHES_DATA_START\";\nexport const EXPORT_JOB_MATCHES_DATA_SUCCESS = \"EXPORT_JOB_MATCHES_DATA_SUCCESS\";\nexport const EXPORT_JOB_MATCHES_DATA_FAIL = \"EXPORT_JOB_MATCHES_DATA_FAIL\";\n\nexport const IMPORT_JOB_MATCHES_DATA_START = \"IMPORT_JOB_MATCHES_DATA_START\";\nexport const IMPORT_JOB_MATCHES_DATA_SUCCESS = \"IMPORT_JOB_MATCHES_DATA_SUCCESS\";\nexport const IMPORT_JOB_MATCHES_DATA_FAIL = \"IMPORT_JOB_MATCHES_DATA_FAIL\";\n\nexport const ADD_SKILL_ATTRIBUTE_DATA_START = \"ADD_SKILL_ATTRIBUTE_DATA_START\";\nexport const ADD_SKILL_ATTRIBUTE_DATA_SUCCESS = \"ADD_SKILL_ATTRIBUTE_DATA_SUCCESS\";\nexport const ADD_SKILL_ATTRIBUTE_DATA_FAIL = \"ADD_SKILL_ATTRIBUTE_DATA_FAIL\";\n\nexport const UPDATE_SKILL_ATTRIBUTE_DATA_START = \"UPDATE_SKILL_ATTRIBUTE_DATA_START\";\nexport const UPDATE_SKILL_ATTRIBUTE_DATA_SUCCESS = \"UPDATE_SKILL_ATTRIBUTE_DATA_SUCCESS\";\nexport const UPDATE_SKILL_ATTRIBUTE_DATA_FAIL = \"UPDATE_SKILL_ATTRIBUTE_DATA_FAIL\";\n\nexport const UPDATE_SKILL_SET_ISHIDDEN_START = \"UPDATE_SKILL_SET_ISHIDDEN_START\";\nexport const UPDATE_SKILL_SET_ISHIDDEN_SUCCESS = \"UPDATE_SKILL_SET_ISHIDDEN_SUCCESS\";\nexport const UPDATE_SKILL_SET_ISHIDDEN_FAIL = \"UPDATE_SKILL_SET_ISHIDDEN_FAIL\";\n\nexport const DELETE_SKILL_ATTRIBUTE_DATA_START = \"DELETE_SKILL_ATTRIBUTE_DATA_START\";\nexport const DELETE_SKILL_ATTRIBUTE_DATA_SUCCESS = \"DELETE_SKILL_ATTRIBUTE_DATA_SUCCESS\";\nexport const DELETE_SKILL_ATTRIBUTE_DATA_FAIL = \"DELETE_SKILL_ATTRIBUTE_DATA_FAIL\";\n\nexport const EXPORT_SKILL_ATTRIBUTES_DATA_START = \"EXPORT_SKILL_ATTRIBUTES_DATA_START\";\nexport const EXPORT_SKILL_ATTRIBUTES_DATA_SUCCESS = \"EXPORT_SKILL_ATTRIBUTES_DATA_SUCCESS\";\nexport const EXPORT_SKILL_ATTRIBUTES_DATA_FAIL = \"EXPORT_SKILL_ATTRIBUTES_DATA_FAIL\";\n\nexport const IMPORT_SKILL_ATTRIBUTES_DATA_START = \"IMPORT_SKILL_ATTRIBUTES_DATA_START\";\nexport const IMPORT_SKILL_ATTRIBUTES_DATA_SUCCESS = \"IMPORT_SKILL_ATTRIBUTES_DATA_SUCCESS\";\nexport const IMPORT_SKILL_ATTRIBUTES_DATA_FAIL = \"IMPORT_SKILL_ATTRIBUTES_DATA_FAIL\";\n\nexport const EXPORT_SKILLS_HIDDEN_DATA_START = \"EXPORT_SKILLS_HIDDEN_DATA_START\";\nexport const EXPORT_SKILLS_HIDDEN_DATA_SUCCESS = \"EXPORT_SKILLS_HIDDEN_DATA_SUCCESS\";\nexport const EXPORT_SKILLS_HIDDEN_DATA_FAIL = \"EXPORT_SKILLS_HIDDEN_DATA_FAIL\";\n\nexport const IMPORT_SKILLS_HIDDEN_DATA_START = \"IMPORT_SKILLS_HIDDEN_DATA_START\";\nexport const IMPORT_SKILLS_HIDDEN_DATA_SUCCESS = \"IMPORT_SKILLS_HIDDEN_DATA_SUCCESS\";\nexport const IMPORT_SKILLS_HIDDEN_DATA_FAIL = \"IMPORT_SKILLS_HIDDEN_DATA_FAIL\";\n\nexport const GET_CONFIG_SAML_ENABLED_STATUS_START = \"GET_CONFIG_SAML_ENABLED_STATUS_START\";\nexport const GET_CONFIG_SAML_ENABLED_STATUS_SUCCESS = \"GET_CONFIG_SAML_ENABLED_STATUS_SUCCESS\";\nexport const GET_CONFIG_SAML_ENABLED_STATUS_FAIL = \"GET_CONFIG_SAML_ENABLED_STATUS_FAIL\";\n\nexport const GET_CONFIG_CURR_ASSESSMENT_START = \"GET_CONFIG_CURR_ASSESSMENT_START\";\nexport const GET_CONFIG_CURR_ASSESSMENT_SUCCESS = \"GET_CONFIG_CURR_ASSESSMENT_SUCCESS\";\nexport const GET_CONFIG_CURR_ASSESSMENT_FAIL = \"GET_CONFIG_CURR_ASSESSMENT_FAIL\";\n\nexport const CLEAR_CONFIG_CURR_ASSESSMENT = \"CLEAR_CONFIG_CURR_ASSESSMENT\";\n\nexport const GET_CONTAINER_CONFIG_START = \"GET_CONTAINER_CONFIG_START\";\nexport const GET_CONTAINER_CONFIG_SUCCESS = \"GET_CONTAINER_CONFIG_SUCCESS\";\nexport const GET_CONTAINER_CONFIG_FAIL = \"GET_CONTAINER_CONFIG_FAIL\";\n\nexport const GET_CONTAINER_CONFIG_WITHOUT_LOADING_START = \"GET_CONTAINER_CONFIG_WITHOUT_LOADING_START\";\nexport const GET_CONTAINER_CONFIG_WITHOUT_LOADING_SUCCESS = \"GET_CONTAINER_CONFIG_WITHOUT_LOADING_SUCCESS\";\nexport const GET_CONTAINER_CONFIG_WITHOUT_LOADING_FAIL = \"GET_CONTAINER_CONFIG_WITHOUT_LOADING_FAIL\";\n\nexport const GET_ADMIN_CONFIG_START = \"GET_ADMIN_CONFIG_START\";\nexport const GET_ADMIN_CONFIG_SUCCESS = \"GET_ADMIN_CONFIG_SUCCESS\";\nexport const GET_ADMIN_CONFIG_FAIL = \"GET_ADMIN_CONFIG_FAIL\";\n\nexport const UPDATE_ADMIN_CONFIG_START = \"UPDATE_ADMIN_CONFIG_START\";\nexport const UPDATE_ADMIN_CONFIG_SUCCESS = \"UPDATE_ADMIN_CONFIG_SUCCESS\";\nexport const UPDATE_ADMIN_CONFIG_FAIL = \"UPDATE_ADMIN_CONFIG_FAIL\";\n\nexport const GET_CONTAINER_APP_SETTING_START = \"GET_CONTAINER_APP_SETTING_START\";\nexport const GET_CONTAINER_APP_SETTING_SUCCESS = \"GET_CONTAINER_APP_SETTING_SUCCESS\";\nexport const GET_CONTAINER_APP_SETTING_FAIL = \"GET_CONTAINER_APP_SETTING_FAIL\";\n\nexport const UPDATE_CONTAINER_APP_SETTING_START = \"UPDATE_CONTAINER_APP_SETTING_START\";\nexport const UPDATE_CONTAINER_APP_SETTING_SUCCESS = \"UPDATE_CONTAINER_APP_SETTING_SUCCESS\";\nexport const UPDATE_CONTAINER_APP_SETTING_FAIL = \"UPDATE_CONTAINER_APP_SETTING_FAIL\";\n\nexport const DOWNLOAD_POWERBIMODEL_START = \"DOWNLOAD_POWERBIMODEL_START\";\nexport const DOWNLOAD_POWERBIMODEL_SUCCESS = \"DOWNLOAD_POWERBIMODEL_SUCCESS\";\nexport const DOWNLOAD_POWERBIMODEL_FAIL = \"DOWNLOAD_POWERBIMODEL_FAIL\";\n\nexport const GET_EXTRAFRAMEWORK_LEVELS_START = \"GET_EXTRAFRAMEWORK_LEVELS_START\";\nexport const GET_EXTRAFRAMEWORK_LEVELS_SUCCESS = \"GET_EXTRAFRAMEWORK_LEVELS_SUCCESS\";\nexport const GET_EXTRAFRAMEWORK_LEVELS_FAIL = \"GET_EXTRAFRAMEWORK_LEVELS_FAIL\";\n\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_START = \"GET_EXTRAFRAMEWORK_CAPABILITIES_START\";\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS = \"GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS\";\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL = \"GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL\";\n\nexport const GET_MY_LATEST_BADGE_REQUEST_START = \"GET_MY_LATEST_BADGE_REQUEST_START\";\nexport const GET_MY_LATEST_BADGE_REQUEST_SUCCESS = \"GET_MY_LATEST_BADGE_REQUEST_SUCCESS\";\nexport const GET_MY_LATEST_BADGE_REQUEST_FAIL = \"GET_MY_LATEST_BADGE_REQUEST_FAIL\";\n\nexport const SUBMIT_BADGE_REQUEST_START = \"SUBMIT_BADGE_REQUEST_START\";\nexport const SUBMIT_BADGE_REQUEST_SUCCESS = \"SUBMIT_BADGE_REQUEST_SUCCESS\";\nexport const SUBMIT_BADGE_REQUEST_FAIL = \"SUBMIT_BADGE_REQUEST_FAIL\";\n\nexport const SUBMIT_ACTION_PROMOTION_START = \"SUBMIT_ACTION_PROMOTION_START\";\nexport const SUBMIT_ACTION_PROMOTION_SUCCESS = \"SUBMIT_ACTION_PROMOTION_SUCCESS\";\nexport const SUBMIT_ACTION_PROMOTION_FAIL = \"SUBMIT_ACTION_PROMOTION_FAIL\";\n\nexport const GET_PERSON_SKILL_COINS_START = \"GET_PERSON_SKILL_COINS_START\";\nexport const GET_PERSON_SKILL_COINS_SUCCESS = \"GET_PERSON_SKILL_COINS_SUCCESS\";\nexport const GET_PERSON_SKILL_COINS_FAIL = \"GET_PERSON_SKILL_COINS_FAIL\";\n\nexport const GET_ACTIVE_USER_COUNT_STATUS_START = \"GET_ACTIVE_USER_COUNT_STATUS_START\";\nexport const GET_ACTIVE_USER_COUNT_STATUS_SUCCESS = \"GET_ACTIVE_USER_COUNT_STATUS_SUCCESS\";\nexport const GET_ACTIVE_USER_COUNT_STATUS_FAIL = \"GET_ACTIVE_USER_COUNT_STATUS_FAIL\";\n\nexport const CLEAR_ACTIVE_USER_COUNT_STATUS = \"CLEAR_ACTIVE_USER_COUNT_STATUS\";\n\nexport const EXECUTE_INACTIVATION_USERS_LESS_LOGIN_START = \"EXECUTE_INACTIVATION_USERS_LESS_LOGIN_START\";\nexport const EXECUTE_INACTIVATION_USERS_LESS_LOGIN_SUCCESS = \"EXECUTE_INACTIVATION_USERS_LESS_LOGIN_SUCCESS\";\nexport const EXECUTE_INACTIVATION_USERS_LESS_LOGIN_FAIL = \"EXECUTE_INACTIVATION_USERS_LESS_LOGIN_FAIL\";\n\nexport const CLEAR_SAML_ENABLED_STATUS = \"CLEAR_SAML_ENABLED_STATUS\";\n\nexport const GET_JOB_FAMILIES_START = \"GET_JOB_FAMILIES_START\";\nexport const GET_JOB_FAMILIES_SUCCESS = \"GET_JOB_FAMILIES_SUCCESS\";\nexport const GET_JOB_FAMILIES_FAIL = \"GET_JOB_FAMILIES_FAIL\";\n\nexport const UPDATE_JOB_FAMILY_START = \"UPDATE_JOB_FAMILY_START\";\nexport const UPDATE_JOB_FAMILY_SUCCESS = \"UPDATE_JOB_FAMILY_SUCCESS\";\nexport const UPDATE_JOB_FAMILY_FAIL = \"UPDATE_JOB_FAMILY_FAIL\";\n\nexport const DELETE_JOB_FAMILY_START = \"DELETE_JOB_FAMILY_START\";\nexport const DELETE_JOB_FAMILY_SUCCESS = \"DELETE_JOB_FAMILY_SUCCESS\";\nexport const DELETE_JOB_FAMILY_FAIL = \"DELETE_JOB_FAMILY_FAIL\";\n\nexport const GET_COLUMN_DISPLAY_SETTINGS_START = \"GET_COLUMN_DISPLAY_SETTINGS_START\";\nexport const GET_COLUMN_DISPLAY_SETTINGS_SUCCESS = \"GET_COLUMN_DISPLAY_SETTINGS_SUCCESS\";\nexport const GET_COLUMN_DISPLAY_SETTINGS_FAIL = \"GET_COLUMN_DISPLAY_SETTINGS_FAIL\";\n\nexport const UPDATE_COLUMN_DISPLAY_SETTING_START = \"UPDATE_COLUMN_DISPLAY_SETTING_START\";\nexport const UPDATE_COLUMN_DISPLAY_SETTING_SUCCESS = \"UPDATE_COLUMN_DISPLAY_SETTING_SUCCESS\";\nexport const UPDATE_COLUMN_DISPLAY_SETTING_FAIL = \"UPDATE_COLUMN_DISPLAY_SETTING_FAIL\";\n\nexport const UPDATE_COLUMN_DISPLAY_SETTING_MOVE_START = \"UPDATE_COLUMN_DISPLAY_SETTING_MOVE_START\";\nexport const UPDATE_COLUMN_DISPLAY_SETTING_MOVE_SUCCESS = \"UPDATE_COLUMN_DISPLAY_SETTING_MOVE_SUCCESS\";\nexport const UPDATE_COLUMN_DISPLAY_SETTING_MOVE_FAIL = \"UPDATE_COLUMN_DISPLAY_SETTING_MOVE_FAIL\";\n\nexport const GET_PERSON_MENTOR_PREFERENCE_START = \"GET_PERSON_MENTOR_PREFERENCE_START\";\nexport const GET_PERSON_MENTOR_PREFERENCE_SUCCESS = \"GET_PERSON_MENTOR_PREFERENCE_SUCCESS\";\nexport const GET_PERSON_MENTOR_PREFERENCE_FAIL = \"GET_PERSON_MENTOR_PREFERENCE_FAIL\";\n\nexport const SUBMIT_PROPOSE_ACTION_START = \"SUBMIT_PROPOSE_ACTION_START\";\nexport const SUBMIT_PROPOSE_ACTION_SUCCESS = \"SUBMIT_PROPOSE_ACTION_SUCCESS\";\nexport const SUBMIT_PROPOSE_ACTION_FAIL = \"SUBMIT_PROPOSE_ACTION_FAIL\";\n\nexport const ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START = \"ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START\";\nexport const ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS = \"ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS\";\nexport const ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL = \"ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL\";\n\nexport const REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START = \"REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START\";\nexport const REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS = \"REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS\";\nexport const REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL = \"REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL\";\n\nexport const EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_START = \"EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_START\";\nexport const EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_TOEMAIL_START = \"EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_TOEMAIL_START\";\nexport const EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_SUCCESS = \"EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_SUCCESS\";\nexport const EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_FAIL = \"EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_FAIL\";\n\nexport const GET_REPORT_TEMPLATE_NAME_START = \"GET_REPORT_TEMPLATE_NAME_START\";\nexport const GET_REPORT_TEMPLATE_NAME_SUCCESS = \"GET_REPORT_TEMPLATE_NAME_SUCCESS\";\nexport const GET_REPORT_TEMPLATE_NAME_FAIL = \"GET_REPORT_TEMPLATE_NAME_FAIL\";\n\nexport const DOWNLOAD_REPORT_TEMPLATE_START = \"DOWNLOAD_REPORT_TEMPLATE_START\";\nexport const DOWNLOAD_REPORT_TEMPLATE_SUCCESS = \"DOWNLOAD_REPORT_TEMPLATE_SUCCESS\";\nexport const DOWNLOAD_REPORT_TEMPLATE_FAIL = \"DOWNLOAD_REPORT_TEMPLATE_FAIL\";\n\nexport const UPDATE_REPORT_TEMPLATE_START = \"UPDATE_REPORT_TEMPLATE_START\";\nexport const UPDATE_REPORT_TEMPLATE_SUCCESS = \"UPDATE_REPORT_TEMPLATE_SUCCESS\";\nexport const UPDATE_REPORT_TEMPLATE_FAIL = \"UPDATE_REPORT_TEMPLATE_FAIL\";\n\nexport const ADD_LOR_ATTRIBUTE_DATA_START = \"ADD_LOR_ATTRIBUTE_DATA_START\";\nexport const ADD_LOR_ATTRIBUTE_DATA_SUCCESS = \"ADD_LOR_ATTRIBUTE_DATA_SUCCESS\";\nexport const ADD_LOR_ATTRIBUTE_DATA_FAIL = \"ADD_LOR_ATTRIBUTE_DATA_FAIL\";\n\nexport const UPDATE_LOR_ATTRIBUTE_DATA_START = \"UPDATE_LOR_ATTRIBUTE_DATA_START\";\nexport const UPDATE_LOR_ATTRIBUTE_DATA_SUCCESS = \"UPDATE_LOR_ATTRIBUTE_DATA_SUCCESS\";\nexport const UPDATE_LOR_ATTRIBUTE_DATA_FAIL = \"UPDATE_LOR_ATTRIBUTE_DATA_FAIL\";\n\nexport const DELETE_LOR_ATTRIBUTE_DATA_START = \"DELETE_LOR_ATTRIBUTE_DATA_START\";\nexport const DELETE_LOR_ATTRIBUTE_DATA_SUCCESS = \"DELETE_LOR_ATTRIBUTE_DATA_SUCCESS\";\nexport const DELETE_LOR_ATTRIBUTE_DATA_FAIL = \"DELETE_LOR_ATTRIBUTE_DATA_FAIL\";\n\nexport const EXPORT_LOR_ATTRIBUTES_DATA_START = \"EXPORT_LOR_ATTRIBUTES_DATA_START\";\nexport const EXPORT_LOR_ATTRIBUTES_DATA_SUCCESS = \"EXPORT_LOR_ATTRIBUTES_DATA_SUCCESS\";\nexport const EXPORT_LOR_ATTRIBUTES_DATA_FAIL = \"EXPORT_LOR_ATTRIBUTES_DATA_FAIL\";\n\nexport const IMPORT_LOR_ATTRIBUTES_DATA_START = \"IMPORT_LOR_ATTRIBUTES_DATA_START\";\nexport const IMPORT_LOR_ATTRIBUTES_DATA_SUCCESS = \"IMPORT_LOR_ATTRIBUTES_DATA_SUCCESS\";\nexport const IMPORT_LOR_ATTRIBUTES_DATA_FAIL = \"IMPORT_LOR_ATTRIBUTES_DATA_FAIL\";\n\nexport const ENQUIRE_JOB_VACANCY_START = \"ENQUIRE_JOB_VACANCY_START\";\nexport const ENQUIRE_JOB_VACANCY_SUCCESS = \"ENQUIRE_JOB_VACANCY_SUCCESS\";\nexport const ENQUIRE_JOB_VACANCY_FAIL = \"ENQUIRE_JOB_VACANCY_FAIL\";\n","const checkValidity = (value, validation) => {\n let isValid = true;\n if (!validation) {\n return true;\n }\n\n if (validation.minLength) {\n isValid = value.length >= validation.minLength && isValid;\n }\n\n if (validation.maxLength) {\n isValid = value.length <= validation.maxLength && isValid;\n }\n\n if (validation.minNumber) {\n isValid = value >= validation.minNumber && isValid;\n }\n\n if (validation.maxNumber) {\n isValid = value <= validation.maxNumber && isValid;\n }\n\n if (validation.isEmail) {\n const pattern = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\n isValid = pattern.test(value) && isValid;\n }\n\n if (validation.isNumeric) {\n const pattern = /^\\d+(\\.\\d{1,2})?$/;\n isValid = pattern.test(value) && isValid;\n }\n\n if (validation.isPassword) {\n isValid = checkPassword(value) && isValid;\n }\n\n if (validation.isFte) {\n const pattern = /^\\d+(\\.\\d{1,1})?$/;\n isValid = pattern.test(value) && isValid;\n }\n\n if (validation.isUserFte) {\n const pattern = /^\\d+(\\.\\d{1,2})?$/;\n isValid = pattern.test(value) && isValid;\n }\n\n return isValid;\n};\n\nconst checkPassword = (value) => {\n if (value.match(/[A-Z]/) && value.match(/[a-z]/) && value.match(/\\d/) && value.match(/\\W|_/)) {\n return true;\n }\n\n return false;\n};\n\nexport default checkValidity;\n","import checkValidity from './checkValidity';\nimport { updateState } from './../store/utility';\n\nconst changeInput = (formObject, name, value) => {\n let isNotEmpty = false;\n let isValidFormat = false;\n\n if (!formObject[name].validation.isNumeric && !formObject[name].validation.isBool && !formObject[name].validation.isDateTime && formObject[name].validation.required) {\n isNotEmpty = value ? value.trim() !== '' : false;\n } else if (formObject[name].validation.isBool && formObject[name].validation.required) {\n isNotEmpty = value;\n } else if (formObject[name].validation.isDateTime && formObject[name].validation.required) {\n isNotEmpty = value;\n } else {\n isNotEmpty = true;\n }\n\n isValidFormat = checkValidity(value, formObject[name].validation);\n\n const updatedFormElement = updateState(formObject[name], {\n value: value,\n valid: isNotEmpty,\n isValidFormat: isValidFormat,\n touched: true,\n });\n const updatedOrderForm = updateState(formObject, {\n [name]: updatedFormElement,\n });\n\n let formIsValid = true;\n for (let name in updatedOrderForm) {\n formIsValid =\n updatedOrderForm[name].valid &&\n updatedOrderForm[name].isValidFormat &&\n formIsValid;\n }\n\n return {\n form: updatedOrderForm,\n valid: formIsValid,\n };\n};\n\nexport default changeInput;\n","export const generateAlert = function generateAlert(type, message, stickyAlert) {\n const alerts = this.state.alerts;\n\n this.setState({\n alerts: [\n ...alerts,\n {\n id: new Date().getTime(),\n type: type,\n message: message,\n },\n ],\n stickyAlert: stickyAlert ? stickyAlert : false,\n });\n};\n\nexport const dismisAlert = function dismisAlert(alert) {\n const alerts = this.state.alerts;\n const idx = alerts.indexOf(alert);\n if (idx >= 0) {\n this.setState({ alerts: [...alerts.slice(0, idx), ...alerts.slice(idx + 1)] });\n }\n};\n","export const contentTranslator = function contentTranslator(contentTranslations, page, name, contentText) {\n const contentTranslation = contentTranslations.find(it => it.page == page && it.name == name);\n return contentTranslation ? (contentTranslation.contentTextTranslation ? contentTranslation.contentTextTranslation : contentTranslation.contentText) : contentText\n}","const getTimeIn = () => {\n const timeNow = new Date().getTime();\n return parseFloat((timeNow + 1));\n};\n\nexport default getTimeIn;\n","import AuthAPI from \"./../../common/api/service/AuthService\";\nimport getTimeIn from \"./../../utils/getTimeIn\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const authRegisterEmailCheckingStart = () => {\n return {\n type: actionTypes.AUTH_REGISTER_EMAIL_CHECKING_START,\n };\n};\n\nexport const authRegisterEmailCheckingSuccess = (emailCheckingExist) => {\n return {\n type: actionTypes.AUTH_REGISTER_EMAIL_CHECKING_SUCCESS,\n emailCheckingExist,\n };\n};\n\nexport const authRegisterEmailCheckingFail = (error) => {\n return {\n type: actionTypes.AUTH_REGISTER_EMAIL_CHECKING_FAIL,\n error: error,\n };\n};\n\nexport const authRegisterEmailChecking = (email) => {\n return (dispatch) => {\n dispatch(authRegisterEmailCheckingStart());\n\n return AuthAPI.registerEmailChecking(email)\n .then((res) => {\n dispatch(authRegisterEmailCheckingSuccess(res.emailCheckingExist));\n })\n .catch((err) => {\n dispatch(authRegisterEmailCheckingFail(err));\n });\n };\n};\n\nexport const authRegisterStart = () => {\n return {\n type: actionTypes.AUTH_REGISTER_START,\n };\n};\n\nexport const authRegisterSuccess = (token) => {\n return {\n type: actionTypes.AUTH_REGISTER_SUCCESS,\n token,\n };\n};\n\nexport const authRegisterFail = (error) => {\n return {\n type: actionTypes.AUTH_REGISTER_FAIL,\n error: error,\n };\n};\n\nexport const authRegister = (person) => {\n return (dispatch) => {\n dispatch(authRegisterStart());\n\n return AuthAPI.register(person)\n .then((res) => {\n if (res.token) {\n dispatch(authRegisterSuccess(res.token));\n }\n })\n .catch((err) => {\n dispatch(authRegisterFail(err));\n });\n };\n};\n\nexport const signInStart = () => {\n return {\n type: actionTypes.SIGN_IN_START,\n };\n};\n\nexport const signInSuccess = (\n token,\n email,\n assessmentId,\n sfiaVersion,\n jobProfileReportFormat,\n selfAssessedProfileReportFormat,\n hasPeoples,\n isEndorser,\n authMode,\n personId,\n ownJobs,\n manageEndorsements,\n manageCertifications,\n loginWithMembee,\n loginWithTeams,\n receiveLicenseNotification,\n lastActiveUserNotification,\n allowSkipSurvey,\n manageSelfAssessed,\n manageSelfProfiles,\n hasRelationships\n) => {\n return {\n type: actionTypes.SIGN_IN_SUCCESS,\n token,\n email,\n assessmentId,\n sfiaVersion,\n jobProfileReportFormat,\n selfAssessedProfileReportFormat,\n hasPeoples,\n isEndorser,\n authMode,\n personId,\n ownJobs,\n manageEndorsements,\n manageCertifications,\n loginWithMembee,\n loginWithTeams,\n receiveLicenseNotification,\n lastActiveUserNotification,\n allowSkipSurvey,\n manageSelfAssessed,\n manageSelfProfiles,\n hasRelationships,\n };\n};\n\nexport const signInSuccessWithWait = (\n token,\n email,\n assessmentId,\n sfiaVersion,\n jobProfileReportFormat,\n selfAssessedProfileReportFormat,\n hasPeoples,\n isEndorser,\n authMode,\n personId,\n ownJobs,\n manageEndorsements,\n manageCertifications,\n loginWithMembee,\n loginWithTeams,\n receiveLicenseNotification,\n lastActiveUserNotification,\n managedPeople,\n allowSkipSurvey,\n manageSelfAssessed,\n manageSelfProfiles,\n hasRelationships\n) => {\n return {\n type: actionTypes.SIGN_IN_SUCCESS_WITH_WAIT,\n token,\n email,\n assessmentId,\n sfiaVersion,\n jobProfileReportFormat,\n selfAssessedProfileReportFormat,\n hasPeoples,\n isEndorser,\n authMode,\n personId,\n ownJobs,\n manageEndorsements,\n manageCertifications,\n loginWithMembee,\n loginWithTeams,\n receiveLicenseNotification,\n lastActiveUserNotification,\n managedPeople,\n allowSkipSurvey,\n manageSelfAssessed,\n manageSelfProfiles,\n hasRelationships,\n };\n};\n\nexport const signInFail = (error) => {\n return {\n type: actionTypes.SIGN_IN_FAIL,\n error: error,\n };\n};\n\nexport const signIn = (email, password) => {\n return (dispatch) => {\n dispatch(signInStart());\n\n return AuthAPI.signin(email, password)\n .then((res) => {\n if (res.token) {\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccessWithWait(\n res,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n null,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(signInFail(res));\n }\n })\n .catch((err) => {\n dispatch(signInFail(err));\n });\n };\n};\n\nexport const signInUseToken = (token) => {\n return (dispatch) => {\n dispatch(signInStart());\n\n return AuthAPI.signinUseToken(token)\n .then((res) => {\n if (res.token) {\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccessWithWait(\n res,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n null,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(signInFail(res));\n }\n })\n .catch((err) => {\n dispatch(signInFail(err));\n });\n };\n};\n\nexport const signInUseOneTimeLoginToken = (token) => {\n return (dispatch) => {\n dispatch(signInStart());\n\n return AuthAPI.signinUseOneTimeLoginToken(token)\n .then((res) => {\n if (res.token) {\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccessWithWait(\n res,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n null,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(signInFail(res));\n }\n })\n .catch((err) => {\n dispatch(signInFail(err));\n });\n };\n};\n\nexport const authLogoutStart = () => {\n return {\n type: actionTypes.AUTH_LOGOUT_START,\n };\n};\n\nexport const authLogoutSuccess = () => {\n return {\n type: actionTypes.AUTH_LOGOUT_SUCCESS,\n };\n};\n\nexport const authLogoutIntendedSuccess = () => {\n return {\n type: actionTypes.AUTH_LOGOUT_INTENDED_SUCCESS,\n };\n};\n\nexport const authLogoutFail = (error) => {\n return {\n type: actionTypes.AUTH_LOGOUT_FAIL,\n error: error,\n };\n};\n\nexport const authLogout = () => {\n return (dispatch) => {\n dispatch(authLogoutStart());\n return AuthAPI.logOut()\n .then((res) => {\n dispatch(authLogoutSuccess());\n })\n .catch((err) => {\n dispatch(authLogoutFail(err));\n });\n };\n};\n\nexport const authLogoutIntended = () => {\n localStorage.setItem(\"redirectUrl\", \"\");\n localStorage.setItem(\"isLogout\", \"TRUE\");\n\n return (dispatch) => {\n dispatch(authLogoutStart());\n return AuthAPI.logOutIntended()\n .then((res) => {\n dispatch(authLogoutIntendedSuccess());\n })\n .catch((err) => {\n dispatch(authLogoutFail(err));\n });\n };\n};\n\nexport const checkLoginCookiesState = () => {\n return async (dispatch) => {\n dispatch(signInStart());\n try {\n const res = await AuthAPI.refreshToken();\n if (res.token) {\n // Fullfill new token payload\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccess(\n res.token,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(authLogout());\n }\n } catch (err) {\n dispatch(authLogout());\n }\n };\n};\n\nexport const authCheckState = () => {\n return async (dispatch) => {\n dispatch(signInStart());\n const expiresIn = localStorage.getItem(\"expiresIn\");\n if (expiresIn < getTimeIn()) {\n try {\n const res = await AuthAPI.refreshToken();\n if (res.token) {\n // Fullfill new token payload\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccess(\n res.token,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(authLogout());\n }\n } catch (err) {\n dispatch(authLogout());\n }\n } else {\n dispatch(authCheckStateSuccess());\n }\n };\n};\n\nexport const forceRefreshToken = () => {\n return async (dispatch) => {\n dispatch(signInStart());\n const res = await AuthAPI.refreshToken();\n if (res.token) {\n // Fullfill new token payload\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccess(\n res.token,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(authLogout());\n }\n };\n};\n\nexport const authCheckStateSuccess = () => {\n return {\n type: actionTypes.AUTH_CHECK_SUCCESS,\n };\n};\n\nexport const forgotPasswordStart = () => {\n return {\n type: actionTypes.FORGOT_PASSWORD_START,\n };\n};\n\nexport const forgotPasswordSuccess = () => {\n return {\n type: actionTypes.FORGOT_PASSWORD_SUCCESS,\n };\n};\n\nexport const forgotPasswordFail = (error) => {\n return {\n type: actionTypes.FORGOT_PASSWORD_FAIL,\n error: error,\n };\n};\n\nexport const forgotPassword = (email) => {\n return (dispatch) => {\n dispatch(forgotPasswordStart());\n\n return AuthAPI.forgotPassword(email)\n .then((res) => {\n dispatch(forgotPasswordSuccess());\n })\n .catch((err) => {\n dispatch(forgotPasswordFail(err));\n });\n };\n};\n\nexport const createAccountStart = () => {\n return {\n type: actionTypes.CREATE_ACCOUNT_START,\n };\n};\n\nexport const createAccountSuccess = () => {\n return {\n type: actionTypes.CREATE_ACCOUNT_SUCCESS,\n };\n};\n\nexport const createAccountFail = (error) => {\n return {\n type: actionTypes.CREATE_ACCOUNT_FAIL,\n error: error,\n };\n};\n\nexport const createAccount = (surveyRating) => {\n return (dispatch) => {\n dispatch(createAccountStart());\n\n return AuthAPI.createAccount(surveyRating)\n .then((res) => {\n dispatch(createAccountSuccess());\n })\n .catch((err) => {\n dispatch(createAccountFail(err));\n });\n };\n};\n\nexport const submitRating = (surveyRating) => {\n return (dispatch) => {\n dispatch(createAccountStart());\n\n return AuthAPI.submitRating(surveyRating)\n .then((res) => {\n dispatch(createAccountSuccess());\n })\n .catch((err) => {\n dispatch(createAccountFail(err));\n });\n };\n};\n\nexport const submitRatingTeams = (surveyRating) => {\n return (dispatch) => {\n dispatch(createAccountStart());\n\n return AuthAPI.submitRatingTeams(surveyRating)\n .then((res) => {\n dispatch(createAccountSuccess());\n })\n .catch((err) => {\n dispatch(createAccountFail(err));\n });\n };\n};\n\nexport const getResetPasswordStart = () => {\n return {\n type: actionTypes.GET_RESET_PASSWORD_START,\n };\n};\n\nexport const getResetPasswordSuccess = (resetPassword) => {\n return {\n type: actionTypes.GET_RESET_PASSWORD_SUCCESS,\n resetPassword,\n };\n};\n\nexport const getResetPasswordFail = (error) => {\n return {\n type: actionTypes.GET_RESET_PASSWORD_FAIL,\n error: error,\n };\n};\n\nexport const getResetPassword = (token) => {\n return (dispatch) => {\n dispatch(getResetPasswordStart());\n\n return AuthAPI.getResetPassword(token)\n .then((res) => {\n dispatch(getResetPasswordSuccess(res));\n })\n .catch((err) => {\n dispatch(getResetPasswordFail(err));\n });\n };\n};\n\nexport const processResetPasswordStart = () => {\n return {\n type: actionTypes.PROCESS_RESET_PASSWORD_START,\n };\n};\n\nexport const processResetPasswordSuccess = () => {\n return {\n type: actionTypes.PROCESS_RESET_PASSWORD_SUCCESS,\n };\n};\n\nexport const processResetPasswordFail = (error) => {\n return {\n type: actionTypes.PROCESS_RESET_PASSWORD_FAIL,\n error: error,\n };\n};\n\nexport const processResetPassword = (body) => {\n return (dispatch) => {\n dispatch(processResetPasswordStart());\n\n return AuthAPI.processResetPassword(body)\n .then((res) => {\n dispatch(processResetPasswordSuccess(res));\n })\n .catch((err) => {\n dispatch(processResetPasswordFail(err));\n });\n };\n};\n\nexport const myPeopleSetManagedRelationship = (managedPeople) => {\n return (dispatch) => {\n dispatch(signInStart());\n\n return AuthAPI.signinwithdownline(managedPeople.personB.email)\n .then((res) => {\n if (res.token) {\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccessWithWait(\n res,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n managedPeople,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(signInFail(res));\n }\n })\n .catch((err) => {\n dispatch(signInFail(err));\n });\n };\n};\n\nexport const signinwithdownline = (downline) => {\n return (dispatch) => {\n dispatch(signInStart());\n\n return AuthAPI.signinwithdownline(downline)\n .then((res) => {\n if (res.token) {\n localStorage.setItem(\"expiresIn\", res.expiresIn * 1000);\n localStorage.setItem(\"email\", res.email);\n localStorage.setItem(\"personId\", res.personId);\n localStorage.setItem(\"firstName\", res.firstName);\n localStorage.setItem(\"lastName\", res.lastName);\n localStorage.setItem(\"authMode\", res.authMode);\n\n dispatch(\n signInSuccessWithWait(\n res,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n managedPeople,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n } else {\n dispatch(signInFail(res));\n }\n })\n .catch((err) => {\n dispatch(signInFail(err));\n });\n };\n};\n\nexport const myPeopleClearManagedRelationship = () => {\n return {\n type: actionTypes.MYPEOPLES_CLEAR_MANAGED_RELATIONSHIP,\n };\n};\n\nexport const setRedirectUrl = (redirectUrl, isLogout) => {\n localStorage.setItem(\"redirectUrl\", redirectUrl);\n localStorage.setItem(\"isLogout\", isLogout ? \"TRUE\" : \"FALSE\");\n\n return {\n type: actionTypes.AUTH_SET_REDIRECT_URL,\n redirectUrl,\n isLogout,\n };\n};\n","export const updateState = (oldObject, updatedProperties) => {\n return {\n ...oldObject,\n ...updatedProperties,\n };\n };\n ","import { authLogoutFail, authLogoutSuccess, signInSuccess } from \"../../store/actions/authAction\";\nimport store from \"../../store/store\";\n// import { sumologicLog } from \"./../logging/LogConfiguration\";\nimport AuthAPI from \"./service/AuthService\";\nimport axiosInstance from \"axios\";\n\nconst isHandlerEnabled = (config = {}) => {\n return Object.prototype.hasOwnProperty.call(config, \"handlerEnabled\") && !config.handlerEnabled ? false : true;\n};\n\nconst CancelToken = axiosInstance.CancelToken;\nlet cancel;\n\nconst numbers = /[0-9]/g;\n\n/** Error interceptor handler */\nconst errorHandler = (error, instance) => {\n if (isHandlerEnabled(error.config)) {\n // Eliminate property 'data' and 'headers' for privacy concern\n // count execution time from request meta\n const endTimeResponse = new Date().getTime() - error.config.meta.requestStartedAt;\n const stackDetail = error.response ? error.stack : error.request ? error.request._response : error.stack;\n const statusCode = error.response ? error.response.status : error.request ? error.request.status : 500;\n const newEndpointText = getEndpoints(error.config.url);\n\n var sumoLogicUrl = process.env.REACT_APP_LOG_SUMOLOGIC_URL;\n\n if (sumoLogicUrl && sumoLogicUrl != \"\") {\n // sumologicLog.error(\n // \"Failed to executed action {@Details} in {ElapsedMilliseconds}ms\",\n // {\n // Message: error.message,\n // Stack: stackDetail,\n // StatusCode: statusCode,\n // RequestPath: error.config.url,\n // BaseUrl: error.config.baseURL,\n // Endpoints: newEndpointText,\n // Method: error.config.method.toUpperCase(),\n // },\n // endTimeResponse\n // );\n }\n\n const originalRequest = error.config;\n if (error.response) {\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n const token = store.getState().auth.token;\n if (!token) {\n localStorage.clear();\n\n cancel(); // cancel request\n return AuthAPI.logOut()\n .then(() => {\n return store.dispatch(authLogoutSuccess());\n })\n .catch((err) => {\n return store.dispatch(authLogoutFail(err));\n });\n } else {\n return AuthAPI.refreshToken()\n .then((res) => {\n if (res.token) {\n // Fullfill new token payload\n localStorage.setItem(\"expiresIn\", res.expiresIn);\n localStorage.setItem(\"email\", res.email);\n\n console.log(\"res.personId\", res.personId);\n\n //store token\n store.dispatch(\n signInSuccess(\n res.token,\n res.email,\n res.assessmentId,\n res.sfiaVersion,\n res.jobProfileReportFormat,\n res.selfAssessedProfileReportFormat,\n res.hasPeoples,\n res.isEndorser,\n res.authMode,\n res.personId,\n res.ownJobs,\n res.manageEndorsements,\n res.manageCertifications,\n res.loginWithMembee,\n res.loginWithTeams,\n res.receiveLicenseNotification,\n res.lastActiveUserNotification,\n res.allowSkipSurvey,\n res.manageSelfAssessed,\n res.manageSelfProfiles,\n res.hasRelationships\n )\n );\n\n // Change Authorization header\n const token = res.token;\n instance.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n\n //return previous request\n return instance(originalRequest);\n } else {\n localStorage.clear();\n return AuthAPI.logOut()\n .then(() => {\n return store.dispatch(authLogoutSuccess());\n })\n .catch((err) => {\n return store.dispatch(authLogoutFail(err));\n });\n }\n })\n .catch((err) => {\n return Promise.reject({ ...err });\n });\n }\n }\n } else {\n return Promise.reject({ ...error });\n }\n }\n return Promise.reject({ ...error });\n};\n\n/** Success interceptor handler */\nconst successHandler = (response) => {\n if (isHandlerEnabled(response.config)) {\n // count execution time from request meta\n const endTimeResponse = new Date().getTime() - response.config.meta.requestStartedAt;\n const newEndpointText = getEndpoints(response.config.url);\n\n var sumoLogicUrl = process.env.REACT_APP_LOG_SUMOLOGIC_URL;\n\n if (sumoLogicUrl && sumoLogicUrl != \"\") {\n // sumologicLog.info(\n // \"Executed action {@Details} in {ElapsedMilliseconds}ms\",\n // {\n // StatusCode: response.status,\n // RequestPath: response.config.url,\n // BaseUrl: response.config.baseURL,\n // Endpoints: newEndpointText,\n // Method: response.config.method.toUpperCase(),\n // },\n // endTimeResponse\n // );\n }\n }\n return response;\n};\n\n/** Request Handler to all axios connection\n * Could put header authorization\n */\nconst requestHandler = (request) => {\n // start initial execution time on meta\n request.meta = request.meta || {};\n request.meta.requestStartedAt = new Date().getTime();\n // set cancel token request\n request.cancelToken = new CancelToken(function executor(c) {\n cancel = c;\n });\n const token = store.getState().auth.token;\n\n if (token) {\n request.headers[\"Authorization\"] = `Bearer ${token}`;\n request.headers[\"Content-Type\"] = \"application/json\";\n // request.headers[\"Access-Control-Allow-Headers\"] =\n // \"Origin, X-Requested-With, Content-Type, Accept\";\n return request;\n } else {\n request.headers[\"Content-Type\"] = \"application/json\";\n return request;\n }\n};\n\nconst instanceInterceptor = {\n responseInterceptor: (instance) => {\n /** Enabling response Interceptors handler */\n instance.interceptors.response.use(\n (response) => successHandler(response),\n (error) => errorHandler(error, instance)\n );\n },\n requestInterceptor: (instance) => {\n instance.interceptors.request.use((request) => requestHandler(request));\n },\n};\n\nconst getEndpoints = (url) => {\n const endpointText = url.split(\"?\")[0];\n const splitEndpoint = endpointText.split(\"/\");\n const newEndpointText = splitEndpoint\n .filter((txt) => txt !== \",\")\n .map((param) => {\n if (param.match(numbers)) {\n return \"{id}\";\n } else {\n return param;\n }\n })\n .join(\"/\");\n return newEndpointText;\n};\n\nexport default instanceInterceptor;\n","import axios from \"axios\";\nimport instanceInterceptor from \"./../interceptorService\";\n\nconst apiHostname = process.env.REACT_APP_API_ENDPOINT;\n\nconst apiAxiosInstance = axios.create({\n baseURL: process.env.NODE_ENV === 'development' ? `${apiHostname}` : `/api`,\n});\n\nclass instance {\n static apiInstance() {\n instanceInterceptor.responseInterceptor(apiAxiosInstance);\n instanceInterceptor.requestInterceptor(apiAxiosInstance);\n return apiAxiosInstance;\n }\n}\n\nexport default instance;","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass JobAPI {\n static getJobs(isSample) {\n return axios\n .get(`/jobs${isSample ? `?isSample=${isSample}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getRoleBasedSurveyJobs() {\n return axios\n .get(`/jobs/rolebasedsurveyjobs`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobsWithAction() {\n return axios\n .get(`/jobs/withaction`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getOwnedJobs() {\n return axios\n .get(`/jobs/ownedjobs`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJob(id) {\n return axios\n .get(`/jobs/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static printJobProfile(id) {\n return axios\n .get(`/jobs/${id}/printprofiles`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static printJobProfiles(jobIds) {\n return axios\n .post(\n `/jobs/printjobreports`,\n { jobIds },\n {\n responseType: \"blob\",\n }\n )\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static createJob(job) {\n return axios\n .post(`/jobs`, job)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJob(id, job) {\n return axios\n .put(`/jobs/${id}`, job)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobNote(id, note) {\n return axios\n .put(`/jobs/${id}/updatenote`, { note })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteJob(id) {\n return axios\n .delete(`/jobs/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static copyJob(request) {\n return axios\n .post(`/jobs/copyjob`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static copyJobs(request) {\n return axios\n .post(`/jobs/copyjobs`, { copiedJobs: [...request] })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobProfileVersions(id) {\n return axios\n .get(`/jobs/jobprofileversions?jobId=${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMyJobMatchTypes() {\n return axios\n .get(`/jobs/myjobmatchtypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMyJobMatches(includeJobVacancyInfo) {\n return axios\n .get(`/jobs/myjobmatches${includeJobVacancyInfo == true ? \"?includeJobVacancyInfo=true\" : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleJobMatches(email, includeJobVacancyInfo) {\n return axios\n .get(`/jobs/managedPeopleJobmatches?email=${email}${includeJobVacancyInfo == true ? \"&includeJobVacancyInfo=true\" : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateMyJobMatches(data) {\n return axios\n .post(`/jobs/myjobmatches/update`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleJobMatches(data) {\n return axios\n .post(`/jobs/managedPeopleJobmatches/update`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobLorProfiles(jobId, sfiaVersion, version) {\n return axios\n .get(`/jobs/joblorprofiles?jobId=${jobId}${sfiaVersion ? `&sfiaVersion=${sfiaVersion}` : \"\"}${version ? `&version=${version}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleJobLorProfiles(email) {\n return axios\n .get(`/jobs/managedPeopleJoblorprofiles?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobSkillProfiles(jobId, sfiaVersion, version) {\n return axios\n .get(`/jobs/jobskillprofiles?jobId=${jobId}${sfiaVersion ? `&sfiaVersion=${sfiaVersion}` : \"\"}${version ? `&version=${version}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleJobSkillProfiles(email) {\n return axios\n .get(`/jobs/managedPeopleJobskillprofiles?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobSkillAttributes(jobId) {\n return axios\n .get(`/jobs/jobskillattributes?jobId=${jobId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobLorAttributes(jobId) {\n return axios\n .get(`/jobs/joblorattributes?jobId=${jobId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobProfiles(jobId, updatedProfiles) {\n const request = {\n lorProfileRequests: updatedProfiles.filter((it) => it.source == \"lorProfiles\"),\n skillProfileRequests: updatedProfiles.filter((it) => it.source == \"skillProfiles\"),\n };\n\n return axios\n .put(`/jobs/${jobId}/jobprofiles`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobSkillAttributes(jobId, attributes) {\n const request = {\n attributes,\n };\n\n return axios\n .put(`/jobs/${jobId}/updateattributes`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobLorAttributes(jobId, attributes) {\n const request = {\n attributes,\n };\n\n return axios\n .put(`/jobs/${jobId}/updatelorattributes`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportJobsDataExcel() {\n return axios\n .get(`/jobs/exportjobs`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportJobsDataExcelTemplate() {\n return axios\n .get(`/jobs/exportjobstemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static getJobImportQueue() {\n return axios\n .get(`/jobs/jobimportqueue`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static downloadJobImportExcel(id) {\n return axios\n .get(`/jobs/jobimport/${id}/download`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importJobsDataExcel(sessionId, operation, jobsDataFiles) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n jobsDataFiles.forEach((file) => {\n body.append(\"jobsData\", file);\n });\n\n body.append(\"sessionId\", sessionId);\n body.append(\"operation\", operation);\n\n return axios\n .post(`/jobs/requestimportjobs`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static processJobImportQueue(jobImportIds) {\n return axios\n .post(`/jobs/processimportjobs`, { jobImportIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobMatchPersons() {\n return axios\n .get(`/jobs/jobmatchpersons`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static assignjobmatchperson(personId, jobId, jobMatchType) {\n return axios\n .post(`/jobs/assignjobmatchperson`, {\n personId,\n jobId,\n jobMatchType,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportJobMatchesDataExcel() {\n return axios\n .get(`/jobs/exportjobMatches`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportJobMatchesDataExcelTemplate() {\n return axios\n .get(`/jobs/exportjobMatchestemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importJobmatchessDataExcel(operation, jobMatchesData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n jobMatchesData.forEach((file) => {\n body.append(\"jobMatchesData\", file);\n });\n\n body.append(\"operation\", operation);\n\n return axios\n .post(`/jobs/importjobmatches`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getJobFamilies() {\n return axios\n .get(`/jobs/jobFamilies`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createJobFamily(jobFamily) {\n return axios\n .post(`/jobs/jobFamilies`, jobFamily)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobFamily(id, jobFamily) {\n return axios\n .put(`/jobs/jobFamilies/${id}`, jobFamily)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteJobFamily(id) {\n return axios\n .delete(`/jobs/jobFamilies/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobFamilyAddEntries(id, addedJobIds) {\n return axios\n .post(`/jobs/jobFamilies/${id}/addEntries`, { addedJobIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateJobFamilyDeleteEntries(id, deletedJobIds) {\n return axios\n .post(`/jobs/jobFamilies/${id}/deleteEntries`, { deletedJobIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static recalculateJobMatches() {\n return axios\n .post(`/jobs/recalculateJobMatches`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static enquireJobVacancy(jobId, comment, sendSelfAssessedProfile, sendEndorsedProfile) {\n return axios\n .post(`/jobs/enquirejobvacancy`, { jobId, comment, sendSelfAssessedProfile, sendEndorsedProfile })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default JobAPI;\n","import JobAPI from \"./../../common/api/service/JobService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getJobsStart = () => {\n return {\n type: actionTypes.GET_JOBS_START,\n };\n};\n\nexport const getJobsSuccess = (jobs) => {\n return {\n type: actionTypes.GET_JOBS_SUCCESS,\n jobs,\n };\n};\n\nexport const getJobsFail = (error) => {\n return {\n type: actionTypes.GET_JOBS_FAIL,\n error: error,\n };\n};\n\nexport const getJobs = () => {\n return (dispatch) => {\n dispatch(getJobsStart());\n\n return JobAPI.getJobs()\n .then((res) => {\n if (res) {\n dispatch(getJobsSuccess(res));\n } else {\n dispatch(getJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobsFail(err));\n });\n };\n};\n\nexport const getRoleBasedSurveyJobs = () => {\n return (dispatch) => {\n dispatch(getJobsStart());\n\n return JobAPI.getRoleBasedSurveyJobs()\n .then((res) => {\n if (res) {\n dispatch(getJobsSuccess(res));\n } else {\n dispatch(getJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobsFail(err));\n });\n };\n};\n\nexport const getJobsWithAction = () => {\n return (dispatch) => {\n dispatch(getJobsStart());\n\n return JobAPI.getJobsWithAction()\n .then((res) => {\n if (res) {\n dispatch(getJobsSuccess(res));\n } else {\n dispatch(getJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobsFail(err));\n });\n };\n};\n\nexport const getSampleJobsStart = () => {\n return {\n type: actionTypes.GET_SAMPLE_JOBS_START,\n };\n};\n\nexport const getSampleJobsSuccess = (sampleJobs) => {\n return {\n type: actionTypes.GET_SAMPLE_JOBS_SUCCESS,\n sampleJobs,\n };\n};\n\nexport const getSampleJobsFail = (error) => {\n return {\n type: actionTypes.GET_SAMPLE_JOBS_FAIL,\n error: error,\n };\n};\n\nexport const getSampleJobs = () => {\n return (dispatch) => {\n dispatch(getSampleJobsStart());\n\n return JobAPI.getJobs(true)\n .then((res) => {\n if (res) {\n dispatch(getSampleJobsSuccess(res));\n } else {\n dispatch(getSampleJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getSampleJobsFail(err));\n });\n };\n};\n\nexport const getOwnedJobs = () => {\n return (dispatch) => {\n dispatch(getJobsStart());\n\n return JobAPI.getOwnedJobs()\n .then((res) => {\n if (res) {\n dispatch(getJobsSuccess(res));\n } else {\n dispatch(getJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobsFail(err));\n });\n };\n};\n\nexport const getJobStart = () => {\n return {\n type: actionTypes.GET_JOB_START,\n };\n};\n\nexport const getJobSuccess = (job) => {\n return {\n type: actionTypes.GET_JOB_SUCCESS,\n job,\n };\n};\n\nexport const getJobFail = (error) => {\n return {\n type: actionTypes.GET_JOB_FAIL,\n error: error,\n };\n};\n\nexport const getJob = (id) => {\n return (dispatch) => {\n dispatch(getJobStart());\n\n return JobAPI.getJob(id)\n .then((res) => {\n if (res) {\n dispatch(getJobSuccess(res));\n } else {\n dispatch(getJobFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobFail(err));\n });\n };\n};\n\nexport const printJobReportStart = () => {\n return {\n type: actionTypes.PRINT_JOB_REPORT_START,\n };\n};\n\nexport const printJobReportSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_JOB_REPORT_SUCCESS,\n printData,\n };\n};\n\nexport const printJobReportFail = (error) => {\n return {\n type: actionTypes.PRINT_JOB_REPORT_FAIL,\n error: error,\n };\n};\n\nexport const printJobReport = (id) => {\n return (dispatch) => {\n dispatch(printJobReportStart());\n\n return JobAPI.printJobProfile(id)\n .then((res) => {\n if (res) {\n dispatch(printJobReportSuccess(res));\n } else {\n dispatch(printJobReportFail(res));\n }\n })\n .catch((err) => {\n dispatch(printJobReportFail(err));\n });\n };\n};\n\nexport const printJobReportsStart = () => {\n return {\n type: actionTypes.PRINT_JOB_REPORTS_START,\n };\n};\n\nexport const printJobReportsSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_JOB_REPORTS_SUCCESS,\n printData,\n };\n};\n\nexport const printJobReportsFail = (error) => {\n return {\n type: actionTypes.PRINT_JOB_REPORTS_FAIL,\n error: error,\n };\n};\n\nexport const printJobReports = (jobIds) => {\n return (dispatch) => {\n dispatch(printJobReportsStart());\n\n return JobAPI.printJobProfiles(jobIds)\n .then((res) => {\n if (res) {\n dispatch(printJobReportsSuccess(res));\n } else {\n dispatch(printJobReportsFail(res));\n }\n })\n .catch((err) => {\n dispatch(printJobReportsFail(err));\n });\n };\n};\n\nexport const createJobStart = () => {\n return {\n type: actionTypes.CREATE_JOB_START,\n };\n};\n\nexport const createJobSuccess = (addedJob) => {\n return {\n type: actionTypes.CREATE_JOB_SUCCESS,\n addedJob,\n };\n};\n\nexport const createJobFail = (error) => {\n return {\n type: actionTypes.CREATE_JOB_FAIL,\n error: error,\n };\n};\n\nexport const createJob = (job) => {\n return (dispatch) => {\n dispatch(createJobStart());\n\n return JobAPI.createJob(job)\n .then((res) => {\n if (res) {\n dispatch(createJobSuccess(res));\n } else {\n dispatch(createJobFail(res));\n }\n })\n .catch((err) => {\n dispatch(createJobFail(err));\n });\n };\n};\n\nexport const updateJobStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_START,\n };\n};\n\nexport const updateJobSuccess = (updatedJob) => {\n return {\n type: actionTypes.UPDATE_JOB_SUCCESS,\n updatedJob,\n };\n};\n\nexport const updateJobByNotification = (updatedJob) => {\n return {\n type: actionTypes.UPDATE_JOB_BY_NOTIFICATION,\n updatedJob,\n };\n};\n\nexport const updateJobFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_FAIL,\n error: error,\n };\n};\n\nexport const updateJob = (id, job) => {\n return (dispatch) => {\n dispatch(updateJobStart());\n\n return JobAPI.updateJob(id, job)\n .then((res) => {\n if (res) {\n dispatch(updateJobSuccess(res));\n } else {\n dispatch(updateJobFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateJobFail(err));\n });\n };\n};\n\nexport const updateJobNoteStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_NOTE_START,\n };\n};\n\nexport const updateJobNoteSuccess = (updatedJob) => {\n return {\n type: actionTypes.UPDATE_JOB_NOTE_SUCCESS,\n updatedJob,\n };\n};\n\nexport const updateJobNoteFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_NOTE_FAIL,\n error: error,\n };\n};\n\nexport const updateJobNote = (id, note) => {\n return (dispatch) => {\n dispatch(updateJobNoteStart());\n\n return JobAPI.updateJobNote(id, note)\n .then((res) => {\n if (res) {\n dispatch(updateJobNoteSuccess(res));\n } else {\n dispatch(updateJobNoteFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateJobNoteFail(err));\n });\n };\n};\n\nexport const deleteJobStart = () => {\n return {\n type: actionTypes.DELETE_JOB_START,\n };\n};\n\nexport const deleteJobSuccess = (id) => {\n return {\n type: actionTypes.DELETE_JOB_SUCCESS,\n id,\n };\n};\n\nexport const deleteJobFail = (error) => {\n return {\n type: actionTypes.DELETE_JOB_FAIL,\n error: error,\n };\n};\n\nexport const deleteJob = (id) => {\n return (dispatch) => {\n dispatch(deleteJobStart());\n\n return JobAPI.deleteJob(id)\n .then((res) => {\n dispatch(deleteJobSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteJobFail(err));\n });\n };\n};\n\nexport const copyJobStart = () => {\n return {\n type: actionTypes.COPY_JOB_START,\n };\n};\n\nexport const copyJobSuccess = (addedJob) => {\n return {\n type: actionTypes.COPY_JOB_SUCCESS,\n addedJob,\n };\n};\n\nexport const copyJobFail = (error) => {\n return {\n type: actionTypes.COPY_JOB_FAIL,\n error: error,\n };\n};\n\nexport const copyJob = (request) => {\n return (dispatch) => {\n dispatch(copyJobStart());\n\n return JobAPI.copyJob(request)\n .then((res) => {\n if (res) {\n dispatch(copyJobSuccess(res));\n } else {\n dispatch(copyJobFail(res));\n }\n })\n .catch((err) => {\n dispatch(copyJobFail(err));\n });\n };\n};\n\nexport const copyJobsStart = () => {\n return {\n type: actionTypes.COPY_JOBS_START,\n };\n};\n\nexport const copyJobsSuccess = (addedJobs) => {\n return {\n type: actionTypes.COPY_JOBS_SUCCESS,\n addedJobs,\n };\n};\n\nexport const copyJobsFail = (error) => {\n return {\n type: actionTypes.COPY_JOBS_FAIL,\n error: error,\n };\n};\n\nexport const copyJobs = (request) => {\n return (dispatch) => {\n dispatch(copyJobsStart());\n\n return JobAPI.copyJobs(request)\n .then((res) => {\n if (res) {\n dispatch(copyJobsSuccess(res));\n } else {\n dispatch(copyJobsFail(res));\n }\n })\n .catch((err) => {\n dispatch(copyJobsFail(err));\n });\n };\n};\n\nexport const updateJobSkillAttributesStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_START,\n };\n};\n\nexport const updateJobSkillAttributesSuccess = (jobSkillAttributes) => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_SUCCESS,\n jobSkillAttributes,\n };\n};\n\nexport const updateJobSkillAttributesFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_ATTRIBUTES_FAIL,\n error: error,\n };\n};\n\nexport const updateJobSkillAttributes = (id, attributes) => {\n return (dispatch) => {\n dispatch(updateJobSkillAttributesStart());\n\n return JobAPI.updateJobSkillAttributes(id, attributes)\n .then((res) => {\n if (res) {\n dispatch(updateJobSkillAttributesSuccess(res));\n } else {\n dispatch(updateJobSkillAttributesFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateJobSkillAttributesFail(err));\n });\n };\n};\n\nexport const updateJobLorAttributesStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_START,\n };\n};\n\nexport const updateJobLorAttributesSuccess = (jobLorAttributes) => {\n return {\n type: actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_SUCCESS,\n jobLorAttributes,\n };\n};\n\nexport const updateJobLorAttributesFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_LOR_ATTRIBUTES_FAIL,\n error: error,\n };\n};\n\nexport const updateJobLorAttributes = (id, attributes) => {\n return (dispatch) => {\n dispatch(updateJobLorAttributesStart());\n\n return JobAPI.updateJobLorAttributes(id, attributes)\n .then((res) => {\n if (res) {\n dispatch(updateJobLorAttributesSuccess(res));\n } else {\n dispatch(updateJobLorAttributesFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateJobLorAttributesFail(err));\n });\n };\n};\n\nexport const getMyJobMatchTypesStart = () => {\n return {\n type: actionTypes.GET_MY_JOB_MATCH_TYPES_START,\n };\n};\n\nexport const getMyJobMatchTypesSuccess = (jobMatchTypes) => {\n return {\n type: actionTypes.GET_MY_JOB_MATCH_TYPES_SUCCESS,\n jobMatchTypes,\n };\n};\n\nexport const getMyJobMatchTypesFail = (error) => {\n return {\n type: actionTypes.GET_MY_JOB_MATCH_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getMyJobMatchTypes = () => {\n return (dispatch) => {\n dispatch(getMyJobMatchTypesStart());\n\n return JobAPI.getMyJobMatchTypes()\n .then((res) => {\n if (res) {\n dispatch(getMyJobMatchTypesSuccess(res));\n }\n })\n .catch((err) => {\n dispatch(getMyJobMatchTypesFail(err));\n });\n };\n};\n\nexport const getMyJobMatchesStart = () => {\n return {\n type: actionTypes.GET_MY_JOB_MATCHES_START,\n };\n};\n\nexport const getMyJobMatchesSuccess = (jobMatches) => {\n return {\n type: actionTypes.GET_MY_JOB_MATCHES_SUCCESS,\n jobMatches,\n };\n};\n\nexport const getMyJobMatchesFail = (error) => {\n return {\n type: actionTypes.GET_MY_JOB_MATCHES_FAIL,\n error: error,\n };\n};\n\nexport const getMyJobMatches = (includeJobVacancyInfo) => {\n return (dispatch) => {\n dispatch(getMyJobMatchesStart());\n\n return JobAPI.getMyJobMatches(includeJobVacancyInfo)\n .then((res) => {\n dispatch(getMyJobMatchesSuccess(res));\n })\n .catch((err) => {\n dispatch(getMyJobMatchesFail(err));\n });\n };\n};\n\nexport const getManagedPeopleJobMatchesStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_START,\n };\n};\n\nexport const getManagedPeopleJobMatchesSuccess = (jobMatches) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS,\n jobMatches,\n };\n};\n\nexport const getManagedPeopleJobMatchesFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_MATCHES_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleJobMatches = (email, includeJobVacancyInfo) => {\n return (dispatch) => {\n dispatch(getManagedPeopleJobMatchesStart());\n\n return JobAPI.getManagedPeopleJobMatches(email, includeJobVacancyInfo)\n .then((res) => {\n dispatch(getManagedPeopleJobMatchesSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleJobMatchesFail(err));\n });\n };\n};\n\nexport const updateMyJobMatchesStart = () => {\n return {\n type: actionTypes.UPDATE_MY_JOB_MATCHES_START,\n };\n};\n\nexport const updateMyJobMatchesSuccess = (jobMatches) => {\n return {\n type: actionTypes.UPDATE_MY_JOB_MATCHES_SUCCESS,\n jobMatchesUpdated: true,\n jobMatches,\n };\n};\n\nexport const updateMyJobMatchesFail = (error) => {\n return {\n type: actionTypes.UPDATE_MY_JOB_MATCHES_FAIL,\n jobMatchesUpdated: false,\n error: error,\n };\n};\n\nexport const updateMyJobMatches = (data) => {\n return (dispatch) => {\n dispatch(updateMyJobMatchesStart());\n\n return JobAPI.updateMyJobMatches(data)\n .then((res) => {\n dispatch(updateMyJobMatchesSuccess(res));\n })\n .catch((err) => {\n dispatch(updateMyJobMatchesFail(err));\n });\n };\n};\n\nexport const updateManagedPeopleJobMatchesStart = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_START,\n };\n};\n\nexport const updateManagedPeopleJobMatchesSuccess = (jobMatches) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_SUCCESS,\n jobMatchesUpdated: true,\n jobMatches,\n };\n};\n\nexport const updateManagedPeopleJobMatchesFail = (error) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_JOB_MATCHES_FAIL,\n jobMatchesUpdated: false,\n error: error,\n };\n};\n\nexport const updateManagedPeopleJobMatches = (data) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleJobMatchesStart());\n\n return JobAPI.updateManagedPeopleJobMatches(data)\n .then((res) => {\n dispatch(updateManagedPeopleJobMatchesSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleJobMatchesFail(err));\n });\n };\n};\n\nexport const getJobProfileVersionsStart = () => {\n return {\n type: actionTypes.GET_JOB_PROFILES_VERSIONS_START,\n };\n};\n\nexport const getJobProfileVersionsSuccess = (profileVersions) => {\n return {\n type: actionTypes.GET_JOB_PROFILES_VERSIONS_SUCCESS,\n profileVersions,\n };\n};\n\nexport const getJobProfileVersionsFail = (error) => {\n return {\n type: actionTypes.GET_JOB_PROFILES_VERSIONS_FAIL,\n error: error,\n };\n};\n\nexport const getJobProfileVersions = (jobId) => {\n return (dispatch) => {\n dispatch(getJobProfileVersionsStart());\n\n return JobAPI.getJobProfileVersions(jobId)\n .then((res) => {\n dispatch(getJobProfileVersionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobProfileVersionsFail(err));\n });\n };\n};\n\nexport const getJobLorProfilesStart = () => {\n return {\n type: actionTypes.GET_JOB_LOR_PROFILES_START,\n };\n};\n\nexport const getJobLorProfilesSuccess = (jobLorProfiles) => {\n return {\n type: actionTypes.GET_JOB_LOR_PROFILES_SUCCESS,\n jobLorProfiles,\n };\n};\n\nexport const getJobLorProfilesFail = (error) => {\n return {\n type: actionTypes.GET_JOB_LOR_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const getJobLorProfiles = (jobId, sfiaVersion, version) => {\n return (dispatch) => {\n dispatch(getJobLorProfilesStart());\n\n return JobAPI.getJobLorProfiles(jobId, sfiaVersion, version)\n .then((res) => {\n dispatch(getJobLorProfilesSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobLorProfilesFail(err));\n });\n };\n};\n\nexport const getJobSkillProfilesStart = () => {\n return {\n type: actionTypes.GET_JOB_SKILL_PROFILES_START,\n };\n};\n\nexport const getJobSkillProfilesSuccess = (jobSkillProfiles) => {\n return {\n type: actionTypes.GET_JOB_SKILL_PROFILES_SUCCESS,\n jobSkillProfiles,\n };\n};\n\nexport const getJobSkillProfilesFail = (error) => {\n return {\n type: actionTypes.GET_JOB_SKILL_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const getJobSkillProfiles = (jobId, sfiaVersion, version) => {\n return (dispatch) => {\n dispatch(getJobSkillProfilesStart());\n\n return JobAPI.getJobSkillProfiles(jobId, sfiaVersion, version)\n .then((res) => {\n dispatch(getJobSkillProfilesSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobSkillProfilesFail(err));\n });\n };\n};\n\nexport const updateJobSkillProfilesStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_PROFILES_START,\n };\n};\n\nexport const updateJobSkillProfilesSuccess = (udpatedSkills) => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_PROFILES_SUCCESS,\n udpatedSkills,\n };\n};\n\nexport const updateJobSkillProfilesFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_SKILL_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const clearUpdateJobSkillProfiles = () => {\n return {\n type: actionTypes.CLEAR_UPDATE_JOB_SKILL_PROFILES,\n };\n};\n\nexport const updateJobSkillProfiles = (jobId, updatedSkills) => {\n return (dispatch) => {\n dispatch(updateJobSkillProfilesStart());\n JobAPI.updateJobProfiles(jobId, updatedSkills);\n };\n};\n\nexport const getJobSkillAttributesStart = () => {\n return {\n type: actionTypes.GET_JOB_SKILL_ATTRIBUTES_START,\n };\n};\n\nexport const getJobSkillAttributesSuccess = (jobSkillAttributes) => {\n return {\n type: actionTypes.GET_JOB_SKILL_ATTRIBUTES_SUCCESS,\n jobSkillAttributes,\n };\n};\n\nexport const getJobSkillAttributesFail = (error) => {\n return {\n type: actionTypes.GET_JOB_SKILL_ATTRIBUTES_FAIL,\n error: error,\n };\n};\n\nexport const getJobSkillAttributes = (jobId) => {\n return (dispatch) => {\n dispatch(getJobSkillAttributesStart());\n\n return JobAPI.getJobSkillAttributes(jobId)\n .then((res) => {\n dispatch(getJobSkillAttributesSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobSkillAttributesFail(err));\n });\n };\n};\n\nexport const getJobLorAttributesStart = () => {\n return {\n type: actionTypes.GET_JOB_LOR_ATTRIBUTES_START,\n };\n};\n\nexport const getJobLorAttributesSuccess = (jobLorAttributes) => {\n return {\n type: actionTypes.GET_JOB_LOR_ATTRIBUTES_SUCCESS,\n jobLorAttributes,\n };\n};\n\nexport const getJobLorAttributesFail = (error) => {\n return {\n type: actionTypes.GET_JOB_LOR_ATTRIBUTES_FAIL,\n error: error,\n };\n};\n\nexport const getJobLorAttributes = (jobId) => {\n return (dispatch) => {\n dispatch(getJobLorAttributesStart());\n\n return JobAPI.getJobLorAttributes(jobId)\n .then((res) => {\n dispatch(getJobLorAttributesSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobLorAttributesFail(err));\n });\n };\n};\n\nexport const getManagedPeopleJobLorProfilesStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_START,\n };\n};\n\nexport const getManagedPeopleJobLorProfilesSuccess = (jobLorProfiles) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_SUCCESS,\n jobLorProfiles,\n };\n};\n\nexport const getManagedPeopleJobLorProfilesFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_LOR_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleJobLorProfiles = (email) => {\n return (dispatch) => {\n dispatch(getManagedPeopleJobLorProfilesStart());\n\n return JobAPI.getManagedPeopleJobLorProfiles(email)\n .then((res) => {\n dispatch(getManagedPeopleJobLorProfilesSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleJobLorProfilesFail(err));\n });\n };\n};\n\nexport const getManagedPeopleJobSkillProfilesStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_START,\n };\n};\n\nexport const getManagedPeopleJobSkillProfilesSuccess = (jobSkillProfiles) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_SUCCESS,\n jobSkillProfiles,\n };\n};\n\nexport const getManagedPeopleJobSkillProfilesFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_JOB_SKILL_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleJobSkillProfiles = (email) => {\n return (dispatch) => {\n dispatch(getManagedPeopleJobSkillProfilesStart());\n\n return JobAPI.getManagedPeopleJobSkillProfiles(email)\n .then((res) => {\n dispatch(getManagedPeopleJobSkillProfilesSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleJobSkillProfilesFail(err));\n });\n };\n};\n\nexport const setJobImportSessionId = (jobImportSessionId) => {\n return {\n type: actionTypes.SET_JOBIMPORT_SESSIONID,\n jobImportSessionId,\n };\n};\n\nexport const exportJobsDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_JOBS_DATA_START,\n };\n};\n\nexport const exportJobsDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_JOBS_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportJobsDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_JOBS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportJobsDataExcel = () => {\n return (dispatch) => {\n dispatch(exportJobsDataExcelStart());\n\n return JobAPI.exportJobsDataExcel()\n .then((res) => {\n dispatch(exportJobsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportJobsDataExcelFail(err));\n });\n };\n};\n\nexport const exportJobsDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportJobsDataExcelStart());\n\n return JobAPI.exportJobsDataExcelTemplate()\n .then((res) => {\n dispatch(exportJobsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportJobsDataExcelFail(err));\n });\n };\n};\n\nexport const downloadJobImportExcel = (id) => {\n return (dispatch) => {\n dispatch(exportJobsDataExcelStart());\n\n return JobAPI.downloadJobImportExcel(id)\n .then((res) => {\n dispatch(exportJobsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportJobsDataExcelFail(err));\n });\n };\n};\n\nexport const importJobsDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_JOBS_DATA_START,\n };\n};\n\nexport const importJobsDataExcelSuccess = (addedJobImportQueue) => {\n return {\n type: actionTypes.IMPORT_JOBS_DATA_SUCCESS,\n addedJobImportQueue,\n };\n};\n\nexport const importJobsDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_JOBS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importJobsDataExcel = (sessionId, operation, jobsDataFiles) => {\n return (dispatch) => {\n dispatch(importJobsDataExcelStart());\n\n return JobAPI.importJobsDataExcel(sessionId, operation, jobsDataFiles)\n .then((res) => {\n dispatch(importJobsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importJobsDataExcelFail(err));\n });\n };\n};\n\nexport const processJobImportQueue = (jobImportIds) => {\n return (dispatch) => {\n return JobAPI.processJobImportQueue(jobImportIds)\n .then((res) => {})\n .catch((err) => {});\n };\n};\n\nexport const updateImportJobStatus = (updatedImportJobRequest, updatedJobs) => {\n return {\n type: actionTypes.UPDATE_IMPORT_JOB_STATUS,\n updatedImportJobRequest,\n updatedJobs,\n };\n};\n\nexport const getJobImportQueueStart = () => {\n return {\n type: actionTypes.GET_JOB_IMPORT_QUEUE_START,\n };\n};\n\nexport const getJobImportQueueSuccess = (jobImportQueue) => {\n return {\n type: actionTypes.GET_JOB_IMPORT_QUEUE_SUCCESS,\n jobImportQueue,\n };\n};\n\nexport const getJobImportQueueFail = (error) => {\n return {\n type: actionTypes.GET_JOB_IMPORT_QUEUE_FAIL,\n error: error,\n };\n};\n\nexport const getJobImportQueue = () => {\n return (dispatch) => {\n dispatch(getJobImportQueueStart());\n\n return JobAPI.getJobImportQueue()\n .then((res) => {\n if (res) {\n dispatch(getJobImportQueueSuccess(res));\n } else {\n dispatch(getJobImportQueueFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobImportQueueFail(err));\n });\n };\n};\n\nexport const getJobMatchPersonsStart = () => {\n return {\n type: actionTypes.GET_JOB_MATCH_PERSONS_START,\n };\n};\n\nexport const getJobMatchPersonsSuccess = (jobMatchPersons) => {\n return {\n type: actionTypes.GET_JOB_MATCH_PERSONS_SUCCESS,\n jobMatchPersons,\n };\n};\n\nexport const getJobMatchPersonsFail = (error) => {\n return {\n type: actionTypes.GET_JOB_MATCH_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const getJobMatchPersons = () => {\n return (dispatch) => {\n dispatch(getJobMatchPersonsStart());\n\n return JobAPI.getJobMatchPersons()\n .then((res) => {\n if (res) {\n dispatch(getJobMatchPersonsSuccess(res));\n } else {\n dispatch(getJobMatchPersonsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getJobMatchPersonsFail(err));\n });\n };\n};\n\nexport const assignJobMatchPersonStart = () => {\n return {\n type: actionTypes.ASSIGN_JOB_MATCH_PERSON_START,\n };\n};\n\nexport const assignJobMatchPersonSuccess = (updatedJobMatch) => {\n return {\n type: actionTypes.ASSIGN_JOB_MATCH_PERSON_SUCCESS,\n updatedJobMatch,\n };\n};\n\nexport const assignJobMatchPersonFail = (error) => {\n return {\n type: actionTypes.ASSIGN_JOB_MATCH_PERSON_FAIL,\n error: error,\n };\n};\n\nexport const assignJobMatchPerson = (personId, jobId, jobMatchType) => {\n return (dispatch) => {\n dispatch(assignJobMatchPersonStart());\n\n return JobAPI.assignjobmatchperson(personId, jobId, jobMatchType)\n .then((res) => {\n if (res) {\n dispatch(assignJobMatchPersonSuccess(res));\n } else {\n dispatch(assignJobMatchPersonFail(res));\n }\n })\n .catch((err) => {\n dispatch(assignJobMatchPersonFail(err));\n });\n };\n};\n\nexport const exportJobMatchesDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_JOB_MATCHES_DATA_START,\n };\n};\n\nexport const exportJobMatchesDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_JOB_MATCHES_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportJobMatchesDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_JOB_MATCHES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportJobMatchesDataExcel = () => {\n return (dispatch) => {\n dispatch(exportJobMatchesDataExcelStart());\n\n return JobAPI.exportJobMatchesDataExcel()\n .then((res) => {\n dispatch(exportJobMatchesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportJobMatchesDataExcelFail(err));\n });\n };\n};\n\nexport const exportJobMatchesDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportJobMatchesDataExcelStart());\n\n return JobAPI.exportJobMatchesDataExcelTemplate()\n .then((res) => {\n dispatch(exportJobMatchesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportJobMatchesDataExcelFail(err));\n });\n };\n};\n\nexport const importJobMatchesDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_JOB_MATCHES_DATA_START,\n };\n};\n\nexport const importJobMatchesDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_JOB_MATCHES_DATA_SUCCESS,\n };\n};\n\nexport const importJobMatchesDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_JOB_MATCHES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importJobMatchesDataExcel = (operation, jobMatchesData) => {\n return (dispatch) => {\n dispatch(importJobMatchesDataExcelStart());\n\n return JobAPI.importJobmatchessDataExcel(operation, jobMatchesData)\n .then((res) => {\n dispatch(importJobMatchesDataExcelSuccess(res.message, res.personResponses));\n })\n .catch((err) => {\n dispatch(importJobMatchesDataExcelFail(err));\n });\n };\n};\n\nexport const getJobFamiliesStart = () => {\n return {\n type: actionTypes.GET_JOB_FAMILIES_START,\n };\n};\n\nexport const getJobFamiliesSuccess = (jobFamilies) => {\n return {\n type: actionTypes.GET_JOB_FAMILIES_SUCCESS,\n jobFamilies,\n };\n};\n\nexport const getJobFamiliesFail = (error) => {\n return {\n type: actionTypes.GET_JOB_FAMILIES_FAIL,\n error: error,\n };\n};\n\nexport const getJobFamilies = () => {\n return (dispatch) => {\n dispatch(getJobFamiliesStart());\n\n return JobAPI.getJobFamilies()\n .then((res) => {\n dispatch(getJobFamiliesSuccess(res));\n })\n .catch((err) => {\n dispatch(getJobFamiliesFail(err));\n });\n };\n};\n\nexport const updateJobFamilyStart = () => {\n return {\n type: actionTypes.UPDATE_JOB_FAMILY_START,\n };\n};\n\nexport const updateJobFamilySuccess = (jobFamily, deletedJobIds) => {\n return {\n type: actionTypes.UPDATE_JOB_FAMILY_SUCCESS,\n jobFamily,\n deletedJobIds,\n };\n};\n\nexport const updateJobFamilyFail = (error) => {\n return {\n type: actionTypes.UPDATE_JOB_FAMILY_FAIL,\n error: error,\n };\n};\n\nexport const createJobFamily = (jobFamily) => {\n return (dispatch) => {\n dispatch(updateJobFamilyStart());\n\n return JobAPI.createJobFamily(jobFamily)\n .then((res) => {\n dispatch(updateJobFamilySuccess(res));\n })\n .catch((err) => {\n dispatch(updateJobFamilyFail(err));\n });\n };\n};\n\nexport const updateJobFamily = (id, jobFamily) => {\n return (dispatch) => {\n dispatch(updateJobFamilyStart());\n\n return JobAPI.updateJobFamily(id, jobFamily)\n .then((res) => {\n dispatch(updateJobFamilySuccess(res));\n })\n .catch((err) => {\n dispatch(updateJobFamilyFail(err));\n });\n };\n};\n\nexport const updateJobFamilyAddEntries = (id, addedJobIds) => {\n return (dispatch) => {\n dispatch(updateJobFamilyStart());\n\n return JobAPI.updateJobFamilyAddEntries(id, addedJobIds)\n .then((res) => {\n dispatch(updateJobFamilySuccess(res));\n })\n .catch((err) => {\n dispatch(updateJobFamilyFail(err));\n });\n };\n};\n\nexport const updateJobFamilyDeleteEntries = (id, deletedJobIds) => {\n return (dispatch) => {\n dispatch(updateJobFamilyStart());\n\n return JobAPI.updateJobFamilyDeleteEntries(id, deletedJobIds)\n .then((res) => {\n dispatch(updateJobFamilySuccess(res, deletedJobIds));\n })\n .catch((err) => {\n dispatch(updateJobFamilyFail(err));\n });\n };\n};\n\nexport const deleteJobFamilyStart = () => {\n return {\n type: actionTypes.DELETE_JOB_FAMILY_START,\n };\n};\n\nexport const deleteJobFamilySuccess = (deletedJobFamilyId) => {\n return {\n type: actionTypes.DELETE_JOB_FAMILY_SUCCESS,\n deletedJobFamilyId,\n };\n};\n\nexport const deleteJobFamilyFail = (error) => {\n return {\n type: actionTypes.DELETE_JOB_FAMILY_FAIL,\n error: error,\n };\n};\n\nexport const deleteJobFamily = (id) => {\n return (dispatch) => {\n dispatch(deleteJobFamilyStart());\n\n return JobAPI.deleteJobFamily(id)\n .then((res) => {\n dispatch(deleteJobFamilySuccess(id));\n })\n .catch((err) => {\n dispatch(deleteJobFamilyFail(err));\n });\n };\n};\n\nexport const recalculateJobMatches = () => {\n return (dispatch) => {\n JobAPI.recalculateJobMatches();\n };\n};\n\nexport const enquireJobVacancyStart = () => {\n return {\n type: actionTypes.ENQUIRE_JOB_VACANCY_START,\n };\n};\n\nexport const enquireJobVacancySuccess = (jobId) => {\n return {\n type: actionTypes.ENQUIRE_JOB_VACANCY_SUCCESS,\n jobId,\n };\n};\n\nexport const enquireJobVacancyFail = (error) => {\n return {\n type: actionTypes.ENQUIRE_JOB_VACANCY_FAIL,\n error: error,\n };\n};\n\nexport const enquireJobVacancy = (jobId, comment, sendSelfAssessedProfile, sendEndorsedProfile) => {\n return (dispatch) => {\n dispatch(enquireJobVacancyStart());\n\n return JobAPI.enquireJobVacancy(jobId, comment, sendSelfAssessedProfile, sendEndorsedProfile)\n .then((res) => {\n dispatch(enquireJobVacancySuccess(jobId));\n })\n .catch((err) => {\n dispatch(enquireJobVacancyFail(err));\n });\n };\n};\n","/* CacheBuster component */\n\nimport React from 'react';\nimport packageJson from '../package.json';\n\nglobal.appVersion = packageJson.version;\n\nconst semverGreaterThan = (versionA, versionB) => {\n const versionsA = versionA.split(/\\./g);\n\n const versionsB = versionB.split(/\\./g);\n while (versionsA.length || versionsB.length) {\n const a = Number(versionsA.shift());\n\n const b = Number(versionsB.shift());\n // eslint-disable-next-line no-continue\n if (a === b) continue;\n // eslint-disable-next-line no-restricted-globals\n return a > b || isNaN(b);\n }\n return false;\n}\n\nexport default class CacheBuster extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n isLatestVersion: false,\n refreshCacheAndReload: () => {\n console.log('Clearing cache and hard reloading...')\n if (caches) {\n // Service worker cache should be cleared with caches.delete()\n caches.keys().then(function (names) {\n for (let name of names) caches.delete(name);\n });\n }\n // delete browser cache and hard reload\n window.location.reload(true);\n }\n };\n }\n\n componentDidMount() {\n fetch('/meta.json')\n .then((response) => response.json())\n .then((meta) => {\n const latestVersion = meta.version;\n const currentVersion = global.appVersion;\n\n const shouldForceRefresh = semverGreaterThan(latestVersion, currentVersion);\n if (shouldForceRefresh) {\n console.log(`We have a new version - ${latestVersion}. Should force refresh`);\n this.setState({ loading: false, isLatestVersion: false });\n } else {\n console.log(`You already have the latest version - ${latestVersion}. No cache refresh needed.`);\n this.setState({ loading: false, isLatestVersion: true });\n }\n });\n }\n\n render() {\n const { loading, isLatestVersion, refreshCacheAndReload } = this.state;\n return this.props.children({ loading, isLatestVersion, refreshCacheAndReload });\n }\n}","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass RegisterReasonAPI {\n static getRegisterReasons() {\n return axios\n .get(`/registrationReasons`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default RegisterReasonAPI;","import RegisterReasonAPI from \"./../../common/api/service/RegisterReasonService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getRegisterReasonsStart = () => {\n return {\n type: actionTypes.GET_REGISTER_REASONS_START,\n };\n};\n\nexport const getRegisterReasonsSuccess = (registerReasons) => {\n return {\n type: actionTypes.GET_REGISTER_REASONS_SUCCESS,\n registerReasons,\n };\n};\n\nexport const getRegisterReasonsFail = (error) => {\n return {\n type: actionTypes.GET_REGISTER_REASONS_FAIL,\n error: error,\n };\n};\n\nexport const getRegisterReasons = () => {\n return (dispatch) => {\n dispatch(getRegisterReasonsStart());\n\n return RegisterReasonAPI.getRegisterReasons()\n .then((res) => {\n if (res) {\n dispatch(getRegisterReasonsSuccess(res));\n } else {\n dispatch(getRegisterReasonsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getRegisterReasonsFail(err));\n });\n };\n};\n","import styled from 'styled-components';\n\nexport const CaptchaWrapper = styled.div`\n.rnc {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 255px;\n background-color: #eee;\n border-radius: 6px;\n padding: 10px;\n box-sizing: border-box;\n}\n\n.rnc-row {\n display: flex;\n align-items: stretch;\n margin: 0 0 10px 0;\n}\n\n.rnc-column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin: 0 0 0 10px;\n}\n\n.rnc-canvas {\n box-sizing: border-box;\n background-color: #fff;\n border-radius: 4px;\n}\n\n.rnc-button {\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 16px;\n background: #fff;\n color: inherit;\n border: none;\n padding: 0;\n width: 25px;\n height: 20px;\n box-sizing: border-box;\n border-radius: 4px;\n}\n\n.rnc-button svg {\n width: 1em;\n height: 1em;\n fill: currentColor;\n}\n\n.rnc-input {\n border: none;\n padding: 0 11px;\n height: 32px;\n border-radius: 6px;\n font-size: 14px;\n color: #46474A;\n}`\n","import PropTypes from 'prop-types'\nimport React, { Component } from 'react'\nimport { CaptchaWrapper } from './style.js'\n\nfunction getRandomInt(min, max) {\n min = Math.ceil(min)\n max = Math.floor(max)\n return Math.floor(Math.random() * (max - min)) + min\n}\n\nfunction genetateCaptcha(max) {\n let text = ''\n let i\n for (i = 0; i < max; i += 1) {\n switch (Math.floor(Math.random() * 3)) {\n case 0: text += String.fromCharCode(48 + Math.floor(Math.random() * 10)); break\n case 1: text += String.fromCharCode(65 + Math.floor(Math.random() * 26)); break\n case 2: text += String.fromCharCode(97 + Math.floor(Math.random() * 26)); break\n default: break\n }\n }\n return text\n}\n\nclass Captcha extends Component {\n state = { solution: genetateCaptcha(this.props.length), input: '' };\n\n componentDidMount = () => {\n this.drawCaptcha()\n };\n\n drawCaptcha = () => {\n const { solution } = this.state\n const { width, height } = this.canvas\n const ctx = this.canvas.getContext('2d')\n ctx.clearRect(0, 0, width, height)\n ctx.font = `${getRandomInt(30, 40)}px serif`\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(solution, width / 2, height / 2 + 3)\n ctx.strokeStyle = 'purple'\n\n ctx.beginPath(),\n ctx.moveTo(getRandomInt(5, 20), getRandomInt(5, 20)), ctx.lineTo(width - getRandomInt(5, 20), height - getRandomInt(5, 20)), ctx.stroke(),\n ctx.moveTo(getRandomInt(15, 30), getRandomInt(15, 30)), ctx.lineTo(width - getRandomInt(15, 30), height - getRandomInt(15, 30)), ctx.stroke(),\n ctx.moveTo(getRandomInt(5, 20), height - getRandomInt(5, 20)), ctx.lineTo(width - getRandomInt(5, 20), getRandomInt(5, 20)), ctx.stroke(),\n ctx.moveTo(getRandomInt(15, 30), height - getRandomInt(15, 30)), ctx.lineTo(width - getRandomInt(15, 30), getRandomInt(15, 30)), ctx.stroke(),\n ctx.moveTo(getRandomInt(width / 10, (width / 10) + 10), height - getRandomInt(15, 30)), ctx.lineTo(getRandomInt(width / 2, width / 2 + 10), getRandomInt(5, 20)), ctx.stroke(),\n ctx.closePath()\n };\n\n refresh = () => {\n const { onRefresh } = this.props\n this.setState(\n {\n solution: genetateCaptcha(this.props.length),\n input: ''\n },\n () => this.drawCaptcha()\n )\n onRefresh()\n };\n\n playAudio = () => {\n const { solution } = this.state\n const audio = new SpeechSynthesisUtterance(\n solution\n .toString()\n .split('')\n .join(' ')\n )\n audio.rate = 0.6\n window.speechSynthesis.speak(audio)\n };\n\n handleChange = e => {\n const { onChange } = this.props\n const { solution } = this.state\n this.setState({ input: e.target.value })\n onChange(e.target.value === solution.toString())\n };\n\n render() {\n const { placeholder } = this.props\n const { input } = this.state\n\n return (\n \n
\n
\n (this.canvas = el)}\n width={200}\n height={50}\n className='rnc-canvas'\n data-testid='captcha-canvas'\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n )\n }\n}\n\nCaptcha.defaultProps = {\n placeholder: 'Insert captcha',\n length: 6\n}\n\nCaptcha.propTypes = {\n onChange: PropTypes.func.isRequired,\n onRefresh: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n length: PropTypes.number\n}\n\nexport default Captcha\n","import * as CONSTANTS from \"../common/constant\";\nimport * as authActions from \"../store/actions/authAction\";\nimport * as countryActions from \"../store/actions/countryAction\";\nimport * as jobActions from \"../store/actions/jobAction\";\nimport * as registerReasonActions from \"../store/actions/registerReasonAction\";\nimport { dismisAlert, generateAlert } from \"../utils/alertUtils\";\nimport changeInput from \"../utils/changeInput\";\nimport { contentTranslator } from \"../utils/translatorUtils\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport Captcha from \"./common/captcha/captcha\";\nimport ContentTranslator from \"./translator/ContentTranslator\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Alert, Button, Col, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst titleStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n fontSize: \"38px\",\n align: \"left\",\n};\n\nconst descStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"14px\",\n align: \"left\",\n};\n\nconst noteStyle = {\n fontSize: 10,\n lineHeight: 1.5,\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst reasonAssessmentOptions = CONSTANTS.REASON_ASSESSMENT_OPTIONS;\n\nclass FormRegister extends React.Component {\n static displayName = FormRegister.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n countries: [],\n registerReasons: [],\n error: null,\n alerts: [],\n loading: false,\n reasonAssessmentOptions: reasonAssessmentOptions,\n roleBasedSurveyJobs: [],\n form: {\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n phoneNumber: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n city: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n jobTitle: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n reasonAssessment: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n roleBasedSurvey: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurveyId: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n subscribe: {\n validation: {\n required: true,\n isBool: true,\n },\n value: false,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n captcha: {\n validation: {\n required: true,\n isBool: true,\n },\n value: false,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n emailChecking: false,\n emailCheckingExist: null,\n };\n\n this.alertTimer = null;\n this.initData = this.initData.bind(this);\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n this.props.onCountry.getCountries().then(() => {\n let countries = [\n {\n label: \"Select Country\",\n value: \"\",\n },\n ];\n if (this.props.countries) {\n countries.push(...this.props.countries.map((country) => ({ label: country.name, value: country.name })));\n }\n this.setState({ countries });\n });\n\n this.props.onRegisterReason.getRegisterReasons().then(() => {\n let registerReasons = [\n {\n label: \"Select Reason\",\n value: \"\",\n roleSelectionMandatory: false,\n },\n ];\n if (this.props.registerReasons) {\n registerReasons.push(...this.props.registerReasons.map((registerReason) => ({ label: registerReason.label, value: registerReason.value, roleSelectionMandatory: registerReason.roleSelectionMandatory })));\n }\n this.setState({ registerReasons });\n });\n\n if (this.props.containerConfig && this.props.containerConfig.showRoleBasedSurveyInSelfRegistration) {\n this.props.onJob.getRoleBasedSurveyJobs().then(() => {\n if (!this.props.jobLoading) {\n let roleBasedSurveyJobs = [\n {\n label: \"Select Role\",\n value: \"\",\n },\n ];\n\n roleBasedSurveyJobs.push(...this.props.jobs.map((job) => ({ label: job.name, value: job.id })));\n this.setState({ roleBasedSurveyJobs });\n }\n });\n }\n }\n\n handleChange = (event) => {\n const { containerConfig } = this.props;\n const { registerReasons } = this.state;\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"roleBasedSurveyId\") {\n const job = this.state.roleBasedSurveyJobs.find((it) => it.value == value);\n if (job) {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", job.label);\n } else {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", \"\");\n }\n } else if (name == \"reasonAssessment\") {\n const registerReason = registerReasons && registerReasons.find((it) => it.value == value);\n if (registerReason && registerReason.roleSelectionMandatory && containerConfig && containerConfig.showRoleBasedSurveyInSelfRegistration) {\n updateState.form.roleBasedSurveyId.validation.required = true;\n updateState = changeInput(updateState.form, \"roleBasedSurveyId\", updateState.form.roleBasedSurveyId.value);\n } else {\n updateState.form.roleBasedSurveyId.validation.required = false;\n updateState = changeInput(updateState.form, \"roleBasedSurveyId\", updateState.form.roleBasedSurveyId.value);\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n timer = () =>\n setTimeout(() => {\n this.checkEmailExist();\n }, 1000);\n\n handleEmailKeyUp = (event) => {\n clearTimeout(this.timeoutID);\n this.timeoutID = this.timer();\n };\n\n handleEmailLostFocus = (event) => {\n clearTimeout(this.timeoutID);\n this.checkEmailExist();\n };\n\n checkEmailExist = () => {\n const { form } = this.state;\n\n if (form && form.email && form.email.valid && form.email.isValidFormat) {\n this.setState({ emailChecking: true, emailCheckingExist: null });\n\n this.props.onAuth.authRegisterEmailChecking(this.state.form.email.value).then(() => {\n if (!this.props.loadingCheckEmail) {\n if (this.props.errorCheckEmail) {\n this.setState({ emailCheckingExist: true });\n } else {\n this.setState({ emailCheckingExist: false });\n }\n }\n this.setState({ emailChecking: this.props.loadingCheckEmail });\n });\n }\n };\n\n handleChangeCheckBox = (event) => {\n const { name, checked } = event.target;\n\n const updateState = changeInput(this.state.form, name, checked);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleCaptchaRefresh() {}\n\n handleCaptchaChange = (value) => {\n const updateState = changeInput(this.state.form, \"captcha\", value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n submitForm = (event) => {\n event.preventDefault();\n this.setState({ error: null, loading: true });\n\n const person = {\n firstName: this.state.form.firstName.value,\n lastName: this.state.form.lastName.value,\n email: this.state.form.email.value,\n phoneNumber: this.state.form.phoneNumber.value,\n salutation: this.state.form.firstName.value + \" \" + this.state.form.lastName.value,\n position: this.state.form.jobTitle.value,\n personType: \"Participant\",\n countryCode: this.state.form.country.value,\n country: this.state.form.country.value,\n location: this.state.form.city.value,\n selfAssessmentReason: this.state.form.reasonAssessment.value,\n roleBasedSurveyId: this.state.form.roleBasedSurveyId.value && this.state.form.roleBasedSurveyId.value != \"\" ? this.state.form.roleBasedSurveyId.value : null,\n roleBasedSurvey: this.state.form.roleBasedSurvey.value && this.state.form.roleBasedSurvey.value != \"\" ? this.state.form.roleBasedSurvey.value : null,\n };\n\n this.props.onAuth.authRegister(person).then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n //console.log('this.props.registerToken', this.props.registerToken);\n this.props.history.push(\"/thankyou\");\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n modalLoading() {\n return (\n \n \n Please wait...\n \n \n \n );\n }\n\n render() {\n const { countries, reasonAssessmentOptions, form, registerReasons, roleBasedSurveyJobs } = this.state;\n const containerConfig = this.props.containerConfig;\n\n return (\n \n \n {this.modalLoading()}\n {this.state.error && (\n \n {this.state.error.errData.Message}\n \n )}\n \n \n {containerConfig && containerConfig.selfRegistrationWording ? (\n \n ) : (\n \n

\n Apply for employment\n

\n

\n If you are interested in working for {this.props.defaultCompany && this.props.defaultCompany.name} as a Digital professional, we invite you register for a self-assessment.\n
\n
\n The assessment uses the Skills Framework for the Information Age (SFIA).{\" \"}\n \n Learn More\n \n .
\n
\n After completing the self-assessment we will provide you access to a career planner to review and maintain your skill profile.\n
\n
\n IMPORTANT: The self-assessment is NOT a test but it is very important that you are honest and take your time to study the options carefully.\n

\n
\n )}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleChange(e);\n this.handleEmailKeyUp(e);\n }}\n onKeyUp={this.handleEmailKeyUp}\n onBlur={this.handleEmailLostFocus}\n />\n {form.email.value != \"\" && !form.email.isValidFormat && (\n \n \n \n )}\n {this.state.emailChecking && (\n \n Email checking\n \n )}\n {!this.state.emailChecking &&\n this.state.emailCheckingExist != null &&\n (this.state.emailCheckingExist == true && this.props.errorCheckEmail ? {this.props.errorCheckEmail.errData.Message} : Email Address Available)}\n \n \n \n \n \n \n \n \n \n \n {countries.map((country, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {registerReasons.map((it, key) => (\n \n ))}\n \n \n {this.props.containerConfig && this.props.containerConfig.showRoleBasedSurveyInSelfRegistration && roleBasedSurveyJobs && roleBasedSurveyJobs.length > 1 && (\n \n \n \n {roleBasedSurveyJobs.map((it, key) => (\n \n ))}\n \n \n )}\n \n \n {/* {form.captcha.touched && !form.captcha.valid &&
Incorrect captcha
} */}\n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n {/* */}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loadingRegister,\n error: state.auth.errorRegister,\n registerToken: state.auth.registerToken,\n\n loadingCheckEmail: state.auth.loadingCheckEmail,\n errorCheckEmail: state.auth.errorCheckEmail,\n emailCheckingExist: state.auth.emailCheckingExist,\n\n countries: state.country.countries,\n contentTranslations: state.content.contentTranslations,\n registerReasons: state.registerReason.registerReasons,\n\n jobs: state.job.jobs,\n jobLoading: state.job.loading,\n\n defaultCompany: state.company.defaultCompany,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n //onRegister: bindActionCreators(userActions, dispatch),\n onAuth: bindActionCreators(authActions, dispatch),\n onCountry: bindActionCreators(countryActions, dispatch),\n onRegisterReason: bindActionCreators(registerReasonActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(FormRegister));\n","import parse from \"html-react-parser\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\n\nclass ContentTranslator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {}\n\n render() {\n const contentTranslations = this.props.contentTranslations;\n const contentTranslation = contentTranslations.find((it) => it.page == this.props.page && it.name == this.props.name);\n\n return parse(\n contentTranslation ? (contentTranslation.contentTextTranslation ? contentTranslation.contentTextTranslation : contentTranslation.contentText ? contentTranslation.contentText : this.props.contentText ? this.props.contentText : \"\") : this.props.contentText ? this.props.contentText : \"\"\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n language: state.language.language,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContentTranslator);\n","import React, { Component } from 'react';\nimport { Container } from 'reactstrap';\n\n\nexport class ContentWrapper extends Component {\n static displayName = ContentWrapper.name;\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}","export const GET_PERSONS_START = \"GET_PERSONS_START\";\nexport const GET_PERSONS_SUCCESS = \"GET_PERSONS_SUCCESS\";\nexport const GET_PERSONS_FAIL = \"GET_PERSONS_FAIL\";\n\nexport const GET_ADMIN_PERSONS_START = \"GET_ADMIN_PERSONS_START\";\nexport const GET_ADMIN_PERSONS_SUCCESS = \"GET_ADMIN_PERSONS_SUCCESS\";\nexport const GET_ADMIN_PERSONS_FAIL = \"GET_ADMIN_PERSONS_FAIL\";\n\nexport const GET_PERSONS_DROPDOWN_START = \"GET_PERSONS_DROPDOWN_START\";\nexport const GET_PERSONS_DROPDOWN_SUCCESS = \"GET_PERSONS_DROPDOWN_SUCCESS\";\nexport const GET_PERSONS_DROPDOWN_FAIL = \"GET_PERSONS_DROPDOWN_FAIL\";\n\nexport const ADD_PERSON_START = \"ADD_PERSON_START\";\nexport const ADD_PERSON_SUCCESS = \"ADD_PERSON_SUCCESS\";\nexport const ADD_PERSON_FAIL = \"ADD_PERSON_FAIL\";\n\nexport const UPDATE_PERSON_START = \"UPDATE_PERSON_START\";\nexport const UPDATE_PERSON_SUCCESS = \"UPDATE_PERSON_SUCCESS\";\nexport const UPDATE_PERSON_FAIL = \"UPDATE_PERSON_FAIL\";\n\nexport const DELETE_PERSON_START = \"DELETE_PERSON_START\";\nexport const DELETE_PERSON_SUCCESS = \"DELETE_PERSON_SUCCESS\";\nexport const DELETE_PERSON_FAIL = \"DELETE_PERSON_FAIL\";\n\nexport const RESET_PERSON_PASSWORD_START = \"RESET_PERSON_PASSWORD_START\";\nexport const RESET_PERSON_PASSWORD_SUCCESS = \"RESET_PERSON_PASSWORD_SUCCESS\";\nexport const RESET_PERSON_PASSWORD_FAIL = \"RESET_PERSON_PASSWORD_FAIL\";\n\nexport const UPDATE_PERSON_ROLES_START = \"UPDATE_PERSON_ROLES_START\";\nexport const UPDATE_PERSON_ROLES_SUCCESS = \"UPDATE_PERSON_ROLES_SUCCESS\";\nexport const UPDATE_PERSON_ROLES_FAIL = \"UPDATE_PERSON_ROLES_FAIL\";\n\nexport const EXPORT_PERSONS_DATA_START = \"EXPORT_PERSONS_DATA_START\";\nexport const EXPORT_PERSONS_DATA_SUCCESS = \"EXPORT_PERSONS_DATA_SUCCESS\";\nexport const EXPORT_PERSONS_DATA_FAIL = \"EXPORT_PERSONS_DATA_FAIL\";\n\nexport const IMPORT_PERSONS_DATA_START = \"IMPORT_PERSONS_DATA_START\";\nexport const IMPORT_PERSONS_DATA_SUCCESS = \"IMPORT_PERSONS_DATA_SUCCESS\";\nexport const IMPORT_PERSONS_DATA_FAIL = \"IMPORT_PERSONS_DATA_FAIL\";\n\nexport const EXPORT_PERSONS_PROFILES_START = \"EXPORT_PERSONS_PROFILES_START\";\nexport const EXPORT_PERSONS_PROFILES_SUCCESS = \"EXPORT_PERSONS_PROFILES_SUCCESS\";\nexport const EXPORT_PERSONS_PROFILES_FAIL = \"EXPORT_PERSONS_PROFILES_FAIL\";\n\nexport const IMPORT_PERSONS_PROFILES_START = \"IMPORT_PERSONS_PROFILES_START\";\nexport const IMPORT_PERSONS_PROFILES_SUCCESS = \"IMPORT_PERSONS_PROFILES_SUCCESS\";\nexport const IMPORT_PERSONS_PROFILES_FAIL = \"IMPORT_PERSONS_PROFILES_FAIL\";\n\nexport const GENERATE_PERSON_PROFILE_REPORTS_START = \"GENERATE_PERSON_PROFILE_REPORTS_START\";\nexport const GENERATE_PERSON_PROFILE_REPORTS_SUCCESS = \"GENERATE_PERSON_PROFILE_REPORTS_SUCCESS\";\nexport const GENERATE_PERSON_PROFILE_REPORTS_FAIL = \"GENERATE_PERSON_PROFILE_REPORTS_FAIL\";\n\nexport const GENERATE_PROFILE_REPORTS_START = \"GENERATE_PROFILE_REPORTS_START\";\nexport const GENERATE_PROFILE_REPORTS_SUCCESS = \"GENERATE_PROFILE_REPORTS_SUCCESS\";\nexport const GENERATE_PROFILE_REPORTS_FAIL = \"GENERATE_PROFILE_REPORTS_FAIL\";\n\nexport const ASSIGN_PERSONS_START = \"ASSIGN_PERSONS_START\";\nexport const ASSIGN_PERSONS_SUCCESS = \"ASSIGN_PERSONS_SUCCESS\";\nexport const ASSIGN_PERSONS_FAIL = \"ASSIGN_PERSONS_FAIL\";\n\nexport const UNASSIGN_PERSONS_START = \"UNASSIGN_PERSONS_START\";\nexport const UNASSIGN_PERSONS_SUCCESS = \"UNASSIGN_PERSONS_SUCCESS\";\nexport const UNASSIGN_PERSONS_FAIL = \"UNASSIGN_PERSONS_FAIL\";\n\nexport const INVITE_PERSONS_START = \"INVITE_PERSONS_START\";\nexport const INVITE_PERSONS_SUCCESS = \"INVITE_PERSONS_SUCCESS\";\nexport const INVITE_PERSONS_FAIL = \"INVITE_PERSONS_FAIL\";\n\nexport const GET_ADMIN_COMPANY_BRANDING_LOGO_START = \"GET_ADMIN_COMPANY_BRANDING_LOGO_START\";\nexport const GET_ADMIN_COMPANY_BRANDING_LOGO_SUCCESS = \"GET_ADMIN_COMPANY_BRANDING_LOGO_SUCCESS\";\nexport const GET_ADMIN_COMPANY_BRANDING_LOGO_FAIL = \"GET_ADMIN_COMPANY_BRANDING_LOGO_FAIL\";\n\nexport const UPDATE_COMPANY_BRANDING_LOGO_START = \"UPDATE_COMPANY_BRANDING_LOGO_START\";\nexport const UPDATE_COMPANY_BRANDING_LOGO_SUCCESS = \"UPDATE_COMPANY_BRANDING_LOGO_SUCCESS\";\nexport const UPDATE_COMPANY_BRANDING_LOGO_FAIL = \"UPDATE_COMPANY_BRANDING_LOGO_FAIL\";\n\nexport const GET_ADMIN_COMPANY_FAVICON_START = \"GET_ADMIN_COMPANY_FAVICON_START\";\nexport const GET_ADMIN_COMPANY_FAVICON_SUCCESS = \"GET_ADMIN_COMPANY_FAVICON_SUCCESS\";\nexport const GET_ADMIN_COMPANY_FAVICON_FAIL = \"GET_ADMIN_COMPANY_FAVICON_FAIL\";\n\nexport const UPDATE_COMPANY_FAVICON_START = \"UPDATE_COMPANY_FAVICON_START\";\nexport const UPDATE_COMPANY_FAVICON_SUCCESS = \"UPDATE_COMPANY_FAVICON_SUCCESS\";\nexport const UPDATE_COMPANY_FAVICON_FAIL = \"UPDATE_COMPANY_FAVICON_FAIL\";\n\nexport const GET_RELATIONSHIP_TYPES_START = \"GET_RELATIONSHIP_TYPES_START\";\nexport const GET_RELATIONSHIP_TYPES_SUCCESS = \"GET_RELATIONSHIP_TYPES_SUCCESS\";\nexport const GET_RELATIONSHIP_TYPES_FAIL = \"GET_RELATIONSHIP_TYPES_FAIL\";\n\nexport const ADD_RELATIONSHIPS_START = \"ADD_RELATIONSHIPS_START\";\nexport const ADD_RELATIONSHIPS_SUCCESS = \"ADD_RELATIONSHIPS_SUCCESS\";\nexport const ADD_RELATIONSHIPS_FAIL = \"ADD_RELATIONSHIPS_FAIL\";\n\nexport const DELETE_RELATIONSHIPS_START = \"DELETE_RELATIONSHIPS_START\";\nexport const DELETE_RELATIONSHIPS_SUCCESS = \"DELETE_RELATIONSHIPS_SUCCESS\";\nexport const DELETE_RELATIONSHIPS_FAIL = \"DELETE_RELATIONSHIPS_FAIL\";\n\nexport const EXPORT_RELATIONSHIPS_DATA_START = \"EXPORT_RELATIONSHIPS_DATA_START\";\nexport const EXPORT_RELATIONSHIPS_DATA_SUCCESS = \"EXPORT_RELATIONSHIPS_DATA_SUCCESS\";\nexport const EXPORT_RELATIONSHIPS_DATA_FAIL = \"EXPORT_RELATIONSHIPS_DATA_FAIL\";\n\nexport const IMPORT_RELATIONSHIPS_DATA_START = \"IMPORT_RELATIONSHIPS_DATA_START\";\nexport const IMPORT_RELATIONSHIPS_DATA_SUCCESS = \"IMPORT_RELATIONSHIPS_DATA_SUCCESS\";\nexport const IMPORT_RELATIONSHIPS_DATA_FAIL = \"IMPORT_RELATIONSHIPS_DATA_FAIL\";\n\nexport const GET_EMAIL_TEMPLATE_TYPES_START = \"GET_EMAIL_TEMPLATE_TYPES_START\";\nexport const GET_EMAIL_TEMPLATE_TYPES_SUCCESS = \"GET_EMAIL_TEMPLATE_TYPES_SUCCESS\";\nexport const GET_EMAIL_TEMPLATE_TYPES_FAIL = \"GET_EMAIL_TEMPLATE_TYPES_FAIL\";\n\nexport const GET_EMAIL_TEMPLATE_BY_TYPE_START = \"GET_EMAIL_TEMPLATE_BY_TYPE_START\";\nexport const GET_EMAIL_TEMPLATE_BY_TYPE_SUCCESS = \"GET_EMAIL_TEMPLATE_BY_TYPE_SUCCESS\";\nexport const GET_EMAIL_TEMPLATE_BY_TYPE_FAIL = \"GET_EMAIL_TEMPLATE_BY_TYPE_FAIL\";\n\nexport const CREATE_UPDATE_EMAIL_TEMPLATE_START = \"CREATE_UPDATE_EMAIL_TEMPLATE_START\";\nexport const CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS = \"CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS\";\nexport const CREATE_UPDATE_EMAIL_TEMPLATE_FAIL = \"CREATE_UPDATE_EMAIL_TEMPLATE_FAIL\";\n\nexport const GET_INTERVENTIONS_START = \"GET_INTERVENTIONS_START\";\nexport const GET_INTERVENTIONS_SUCCESS = \"GET_INTERVENTIONS_SUCCESS\";\nexport const GET_INTERVENTIONS_FAIL = \"GET_INTERVENTIONS_FAIL\";\n\nexport const ADD_INTERVENTION_START = \"ADD_INTERVENTION_START\";\nexport const ADD_INTERVENTION_SUCCESS = \"ADD_INTERVENTION_SUCCESS\";\nexport const ADD_INTERVENTION_FAIL = \"ADD_INTERVENTION_FAIL\";\n\nexport const UPDATE_INTERVENTION_START = \"UPDATE_INTERVENTION_START\";\nexport const UPDATE_INTERVENTION_SUCCESS = \"UPDATE_INTERVENTION_SUCCESS\";\nexport const UPDATE_INTERVENTION_FAIL = \"UPDATE_INTERVENTION_FAIL\";\n\nexport const DELETE_INTERVENTION_START = \"DELETE_INTERVENTION_START\";\nexport const DELETE_INTERVENTION_SUCCESS = \"DELETE_INTERVENTION_SUCCESS\";\nexport const DELETE_INTERVENTION_FAIL = \"DELETE_INTERVENTION_FAIL\";\n\nexport const DELETE_INTERVENTIONS_START = \"DELETE_INTERVENTIONS_START\";\nexport const DELETE_INTERVENTIONS_SUCCESS = \"DELETE_INTERVENTIONS_SUCCESS\";\nexport const DELETE_INTERVENTIONS_FAIL = \"DELETE_INTERVENTIONS_FAIL\";\n\nexport const EXPORT_INTERVENTIONS_DATA_START = \"EXPORT_INTERVENTIONS_DATA_START\";\nexport const EXPORT_INTERVENTIONS_DATA_SUCCESS = \"EXPORT_INTERVENTIONS_DATA_SUCCESS\";\nexport const EXPORT_INTERVENTIONS_DATA_FAIL = \"EXPORT_INTERVENTIONS_DATA_FAIL\";\n\nexport const IMPORT_INTERVENTIONS_DATA_START = \"IMPORT_INTERVENTIONS_DATA_START\";\nexport const IMPORT_INTERVENTIONS_DATA_SUCCESS = \"IMPORT_INTERVENTIONS_DATA_SUCCESS\";\nexport const IMPORT_INTERVENTIONS_DATA_FAIL = \"IMPORT_INTERVENTIONS_DATA_FAIL\";\n\nexport const ASSIGN_INTERVENTION_JOB_START = \"ASSIGN_INTERVENTION_JOB_START\";\nexport const ASSIGN_INTERVENTION_JOB_SUCCESS = \"ASSIGN_INTERVENTION_JOB_SUCCESS\";\nexport const ASSIGN_INTERVENTION_JOB_FAIL = \"ASSIGN_INTERVENTION_JOB_FAIL\";\n\nexport const DELETE_INTERVENTION_JOB_START = \"DELETE_INTERVENTION_JOB_START\";\nexport const DELETE_INTERVENTION_JOB_SUCCESS = \"DELETE_INTERVENTION_JOB_SUCCESS\";\nexport const DELETE_INTERVENTION_JOB_FAIL = \"DELETE_INTERVENTION_JOB_FAIL\";\n\nexport const DELETE_INTERVENTION_JOBS_START = \"DELETE_INTERVENTION_JOBS_START\";\nexport const DELETE_INTERVENTION_JOBS_SUCCESS = \"DELETE_INTERVENTION_JOBS_SUCCESS\";\nexport const DELETE_INTERVENTION_JOBS_FAIL = \"DELETE_INTERVENTION_JOBS_FAIL\";\n\nexport const GET_ACTIONTYPES_START = \"GET_ACTIONTYPES_START\";\nexport const GET_ACTIONTYPES_SUCCESS = \"GET_ACTIONTYPES_SUCCESS\";\nexport const GET_ACTIONTYPES_FAIL = \"GET_ACTIONTYPES_FAIL\";\n\nexport const ADD_ACTIONTYPE_START = \"ADD_ACTIONTYPE_START\";\nexport const ADD_ACTIONTYPE_SUCCESS = \"ADD_ACTIONTYPE_SUCCESS\";\nexport const ADD_ACTIONTYPE_FAIL = \"ADD_ACTIONTYPE_FAIL\";\n\nexport const UPDATE_ACTIONTYPE_START = \"UPDATE_ACTIONTYPE_START\";\nexport const UPDATE_ACTIONTYPE_SUCCESS = \"UPDATE_ACTIONTYPE_SUCCESS\";\nexport const UPDATE_ACTIONTYPE_FAIL = \"UPDATE_ACTIONTYPE_FAIL\";\n\nexport const DELETE_ACTIONTYPE_START = \"DELETE_ACTIONTYPE_START\";\nexport const DELETE_ACTIONTYPE_SUCCESS = \"DELETE_ACTIONTYPE_SUCCESS\";\nexport const DELETE_ACTIONTYPE_FAIL = \"DELETE_ACTIONTYPE_FAIL\";\n\nexport const GET_EVIDENCETYPES_START = \"GET_EVIDENCETYPES_START\";\nexport const GET_EVIDENCETYPES_SUCCESS = \"GET_EVIDENCETYPES_SUCCESS\";\nexport const GET_EVIDENCETYPES_FAIL = \"GET_EVIDENCETYPES_FAIL\";\n\nexport const ADD_EVIDENCETYPE_START = \"ADD_EVIDENCETYPE_START\";\nexport const ADD_EVIDENCETYPE_SUCCESS = \"ADD_EVIDENCETYPE_SUCCESS\";\nexport const ADD_EVIDENCETYPE_FAIL = \"ADD_EVIDENCETYPE_FAIL\";\n\nexport const UPDATE_EVIDENCETYPE_START = \"UPDATE_EVIDENCETYPE_START\";\nexport const UPDATE_EVIDENCETYPE_SUCCESS = \"UPDATE_EVIDENCETYPE_SUCCESS\";\nexport const UPDATE_EVIDENCETYPE_FAIL = \"UPDATE_EVIDENCETYPE_FAIL\";\n\nexport const DELETE_EVIDENCETYPE_START = \"DELETE_EVIDENCETYPE_START\";\nexport const DELETE_EVIDENCETYPE_SUCCESS = \"DELETE_EVIDENCETYPE_SUCCESS\";\nexport const DELETE_EVIDENCETYPE_FAIL = \"DELETE_EVIDENCETYPE_FAIL\";\n\nexport const GET_PAGE_ASSIGNMENTS_START = \"GET_PAGE_ASSIGNMENTS_START\";\nexport const GET_PAGE_ASSIGNMENTS_SUCCESS = \"GET_PAGE_ASSIGNMENTS_SUCCESS\";\nexport const GET_PAGE_ASSIGNMENTS_FAIL = \"GET_PAGE_ASSIGNMENTS_FAIL\";\nexport const CLEAR_PAGE_ASSIGNMENTS = \"CLEAR_PAGE_ASSIGNMENTS\";\n\nexport const GET_PERSON_PAGE_ASSIGNMENTS_START = \"GET_PERSON_PAGE_ASSIGNMENTS_START\";\nexport const GET_PERSON_PAGE_ASSIGNMENTS_SUCCESS = \"GET_PERSON_PAGE_ASSIGNMENTS_SUCCESS\";\nexport const GET_PERSON_PAGE_ASSIGNMENTS_FAIL = \"GET_PERSON_PAGE_ASSIGNMENTS_FAIL\";\n\nexport const UPDATE_PERSON_PAGE_ASSIGNMENTS_START = \"UPDATE_PERSON_PAGE_ASSIGNMENTS_START\";\nexport const UPDATE_PERSON_PAGE_ASSIGNMENTS_SUCCESS = \"UPDATE_PERSON_PAGE_ASSIGNMENTS_SUCCESS\";\nexport const UPDATE_PERSON_PAGE_ASSIGNMENTS_FAIL = \"UPDATE_PERSON_PAGE_ASSIGNMENTS_FAIL\";\n\nexport const GET_ADMIN_COLUMN_DISPLAY_SETTINGS_START = \"GET_ADMIN_COLUMN_DISPLAY_SETTINGS_START\";\nexport const GET_ADMIN_COLUMN_DISPLAY_SETTINGS_SUCCESS = \"GET_ADMIN_COLUMN_DISPLAY_SETTINGS_SUCCESS\";\nexport const GET_ADMIN_COLUMN_DISPLAY_SETTINGS_FAIL = \"GET_ADMIN_COLUMN_DISPLAY_SETTINGS_FAIL\";\n\nexport const UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_START = \"UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_START\";\nexport const UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_SUCCESS = \"UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_SUCCESS\";\nexport const UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_FAIL = \"UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_FAIL\";\n\nexport const CLEAR_COLUMN_DISPLAY_SETTINGS = \"CLEAR_COLUMN_DISPLAY_SETTINGS\";\n\nexport const GET_CONTENT_PAGES_START = \"GET_CONTENT_PAGES_START\";\nexport const GET_CONTENT_PAGES_SUCCESS = \"GET_CONTENT_PAGES_SUCCESS\";\nexport const GET_CONTENT_PAGES_FAIL = \"GET_CONTENT_PAGES_FAIL\";\n\nexport const GET_CONTENTS_START = \"GET_CONTENTS_START\";\nexport const GET_CONTENTS_SUCCESS = \"GET_CONTENTS_SUCCESS\";\nexport const GET_CONTENTS_FAIL = \"GET_CONTENTS_FAIL\";\n\nexport const GET_CONTENT_TRANSLATIONS_START = \"GET_ADMIN_CONTENT_TRANSLATIONS_START\";\nexport const GET_CONTENT_TRANSLATIONS_SUCCESS = \"GET_ADMIN_CONTENT_TRANSLATIONS_SUCCESS\";\nexport const GET_CONTENT_TRANSLATIONS_FAIL = \"GET_ADMIN_CONTENT_TRANSLATIONS_FAIL\";\n\nexport const EXPORT_CONTENT_TRANSLATIONS_START = \"EXPORT_CONTENT_TRANSLATIONS_START\";\nexport const EXPORT_CONTENT_TRANSLATIONS_SUCCESS = \"EXPORT_CONTENT_TRANSLATIONS_SUCCESS\";\nexport const EXPORT_CONTENT_TRANSLATIONS_FAIL = \"EXPORT_CONTENT_TRANSLATIONS_FAIL\";\n\nexport const IMPORT_CONTENT_TRANSLATIONS_START = \"IMPORT_CONTENT_TRANSLATIONS_START\";\nexport const IMPORT_CONTENT_TRANSLATIONS_SUCCESS = \"IMPORT_CONTENT_TRANSLATIONS_SUCCESS\";\nexport const IMPORT_CONTENT_TRANSLATIONS_FAIL = \"IMPORT_CONTENT_TRANSLATIONS_FAIL\";\n\nexport const CREATE_CONTENT_TRANSLATION_START = \"CREATE_CONTENT_TRANSLATION_START\";\nexport const CREATE_CONTENT_TRANSLATION_SUCCESS = \"CREATE_CONTENT_TRANSLATION_SUCCESS\";\nexport const CREATE_CONTENT_TRANSLATION_FAIL = \"CREATE_CONTENT_TRANSLATION_FAIL\";\n\nexport const UPDATE_CONTENT_TRANSLATION_START = \"UPDATE_CONTENT_TRANSLATION_START\";\nexport const UPDATE_CONTENT_TRANSLATION_SUCCESS = \"UPDATE_CONTENT_TRANSLATION_SUCCESS\";\nexport const UPDATE_CONTENT_TRANSLATION_FAIL = \"UPDATE_CONTENT_TRANSLATION_FAIL\";\n\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_START = \"GET_EXTRAFRAMEWORK_CAPABILITIES_START\";\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS = \"GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS\";\nexport const GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL = \"GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL\";\n\nexport const GET_EXTRAFRAMEWORK_LEVELS_START = \"GET_EXTRAFRAMEWORK_LEVELS_START\";\nexport const GET_EXTRAFRAMEWORK_LEVELS_SUCCESS = \"GET_EXTRAFRAMEWORK_LEVELS_SUCCESS\";\nexport const GET_EXTRAFRAMEWORK_LEVELS_FAIL = \"GET_EXTRAFRAMEWORK_LEVELS_FAIL\";\n\nexport const CREATE_EXTRAFRAMEWORK_LEVEL_START = \"CREATE_EXTRAFRAMEWORK_LEVEL_START\";\nexport const CREATE_EXTRAFRAMEWORK_LEVEL_SUCCESS = \"CREATE_EXTRAFRAMEWORK_LEVEL_SUCCESS\";\nexport const CREATE_EXTRAFRAMEWORK_LEVEL_FAIL = \"CREATE_EXTRAFRAMEWORK_LEVEL_FAIL\";\n\nexport const UPDATE_EXTRAFRAMEWORK_LEVEL_START = \"UPDATE_EXTRAFRAMEWORK_LEVEL_START\";\nexport const UPDATE_EXTRAFRAMEWORK_LEVEL_SUCCESS = \"UPDATE_EXTRAFRAMEWORK_LEVEL_SUCCESS\";\nexport const UPDATE_EXTRAFRAMEWORK_LEVEL_FAIL = \"UPDATE_EXTRAFRAMEWORK_LEVEL_FAIL\";\n\nexport const DELETE_EXTRAFRAMEWORK_LEVEL_START = \"DELETE_EXTRAFRAMEWORK_LEVEL_START\";\nexport const DELETE_EXTRAFRAMEWORK_LEVEL_SUCCESS = \"DELETE_EXTRAFRAMEWORK_LEVEL_SUCCESS\";\nexport const DELETE_EXTRAFRAMEWORK_LEVEL_FAIL = \"DELETE_EXTRAFRAMEWORK_LEVEL_FAIL\";\n\nexport const MOVE_EXTRAFRAMEWORK_LEVELS_START = \"MOVE_EXTRAFRAMEWORK_LEVELS_START\";\nexport const MOVE_EXTRAFRAMEWORK_LEVELS_SUCCESS = \"MOVE_EXTRAFRAMEWORK_LEVELS_SUCCESS\";\nexport const MOVE_EXTRAFRAMEWORK_LEVELS_FAIL = \"MOVE_EXTRAFRAMEWORK_LEVELS_FAIL\";\n\nexport const GET_EXTRAFRAMEWORK_CATEGORIES_START = \"GET_EXTRAFRAMEWORK_CATEGORIES_START\";\nexport const GET_EXTRAFRAMEWORK_CATEGORIES_SUCCESS = \"GET_EXTRAFRAMEWORK_CATEGORIES_SUCCESS\";\nexport const GET_EXTRAFRAMEWORK_CATEGORIES_FAIL = \"GET_EXTRAFRAMEWORK_CATEGORIES_FAIL\";\n\nexport const CREATE_EXTRAFRAMEWORK_CATEGORY_START = \"CREATE_EXTRAFRAMEWORK_CATEGORY_START\";\nexport const CREATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS = \"CREATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS\";\nexport const CREATE_EXTRAFRAMEWORK_CATEGORY_FAIL = \"CREATE_EXTRAFRAMEWORK_CATEGORY_FAIL\";\n\nexport const UPDATE_EXTRAFRAMEWORK_CATEGORY_START = \"UPDATE_EXTRAFRAMEWORK_CATEGORY_START\";\nexport const UPDATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS = \"UPDATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS\";\nexport const UPDATE_EXTRAFRAMEWORK_CATEGORY_FAIL = \"UPDATE_EXTRAFRAMEWORK_CATEGORY_FAIL\";\n\nexport const DELETE_EXTRAFRAMEWORK_CATEGORY_START = \"DELETE_EXTRAFRAMEWORK_CATEGORY_START\";\nexport const DELETE_EXTRAFRAMEWORK_CATEGORY_SUCCESS = \"DELETE_EXTRAFRAMEWORK_CATEGORY_SUCCESS\";\nexport const DELETE_EXTRAFRAMEWORK_CATEGORY_FAIL = \"DELETE_EXTRAFRAMEWORK_CATEGORY_FAIL\";\n\nexport const CREATE_EXTRAFRAMEWORK_SUBCATEGORY_START = \"CREATE_EXTRAFRAMEWORK_SUBCATEGORY_START\";\nexport const CREATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS = \"CREATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS\";\nexport const CREATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL = \"CREATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL\";\n\nexport const UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_START = \"UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_START\";\nexport const UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS = \"UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS\";\nexport const UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL = \"UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL\";\n\nexport const DELETE_EXTRAFRAMEWORK_SUBCATEGORY_START = \"DELETE_EXTRAFRAMEWORK_SUBCATEGORY_START\";\nexport const DELETE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS = \"DELETE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS\";\nexport const DELETE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL = \"DELETE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL\";\n\nexport const CREATE_EXTRAFRAMEWORK_SKILL_START = \"CREATE_EXTRAFRAMEWORK_SKILL_START\";\nexport const CREATE_EXTRAFRAMEWORK_SKILL_SUCCESS = \"CREATE_EXTRAFRAMEWORK_SKILL_SUCCESS\";\nexport const CREATE_EXTRAFRAMEWORK_SKILL_FAIL = \"CREATE_EXTRAFRAMEWORK_SKILL_FAIL\";\n\nexport const UPDATE_EXTRAFRAMEWORK_SKILL_START = \"UPDATE_EXTRAFRAMEWORK_SKILL_START\";\nexport const UPDATE_EXTRAFRAMEWORK_SKILL_SUCCESS = \"UPDATE_EXTRAFRAMEWORK_SKILL_SUCCESS\";\nexport const UPDATE_EXTRAFRAMEWORK_SKILL_FAIL = \"UPDATE_EXTRAFRAMEWORK_SKILL_FAIL\";\n\nexport const DELETE_EXTRAFRAMEWORK_SKILL_START = \"DELETE_EXTRAFRAMEWORK_SKILL_START\";\nexport const DELETE_EXTRAFRAMEWORK_SKILL_SUCCESS = \"DELETE_EXTRAFRAMEWORK_SKILL_SUCCESS\";\nexport const DELETE_EXTRAFRAMEWORK_SKILL_FAIL = \"DELETE_EXTRAFRAMEWORK_SKILL_FAIL\";\n\nexport const EXPORT_EXTRAFRAMEWORKS_DATA_START = \"EXPORT_EXTRAFRAMEWORKS_DATA_START\";\nexport const EXPORT_EXTRAFRAMEWORKS_DATA_SUCCESS = \"EXPORT_EXTRAFRAMEWORKS_DATA_SUCCESS\";\nexport const EXPORT_EXTRAFRAMEWORKS_DATA_FAIL = \"EXPORT_EXTRAFRAMEWORKS_DATA_FAIL\";\n\nexport const IMPORT_EXTRAFRAMEWORKS_DATA_START = \"IMPORT_EXTRAFRAMEWORKS_DATA_START\";\nexport const IMPORT_EXTRAFRAMEWORKS_DATA_SUCCESS = \"IMPORT_EXTRAFRAMEWORKS_DATA_SUCCESS\";\nexport const IMPORT_EXTRAFRAMEWORKS_DATA_FAIL = \"IMPORT_EXTRAFRAMEWORKS_DATA_FAIL\";\n\nexport const UPDATE_PERSON_ENDORSEMENT = \"UPDATE_PERSON_ENDORSEMENT\";\n\nexport const UPDATE_PERSON_SELFASSESSED_APPROVED = \"UPDATE_PERSON_SELFASSESSED_APPROVED\";\nexport const UPDATE_PERSON_SELFASSESSED_POSTPONED = \"UPDATE_PERSON_SELFASSESSED_POSTPONED\";\n\nexport const UPDATE_PERSON_ENDORSER_START = \"UPDATE_PERSON_ENDORSER_START\";\nexport const UPDATE_PERSON_ENDORSER_SUCCESS = \"UPDATE_PERSON_ENDORSER_SUCCESS\";\nexport const UPDATE_PERSON_ENDORSER_FAIL = \"UPDATE_PERSON_ENDORSER_FAIL\";\n\nexport const GET_BADGE_REQUESTS_START = \"GET_BADGE_REQUESTS_START\";\nexport const GET_BADGE_REQUESTS_SUCCESS = \"GET_BADGE_REQUESTS_SUCCESS\";\nexport const GET_BADGE_REQUESTS_FAIL = \"GET_BADGE_REQUESTS_FAIL\";\n\nexport const UPDATE_BADGE_REQUEST_ASSESSOR_START = \"UPDATE_BADGE_REQUEST_ASSESSOR_START\";\nexport const UPDATE_BADGE_REQUEST_ASSESSOR_SUCCESS = \"UPDATE_BADGE_REQUEST_ASSESSOR_SUCCESS\";\nexport const UPDATE_BADGE_REQUEST_ASSESSOR_FAIL = \"UPDATE_BADGE_REQUEST_ASSESSOR_FAIL\";\n\nexport const UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_START = \"UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_START\";\nexport const UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_SUCCESS = \"UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_SUCCESS\";\nexport const UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_FAIL = \"UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_FAIL\";\n\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATION_START = \"SUBMIT_BADGE_REQUEST_CERTIFICATION_START\";\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATION_SUCCESS = \"SUBMIT_BADGE_REQUEST_CERTIFICATION_SUCCESS\";\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATION_FAIL = \"SUBMIT_BADGE_REQUEST_CERTIFICATION_FAIL\";\n\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATIONS_START = \"SUBMIT_BADGE_REQUEST_CERTIFICATIONS_START\";\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATIONS_SUCCESS = \"SUBMIT_BADGE_REQUEST_CERTIFICATIONS_SUCCESS\";\nexport const SUBMIT_BADGE_REQUEST_CERTIFICATIONS_FAIL = \"SUBMIT_BADGE_REQUEST_CERTIFICATIONS_FAIL\";\n\nexport const REJECT_BADGE_REQUEST_CERTIFICATION_START = \"REJECT_BADGE_REQUEST_CERTIFICATION_START\";\nexport const REJECT_BADGE_REQUEST_CERTIFICATION_SUCCESS = \"REJECT_BADGE_REQUEST_CERTIFICATION_SUCCESS\";\nexport const REJECT_BADGE_REQUEST_CERTIFICATION_FAIL = \"REJECT_BADGE_REQUEST_CERTIFICATION_FAIL\";\n\nexport const UPDATE_BADGE_REQUEST = \"UPDATE_BADGE_REQUEST\";\n\nexport const GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_START = \"GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_START\";\nexport const GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_SUCCESS = \"GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_SUCCESS\";\nexport const GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_FAIL = \"GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_FAIL\";\n\nexport const GET_ACTION_PROMOTIONS_START = \"GET_ACTION_PROMOTIONS_START\";\nexport const GET_ACTION_PROMOTIONS_SUCCESS = \"GET_ACTION_PROMOTIONS_SUCCESS\";\nexport const GET_ACTION_PROMOTIONS_FAIL = \"GET_ACTION_PROMOTIONS_FAIL\";\n\nexport const UPDATE_ACTION_PROMOTION_START = \"UPDATE_ACTION_PROMOTION_START\";\nexport const UPDATE_ACTION_PROMOTION_SUCCESS = \"UPDATE_ACTION_PROMOTION_SUCCESS\";\nexport const UPDATE_ACTION_PROMOTION_FAIL = \"UPDATE_ACTION_PROMOTION_FAIL\";\n\nexport const ACCEPT_ACTION_PROMOTION_START = \"ACCEPT_ACTION_PROMOTION_START\";\nexport const ACCEPT_ACTION_PROMOTION_SUCCESS = \"ACCEPT_ACTION_PROMOTION_SUCCESS\";\nexport const ACCEPT_ACTION_PROMOTION_FAIL = \"ACCEPT_ACTION_PROMOTION_FAIL\";\n\nexport const DECLINE_ACTION_PROMOTION_START = \"DECLINE_ACTION_PROMOTION_START\";\nexport const DECLINE_ACTION_PROMOTION_SUCCESS = \"DECLINE_ACTION_PROMOTION_SUCCESS\";\nexport const DECLINE_ACTION_PROMOTION_FAIL = \"DECLINE_ACTION_PROMOTION_FAIL\";\n\nexport const GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_START = \"GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_START\";\nexport const GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_SUCCESS = \"GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_SUCCESS\";\nexport const GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_FAIL = \"GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_FAIL\";\n\nexport const ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START = \"ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START\";\nexport const ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS = \"ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS\";\nexport const ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL = \"ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL\";\n\nexport const UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START = \"UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START\";\nexport const UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS = \"UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS\";\nexport const UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL = \"UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL\";\n\nexport const DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START = \"DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START\";\nexport const DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS = \"DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS\";\nexport const DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL = \"DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL\";\n\nexport const GET_REGISTRATION_REASONS_START = \"GET_REGISTRATION_REASONS_START\";\nexport const GET_REGISTRATION_REASONS_SUCCESS = \"GET_REGISTRATION_REASONS_SUCCESS\";\nexport const GET_REGISTRATION_REASONS_FAIL = \"GET_REGISTRATION_REASONS_FAIL\";\n\nexport const ADD_REGISTRATION_REASON_START = \"ADD_REGISTRATION_REASON_START\";\nexport const ADD_REGISTRATION_REASON_SUCCESS = \"ADD_REGISTRATION_REASON_SUCCESS\";\nexport const ADD_REGISTRATION_REASON_FAIL = \"ADD_REGISTRATION_REASON_FAIL\";\n\nexport const UPDATE_REGISTRATION_REASON_START = \"UPDATE_REGISTRATION_REASON_START\";\nexport const UPDATE_REGISTRATION_REASON_SUCCESS = \"UPDATE_REGISTRATION_REASON_SUCCESS\";\nexport const UPDATE_REGISTRATION_REASON_FAIL = \"UPDATE_REGISTRATION_REASON_FAIL\";\n\nexport const DELETE_REGISTRATION_REASON_START = \"DELETE_REGISTRATION_REASON_START\";\nexport const DELETE_REGISTRATION_REASON_SUCCESS = \"DELETE_REGISTRATION_REASON_SUCCESS\";\nexport const DELETE_REGISTRATION_REASON_FAIL = \"DELETE_REGISTRATION_REASON_FAIL\";\n\nexport const MOVE_REGISTRATION_REASON_START = \"MOVE_REGISTRATION_REASON_START\";\nexport const MOVE_REGISTRATION_REASON_SUCCESS = \"MOVE_REGISTRATION_REASON_SUCCESS\";\nexport const MOVE_REGISTRATION_REASON_FAIL = \"MOVE_REGISTRATION_REASON_FAIL\";\n\nexport const GET_ACTION_LOGS_START = \"GET_ACTION_LOGS_START\";\nexport const GET_ACTION_LOGS_SUCCESS = \"GET_ACTION_LOGS_SUCCESS\";\nexport const GET_ACTION_LOGS_FAIL = \"GET_ACTION_LOGS_FAIL\";\n\nexport const EXPORT_ACTION_LOGS_START = \"EXPORT_ACTION_LOGS_START\";\nexport const EXPORT_ACTION_LOGS_SUCCESS = \"EXPORT_ACTION_LOGS_SUCCESS\";\nexport const EXPORT_ACTION_LOGS_FAIL = \"EXPORT_ACTION_LOGS_FAIL\";\n\nexport const REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_START = \"REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_START\";\nexport const REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_SUCCESS = \"REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_SUCCESS\";\nexport const REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_FAIL = \"REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_FAIL\";\n\nexport const UPDATE_COPY_SELF_PROFILES_AS_ENDORSED_STATUS = \"UPDATE_COPY_SELF_PROFILES_AS_ENDORSED_STATUS\";\n\nexport const GET_MENTOR_PREFERENCES_START = \"GET_MENTOR_PREFERENCES_START\";\nexport const GET_MENTOR_PREFERENCES_SUCCESS = \"GET_MENTOR_PREFERENCES_SUCCESS\";\nexport const GET_MENTOR_PREFERENCES_FAIL = \"GET_MENTOR_PREFERENCES_FAIL\";\n\nexport const ADD_MENTOR_PREFERENCE_START = \"ADD_MENTOR_PREFERENCE_START\";\nexport const ADD_MENTOR_PREFERENCE_SUCCESS = \"ADD_MENTOR_PREFERENCE_SUCCESS\";\nexport const ADD_MENTOR_PREFERENCE_FAIL = \"ADD_MENTOR_PREFERENCE_FAIL\";\n\nexport const UPDATE_MENTOR_PREFERENCE_START = \"UPDATE_MENTOR_PREFERENCE_START\";\nexport const UPDATE_MENTOR_PREFERENCE_SUCCESS = \"UPDATE_MENTOR_PREFERENCE_SUCCESS\";\nexport const UPDATE_MENTOR_PREFERENCE_FAIL = \"UPDATE_MENTOR_PREFERENCE_FAIL\";\n\nexport const DELETE_MENTOR_PREFERENCE_START = \"DELETE_MENTOR_PREFERENCE_START\";\nexport const DELETE_MENTOR_PREFERENCE_SUCCESS = \"DELETE_MENTOR_PREFERENCE_SUCCESS\";\nexport const DELETE_MENTOR_PREFERENCE_FAIL = \"DELETE_MENTOR_PREFERENCE_FAIL\";\n\nexport const APPROVE_SKILL_PROFILES_START = \"APPROVE_SKILL_PROFILES_START\";\nexport const APPROVE_SKILL_PROFILES_SUCCESS = \"APPROVE_SKILL_PROFILES_SUCCESS\";\nexport const APPROVE_SKILL_PROFILES_FAIL = \"APPROVE_SKILL_PROFILES_FAIL\";\n\nexport const GET_ADMIN_ROLES_START = \"GET_ADMIN_ROLES_START\";\nexport const GET_ADMIN_ROLES_SUCCESS = \"GET_ADMIN_ROLES_SUCCESS\";\nexport const GET_ADMIN_ROLES_FAIL = \"GET_ADMIN_ROLES_FAIL\";\n\nexport const GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_START = \"GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_START\";\nexport const GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS = \"GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS\";\nexport const GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL = \"GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL\";\n\nexport const ADD_ADMIN_ROLE_START = \"ADD_ADMIN_ROLE_START\";\nexport const ADD_ADMIN_ROLE_SUCCESS = \"ADD_ADMIN_ROLE_SUCCESS\";\nexport const ADD_ADMIN_ROLE_FAIL = \"ADD_ADMIN_ROLE_FAIL\";\n\nexport const UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_START = \"UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_START\";\nexport const UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS = \"UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS\";\nexport const UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL = \"UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL\";\n\nexport const RENAME_ADMIN_ROLE_START = \"RENAME_ADMIN_ROLE_START\";\nexport const RENAME_ADMIN_ROLE_SUCCESS = \"RENAME_ADMIN_ROLE_SUCCESS\";\nexport const RENAME_ADMIN_ROLE_FAIL = \"RENAME_ADMIN_ROLE_FAIL\";\n\nexport const DELETE_ADMIN_ROLE_START = \"DELETE_ADMIN_ROLE_START\";\nexport const DELETE_ADMIN_ROLE_SUCCESS = \"DELETE_ADMIN_ROLE_SUCCESS\";\nexport const DELETE_ADMIN_ROLE_FAIL = \"DELETE_ADMIN_ROLE_FAIL\";\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\nimport jwt_decode from \"jwt-decode\";\n\nexport const axios = Instance.apiInstance();\n\nclass AuthAPI {\n static registerEmailChecking(email) {\n return axios\n .post(`/authentication/register/emailchecking`, { email }, { withCredentials: true })\n .then((res) => {\n return {\n emailCheckingExist: false,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static register(person) {\n return axios\n .post(`/authentication/register`, person, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n\n return {\n token: response.token,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static signin(email, password) {\n const body = {\n email,\n password,\n };\n\n return axios\n .post(`/authentication/signin`, body, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n const tokenData = jwt_decode(response.token);\n\n return {\n expiresIn: tokenData.exp,\n token: response.token,\n refreshToken: response.refreshToken,\n personId: tokenData.PersonId,\n firstName: tokenData.FirstName,\n lastName: tokenData.LastName,\n email: tokenData.Email,\n personType: tokenData.PersonType,\n authMode: tokenData.AuthMode,\n assessmentId: tokenData.AssessmentId,\n sfiaVersion: tokenData.SfiaVersion,\n jobProfileReportFormat: tokenData.JobProfileReportFormat,\n selfAssessedProfileReportFormat: tokenData.SelfAssessedProfileReportFormat,\n hasPeoples: tokenData.HasPeoples,\n isEndorser: tokenData.IsEndorser,\n ownJobs: tokenData.OwnJobs,\n manageEndorsements: tokenData.ManageEndorsements,\n manageCertifications: tokenData.ManageCertifications,\n loginWithMembee: tokenData.LoginWithMembee,\n loginWithTeams: tokenData.LoginWithTeams,\n receiveLicenseNotification: tokenData.ReceiveLicenseNotification,\n lastActiveUserNotification: tokenData.LastActiveUserNotification,\n allowSkipSurvey: tokenData.AllowSkipSurvey,\n manageSelfAssessed: tokenData.ManageSelfAssessed,\n manageSelfProfiles: tokenData.ManageSelfProfiles,\n hasRelationships: tokenData.HasRelationships,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static signinwithdownline(downline) {\n const body = {\n downline,\n };\n\n return axios\n .post(`/authentication/signinwithdownline`, body, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n const tokenData = jwt_decode(response.token);\n\n return {\n expiresIn: tokenData.exp,\n token: response.token,\n refreshToken: response.refreshToken,\n personId: tokenData.PersonId,\n firstName: tokenData.FirstName,\n lastName: tokenData.LastName,\n email: tokenData.Email,\n personType: tokenData.PersonType,\n authMode: tokenData.AuthMode,\n assessmentId: tokenData.AssessmentId,\n sfiaVersion: tokenData.SfiaVersion,\n jobProfileReportFormat: tokenData.JobProfileReportFormat,\n selfAssessedProfileReportFormat: tokenData.SelfAssessedProfileReportFormat,\n hasPeoples: tokenData.HasPeoples,\n isEndorser: tokenData.IsEndorser,\n ownJobs: tokenData.OwnJobs,\n manageEndorsements: tokenData.ManageEndorsements,\n manageCertifications: tokenData.ManageCertifications,\n loginWithMembee: tokenData.LoginWithMembee,\n loginWithTeams: tokenData.LoginWithTeams,\n receiveLicenseNotification: tokenData.ReceiveLicenseNotification,\n lastActiveUserNotification: tokenData.LastActiveUserNotification,\n allowSkipSurvey: tokenData.AllowSkipSurvey,\n manageSelfAssessed: tokenData.ManageSelfAssessed,\n manageSelfProfiles: tokenData.ManageSelfProfiles,\n hasRelationships: tokenData.HasRelationships,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static signinUseToken(token) {\n const body = {\n token,\n };\n\n return axios\n .post(`/authentication/signinusetoken`, body, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n const tokenData = jwt_decode(response.token);\n\n return {\n expiresIn: tokenData.exp,\n token: response.token,\n refreshToken: response.refreshToken,\n personId: tokenData.PersonId,\n firstName: tokenData.FirstName,\n lastName: tokenData.LastName,\n email: tokenData.Email,\n personType: tokenData.PersonType,\n authMode: tokenData.AuthMode,\n assessmentId: tokenData.AssessmentId,\n sfiaVersion: tokenData.SfiaVersion,\n jobProfileReportFormat: tokenData.JobProfileReportFormat,\n selfAssessedProfileReportFormat: tokenData.SelfAssessedProfileReportFormat,\n hasPeoples: tokenData.HasPeoples,\n isEndorser: tokenData.IsEndorser,\n ownJobs: tokenData.OwnJobs,\n manageEndorsements: tokenData.ManageEndorsements,\n manageCertifications: tokenData.ManageCertifications,\n loginWithMembee: tokenData.LoginWithMembee,\n loginWithTeams: tokenData.LoginWithTeams,\n receiveLicenseNotification: tokenData.ReceiveLicenseNotification,\n lastActiveUserNotification: tokenData.LastActiveUserNotification,\n allowSkipSurvey: tokenData.AllowSkipSurvey,\n manageSelfAssessed: tokenData.ManageSelfAssessed,\n manageSelfProfiles: tokenData.ManageSelfProfiles,\n hasRelationships: tokenData.HasRelationships,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static signinUseOneTimeLoginToken(token) {\n const body = {\n token,\n };\n\n return axios\n .post(`/authentication/signinonetimelink`, body, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n const tokenData = jwt_decode(response.token);\n\n return {\n expiresIn: tokenData.exp,\n token: response.token,\n refreshToken: response.refreshToken,\n personId: tokenData.PersonId,\n firstName: tokenData.FirstName,\n lastName: tokenData.LastName,\n email: tokenData.Email,\n personType: tokenData.PersonType,\n authMode: tokenData.AuthMode,\n assessmentId: tokenData.AssessmentId,\n sfiaVersion: tokenData.SfiaVersion,\n jobProfileReportFormat: tokenData.JobProfileReportFormat,\n selfAssessedProfileReportFormat: tokenData.SelfAssessedProfileReportFormat,\n hasPeoples: tokenData.HasPeoples,\n isEndorser: tokenData.IsEndorser,\n ownJobs: tokenData.OwnJobs,\n manageEndorsements: tokenData.ManageEndorsements,\n manageCertifications: tokenData.ManageCertifications,\n loginWithMembee: tokenData.LoginWithMembee,\n loginWithTeams: tokenData.LoginWithTeams,\n receiveLicenseNotification: tokenData.ReceiveLicenseNotification,\n lastActiveUserNotification: tokenData.LastActiveUserNotification,\n allowSkipSurvey: tokenData.AllowSkipSurvey,\n manageSelfAssessed: tokenData.ManageSelfAssessed,\n manageSelfProfiles: tokenData.ManageSelfProfiles,\n hasRelationships: tokenData.HasRelationships,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static refreshToken() {\n return axios\n .post(`/authentication/refreshtoken`, \"\", { withCredentials: true })\n .then((res) => {\n const response = res.data;\n const tokenData = jwt_decode(response.token);\n\n return {\n expiresIn: tokenData.exp,\n token: response.token,\n refreshToken: response.refreshToken,\n personId: tokenData.PersonId,\n firstName: tokenData.FirstName,\n lastName: tokenData.LastName,\n email: tokenData.Email,\n personType: tokenData.PersonType,\n authMode: tokenData.AuthMode,\n assessmentId: tokenData.AssessmentId,\n sfiaVersion: tokenData.SfiaVersion,\n jobProfileReportFormat: tokenData.JobProfileReportFormat,\n selfAssessedProfileReportFormat: tokenData.SelfAssessedProfileReportFormat,\n hasPeoples: tokenData.HasPeoples,\n isEndorser: tokenData.IsEndorser,\n ownJobs: tokenData.OwnJobs,\n manageEndorsements: tokenData.ManageEndorsements,\n manageCertifications: tokenData.ManageCertifications,\n loginWithMembee: tokenData.LoginWithMembee,\n loginWithTeams: tokenData.LoginWithTeams,\n receiveLicenseNotification: tokenData.ReceiveLicenseNotification,\n lastActiveUserNotification: tokenData.LastActiveUserNotification,\n allowSkipSurvey: tokenData.AllowSkipSurvey,\n manageSelfAssessed: tokenData.ManageSelfAssessed,\n manageSelfProfiles: tokenData.ManageSelfProfiles,\n hasRelationships: tokenData.HasRelationships,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static logOut() {\n return axios\n .post(`/authentication/logout`, \"\", { withCredentials: true })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static logOutIntended() {\n return axios\n .post(`/authentication/logoutIntended`, \"\", { withCredentials: true })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static forgotPassword(email) {\n const body = {\n email,\n };\n\n return axios\n .post(`/authentication/forgotpassword`, body, { withCredentials: true })\n .then((res) => {\n return {\n result: true,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createAccount(surveyRating) {\n return axios\n .post(`/authentication/createaccount`, surveyRating, { withCredentials: true })\n .then((res) => {\n return {\n result: true,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitRating(surveyRating) {\n return axios\n .post(`/authentication/submitratingsso`, surveyRating, { withCredentials: true })\n .then((res) => {\n return {\n result: true,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitRatingTeams(surveyRating) {\n return axios\n .post(`/authentication/submitratingteams`, surveyRating, { withCredentials: true })\n .then((res) => {\n return {\n result: true,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getResetPassword(token) {\n return axios\n .get(`/authentication/resetpassword?token=${token}`, { withCredentials: true })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static processResetPassword(body) {\n return axios\n .post(`/authentication/resetpassword`, body, { withCredentials: true })\n .then((res) => {\n return {\n result: true,\n };\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AuthAPI;\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass CompanyAPI {\n static getCompanies(companyType) {\n return axios\n .get(`/companies?${companyType && `companyType=${companyType}`}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getDefaultCompany() {\n return axios\n .get(`/companies/default`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getCompanyBrandingLogo() {\n return axios\n .get(`/companies/brandinglogobase64`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static getSelectedProviderCompanies() {\n return axios\n .get(`/companies/selectedProviderCompanies`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getProviderCompanies() {\n return axios\n .get(`/companies/providers`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addNewCompany(company) {\n return axios\n .post(`/companies`, company)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateCompany(id, company) {\n return axios\n .put(`/companies/${id}`, company)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateCompanyProviderSelection(id, company) {\n return axios\n .put(`/companies/${id}/providerselection`, company)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getCompanyFavIcon() {\n return axios\n .get(`/companies/faviconbase64`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default CompanyAPI;\n","import CompanyAPI from \"./../../common/api/service/CompanyService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getCompaniesStart = () => {\n return {\n type: actionTypes.GET_COMPANIES_START,\n };\n};\n\nexport const getCompaniesSuccess = (companies) => {\n return {\n type: actionTypes.GET_COMPANIES_SUCCESS,\n companies,\n };\n};\n\nexport const getCompaniesFail = (error) => {\n return {\n type: actionTypes.GET_COMPANIES_FAIL,\n error: error,\n };\n};\n\nexport const getCompanies = (companyType) => {\n return (dispatch) => {\n dispatch(getCompaniesStart());\n\n return CompanyAPI.getCompanies(companyType)\n .then((res) => {\n dispatch(getCompaniesSuccess(res));\n })\n .catch((err) => {\n dispatch(getCompaniesFail(err));\n });\n };\n};\n\nexport const getDefaultCompanyStart = () => {\n return {\n type: actionTypes.GET_DEFAULT_COMPANY_START,\n };\n};\n\nexport const getDefaultCompanySuccess = (defaultCompany) => {\n return {\n type: actionTypes.GET_DEFAULT_COMPANY_SUCCESS,\n defaultCompany,\n };\n};\n\nexport const getDefaultCompanyFail = (error) => {\n return {\n type: actionTypes.GET_DEFAULT_COMPANY_FAIL,\n error: error,\n };\n};\n\nexport const getDefaultCompany = () => {\n return (dispatch) => {\n dispatch(getDefaultCompanyStart());\n\n return CompanyAPI.getDefaultCompany()\n .then((res) => {\n dispatch(getDefaultCompanySuccess(res));\n })\n .catch((err) => {\n dispatch(getDefaultCompanyFail(err));\n });\n };\n};\n\nexport const getCompanyBrandingLogoStart = () => {\n return {\n type: actionTypes.GET_COMPANY_BRANDING_LOGO_START,\n };\n};\n\nexport const getCompanyBrandingLogoSuccess = (brandingLogoImage) => {\n return {\n type: actionTypes.GET_COMPANY_BRANDING_LOGO_SUCCESS,\n brandingLogoImage,\n };\n};\n\nexport const getCompanyBrandingLogoFail = (error) => {\n return {\n type: actionTypes.GET_COMPANY_BRANDING_LOGO_FAIL,\n error: error,\n };\n};\n\nexport const getCompanyBrandingLogo = () => {\n return (dispatch) => {\n dispatch(getCompanyBrandingLogoStart());\n\n return CompanyAPI.getCompanyBrandingLogo()\n .then((res) => {\n dispatch(getCompanyBrandingLogoSuccess(res));\n })\n .catch((err) => {\n dispatch(getCompanyBrandingLogoFail(err));\n });\n };\n};\n\nexport const getCompanyFavIconStart = () => {\n return {\n type: actionTypes.GET_COMPANY_FAVICON_START,\n };\n};\n\nexport const getCompanyFavIconSuccess = (favIconImage) => {\n return {\n type: actionTypes.GET_COMPANY_FAVICON_SUCCESS,\n favIconImage,\n };\n};\n\nexport const getCompanyFavIconFail = (error) => {\n return {\n type: actionTypes.GET_COMPANY_FAVICON_FAIL,\n error: error,\n };\n};\n\nexport const getCompanyFavIcon = () => {\n return (dispatch) => {\n dispatch(getCompanyFavIconStart());\n\n return CompanyAPI.getCompanyFavIcon()\n .then((res) => {\n dispatch(getCompanyFavIconSuccess(res));\n })\n .catch((err) => {\n dispatch(getCompanyFavIconFail(err));\n });\n };\n};\n\nexport const createCompanyStart = () => {\n return {\n type: actionTypes.CREATE_COMPANY_START,\n };\n};\n\nexport const createCompanySuccess = (addedCompany) => {\n return {\n type: actionTypes.CREATE_COMPANY_SUCCESS,\n addedCompany,\n };\n};\n\nexport const createCompanyFail = (error) => {\n return {\n type: actionTypes.CREATE_COMPANY_FAIL,\n error: error,\n };\n};\n\nexport const createCompany = (company) => {\n return (dispatch) => {\n dispatch(createCompanyStart());\n\n return CompanyAPI.addNewCompany(company)\n .then((res) => {\n dispatch(createCompanySuccess(res));\n })\n .catch((err) => {\n dispatch(createCompanyFail(err));\n });\n };\n};\n\nexport const updateCompanyStart = () => {\n return {\n type: actionTypes.UPDATE_COMPANY_START,\n };\n};\n\nexport const updateCompanySuccess = (updatedCompany) => {\n return {\n type: actionTypes.UPDATE_COMPANY_SUCCESS,\n updatedCompany,\n };\n};\n\nexport const updateCompanyFail = (error) => {\n return {\n type: actionTypes.UPDATE_COMPANY_FAIL,\n error: error,\n };\n};\n\nexport const updateCompany = (id, company) => {\n return (dispatch) => {\n dispatch(updateCompanyStart());\n\n return CompanyAPI.updateCompany(id, company)\n .then((res) => {\n dispatch(updateCompanySuccess(res));\n })\n .catch((err) => {\n dispatch(updateCompanyFail(err));\n });\n };\n};\n\nexport const updateCompanyProviderSelection = (id, company) => {\n return (dispatch) => {\n dispatch(updateCompanyStart());\n\n return CompanyAPI.updateCompanyProviderSelection(id, company)\n .then((res) => {\n dispatch(updateCompanySuccess(res));\n })\n .catch((err) => {\n dispatch(updateCompanyFail(err));\n });\n };\n};\n\nexport const getSelectedProviderCompaniesStart = () => {\n return {\n type: actionTypes.GET_SELECTED_PROVIDER_COMPANIES_START,\n };\n};\n\nexport const getSelectedProviderCompaniesSuccess = (companies) => {\n return {\n type: actionTypes.GET_SELECTED_PROVIDER_COMPANIES_SUCCESS,\n companies,\n };\n};\n\nexport const getSelectedProviderCompaniesFail = (error) => {\n return {\n type: actionTypes.GET_SELECTED_PROVIDER_COMPANIES_FAIL,\n error: error,\n };\n};\n\nexport const getSelectedProviderCompanies = () => {\n return (dispatch) => {\n dispatch(getSelectedProviderCompaniesStart());\n\n return CompanyAPI.getSelectedProviderCompanies()\n .then((res) => {\n dispatch(getSelectedProviderCompaniesSuccess(res));\n })\n .catch((err) => {\n dispatch(getSelectedProviderCompaniesFail(err));\n });\n };\n};\n\nexport const getProviderCompaniesStart = () => {\n return {\n type: actionTypes.GET_PROVIDER_COMPANIES_START,\n };\n};\n\nexport const getProviderCompaniesSuccess = (companies) => {\n return {\n type: actionTypes.GET_PROVIDER_COMPANIES_SUCCESS,\n companies,\n };\n};\n\nexport const getProviderCompaniesFail = (error) => {\n return {\n type: actionTypes.GET_PROVIDER_COMPANIES_FAIL,\n error: error,\n };\n};\n\nexport const getProviderCompanies = () => {\n return (dispatch) => {\n dispatch(getProviderCompaniesStart());\n\n return CompanyAPI.getProviderCompanies()\n .then((res) => {\n dispatch(getProviderCompaniesSuccess(res));\n })\n .catch((err) => {\n dispatch(getProviderCompaniesFail(err));\n });\n };\n};\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass ConfigAPI {\n static getConfigSamlEnabledStatus() {\n return axios\n .get(`/configs/samlenabled`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getConfigCurrAssessment() {\n return axios\n .get(`/configs/assessment`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getContainerConfig() {\n return axios\n .get(`/configs/containerconfig`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getAdminConfig() {\n return axios\n .get(`/configs/adminconfig`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateAdminConfig(config) {\n return axios\n .put(`/configs/adminconfig`, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateAdminPersonMiscellaneousConfig(config) {\n return axios\n .put(`/configs/adminconfig/personMiscellaneous`, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static downloadPowerBIModel() {\n return axios\n .get(`/configs/downloadPowerBiModel`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getContainerAppSetting() {\n return axios\n .get(`/configs/containerappsetting`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateContainerAppSetting(appSetting) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n body.append(\"ssoSamlEnable\", appSetting.ssoSamlEnable);\n body.append(\"ssoSamlEntityId\", appSetting.ssoSamlEntityId);\n body.append(\"restrictLoginSSOOnly\", appSetting.restrictLoginSSOOnly);\n body.append(\"byPassLoginPage\", appSetting.byPassLoginPage);\n body.append(\"ssoSamlIpConfigurationOption\", appSetting.ssoSamlIpConfigurationOption ? appSetting.ssoSamlIpConfigurationOption : \"AUTO\");\n\n body.append(\"ssoSamlIpMetadataAddress\", appSetting.ssoSamlIpMetadataAddress ? appSetting.ssoSamlIpMetadataAddress : \"\");\n body.append(\"ssoSamlIpEntityId\", appSetting.ssoSamlIpEntityId ? appSetting.ssoSamlIpEntityId : \"\");\n body.append(\"ssoSamlIpSingleSignOnEndpoint\", appSetting.ssoSamlIpSingleSignOnEndpoint ? appSetting.ssoSamlIpSingleSignOnEndpoint : \"\");\n body.append(\"ssoSamlIpCertificateKeyVaultName\", appSetting.ssoSamlIpCertificateKeyVaultName ? appSetting.ssoSamlIpCertificateKeyVaultName : \"\");\n\n body.append(\"ssoSamlClaimEmailAddressType\", appSetting.ssoSamlClaimEmailAddressType);\n\n if (appSetting && appSetting.ssoSamlIpCertificateFile) {\n body.append(\"ssoSamlIpCertificateFile\", appSetting.ssoSamlIpCertificateFile);\n }\n\n return axios\n .post(`/configs/containerappsetting`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getActiveUserCountStatus() {\n return axios\n .get(`/configs/activeUserCountStatus`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static inactivationUsersLessLogin() {\n return axios\n .post(`/configs/inactivationUsersLessLogin`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportMigrationImpactAssessmentReports() {\n return axios\n .get(`/configs/exportMigrationImpactAssessmentReports`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportMigrationImpactAssessmentReportsToEmail() {\n return axios\n .post(`/configs/exportMigrationImpactAssessmentReportsToEmail`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static downloadMigrationImpactAssessmentReports(token) {\n return axios\n .get(`/configs/downloadMigrationImpactAssessmentReports/${token}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static downloadTemplateReport(reportTemplateType) {\n return axios\n .get(`/configs/downloadReportTemplate/${reportTemplateType}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getTemplateReportName(reportTemplateType) {\n return axios\n .get(`/configs/reportTemplateName/${reportTemplateType}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateTemplateReport(reportTemplateType, reportTemplateFile) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n body.append(\"reportTemplateFile\", reportTemplateFile);\n\n return axios\n .post(`/configs/updateReportTemplate/${reportTemplateType}`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static clearTemplateReport(reportTemplateType) {\n return axios\n .post(`/configs/clearReportTemplate/${reportTemplateType}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default ConfigAPI;\n","import ConfigAPI from \"./../../common/api/service/ConfigService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getSamlEnabledStatusStart = () => {\n return {\n type: actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_START,\n };\n};\n\nexport const getSamlEnabledStatusSuccess = (samlEnabled, restrictLoginSSOOnly, byPassLoginPage) => {\n return {\n type: actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_SUCCESS,\n samlEnabled,\n restrictLoginSSOOnly,\n byPassLoginPage,\n };\n};\n\nexport const getSamlEnabledStatusFail = (error) => {\n return {\n type: actionTypes.GET_CONFIG_SAML_ENABLED_STATUS_FAIL,\n error: error,\n };\n};\n\nexport const getSamlEnabledStatus = () => {\n return (dispatch) => {\n dispatch(getSamlEnabledStatusStart());\n\n return ConfigAPI.getConfigSamlEnabledStatus()\n .then((res) => {\n dispatch(getSamlEnabledStatusSuccess(res.samlEnabled, res.restrictLoginSSOOnly, res.byPassLoginPage));\n })\n .catch((err) => {\n dispatch(getSamlEnabledStatusFail(err));\n });\n };\n};\n\nexport const clearSAMLEnabledStatus = () => {\n return {\n type: actionTypes.CLEAR_SAML_ENABLED_STATUS,\n };\n};\n\nexport const getCurrAssessmentStart = () => {\n return {\n type: actionTypes.GET_CONFIG_CURR_ASSESSMENT_START,\n };\n};\n\nexport const getCurrAssessmentSuccess = (currAssessment) => {\n return {\n type: actionTypes.GET_CONFIG_CURR_ASSESSMENT_SUCCESS,\n currAssessment,\n };\n};\n\nexport const getCurrAssessmentFail = (error) => {\n return {\n type: actionTypes.GET_CONFIG_CURR_ASSESSMENT_FAIL,\n error: error,\n };\n};\n\nexport const getCurrAssessment = () => {\n return (dispatch) => {\n dispatch(getCurrAssessmentStart());\n\n return ConfigAPI.getConfigCurrAssessment()\n .then((res) => {\n dispatch(getCurrAssessmentSuccess(res));\n })\n .catch((err) => {\n dispatch(getCurrAssessmentFail(err));\n });\n };\n};\n\nexport const clearCurrAssessment = () => {\n return {\n type: actionTypes.CLEAR_CONFIG_CURR_ASSESSMENT,\n };\n};\n\nexport const getContainerConfigStart = () => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_START,\n };\n};\n\nexport const getContainerConfigSuccess = (containerConfig) => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_SUCCESS,\n containerConfig,\n };\n};\n\nexport const getContainerConfigFail = (error) => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_FAIL,\n error: error,\n };\n};\n\nexport const getContainerConfig = () => {\n return (dispatch) => {\n dispatch(getContainerConfigStart());\n\n return ConfigAPI.getContainerConfig()\n .then((res) => {\n dispatch(getContainerConfigSuccess(res));\n })\n .catch((err) => {\n dispatch(getContainerConfigFail(err));\n });\n };\n};\n\nexport const getContainerConfigWithoutLoadingStart = () => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_START,\n };\n};\n\nexport const getContainerConfigWithoutLoadingSuccess = (containerConfig) => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_SUCCESS,\n containerConfig,\n };\n};\n\nexport const getContainerConfigWithoutLoadingFail = (error) => {\n return {\n type: actionTypes.GET_CONTAINER_CONFIG_WITHOUT_LOADING_FAIL,\n error: error,\n };\n};\n\nexport const getContainerConfigWithoutLoading = () => {\n return (dispatch) => {\n dispatch(getContainerConfigWithoutLoadingStart());\n\n return ConfigAPI.getContainerConfig()\n .then((res) => {\n dispatch(getContainerConfigWithoutLoadingSuccess(res));\n })\n .catch((err) => {\n dispatch(getContainerConfigWithoutLoadingFail(err));\n });\n };\n};\n\nexport const getAdminConfigStart = () => {\n return {\n type: actionTypes.GET_ADMIN_CONFIG_START,\n };\n};\n\nexport const getAdminConfigSuccess = (config) => {\n return {\n type: actionTypes.GET_ADMIN_CONFIG_SUCCESS,\n config,\n };\n};\n\nexport const getAdminConfigFail = (error) => {\n return {\n type: actionTypes.GET_ADMIN_CONFIG_FAIL,\n error: error,\n };\n};\n\nexport const getAdminConfig = () => {\n return (dispatch) => {\n dispatch(getAdminConfigStart());\n\n return ConfigAPI.getAdminConfig()\n .then((res) => {\n dispatch(getAdminConfigSuccess(res));\n })\n .catch((err) => {\n dispatch(getAdminConfigFail(err));\n });\n };\n};\n\nexport const updateAdminConfigStart = () => {\n return {\n type: actionTypes.UPDATE_ADMIN_CONFIG_START,\n };\n};\n\nexport const updateAdminConfigSuccess = (updatedConfig) => {\n return {\n type: actionTypes.UPDATE_ADMIN_CONFIG_SUCCESS,\n updatedConfig,\n };\n};\n\nexport const updateAdminConfigFail = (error) => {\n return {\n type: actionTypes.UPDATE_ADMIN_CONFIG_FAIL,\n error: error,\n };\n};\n\nexport const updateAdminConfig = (config) => {\n return (dispatch) => {\n dispatch(updateAdminConfigStart());\n\n return ConfigAPI.updateAdminConfig(config)\n .then((res) => {\n dispatch(updateAdminConfigSuccess(res));\n })\n .catch((err) => {\n dispatch(updateAdminConfigFail(err));\n });\n };\n};\n\nexport const updateAdminPersonMiscellaneousConfig = (config) => {\n return (dispatch) => {\n dispatch(updateAdminConfigStart());\n\n return ConfigAPI.updateAdminPersonMiscellaneousConfig(config)\n .then((res) => {\n dispatch(updateAdminConfigSuccess(res));\n })\n .catch((err) => {\n dispatch(updateAdminConfigFail(err));\n });\n };\n};\n\nexport const downloadPowerBIModelStart = () => {\n return {\n type: actionTypes.DOWNLOAD_POWERBIMODEL_START,\n };\n};\n\nexport const downloadPowerBIModelSuccess = (blobData) => {\n return {\n type: actionTypes.DOWNLOAD_POWERBIMODEL_SUCCESS,\n blobData,\n };\n};\n\nexport const downloadPowerBIModelFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_POWERBIMODEL_FAIL,\n error: error,\n };\n};\n\nexport const downloadPowerBIModel = () => {\n return (dispatch) => {\n dispatch(downloadPowerBIModelStart());\n\n return ConfigAPI.downloadPowerBIModel()\n .then((res) => {\n dispatch(downloadPowerBIModelSuccess(res));\n })\n .catch((err) => {\n dispatch(downloadPowerBIModelFail(err));\n });\n };\n};\n\nexport const getContainerAppSettingStart = () => {\n return {\n type: actionTypes.GET_CONTAINER_APP_SETTING_START,\n };\n};\n\nexport const getContainerAppSettingSuccess = (containerAppSetting) => {\n return {\n type: actionTypes.GET_CONTAINER_APP_SETTING_SUCCESS,\n containerAppSetting,\n };\n};\n\nexport const getContainerAppSettingFail = (error) => {\n return {\n type: actionTypes.GET_CONTAINER_APP_SETTING_FAIL,\n error: error,\n };\n};\n\nexport const getContainerAppSetting = () => {\n return (dispatch) => {\n dispatch(getContainerAppSettingStart());\n\n return ConfigAPI.getContainerAppSetting()\n .then((res) => {\n dispatch(getContainerAppSettingSuccess(res));\n })\n .catch((err) => {\n dispatch(getContainerAppSettingFail(err));\n });\n };\n};\n\nexport const updateContainerAppSettingStart = () => {\n return {\n type: actionTypes.UPDATE_CONTAINER_APP_SETTING_START,\n };\n};\n\nexport const updateContainerAppSettingSuccess = (containerAppSetting) => {\n return {\n type: actionTypes.UPDATE_CONTAINER_APP_SETTING_SUCCESS,\n containerAppSetting,\n };\n};\n\nexport const updateContainerAppSettingFail = (error) => {\n return {\n type: actionTypes.UPDATE_CONTAINER_APP_SETTING_FAIL,\n error: error,\n };\n};\n\nexport const updateContainerAppSetting = (appSetting) => {\n return (dispatch) => {\n dispatch(updateContainerAppSettingStart());\n\n return ConfigAPI.updateContainerAppSetting(appSetting)\n .then((res) => {\n dispatch(updateContainerAppSettingSuccess(res));\n })\n .catch((err) => {\n dispatch(updateContainerAppSettingFail(err));\n });\n };\n};\n\nexport const getActiveUserCountStatusStart = () => {\n return {\n type: actionTypes.GET_ACTIVE_USER_COUNT_STATUS_START,\n };\n};\n\nexport const getActiveUserCountStatusSuccess = (activeUserCount, showActiveUserCountNotification) => {\n return {\n type: actionTypes.GET_ACTIVE_USER_COUNT_STATUS_SUCCESS,\n activeUserCount,\n showActiveUserCountNotification,\n };\n};\n\nexport const getActiveUserCountStatusFail = (error) => {\n return {\n type: actionTypes.GET_ACTIVE_USER_COUNT_STATUS_FAIL,\n error: error,\n };\n};\n\nexport const getActiveUserCountStatus = () => {\n return (dispatch) => {\n dispatch(getActiveUserCountStatusStart());\n\n return ConfigAPI.getActiveUserCountStatus()\n .then((res) => {\n dispatch(getActiveUserCountStatusSuccess(res.activeUserCount, res.showNotification));\n })\n .catch((err) => {\n dispatch(getActiveUserCountStatusFail(err));\n });\n };\n};\n\nexport const clearActiveUserCountStatusState = () => {\n return {\n type: actionTypes.CLEAR_ACTIVE_USER_COUNT_STATUS,\n };\n};\n\nexport const executeInactivationUsersLessLoginStart = () => {\n return {\n type: actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_START,\n };\n};\n\nexport const executeInactivationUsersLessLoginSuccess = (numberOfPersonsPutToInactive) => {\n return {\n type: actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_SUCCESS,\n numberOfPersonsPutToInactive,\n };\n};\n\nexport const executeInactivationUsersLessLoginFail = (error) => {\n return {\n type: actionTypes.EXECUTE_INACTIVATION_USERS_LESS_LOGIN_FAIL,\n error: error,\n };\n};\n\nexport const executeInactivationUsersLessLogin = () => {\n return (dispatch) => {\n dispatch(executeInactivationUsersLessLoginStart());\n\n return ConfigAPI.inactivationUsersLessLogin()\n .then((res) => {\n dispatch(executeInactivationUsersLessLoginSuccess(res.numberOfPersonsPutToInactive));\n })\n .catch((err) => {\n dispatch(executeInactivationUsersLessLoginFail(err));\n });\n };\n};\n\nexport const exportMigrationImpactAssessmentReportsStart = () => {\n return {\n type: actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_START,\n };\n};\n\nexport const exportMigrationImpactAssessmentReportsToEmailStart = () => {\n return {\n type: actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_TOEMAIL_START,\n };\n};\n\nexport const exportMigrationImpactAssessmentReportsSuccess = (printData) => {\n return {\n type: actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_SUCCESS,\n printData,\n };\n};\n\nexport const exportMigrationImpactAssessmentReportsFail = (error) => {\n return {\n type: actionTypes.EXPORT_MIGRATION_IMPACT_ASSESSMENT_REPORTS_FAIL,\n error: error,\n };\n};\n\nexport const exportMigrationImpactAssessmentReports = () => {\n return (dispatch) => {\n dispatch(exportMigrationImpactAssessmentReportsStart());\n\n return ConfigAPI.exportMigrationImpactAssessmentReports()\n .then((res) => {\n dispatch(exportMigrationImpactAssessmentReportsSuccess(res));\n })\n .catch((err) => {\n dispatch(exportMigrationImpactAssessmentReportsFail(err));\n });\n };\n};\n\nexport const exportMigrationImpactAssessmentReportsToEmail = () => {\n return (dispatch) => {\n dispatch(exportMigrationImpactAssessmentReportsToEmailStart());\n\n return ConfigAPI.exportMigrationImpactAssessmentReportsToEmail()\n .then((res) => {\n dispatch(exportMigrationImpactAssessmentReportsSuccess(res));\n })\n .catch((err) => {\n dispatch(exportMigrationImpactAssessmentReportsFail(err));\n });\n };\n};\n\nexport const downloadMigrationImpactAssessmentReports = (token) => {\n return (dispatch) => {\n dispatch(exportMigrationImpactAssessmentReportsStart());\n\n return ConfigAPI.downloadMigrationImpactAssessmentReports(token)\n .then((res) => {\n if (res) {\n dispatch(exportMigrationImpactAssessmentReportsSuccess(res));\n } else {\n dispatch(exportMigrationImpactAssessmentReportsFail(res));\n }\n })\n .catch((err) => {\n dispatch(exportMigrationImpactAssessmentReportsFail(err));\n });\n };\n};\n\nexport const getReportTemplateNameStart = () => {\n return {\n type: actionTypes.GET_REPORT_TEMPLATE_NAME_START,\n };\n};\n\nexport const getReportTemplateNameSuccess = (reportTemplateName) => {\n return {\n type: actionTypes.GET_REPORT_TEMPLATE_NAME_SUCCESS,\n reportTemplateName,\n };\n};\n\nexport const getReportTemplateNameFail = (error) => {\n return {\n type: actionTypes.GET_REPORT_TEMPLATE_NAME_FAIL,\n error: error,\n };\n};\n\nexport const getReportTemplateName = (reportTemplateType) => {\n return (dispatch) => {\n dispatch(getReportTemplateNameStart());\n\n return ConfigAPI.getTemplateReportName(reportTemplateType)\n .then((res) => {\n dispatch(getReportTemplateNameSuccess(res));\n })\n .catch((err) => {\n dispatch(getReportTemplateNameFail(err));\n });\n };\n};\n\nexport const downloadReportTemplateStart = () => {\n return {\n type: actionTypes.DOWNLOAD_REPORT_TEMPLATE_START,\n };\n};\n\nexport const downloadReportTemplateSuccess = (blobData) => {\n return {\n type: actionTypes.DOWNLOAD_REPORT_TEMPLATE_SUCCESS,\n blobData,\n };\n};\n\nexport const downloadReportTemplateFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_REPORT_TEMPLATE_FAIL,\n error: error,\n };\n};\n\nexport const downloadReportTemplate = (reportTemplateType) => {\n return (dispatch) => {\n dispatch(downloadReportTemplateStart());\n\n return ConfigAPI.downloadTemplateReport(reportTemplateType)\n .then((res) => {\n dispatch(downloadReportTemplateSuccess(res));\n })\n .catch((err) => {\n dispatch(downloadReportTemplateFail(err));\n });\n };\n};\n\nexport const updateReportTemplateStart = () => {\n return {\n type: actionTypes.UPDATE_REPORT_TEMPLATE_START,\n };\n};\n\nexport const updateReportTemplateSuccess = () => {\n return {\n type: actionTypes.UPDATE_REPORT_TEMPLATE_SUCCESS,\n };\n};\n\nexport const updateReportTemplateFail = (error) => {\n return {\n type: actionTypes.UPDATE_REPORT_TEMPLATE_FAIL,\n error: error,\n };\n};\n\nexport const updateReportTemplate = (reportTemplateType, reportTemplateFile) => {\n return (dispatch) => {\n dispatch(updateReportTemplateStart());\n\n return ConfigAPI.updateTemplateReport(reportTemplateType, reportTemplateFile)\n .then((res) => {\n dispatch(updateReportTemplateSuccess(res));\n })\n .catch((err) => {\n dispatch(updateReportTemplateFail(err));\n });\n };\n};\n\nexport const clearReportTemplate = (reportTemplateType) => {\n return (dispatch) => {\n dispatch(updateReportTemplateStart());\n\n return ConfigAPI.clearTemplateReport(reportTemplateType)\n .then((res) => {\n dispatch(updateReportTemplateSuccess(res));\n })\n .catch((err) => {\n dispatch(updateReportTemplateFail(err));\n });\n };\n};\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass ContentAPI {\n static getContentTranslations(languageId, pages) {\n return axios\n .get(`/contents/${languageId}/${pages}`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default ContentAPI;","import ContentAPI from \"./../../common/api/service/ContentService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getContentTranslationsStart = () => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_START,\n };\n};\n\nexport const getContentTranslationsSuccess = (contentTranslations) => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_SUCCESS,\n contentTranslations,\n };\n};\n\nexport const getContentTranslationsFail = (error) => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_FAIL,\n error: error,\n };\n};\n\nexport const getContentTranslations = (languageId, pages) => {\n return (dispatch) => {\n dispatch(getContentTranslationsStart());\n\n return ContentAPI.getContentTranslations(languageId, pages)\n .then((res) => {\n if (res) {\n dispatch(getContentTranslationsSuccess(res));\n } else {\n dispatch(getContentTranslationsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getContentTranslationsFail(err));\n });\n };\n};\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass LanguageAPI {\n static getLanguages() {\n return axios\n .get(`/languages`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default LanguageAPI;","import * as actionTypes from \"./actionTypes\";\n\nimport LanguageAPI from \"./../../common/api/service/LanguageService\";\n\nexport const getLanguagesStart = () => {\n return {\n type: actionTypes.GET_LANGUAGES_START,\n };\n};\n\nexport const getLanguagesSuccess = (languages) => {\n return {\n type: actionTypes.GET_LANGUAGES_SUCCESS,\n languages\n };\n};\n\nexport const getLanguagesFail = error => {\n return {\n type: actionTypes.GET_LANGUAGES_FAIL,\n error: error,\n };\n};\n\nexport const getLanguages = () => {\n return dispatch => {\n dispatch(getLanguagesStart());\n\n return LanguageAPI.getLanguages()\n .then(res => {\n if (res) {\n dispatch(getLanguagesSuccess(res));\n } else {\n dispatch(getLanguagesFail(res));\n }\n })\n .catch(err => {\n dispatch(getLanguagesFail(err));\n });\n };\n};\n\nexport const setLanguage = (language) => {\n return {\n type: actionTypes.SET_LANGUAGE,\n language,\n };\n};","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass ProfileAPI {\n static getMyProfileTypes() {\n return axios\n .get(`/profiles/myprofiletypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleProfileTypes(email) {\n return axios\n .get(`/profiles/managedPeopleProfiletypes?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMyProfileVersions(profileType) {\n return axios\n .get(`/profiles/myprofileversions${profileType ? `?profileType=${profileType}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleProfileVersions(email, profileType) {\n return axios\n .get(`/profiles/managePeopleProfileversions?email=${email}${profileType ? `&profileType=${profileType}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMyLorPofiles(sfiaVersion, version, profileType) {\n let url = `/profiles/mylorprofiles`;\n let count = 0;\n\n if (sfiaVersion) {\n url += `?sfiaVersion=${sfiaVersion}`;\n count += 1;\n }\n\n if (version) {\n url += `${count == 0 ? \"?\" : \"&\"}version=${version}`;\n count += 1;\n }\n\n if (profileType) {\n url += `${count == 0 ? \"?\" : \"&\"}profileType=${profileType}`;\n count += 1;\n }\n\n return axios\n .get(url)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleLorPofiles(email, sfiaVersion, version, profileType) {\n let url = `/profiles/managedPeopleLorprofiles?email=${email}`;\n\n if (sfiaVersion) {\n url += `&sfiaVersion=${sfiaVersion}`;\n }\n\n if (version) {\n url += `&version=${version}`;\n }\n\n if (profileType) {\n url += `&profileType=${profileType}`;\n }\n\n return axios\n .get(url)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMySkillPofiles(sfiaVersion, version, profileType) {\n let url = `/profiles/myskillprofiles`;\n let count = 0;\n\n if (sfiaVersion) {\n url += `?sfiaVersion=${sfiaVersion}`;\n count += 1;\n }\n\n if (version) {\n url += `${count == 0 ? \"?\" : \"&\"}version=${version}`;\n count += 1;\n }\n\n if (profileType) {\n url += `${count == 0 ? \"?\" : \"&\"}profileType=${profileType}`;\n count += 1;\n }\n\n return axios\n .get(url)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleSkillPofiles(email, sfiaVersion, version, profileType) {\n let url = `/profiles/managedPeopleSkillprofiles?email=${email}`;\n\n if (sfiaVersion) {\n url += `&sfiaVersion=${sfiaVersion}`;\n }\n\n if (version) {\n url += `&version=${version}`;\n }\n\n if (profileType) {\n url += `&profileType=${profileType}`;\n }\n\n return axios\n .get(url)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static printMyPofiles(endorsed) {\n return axios\n .get(`/profiles/printprofiles${endorsed ? \"?endorsed=true\" : \"\"}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static printManagedPeoplePofiles(email, endorsed) {\n return axios\n .get(`/profiles/printManagedPeopleProfiles?email=${email}${endorsed ? \"&endorsed=true\" : \"\"}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static emailMyPofilesReport() {\n return axios\n .get(`/profiles/emailprofilesreport`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static updateMyProfile(updatedProfiles) {\n const request = {\n lorProfileRequests: updatedProfiles.filter((it) => it.source == \"lorProfiles\"),\n skillProfileRequests: updatedProfiles.filter((it) => it.source == \"skillProfiles\"),\n };\n\n return axios\n .put(\"/profiles/myprofiles\", request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleProfile(email, updatedProfiles) {\n const request = {\n lorProfileRequests: updatedProfiles.filter((it) => it.source == \"lorProfiles\"),\n skillProfileRequests: updatedProfiles.filter((it) => it.source == \"skillProfiles\"),\n };\n\n return axios\n .put(`/profiles/managedPeopleProfiles/${email}`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleEndorsedStatus(email, status) {\n return axios\n .put(`/profiles/managedPeopleProfiles/${email}/updateEndorsedStatus`, { status })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static copyEndorsedProfile() {\n return axios\n .post(\"/profiles/copyendorsed\")\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static copyProfile(version, profileType) {\n return axios\n .post(\"/profiles/copyprofile\", {\n version,\n profileType,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateMyLorProfileComment(id, comment) {\n return axios\n .post(`/profiles/mylorprofiles/${id}/updatecomment`, {\n comment,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleLorProfileComment(id, comment, email) {\n return axios\n .post(`/profiles/managedPeopleLorProfiles/${id}/updatecomment`, {\n comment,\n email,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateMySkillProfileComment(id, comment) {\n return axios\n .post(`/profiles/myskillprofiles/${id}/updatecomment`, {\n comment,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleSkillProfileComment(id, comment, email) {\n return axios\n .post(`/profiles/managedPeopleSkillProfiles/${id}/updatecomment`, {\n comment,\n email,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static generateMyPersonalDataExcel() {\n return axios\n .get(`/profiles/generatepersonaldataexcel`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static submitUpdateProfileSuggestion(email, comment, suggestedSkills) {\n return axios\n .post(`/profiles/managedPeopleProfiles/${email}/suggestions`, {\n comment,\n skills: suggestedSkills,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static acceptUpdateProfileSuggestion(id, comment, timezoneOffset) {\n return axios\n .post(`/profiles/suggestions/${id}/accept`, { comment, timezoneOffset })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static rejectUpdateProfileSuggestion(id, comment, timezoneOffset) {\n return axios\n .post(`/profiles/suggestions/${id}/reject`, { comment, timezoneOffset })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default ProfileAPI;\n","import ProfileAPI from \"./../../common/api/service/ProfileService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getMyProfileTypesStart = () => {\n return {\n type: actionTypes.GET_MY_PROFILE_TYPES_START,\n };\n};\n\nexport const getMyProfileTypesSuccess = (profileTypes) => {\n return {\n type: actionTypes.GET_MY_PROFILE_TYPES_SUCCESS,\n profileTypes,\n };\n};\n\nexport const getMyProfileTypesFail = (error) => {\n return {\n type: actionTypes.GET_MY_PROFILE_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getMyProfileTypes = () => {\n return (dispatch) => {\n dispatch(getMyProfileTypesStart());\n\n return ProfileAPI.getMyProfileTypes()\n .then((res) => {\n dispatch(getMyProfileTypesSuccess(res));\n })\n .catch((err) => {\n dispatch(getMyProfileTypesFail(err));\n });\n };\n};\n\nexport const getManagedPeopleProfileTypesStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_START,\n };\n};\n\nexport const getManagedPeopleProfileTypesSuccess = (profileTypes) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_SUCCESS,\n profileTypes,\n };\n};\n\nexport const getManagedPeopleProfileTypesFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleProfileTypes = (email) => {\n return (dispatch) => {\n dispatch(getManagedPeopleProfileTypesStart());\n\n return ProfileAPI.getManagedPeopleProfileTypes(email)\n .then((res) => {\n dispatch(getManagedPeopleProfileTypesSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleProfileTypesFail(err));\n });\n };\n};\n\nexport const getMyProfileVersionsStart = () => {\n return {\n type: actionTypes.GET_MY_PROFILE_VERSIONS_START,\n };\n};\n\nexport const getMyProfileVersionsSuccess = (profileVersions) => {\n return {\n type: actionTypes.GET_MY_PROFILE_VERSIONS_SUCCESS,\n profileVersions,\n };\n};\n\nexport const getMyProfileVersionsFail = (error) => {\n return {\n type: actionTypes.GET_MY_PROFILE_VERSIONS_FAIL,\n error: error,\n };\n};\n\nexport const getMyProfileVersions = (profileType) => {\n return (dispatch) => {\n dispatch(getMyProfileVersionsStart());\n\n return ProfileAPI.getMyProfileVersions(profileType)\n .then((res) => {\n dispatch(getMyProfileVersionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getMyProfileVersionsFail(err));\n });\n };\n};\n\nexport const getManagedPeopleProfileVersionsStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_START,\n };\n};\n\nexport const getManagedPeopleProfileVersionsSuccess = (profileVersions) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_SUCCESS,\n profileVersions,\n };\n};\n\nexport const getManagedPeopleProfileVersionsFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_PROFILE_VERSIONS_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleProfileVersions = (email, profileType) => {\n return (dispatch) => {\n dispatch(getManagedPeopleProfileVersionsStart());\n\n return ProfileAPI.getManagedPeopleProfileVersions(email, profileType)\n .then((res) => {\n dispatch(getManagedPeopleProfileVersionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleProfileVersionsFail(err));\n });\n };\n};\n\nexport const getMyLorProfileStart = () => {\n return {\n type: actionTypes.GET_MY_LOR_PROFILE_START,\n };\n};\n\nexport const getMyLorProfileSuccess = (lorProfiles) => {\n return {\n type: actionTypes.GET_MY_LOR_PROFILE_SUCCESS,\n lorProfiles,\n };\n};\n\nexport const getMyLorProfileFail = (error) => {\n return {\n type: actionTypes.GET_MY_LOR_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const getMyLorProfile = (sfiaVersion, version, profileType) => {\n return (dispatch) => {\n dispatch(getMyLorProfileStart());\n\n return ProfileAPI.getMyLorPofiles(sfiaVersion, version, profileType)\n .then((res) => {\n dispatch(getMyLorProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(getMyLorProfileFail(err));\n });\n };\n};\n\nexport const getManagedPeopleLorProfileStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_START,\n };\n};\n\nexport const getManagedPeopleLorProfileSuccess = (lorProfiles) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_SUCCESS,\n lorProfiles,\n };\n};\n\nexport const getManagedPeopleLorProfileFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LOR_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleLorProfile = (email, sfiaVersion, version, profileType) => {\n return (dispatch) => {\n dispatch(getManagedPeopleLorProfileStart());\n\n return ProfileAPI.getManagedPeopleLorPofiles(email, sfiaVersion, version, profileType)\n .then((res) => {\n dispatch(getManagedPeopleLorProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleLorProfileFail(err));\n });\n };\n};\n\nexport const getMySkillProfileStart = () => {\n return {\n type: actionTypes.GET_MY_SKILL_PROFILE_START,\n };\n};\n\nexport const getMySkillProfileSuccess = (skillProfiles) => {\n return {\n type: actionTypes.GET_MY_SKILL_PROFILE_SUCCESS,\n skillProfiles,\n };\n};\n\nexport const getMySkillProfileFail = (error) => {\n return {\n type: actionTypes.GET_MY_SKILL_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const getMySkillProfile = (sfiaVersion, version, profileType) => {\n return (dispatch) => {\n dispatch(getMySkillProfileStart());\n\n return ProfileAPI.getMySkillPofiles(sfiaVersion, version, profileType)\n .then((res) => {\n //console.log('res', res);\n dispatch(getMySkillProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(getMySkillProfileFail(err));\n });\n };\n};\n\nexport const getManagedPeopleSkillProfileStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_START,\n };\n};\n\nexport const getManagedPeopleSkillProfileSuccess = (skillProfiles) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_SUCCESS,\n skillProfiles,\n };\n};\n\nexport const getManagedPeopleSkillProfileFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_SKILL_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleSkillProfile = (email, sfiaVersion, version, profileType) => {\n return (dispatch) => {\n dispatch(getManagedPeopleSkillProfileStart());\n\n return ProfileAPI.getManagedPeopleSkillPofiles(email, sfiaVersion, version, profileType)\n .then((res) => {\n //console.log('res', res);\n dispatch(getManagedPeopleSkillProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleSkillProfileFail(err));\n });\n };\n};\n\nexport const printMyProfileStart = () => {\n return {\n type: actionTypes.PRINT_MY_PROFILE_START,\n };\n};\n\nexport const printMyProfileSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_MY_PROFILE_SUCCESS,\n printData,\n };\n};\n\nexport const printMyProfileFail = (error) => {\n return {\n type: actionTypes.PRINT_MY_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const printMyProfile = (endorsed) => {\n return (dispatch) => {\n dispatch(printMyProfileStart());\n\n return ProfileAPI.printMyPofiles(endorsed)\n .then((res) => {\n dispatch(printMyProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(printMyProfileFail(err));\n });\n };\n};\n\nexport const printManagedPeopleProfileStart = () => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_START,\n };\n};\n\nexport const printManagedPeopleProfileSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_SUCCESS,\n printData,\n };\n};\n\nexport const printManagedPeopleProfileFail = (error) => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const printManagedPeopleProfile = (email, endorsed) => {\n return (dispatch) => {\n dispatch(printManagedPeopleProfileStart());\n\n return ProfileAPI.printManagedPeoplePofiles(email, endorsed)\n .then((res) => {\n dispatch(printManagedPeopleProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(printManagedPeopleProfileFail(err));\n });\n };\n};\n\nexport const emailMyProfileReportStart = () => {\n return {\n type: actionTypes.EMAIL_MY_PROFILE_REPORT_START,\n };\n};\n\nexport const emailMyProfileReportSuccess = () => {\n return {\n type: actionTypes.EMAIL_MY_PROFILE_REPORT_SUCCESS,\n };\n};\n\nexport const emailMyProfileReportFail = (error) => {\n return {\n type: actionTypes.EMAIL_MY_PROFILE_REPORT_FAIL,\n error: error,\n };\n};\n\nexport const emailMyProfileReport = () => {\n return (dispatch) => {\n dispatch(emailMyProfileReportStart());\n\n return ProfileAPI.emailMyPofilesReport()\n .then((res) => {\n dispatch(emailMyProfileReportSuccess(res));\n })\n .catch((err) => {\n dispatch(emailMyProfileReportFail(err));\n });\n };\n};\n\nexport const generatePersonalDataExcelStart = () => {\n return {\n type: actionTypes.GENERATE_PERSONAL_DATA_EXCEL_START,\n };\n};\n\nexport const generatePersonalDataExcelSuccess = (printData) => {\n return {\n type: actionTypes.GENERATE_PERSONAL_DATA_EXCEL_SUCCESS,\n printData,\n };\n};\n\nexport const generatePersonalDataExcelFail = (error) => {\n return {\n type: actionTypes.GENERATE_PERSONAL_DATA_EXCEL_FAIL,\n error: error,\n };\n};\n\nexport const generatePersonalDataExcel = () => {\n return (dispatch) => {\n dispatch(generatePersonalDataExcelStart());\n\n return ProfileAPI.generateMyPersonalDataExcel()\n .then((res) => {\n dispatch(generatePersonalDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(generatePersonalDataExcelFail(err));\n });\n };\n};\n\nexport const updateMySkillProfileStart = () => {\n return {\n type: actionTypes.UPDATE_SKILL_PROFILES_START,\n };\n};\n\nexport const updateMySkillProfileSuccess = (udpatedSkills) => {\n return {\n type: actionTypes.UPDATE_SKILL_PROFILES_SUCCESS,\n udpatedSkills,\n };\n};\n\nexport const updateMySkillProfileFail = (error) => {\n return {\n type: actionTypes.UPDATE_SKILL_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const clearUpdateMySkillProfile = () => {\n return {\n type: actionTypes.CLEAR_UPDATE_SKILL_PROFILES,\n };\n};\n\nexport const updateMySkillProfile = (updatedSkills) => {\n return (dispatch) => {\n dispatch(updateMySkillProfileStart());\n ProfileAPI.updateMyProfile(updatedSkills);\n };\n};\n\nexport const updateManagedPeopleProfile = (email, updatedSkills) => {\n return (dispatch) => {\n dispatch(updateMySkillProfileStart());\n ProfileAPI.updateManagedPeopleProfile(email, updatedSkills);\n };\n};\n\nexport const updateEndorsedStatusStart = () => {\n return {\n type: actionTypes.UPDATE_ENDORSED_STATUS_START,\n };\n};\n\nexport const updateEndorsedStatusSuccess = (updatedPersonEndorsement) => {\n return {\n type: actionTypes.UPDATE_ENDORSED_STATUS_SUCCESS,\n updatedPersonEndorsement,\n };\n};\n\nexport const updateEndorsedStatusFail = (error) => {\n return {\n type: actionTypes.UPDATE_ENDORSED_STATUS_FAIL,\n error: error,\n };\n};\n\nexport const updateEndorsedStatus = (email, status) => {\n return (dispatch) => {\n dispatch(updateEndorsedStatusStart());\n\n return ProfileAPI.updateManagedPeopleEndorsedStatus(email, status)\n .then((res) => {\n dispatch(updateEndorsedStatusSuccess(res));\n })\n .catch((err) => {\n dispatch(updateEndorsedStatusFail(err));\n });\n };\n};\n\nexport const copyEndorsedProfileStart = () => {\n return {\n type: actionTypes.COPY_ENDORSED_PROFILES_START,\n };\n};\n\nexport const copyEndorsedProfileSuccess = () => {\n return {\n type: actionTypes.COPY_ENDORSED_PROFILES_SUCCESS,\n };\n};\n\nexport const copyEndorsedProfileFail = (error) => {\n return {\n type: actionTypes.COPY_ENDORSED_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const copyEndorsedProfile = () => {\n return (dispatch) => {\n dispatch(copyEndorsedProfileStart());\n\n return ProfileAPI.copyEndorsedProfile()\n .then((res) => {\n dispatch(copyEndorsedProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(copyEndorsedProfileFail(err));\n });\n };\n};\n\nexport const clearCopyEndorsedNotif = () => {\n return {\n type: actionTypes.CLEAR_COPY_ENDORSED_NOTIF,\n };\n};\n\nexport const copyProfileStart = () => {\n return {\n type: actionTypes.COPY_PROFILE_START,\n };\n};\n\nexport const copyProfileSuccess = (updatedSkills) => {\n return {\n type: actionTypes.COPY_PROFILE_SUCCESS,\n updatedSkills,\n };\n};\n\nexport const copyProfileFail = (error) => {\n return {\n type: actionTypes.COPY_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const copyProfile = (version, profileType) => {\n return (dispatch) => {\n dispatch(copyProfileStart());\n\n return ProfileAPI.copyProfile(version, profileType)\n .then((res) => {\n dispatch(copyProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(copyProfileFail(err));\n });\n };\n};\n\nexport const updateMySkillProfileCommentStart = () => {\n return {\n type: actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_START,\n };\n};\n\nexport const updateMySkillProfileCommentSuccess = () => {\n return {\n type: actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_SUCCESS,\n };\n};\n\nexport const updateMySkillProfileCommentFail = (error) => {\n return {\n type: actionTypes.UPDATE_MY_SKILL_PROFILE_COMMENT_FAIL,\n error: error,\n };\n};\n\nexport const updateMySkillProfileComment = (id, comment) => {\n return (dispatch) => {\n dispatch(updateMySkillProfileCommentStart());\n\n return ProfileAPI.updateMySkillProfileComment(id, comment)\n .then((res) => {\n dispatch(updateMySkillProfileCommentSuccess(res));\n })\n .catch((err) => {\n dispatch(updateMySkillProfileCommentFail(err));\n });\n };\n};\n\nexport const updateManagedPeopleSkillProfileCommentStart = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_START,\n };\n};\n\nexport const updateManagedPeopleSkillProfileCommentSuccess = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_SUCCESS,\n };\n};\n\nexport const updateManagedPeopleSkillProfileCommentFail = (error) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_SKILL_PROFILE_COMMENT_FAIL,\n error: error,\n };\n};\n\nexport const updateManagedPeopleSkillProfileComment = (id, comment, email) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleSkillProfileCommentStart());\n\n return ProfileAPI.updateManagedPeopleSkillProfileComment(id, comment, email)\n .then((res) => {\n dispatch(updateManagedPeopleSkillProfileCommentSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleSkillProfileCommentFail(err));\n });\n };\n};\n\nexport const updateMyLorProfileCommentStart = () => {\n return {\n type: actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_START,\n };\n};\n\nexport const updateMyLorProfileCommentSuccess = () => {\n return {\n type: actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_SUCCESS,\n };\n};\n\nexport const updateMyLorProfileCommentFail = (error) => {\n return {\n type: actionTypes.UPDATE_MY_LOR_PROFILE_COMMENT_FAIL,\n error: error,\n };\n};\n\nexport const updateMyLorProfileComment = (id, comment) => {\n return (dispatch) => {\n dispatch(updateMyLorProfileCommentStart());\n\n return ProfileAPI.updateMyLorProfileComment(id, comment)\n .then((res) => {\n dispatch(updateMyLorProfileCommentSuccess(res));\n })\n .catch((err) => {\n dispatch(updateMyLorProfileCommentFail(err));\n });\n };\n};\n\nexport const updateManagedPeopleLorProfileCommentStart = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_START,\n };\n};\n\nexport const updateManagedPeopleLorProfileCommentSuccess = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_SUCCESS,\n };\n};\n\nexport const updateManagedPeopleLorProfileCommentFail = (error) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_LOR_PROFILE_COMMENT_FAIL,\n error: error,\n };\n};\n\nexport const updateManagedPeopleLorProfileComment = (id, comment, email) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleLorProfileCommentStart());\n\n return ProfileAPI.updateManagedPeopleLorProfileComment(id, comment, email)\n .then((res) => {\n dispatch(updateManagedPeopleLorProfileCommentSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleLorProfileCommentFail(err));\n });\n };\n};\n\nexport const submitUpdateProfileSuggestionStart = () => {\n return {\n type: actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_START,\n };\n};\n\nexport const submitUpdateProfileSuggestionSuccess = () => {\n return {\n type: actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_SUCCESS,\n };\n};\n\nexport const submitUpdateProfileSuggestionFail = (error) => {\n return {\n type: actionTypes.SUBMIT_UPDATE_PROFILE_SUGGESTION_FAIL,\n error: error,\n };\n};\n\nexport const submitUpdateProfileSuggestion = (email, comment, skills) => {\n return (dispatch) => {\n dispatch(submitUpdateProfileSuggestionStart());\n\n return ProfileAPI.submitUpdateProfileSuggestion(email, comment, skills)\n .then((res) => {\n dispatch(submitUpdateProfileSuggestionSuccess(res));\n })\n .catch((err) => {\n dispatch(submitUpdateProfileSuggestionFail(err));\n });\n };\n};\n\nexport const acceptUpdateProfileSuggestionStart = () => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_START,\n };\n};\n\nexport const acceptUpdateProfileSuggestionSuccess = () => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_SUCCESS,\n };\n};\n\nexport const acceptUpdateProfileSuggestionFail = (error) => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_SUGGESTION_FAIL,\n error: error,\n };\n};\n\nexport const acceptUpdateProfileSuggestion = (id, comment, timezoneOffset) => {\n return (dispatch) => {\n dispatch(acceptUpdateProfileSuggestionStart());\n\n return ProfileAPI.acceptUpdateProfileSuggestion(id, comment, timezoneOffset)\n .then((res) => {\n dispatch(acceptUpdateProfileSuggestionSuccess(res));\n })\n .catch((err) => {\n dispatch(acceptUpdateProfileSuggestionFail(err));\n });\n };\n};\n\nexport const rejectUpdateProfileSuggestionStart = () => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_START,\n };\n};\n\nexport const rejectUpdateProfileSuggestionSuccess = () => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_SUCCESS,\n };\n};\n\nexport const rejectUpdateProfileSuggestionFail = (error) => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_SUGGESTION_FAIL,\n error: error,\n };\n};\n\nexport const rejectUpdateProfileSuggestion = (id, comment, timezoneOffset) => {\n return (dispatch) => {\n dispatch(rejectUpdateProfileSuggestionStart());\n\n return ProfileAPI.rejectUpdateProfileSuggestion(id, comment, timezoneOffset)\n .then((res) => {\n dispatch(rejectUpdateProfileSuggestionSuccess(res));\n })\n .catch((err) => {\n dispatch(rejectUpdateProfileSuggestionFail(err));\n });\n };\n};\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminProfileAPI {\n static requestCopySelfProfilesAsEndorsed(copiedProfiles) {\n return axios\n .post(`/profiles/requestCopySelfProfilesAsEndorsed`, {\n copiedProfiles: [...copiedProfiles],\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static processCopySelfProfilesAsEndorsed(copyProfileRequestIds) {\n return axios\n .post(`/profiles/processCopySelfProfilesAsEndorsed`, {\n copyProfileRequestIds,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminProfileAPI;\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminPersonAPI {\n static getPersons(includeEndorsements, includeCopySelfProfileStatus, showAdminOnly, includeSelfAssessedProfile) {\n return axios\n .get(`/persons?includeEndorsements=${includeEndorsements ? \"true\" : \"false\"}&includeCopySelfProfileStatus=${includeCopySelfProfileStatus ? \"true\" : \"false\"}&showAdminOnly=${showAdminOnly ? \"true\" : \"false\"}&includeSelfAssessedProfile=${includeSelfAssessedProfile ? \"true\" : \"false\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonsIncRelationships() {\n return axios\n .get(`/persons/relationships`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonsSfiaCredentials() {\n return axios\n .get(`/persons/sfiacredentials`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonsDropdown() {\n return axios\n .get(`/persons/dropdown`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonRoles(personId, roles) {\n return axios\n .post(`/persons/${personId}/updateroles`, {\n roles,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addPerson(person) {\n return axios\n .post(`/persons`, person)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static updatePerson(id, person) {\n return axios\n .put(`/persons/${id}`, person)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonEndorser(id, endorsedById, endorsedBy) {\n return axios\n .post(`/persons/${id}/updateendorser`, {\n endorsedById,\n endorsedBy,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonEndorsementAssessor(id, assessorId, assessorName) {\n return axios\n .post(`/persons/${id}/updateEndorsementAssessor`, {\n assessorId,\n assessorName,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deletePerson(id) {\n return axios\n .delete(`/persons/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static resetPersonPassword(id) {\n return axios\n .post(`/persons/${id}/resetpassword`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportPersonsDataExcel(timezoneOffset) {\n return axios\n .get(`/persons/exportindividuals?timezoneOffset=${timezoneOffset}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportPersonsDataExcelTemplate() {\n return axios\n .get(`/persons/exportindividualstemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportPersonsAssessmentProgressDataExcel(timezoneOffset) {\n return axios\n .get(`/persons/exportprogress?timezoneOffset=${timezoneOffset}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importPersonsDataExcel(operation, personsDataFiles) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n personsDataFiles.forEach((file) => {\n body.append(\"personsData\", file);\n });\n\n body.append(\"operation\", operation);\n\n return axios\n .post(`/persons/importindividuals`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static generatePersonProfileReports(personId, skillProfile, actionPlan, endorsedProfile) {\n return axios\n .post(\n `/persons/generatepersonprofilereports`,\n { personId, skillProfile, actionPlan, endorsedProfile },\n {\n responseType: \"blob\",\n }\n )\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static generateProfileReports(request) {\n return axios\n .post(`/persons/generateprofilereports`, request, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static generateProfileReportsToEmail(request) {\n return axios\n .post(`/persons/generateprofilereportstoemail`, request)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static downloadProfileReports(token) {\n return axios\n .get(`/persons/downloadprofilereports/${token}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static assignPersons(personIds) {\n return axios\n .post(`/persons/assignpersons`, { personIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static unAssignPersons(personIds) {\n return axios\n .post(`/persons/unassignpersons`, { personIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static invitePersons(personIds) {\n return axios\n .post(`/persons/invitepersons`, { personIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static getPageAssignments() {\n return axios\n .get(`/persons/pageassignments`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonPageAssignments(personId) {\n return axios\n .get(`/persons/${personId}/pageassignments`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonPageAssignments(personId, adminRoleName, pageAssignments) {\n return axios\n .post(`/persons/${personId}/pageassignments`, {\n adminRoleName,\n pageAssignments,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportEndorsementsDataExcel(timezoneOffset) {\n return axios\n .get(`/persons/exportendorsements?timezoneOffset=${timezoneOffset}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static getColumnDisplaySettings() {\n return axios\n .get(`/persons/columnDisplaySettings`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateColumnDisplaySetting(columnDisplaySetting) {\n return axios\n .post(`/persons/columnDisplaySettings`, columnDisplaySetting)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportPersonsProfiles(personIds) {\n return axios\n .post(\n `/persons/exportprofiles`,\n { personIds },\n {\n responseType: \"blob\",\n }\n )\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importPersonsProfiles(personProfilesJsons) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n personProfilesJsons.forEach((file) => {\n body.append(\"personProfilesJson\", file);\n });\n\n return axios\n .post(`/persons/importprofiles`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static approveProfileRequests(data) {\n return axios\n .post(`/persons/approveprofilerequests`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportLatestSelfAssessedProfilesDataExcel(timezoneOffset) {\n return axios\n .get(`/persons/exportselfassessedprofiles?timezoneOffset=${timezoneOffset}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminPersonAPI;\n","import AdminProfileAPI from \"../../../common/api/adminservice/AdminProfileService\";\nimport AdminPersonAPI from \"./../../../common/api/adminservice/AdminPersonService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getPersonsStart = () => {\n return {\n type: actionTypes.GET_PERSONS_START,\n };\n};\n\nexport const getPersonsSuccess = (persons) => {\n return {\n type: actionTypes.GET_PERSONS_SUCCESS,\n persons,\n };\n};\n\nexport const getPersonsFail = (error) => {\n return {\n type: actionTypes.GET_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const getPersons = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersons()\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsIncRelationships = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersonsIncRelationships(true)\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsIncEndorsements = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersons(true)\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsIncludeCopySelfProfileStatus = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersons(false, true)\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsIncSelfAssessed = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersons(false, false, false, true)\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsSfiaCredentials = () => {\n return (dispatch) => {\n dispatch(getPersonsStart());\n\n return AdminPersonAPI.getPersonsSfiaCredentials()\n .then((res) => {\n dispatch(getPersonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsFail(err));\n });\n };\n};\n\nexport const getPersonsAdminStart = () => {\n return {\n type: actionTypes.GET_ADMIN_PERSONS_START,\n };\n};\n\nexport const getPersonsAdminSuccess = (persons) => {\n return {\n type: actionTypes.GET_ADMIN_PERSONS_SUCCESS,\n persons,\n };\n};\n\nexport const getPersonsAdminFail = (error) => {\n return {\n type: actionTypes.GET_ADMIN_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const getPersonsAdmin = () => {\n return (dispatch) => {\n dispatch(getPersonsAdminStart());\n\n return AdminPersonAPI.getPersons(false, false, true)\n .then((res) => {\n dispatch(getPersonsAdminSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsAdminFail(err));\n });\n };\n};\n\nexport const getPersonsDropdownStart = () => {\n return {\n type: actionTypes.GET_PERSONS_DROPDOWN_START,\n };\n};\n\nexport const getPersonsDropdownSuccess = (persons) => {\n return {\n type: actionTypes.GET_PERSONS_DROPDOWN_SUCCESS,\n persons,\n };\n};\n\nexport const getPersonsDropdownFail = (error) => {\n return {\n type: actionTypes.GET_PERSONS_DROPDOWN_FAIL,\n error: error,\n };\n};\n\nexport const getPersonsDropdown = () => {\n return (dispatch) => {\n dispatch(getPersonsDropdownStart());\n\n return AdminPersonAPI.getPersonsDropdown()\n .then((res) => {\n dispatch(getPersonsDropdownSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonsDropdownFail(err));\n });\n };\n};\n\nexport const addPersonStart = () => {\n return {\n type: actionTypes.ADD_PERSON_START,\n };\n};\n\nexport const addPersonSuccess = (person) => {\n return {\n type: actionTypes.ADD_PERSON_SUCCESS,\n person,\n };\n};\n\nexport const addPersonFail = (error) => {\n return {\n type: actionTypes.ADD_PERSON_FAIL,\n error: error,\n };\n};\n\nexport const addPerson = (person) => {\n return (dispatch) => {\n dispatch(addPersonStart());\n\n return AdminPersonAPI.addPerson(person)\n .then((res) => {\n dispatch(addPersonSuccess(res));\n })\n .catch((err) => {\n dispatch(addPersonFail(err));\n });\n };\n};\n\nexport const updatePersonStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_START,\n };\n};\n\nexport const updatePersonSuccess = (person) => {\n return {\n type: actionTypes.UPDATE_PERSON_SUCCESS,\n person,\n };\n};\n\nexport const updatePersonFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_FAIL,\n error: error,\n };\n};\n\nexport const updatePerson = (id, person) => {\n return (dispatch) => {\n dispatch(updatePersonStart());\n\n return AdminPersonAPI.updatePerson(id, person)\n .then((res) => {\n dispatch(updatePersonSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonFail(err));\n });\n };\n};\n\nexport const deletePersonStart = () => {\n return {\n type: actionTypes.DELETE_PERSON_START,\n };\n};\n\nexport const deletePersonSuccess = (id) => {\n return {\n type: actionTypes.DELETE_PERSON_SUCCESS,\n id,\n };\n};\n\nexport const deletePersonFail = (error) => {\n return {\n type: actionTypes.DELETE_PERSON_FAIL,\n error: error,\n };\n};\n\nexport const deletePerson = (id) => {\n return (dispatch) => {\n dispatch(deletePersonStart());\n\n return AdminPersonAPI.deletePerson(id)\n .then((res) => {\n dispatch(deletePersonSuccess(id));\n })\n .catch((err) => {\n dispatch(deletePersonFail(err));\n });\n };\n};\n\nexport const resetPersonPasswordStart = () => {\n return {\n type: actionTypes.RESET_PERSON_PASSWORD_START,\n };\n};\n\nexport const resetPersonPasswordSuccess = (id) => {\n return {\n type: actionTypes.RESET_PERSON_PASSWORD_SUCCESS,\n id,\n };\n};\n\nexport const resetPersonPasswordFail = (error) => {\n return {\n type: actionTypes.RESET_PERSON_PASSWORD_FAIL,\n error: error,\n };\n};\n\nexport const resetPersonPassword = (id) => {\n return (dispatch) => {\n dispatch(resetPersonPasswordStart());\n\n return AdminPersonAPI.resetPersonPassword(id)\n .then((res) => {\n dispatch(resetPersonPasswordSuccess(id));\n })\n .catch((err) => {\n dispatch(resetPersonPasswordFail(err));\n });\n };\n};\n\nexport const exportPersonsDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_PERSONS_DATA_START,\n };\n};\n\nexport const exportPersonsDataExcelSuccess = (printData) => {\n return {\n type: actionTypes.EXPORT_PERSONS_DATA_SUCCESS,\n printData,\n };\n};\n\nexport const exportPersonsDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_PERSONS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportPersonsDataExcel = (timezoneOffset) => {\n return (dispatch) => {\n dispatch(exportPersonsDataExcelStart());\n\n return AdminPersonAPI.exportPersonsDataExcel(timezoneOffset)\n .then((res) => {\n dispatch(exportPersonsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsDataExcelFail(err));\n });\n };\n};\n\nexport const exportPersonsDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportPersonsDataExcelStart());\n\n return AdminPersonAPI.exportPersonsDataExcelTemplate()\n .then((res) => {\n dispatch(exportPersonsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsDataExcelFail(err));\n });\n };\n};\n\nexport const exportPersonsAssessmentProgressDataExcel = (timezoneOffset) => {\n return (dispatch) => {\n dispatch(exportPersonsDataExcelStart());\n\n return AdminPersonAPI.exportPersonsAssessmentProgressDataExcel(timezoneOffset)\n .then((res) => {\n dispatch(exportPersonsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsDataExcelFail(err));\n });\n };\n};\n\nexport const exportEndorsementsDataExcel = (timezoneOffset) => {\n return (dispatch) => {\n dispatch(exportPersonsDataExcelStart());\n\n return AdminPersonAPI.exportEndorsementsDataExcel(timezoneOffset)\n .then((res) => {\n dispatch(exportPersonsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsDataExcelFail(err));\n });\n };\n};\n\nexport const importPersonsDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_PERSONS_DATA_START,\n };\n};\n\nexport const importPersonsDataExcelSuccess = (message, importedPersons) => {\n return {\n type: actionTypes.IMPORT_PERSONS_DATA_SUCCESS,\n message,\n importedPersons,\n };\n};\n\nexport const importPersonsDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_PERSONS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importPersonsDataExcel = (operation, personsDataFiles) => {\n return (dispatch) => {\n dispatch(importPersonsDataExcelStart());\n\n return AdminPersonAPI.importPersonsDataExcel(operation, personsDataFiles)\n .then((res) => {\n dispatch(importPersonsDataExcelSuccess(res.message, res.personResponses));\n })\n .catch((err) => {\n dispatch(importPersonsDataExcelFail(err));\n });\n };\n};\n\nexport const generatePersonProfileReportsStart = () => {\n return {\n type: actionTypes.GENERATE_PERSON_PROFILE_REPORTS_START,\n };\n};\n\nexport const generatePersonProfileReportsSuccess = (printData) => {\n return {\n type: actionTypes.GENERATE_PERSON_PROFILE_REPORTS_SUCCESS,\n printData,\n };\n};\n\nexport const generatePersonProfileReportsFail = (error) => {\n return {\n type: actionTypes.GENERATE_PERSON_PROFILE_REPORTS_FAIL,\n error: error,\n };\n};\n\nexport const generatePersonProfileReports = (personId, skillProfile, actionPlan, endorsedProfile) => {\n return (dispatch) => {\n dispatch(generatePersonProfileReportsStart());\n\n return AdminPersonAPI.generatePersonProfileReports(personId, skillProfile, actionPlan, endorsedProfile)\n .then((res) => {\n if (res) {\n dispatch(generatePersonProfileReportsSuccess(res));\n } else {\n dispatch(generatePersonProfileReportsFail(res));\n }\n })\n .catch((err) => {\n dispatch(generatePersonProfileReportsFail(err));\n });\n };\n};\n\nexport const generateProfileReportsStart = () => {\n return {\n type: actionTypes.GENERATE_PROFILE_REPORTS_START,\n };\n};\n\nexport const generateProfileReportsSuccess = (printData, updatedPersons) => {\n return {\n type: actionTypes.GENERATE_PROFILE_REPORTS_SUCCESS,\n printData,\n updatedPersons,\n };\n};\n\nexport const generateProfileReportsFail = (error) => {\n return {\n type: actionTypes.GENERATE_PROFILE_REPORTS_FAIL,\n error: error,\n };\n};\n\nexport const generateProfileReports = (request) => {\n return (dispatch) => {\n dispatch(generateProfileReportsStart());\n\n return AdminPersonAPI.generateProfileReports(request)\n .then((res) => {\n if (res) {\n dispatch(generateProfileReportsSuccess(res, request.reportRequests));\n } else {\n dispatch(generateProfileReportsFail(res));\n }\n })\n .catch((err) => {\n dispatch(generateProfileReportsFail(err));\n });\n };\n};\n\nexport const downloadProfileReports = (token) => {\n return (dispatch) => {\n dispatch(generateProfileReportsStart());\n\n return AdminPersonAPI.downloadProfileReports(token)\n .then((res) => {\n if (res) {\n dispatch(generateProfileReportsSuccess(res, []));\n } else {\n dispatch(generateProfileReportsFail(res));\n }\n })\n .catch((err) => {\n dispatch(generateProfileReportsFail(err));\n });\n };\n};\n\nexport const generateProfileReportsToEmail = (request) => {\n return (dispatch) => {\n AdminPersonAPI.generateProfileReportsToEmail(request);\n };\n};\n\nexport const updatePersonRolesStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_ROLES_START,\n };\n};\n\nexport const updatePersonRolesSuccess = (roles) => {\n return {\n type: actionTypes.UPDATE_PERSON_ROLES_SUCCESS,\n roles,\n };\n};\n\nexport const updatePersonRolesFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_ROLES_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonRoles = (personId, roles) => {\n return (dispatch) => {\n dispatch(updatePersonRolesStart());\n\n return AdminPersonAPI.updatePersonRoles(personId, roles)\n .then((res) => {\n dispatch(updatePersonRolesSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonRolesFail(err));\n });\n };\n};\n\nexport const assignPersonsStart = () => {\n return {\n type: actionTypes.ASSIGN_PERSONS_START,\n };\n};\n\nexport const assignPersonsSuccess = (personIds) => {\n return {\n type: actionTypes.ASSIGN_PERSONS_SUCCESS,\n personIds,\n };\n};\n\nexport const assignPersonsFail = (error) => {\n return {\n type: actionTypes.ASSIGN_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const assignPersons = (personIds) => {\n return (dispatch) => {\n dispatch(assignPersonsStart());\n\n return AdminPersonAPI.assignPersons(personIds)\n .then((res) => {\n dispatch(assignPersonsSuccess(personIds));\n })\n .catch((err) => {\n dispatch(assignPersonsFail(err));\n });\n };\n};\n\nexport const unassignPersonsStart = () => {\n return {\n type: actionTypes.UNASSIGN_PERSONS_START,\n };\n};\n\nexport const unassignPersonsSuccess = (personIds) => {\n return {\n type: actionTypes.UNASSIGN_PERSONS_SUCCESS,\n personIds,\n };\n};\n\nexport const unassignPersonsFail = (error) => {\n return {\n type: actionTypes.UNASSIGN_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const unassignPersons = (personIds) => {\n return (dispatch) => {\n dispatch(unassignPersonsStart());\n\n return AdminPersonAPI.unAssignPersons(personIds)\n .then((res) => {\n dispatch(unassignPersonsSuccess(personIds));\n })\n .catch((err) => {\n dispatch(unassignPersonsFail(err));\n });\n };\n};\n\nexport const invitePersonsStart = () => {\n return {\n type: actionTypes.INVITE_PERSONS_START,\n };\n};\n\nexport const invitePersonsSuccess = (personIds) => {\n return {\n type: actionTypes.INVITE_PERSONS_SUCCESS,\n personIds,\n };\n};\n\nexport const invitePersonsFail = (error) => {\n return {\n type: actionTypes.INVITE_PERSONS_FAIL,\n error: error,\n };\n};\n\nexport const invitePersons = (personIds) => {\n return (dispatch) => {\n dispatch(invitePersonsStart());\n\n return AdminPersonAPI.invitePersons(personIds)\n .then((res) => {\n dispatch(invitePersonsSuccess(personIds));\n })\n .catch((err) => {\n dispatch(invitePersonsFail(err));\n });\n };\n};\n\nexport const getPageAssignmentsStart = () => {\n return {\n type: actionTypes.GET_PAGE_ASSIGNMENTS_START,\n };\n};\n\nexport const getPageAssignmentsSuccess = (pageAssignments) => {\n return {\n type: actionTypes.GET_PAGE_ASSIGNMENTS_SUCCESS,\n pageAssignments,\n };\n};\n\nexport const getPageAssignmentsFail = (error) => {\n return {\n type: actionTypes.GET_PAGE_ASSIGNMENTS_FAIL,\n error: error,\n };\n};\n\nexport const getPageAssignments = () => {\n return (dispatch) => {\n dispatch(getPageAssignmentsStart());\n\n return AdminPersonAPI.getPageAssignments()\n .then((res) => {\n dispatch(getPageAssignmentsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPageAssignmentsFail(err));\n });\n };\n};\n\nexport const clearPageAssignmentsState = () => {\n return {\n type: actionTypes.CLEAR_PAGE_ASSIGNMENTS,\n };\n};\n\nexport const getPersonPageAssignmentsStart = () => {\n return {\n type: actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_START,\n };\n};\n\nexport const getPersonPageAssignmentsSuccess = (pageAssignments) => {\n return {\n type: actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_SUCCESS,\n pageAssignments,\n };\n};\n\nexport const getPersonPageAssignmentsFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_PAGE_ASSIGNMENTS_FAIL,\n error: error,\n };\n};\n\nexport const getPersonPageAssignments = (personId) => {\n return (dispatch) => {\n dispatch(getPersonPageAssignmentsStart());\n\n return AdminPersonAPI.getPersonPageAssignments(personId)\n .then((res) => {\n dispatch(getPersonPageAssignmentsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonPageAssignmentsFail(err));\n });\n };\n};\n\nexport const updatePersonPageAssignmentsStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_START,\n };\n};\n\nexport const updatePersonPageAssignmentsSuccess = (personId, adminRoleName, pageAssignments) => {\n return {\n type: actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_SUCCESS,\n personId,\n adminRoleName,\n pageAssignments,\n };\n};\n\nexport const updatePersonPageAssignmentsFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_PAGE_ASSIGNMENTS_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonPageAssignments = (personId, adminRoleName, pageAssignments) => {\n return (dispatch) => {\n dispatch(updatePersonPageAssignmentsStart());\n\n return AdminPersonAPI.updatePersonPageAssignments(personId, adminRoleName, pageAssignments)\n .then((res) => {\n dispatch(updatePersonPageAssignmentsSuccess(personId, adminRoleName, res));\n })\n .catch((err) => {\n dispatch(updatePersonPageAssignmentsFail(err));\n });\n };\n};\n\nexport const updatePersonEndorsement = (personEndorsement) => {\n return {\n type: actionTypes.UPDATE_PERSON_ENDORSEMENT,\n personEndorsement,\n };\n};\n\nexport const updatePersonSelfAssessedApproved = (updatedPerson) => {\n return {\n type: actionTypes.UPDATE_PERSON_SELFASSESSED_APPROVED,\n updatedPerson,\n };\n};\n\nexport const updatePersonSelfAssessedPostPoned = (updatedPerson) => {\n return {\n type: actionTypes.UPDATE_PERSON_SELFASSESSED_POSTPONED,\n updatedPerson,\n };\n};\n\nexport const updatePersonEndorserStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_ENDORSER_START,\n };\n};\n\nexport const updatePersonEndorserSuccess = (personEndorsement) => {\n return {\n type: actionTypes.UPDATE_PERSON_ENDORSER_SUCCESS,\n personEndorsement,\n };\n};\n\nexport const updatePersonEndorserFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_ENDORSER_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonEndorser = (personId, endorsedById, endorsedBy) => {\n return (dispatch) => {\n dispatch(updatePersonEndorserStart());\n\n return AdminPersonAPI.updatePersonEndorser(personId, endorsedById, endorsedBy)\n .then((res) => {\n dispatch(updatePersonEndorserSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonEndorserFail(err));\n });\n };\n};\n\nexport const updatePersonEndorsementAssessor = (personId, assessorId, assessorName) => {\n return (dispatch) => {\n dispatch(updatePersonEndorserStart());\n\n return AdminPersonAPI.updatePersonEndorsementAssessor(personId, assessorId, assessorName)\n .then((res) => {\n dispatch(updatePersonEndorserSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonEndorserFail(err));\n });\n };\n};\n\nexport const getColumnDisplaySettingsStart = () => {\n return {\n type: actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_START,\n };\n};\n\nexport const getColumnDisplaySettingsSuccess = (columnDisplaySettings) => {\n return {\n type: actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_SUCCESS,\n columnDisplaySettings,\n };\n};\n\nexport const getColumnDisplaySettingsFail = (error) => {\n return {\n type: actionTypes.GET_ADMIN_COLUMN_DISPLAY_SETTINGS_FAIL,\n error: error,\n };\n};\n\nexport const getColumnDisplaySettings = () => {\n return (dispatch) => {\n dispatch(getColumnDisplaySettingsStart());\n\n return AdminPersonAPI.getColumnDisplaySettings()\n .then((res) => {\n dispatch(getColumnDisplaySettingsSuccess(res));\n })\n .catch((err) => {\n dispatch(getColumnDisplaySettingsFail(err));\n });\n };\n};\n\nexport const clearColumnDisplaySettingsState = () => {\n return {\n type: actionTypes.CLEAR_COLUMN_DISPLAY_SETTINGS,\n };\n};\n\nexport const updateColumnDisplaySettingStart = (id) => {\n return {\n type: actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_START,\n id,\n };\n};\n\nexport const updateColumnDisplaySettingSuccess = (updatedColumnDisplaySetting) => {\n return {\n type: actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_SUCCESS,\n updatedColumnDisplaySetting,\n };\n};\n\nexport const updateColumnDisplaySettingFail = (id, error) => {\n return {\n type: actionTypes.UPDATE_ADMIN_COLUMN_DISPLAY_SETTING_FAIL,\n error: error,\n };\n};\n\nexport const updateColumnDisplaySetting = (columnDisplaySetting) => {\n return (dispatch) => {\n dispatch(updateColumnDisplaySettingStart(columnDisplaySetting.id));\n\n return AdminPersonAPI.updateColumnDisplaySetting(columnDisplaySetting)\n .then((res) => {\n dispatch(updateColumnDisplaySettingSuccess(res));\n })\n .catch((err) => {\n dispatch(updateColumnDisplaySettingFail(columnDisplaySetting.id, err));\n });\n };\n};\n\nexport const requestCopySelfProfilesAsEndorsedStart = () => {\n return {\n type: actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_START,\n };\n};\n\nexport const requestCopySelfProfilesAsEndorsedSuccess = (copyProfileRequests) => {\n return {\n type: actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_SUCCESS,\n copyProfileRequests,\n };\n};\n\nexport const requestCopySelfProfilesAsEndorsedFail = (error) => {\n return {\n type: actionTypes.REQUEST_COPY_SELF_PROFILES_AS_ENDORSED_FAIL,\n error: error,\n };\n};\n\nexport const requestCopySelfProfilesAsEndorsed = (copiedProfiles) => {\n return (dispatch) => {\n dispatch(requestCopySelfProfilesAsEndorsedStart());\n\n return AdminProfileAPI.requestCopySelfProfilesAsEndorsed(copiedProfiles)\n .then((res) => {\n dispatch(requestCopySelfProfilesAsEndorsedSuccess(res));\n })\n .catch((err) => {\n dispatch(requestCopySelfProfilesAsEndorsedFail(err));\n });\n };\n};\n\nexport const processCopySelfProfilesAsEndorsed = (copyProfileRequestIds) => {\n return (dispatch) => {\n return AdminProfileAPI.processCopySelfProfilesAsEndorsed(copyProfileRequestIds)\n .then((res) => {})\n .catch((err) => {});\n };\n};\n\nexport const updateCopySelfProfilesAsEndorsedStatus = (copyProfileRequestResponse) => {\n return {\n type: actionTypes.UPDATE_COPY_SELF_PROFILES_AS_ENDORSED_STATUS,\n copyProfileRequestResponse,\n };\n};\n\nexport const exportPersonsProfilesStart = () => {\n return {\n type: actionTypes.EXPORT_PERSONS_PROFILES_START,\n };\n};\n\nexport const exportPersonsProfilesSuccess = (printData) => {\n return {\n type: actionTypes.EXPORT_PERSONS_PROFILES_SUCCESS,\n printData,\n };\n};\n\nexport const exportPersonsProfilesFail = (error) => {\n return {\n type: actionTypes.EXPORT_PERSONS_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const exportPersonsProfiles = (personIds) => {\n return (dispatch) => {\n dispatch(exportPersonsProfilesStart());\n\n return AdminPersonAPI.exportPersonsProfiles(personIds)\n .then((res) => {\n dispatch(exportPersonsProfilesSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsProfilesFail(err));\n });\n };\n};\n\nexport const importPersonsProfilesStart = () => {\n return {\n type: actionTypes.IMPORT_PERSONS_PROFILES_START,\n };\n};\n\nexport const importPersonsProfilesSuccess = (message, importedPersons) => {\n return {\n type: actionTypes.IMPORT_PERSONS_PROFILES_SUCCESS,\n message,\n importedPersons,\n };\n};\n\nexport const importPersonsProfilesFail = (error) => {\n return {\n type: actionTypes.IMPORT_PERSONS_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const importPersonsProfiles = (personProfilesJsons) => {\n return (dispatch) => {\n dispatch(importPersonsProfilesStart());\n\n return AdminPersonAPI.importPersonsProfiles(personProfilesJsons)\n .then((res) => {\n dispatch(importPersonsProfilesSuccess(res.message, res.personResponses));\n })\n .catch((err) => {\n dispatch(importPersonsProfilesFail(err));\n });\n };\n};\n\nexport const approveProfileRequestsStart = () => {\n return {\n type: actionTypes.APPROVE_SKILL_PROFILES_START,\n };\n};\n\nexport const approveProfileRequestsSuccess = (updatedPersons) => {\n return {\n type: actionTypes.APPROVE_SKILL_PROFILES_SUCCESS,\n updatedPersons,\n };\n};\n\nexport const approveProfileRequestsFail = (error) => {\n return {\n type: actionTypes.APPROVE_SKILL_PROFILES_FAIL,\n error: error,\n };\n};\n\nexport const approveProfileRequests = (requests) => {\n return (dispatch) => {\n dispatch(approveProfileRequestsStart());\n\n return AdminPersonAPI.approveProfileRequests(requests)\n .then((res) => {\n if (res) {\n dispatch(approveProfileRequestsSuccess(res));\n } else {\n dispatch(approveProfileRequestsFail(res));\n }\n })\n .catch((err) => {\n dispatch(approveProfileRequestsFail(err));\n });\n };\n};\n\nexport const exportLatestSelfAssessedProfilesDataExcel = (timezoneOffset) => {\n return (dispatch) => {\n dispatch(exportPersonsDataExcelStart());\n\n return AdminPersonAPI.exportLatestSelfAssessedProfilesDataExcel(timezoneOffset)\n .then((res) => {\n dispatch(exportPersonsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportPersonsDataExcelFail(err));\n });\n };\n};\n","import React, { Component } from \"react\";\n\n// import bottomBg1 from './../assets/img/bg/bottom-bg1.png';\n// import bottomBg2 from './../assets/img/bg/bottom-bg2.png';\n\nconst bgWrapperStyle = {\n backgroundColor: '#F8F8F8',\n width: '100%',\n height: \"100%\",\n position: 'absolute',\n bottom: '0px',\n zIndex: -2\n};\n\nconst bottomBgStyle = {\n position: 'absolute',\n overflow: 'hidden',\n bottom: '0px',\n left: '0px',\n width: '100%',\n maxWidth: '563px',\n height: '100%',\n zIndex: -1\n}\n\n\nconst img1BottomStyle = {\n position: 'absolute',\n bottom: '-150px',\n left: '-50px',\n overflow: 'hidden',\n}\n\nconst img2BottomStyle = {\n position: 'absolute',\n bottom: '-230px',\n left: '-50px',\n overflow: 'hidden',\n}\n\n\nexport class Footer extends Component {\n static displayName = Footer.name;\n\n render() {\n return (\n
\n
\n \"Bottom\n \"Bottom\n
\n
\n
\n
{this.props.children}
\n
\n );\n }\n}","import React, { Component } from \"react\";\nimport { Col, Container, Row } from \"reactstrap\";\n\n// import partnerLogo from '../assets/img/lgo/partner-logo.png';\n// import footRightImg1 from '../assets/img/lgo/footer-right-img1.png';\n// import footRightImg2 from '../assets/img/lgo/footer-right-img2.png';\n\nconst rightImg1Style = {\n position: \"relative\",\n right: \"-87px\",\n top: \"-10px\",\n};\n\nconst rightImg2Style = {\n position: \"relative\",\n right: \"-65px\",\n};\n\nexport class FooterContent extends Component {\n static displayName = FooterContent.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n logoTimestamp: new Date(),\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.logoTimestamp !== this.props.logoTimestamp) {\n this.setState({ logoTimestamp: this.props.logoTimestamp });\n }\n }\n\n render() {\n return (\n
\n \n \n \n
\n
\n \n
\n
\n

Official partners:

\n
\n
\n \"Partner\n
\n
\n \n \n
\n

\n {/* Privacy •\n Terms & Conditions •\n Sitemap
*/}\n © Tx Management Systems Pty Ltd\n

\n
\n \n \n
\n
\n \"Right\n \"Right\n
\n

\n SkillsTx is a registered trademark of\n
\n TX Management Systems Pty Ltd 2016\n

\n
\n \n
\n
\n
\n );\n }\n}\n","import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle, NavLink } from 'reactstrap';\nimport React, { Component, Fragment } from 'react';\n\nimport Flag from 'react-flagkit';\nimport { Link } from 'react-router-dom';\nimport { lang } from 'moment';\n\n//import magglass from '../../assets/img/lgo/magglass.png';\n\nconst linkRightStyle = {\n padding: 0,\n marginLeft: '5px',\n marginRight: '5px',\n // width: '70px',\n fontSize: 13,\n}\n\nexport class NavRight extends Component {\n static displayName = NavRight.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n dropdownOpen: false,\n countryFlags: [\n {\n \"name\": \"(Arabic) العربية\",\n \"code\": \"SA\"\n },\n {\n \"name\": \"Deutsch (German)\",\n \"code\": \"DE\"\n },\n {\n \"name\": \"Español (Spanish)\",\n \"code\": \"ES\"\n },\n {\n \"name\": \"日本語 (Japanese)\",\n \"code\": \"JP\"\n },\n {\n \"name\": \"中国 (Chinese)\",\n \"code\": \"CN\"\n },\n {\n \"name\": \"Français (French)\",\n \"code\": \"FR\"\n },\n {\n \"name\": \"Italiano (Italian)\",\n \"code\": \"IT\"\n },\n {\n \"name\": \"Polskie (Polish)\",\n \"code\": \"PL\"\n },\n {\n \"name\": \"Русский (Russian)\",\n \"code\": \"RU\"\n },\n {\n \"name\": \"bahasa Indonesia (Indonesian)\",\n \"code\": \"ID\"\n },\n {\n \"name\": \"ไทย (Thai)\",\n \"code\": \"TH\"\n },\n {\n \"name\": \"US (English)\",\n \"code\": \"US\"\n },\n {\n \"name\": \"English\",\n \"code\": \"GB\"\n },\n {\n \"name\": \"Canadien français (French Canada)\",\n \"code\": \"CA\"\n },\n {\n \"name\": \"Português (Portuguese)\",\n \"code\": \"PT\"\n }\n ]\n };\n }\n\n selectLanguage = (language) => {\n this.props.setCurrentLanguage(language);\n }\n\n toggle = () => {\n this.setState(prevState => ({\n dropdownOpen: !prevState.dropdownOpen\n }));\n\n }\n\n render() {\n const countryFlags = this.state.countryFlags;\n let languages = this.props.languages;\n\n languages.map(language => {\n if (countryFlags.find(it => it.name == language.name)) {\n const countryFlag = countryFlags.find(it => it.name == language.name);\n language.code = countryFlag.code;\n }\n });\n\n let selectedLanguage = this.props.selectedLanguage;\n if (selectedLanguage && countryFlags.find(it => it.name == selectedLanguage.name)) {\n const countryFlag = countryFlags.find(it => it.name == selectedLanguage.name);\n selectedLanguage.code = countryFlag.code;\n }\n\n return (\n \n
\n \n \n {selectedLanguage && {selectedLanguage.name}}\n \n \n {languages && languages.map(language => {\n return this.selectLanguage(language)}>\n {language.name}\n \n })}\n \n \n
\n
\n Wisdom & Support\n {/* {!this.props.isAuthenticated && About & Contact}\n {!this.props.isAuthenticated && \"MagGlass\"} */}\n
\n
\n );\n }\n}","import * as authActions from \"../../store/actions/authAction\";\nimport * as companyActions from \"../../store/actions/companyAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport { NavRight } from \"./NavRight\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, NavLink as RRNavLink } from \"react-router-dom\";\nimport { Collapse, Container, NavItem, NavLink, Navbar, NavbarBrand, NavbarToggler } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst navlinkStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n marginRight: \"10px\",\n marginLeft: \"10px\",\n};\n\nconst navlinkActiveStyle = {\n color: \"#4279E6\",\n textDecoration: \"none\",\n};\n\nconst headerLeftStyle = {\n position: \"absolute\",\n left: \"50px\",\n top: \"45px\",\n};\n\nconst navbarStyle = {\n borderRadius: \"20px\",\n};\n\nconst headerRightStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n position: \"absolute\",\n right: \"50px\",\n top: \"50px\",\n width: \"200px\",\n};\n\nconst headerStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n marginBottom: \"69px\",\n};\n\nclass NavMain extends Component {\n static displayName = NavMain.name;\n\n constructor(props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true,\n logoTimestamp: new Date(),\n brandingLogoImage: null,\n };\n }\n\n componentDidMount() {\n this.setState({ brandingLogoImage: this.props.brandingLogoImage });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.logoTimestamp !== this.props.logoTimestamp) {\n this.setState({ logoTimestamp: this.props.logoTimestamp });\n\n this.props.onCompany.getCompanyBrandingLogo().then(() => {\n this.setState({ brandingLogoImage: this.props.brandingLogoImage });\n });\n }\n }\n\n toggleNavbar() {\n this.setState({\n collapsed: !this.state.collapsed,\n });\n }\n\n logout = () => {\n Promise.resolve(this.props.onAuth.myPeopleClearManagedRelationship()).then(() => {\n this.props.onAuth.authLogoutIntended().then(() => {\n this.props.history.push(\"/\");\n });\n });\n };\n\n render() {\n const { containerConfig } = this.props;\n const apiHostname = process.env.REACT_APP_API_ENDPOINT;\n const baseURL = process.env.NODE_ENV === \"development\" ? `${apiHostname}` : `/api`;\n\n return (\n \n \n \n {this.props.brandingLogoChecked && this.props.brandingLogoImage ? (\n \"Comp\n ) : (\n {\n e.target.onerror = null;\n e.target.src = process.env.PUBLIC_URL + \"/assets/img/lgo/skillstx-logo-top.png\";\n }}\n alt=\"Comp Logo\"\n width=\"120\"\n className=\"compLogo\"\n />\n )}\n \n {!this.props.boolLoginMembee && (\n \n \n \n \n
    \n {!this.props.isAuthenticated && this.props.containerConfig && this.props.containerConfig.allowSelfRegistration && (\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n {!this.props.loginWithTeams ? (\n \n {!this.props.isAuthenticated ? (\n \n \n \n \n \n ) : (\n \n \n \n \n \n )}\n \n ) : (\n \"\"\n )}\n
\n
\n
\n )}\n
\n \n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n hasRelationships: state.auth.hasRelationships,\n languages: state.language.languages,\n containerConfig: state.config.containerConfig,\n\n brandingLogoImage: state.company.brandingLogoImage,\n brandingLogoChecked: state.company.brandingLogoChecked,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NavMain);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass PersonAPI {\n // Static property to hold the base API name for mentor preferences.\n static SERVICE_NAME = \"persons\";\n\n static getSearchMentors(ignoreSkillGap = false, jobType = \"Current\", profileType = \"Self Assessed\") {\n return axios\n .get(\n `/${this.SERVICE_NAME}/searchmentors/?ignoreSkillGap=${ignoreSkillGap}&jobType=${jobType}&profileType=${profileType}`\n )\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateConnectMentors(jobType = \"Current\", profileType = \"Self Assessed\", listConnect) {\n return axios\n .post(`/${this.SERVICE_NAME}/connectmentors?jobType=${jobType}&profileType=${profileType}`, listConnect)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMenteeRequests() {\n return axios\n .get(`/${this.SERVICE_NAME}/menteerequests`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateMenteeRequests(data) {\n return axios\n .post(`/${this.SERVICE_NAME}/updatementeerequests`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateBecomeMentor() {\n return axios\n .post(`/${this.SERVICE_NAME}/becomementor`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyMentorProfiles() {\n return axios\n .get(`/${this.SERVICE_NAME}/mymentorprofiles/list`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonMyMentorProfiles(listUpdate) {\n return axios\n .post(`/${this.SERVICE_NAME}/mymentorprofiles/update`, listUpdate)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyMentorPreferences() {\n return axios\n .get(`/${this.SERVICE_NAME}/mymentorpreferences/list`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonMyMentorPreferences(listUpdate) {\n return axios\n .post(`/${this.SERVICE_NAME}/mymentorpreferences/update`, listUpdate)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyProfile() {\n return axios\n .get(`/persons/myprofile`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonMyProfile(person) {\n return axios\n .put(`/persons/myprofile`, person)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static downloadPersonMyProfile() {\n return axios\n .get(`/persons/myprofile/export`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static downloadPersonProfilePicture() {\n return axios\n .get(`/persons/myprofilepicture`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static downloadManagedPersonProfilePicture(email) {\n return axios\n .get(`/persons/managedPeopleProfilePicture?email=${email}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static uploadPersonProfilePicture(profilePicture) {\n const formData = new FormData();\n formData.append(\"profilepicture\", profilePicture);\n return axios\n .put(`/persons/myprofilepicture`, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n })\n .then((res) => {\n return res;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonLatestAccount() {\n return axios\n .get(`/persons/latestaccount`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleLatestAccount(email) {\n return axios\n .get(`/persons/managedPeopleLatestaccount?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonAccountAtrributes(accountId, accountRequest) {\n return axios\n .put(`/persons/accounts/${accountId}/updateAttributes`, accountRequest)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonAccountLorAtrributes(accountId, accountRequest) {\n return axios\n .put(`/persons/accounts/${accountId}/updateLorAttributes`, accountRequest)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonAccountNote(accountId, note) {\n return axios\n .post(`/persons/accounts/${accountId}/updatenote`, { note })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeoplePersonAccountNote(accountId, note, email) {\n return axios\n .post(`/persons/accounts/${accountId}/updateManagedPeopleNote`, {\n note,\n email,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static personAccountRequestApproval(accountId, comments) {\n return axios\n .post(`/persons/accounts/${accountId}/requestapproval`, { comments })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static personAccountShowPostponeComment(accountId) {\n return axios\n .post(`/persons/accounts/${accountId}/showpostponecomment`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyPeoples() {\n return axios\n .get(`/persons/mypeoples`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyPeopleByEmail(email) {\n return axios\n .get(`/persons/mypeoples/byemail?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyLeaders() {\n return axios\n .get(`/persons/mymanagers`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static approveMyPeopleProfile(data) {\n return axios\n .post(`/persons/mypeoples/approve`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static postponeApproveMyPeopleProfile(data) {\n return axios\n .post(`/persons/mypeoples/postponeapprove`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static forgetMe() {\n return axios\n .post(`/persons/forgetme`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updatePersonActivityStatementInterval(activityStatementInterval) {\n const data = {\n activityStatementInterval,\n };\n return axios\n .put(`/persons/updateactivitystatementinterval`, data)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static generateActivityStatement() {\n return axios\n .post(`/persons/generateactivitystatement`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonMyPeoplesTeamAnalytic() {\n return axios\n .get(`/persons/mypeoples/teamanalytic`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getPersonSkillCoins() {\n return axios\n .get(`/persons/skillcoins`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getColumnDisplaySettings(pageName) {\n return axios\n .get(`/persons/columnDisplaySettings?pageName=${pageName}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateColumnDisplaySetting(columnDisplaySetting) {\n return axios\n .post(`/persons/columnDisplaySettings`, columnDisplaySetting)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateColumnDisplaySettingMoveUp(id) {\n return axios\n .post(`/persons/columnDisplaySettings/${id}/moveUp`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateColumnDisplaySettingMoveDown(id) {\n return axios\n .post(`/persons/columnDisplaySettings/${id}/moveDown`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default PersonAPI;\n","import PersonAPI from \"./../../common/api/service/PersonService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getPersonMyProfileStart = () => {\n return {\n type: actionTypes.GET_PERSON_MYPROFILE_START,\n };\n};\n\nexport const getPersonMyProfileSuccess = (person) => {\n return {\n type: actionTypes.GET_PERSON_MYPROFILE_SUCCESS,\n person,\n };\n};\n\nexport const getPersonMyProfileFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MYPROFILE_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMyProfile = () => {\n return (dispatch) => {\n dispatch(getPersonMyProfileStart());\n\n return PersonAPI.getPersonMyProfile()\n .then((res) => {\n if (res.id) {\n dispatch(getPersonMyProfileSuccess(res));\n } else {\n dispatch(getPersonMyProfileFail(res));\n }\n })\n .catch((err) => {\n dispatch(getPersonMyProfileFail(err));\n });\n };\n};\n\nexport const getActionMentorPreferenceStart = () => {\n return {\n type: actionTypes.GET_PERSON_MENTOR_PREFERENCE_START,\n };\n};\n\nexport const getPersonMentorPreferenceSuccess = (mentorPreference) => {\n return {\n type: actionTypes.GET_PERSON_MENTOR_PREFERENCE_SUCCESS,\n mentorPreference,\n };\n};\n\nexport const getPersonMentorPreferenceFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MENTOR_PREFERENCE_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMentorPreference = () => {\n return (dispatch) => {\n dispatch(getActionMentorPreferenceStart());\n\n return PersonAPI.getPersonMyMentorPreferences()\n .then((res) => {\n if (res) {\n dispatch(getPersonMentorPreferenceSuccess(res));\n } else {\n dispatch(getPersonMentorPreferenceFail(res));\n }\n })\n .catch((err) => {\n dispatch(getPersonMentorPreferenceFail(err));\n });\n };\n};\n\nexport const downloadPersonMyProfileStart = () => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_MYPROFILE_START,\n };\n};\n\nexport const downloadPersonMyProfileSuccess = (exportData) => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_MYPROFILE_SUCCESS,\n exportData,\n };\n};\n\nexport const downloadPersonMyProfileFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_MYPROFILE_FAIL,\n error: error,\n };\n};\n\nexport const downloadPersonMyProfile = () => {\n return (dispatch) => {\n dispatch(downloadPersonMyProfileStart());\n\n return PersonAPI.downloadPersonMyProfile()\n .then((res) => {\n if (res) {\n dispatch(downloadPersonMyProfileSuccess(res));\n } else {\n dispatch(downloadPersonMyProfileFail(res));\n }\n })\n .catch((err) => {\n dispatch(downloadPersonMyProfileFail(err));\n });\n };\n};\n\nexport const updatePersonMyProfileStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_MYPROFILE_START,\n };\n};\n\nexport const updatePersonMyProfileSuccess = (person) => {\n return {\n type: actionTypes.UPDATE_PERSON_MYPROFILE_SUCCESS,\n person,\n };\n};\n\nexport const updatePersonMyProfileFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_MYPROFILE_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonMyProfile = (person) => {\n return (dispatch) => {\n dispatch(updatePersonMyProfileStart());\n\n return PersonAPI.updatePersonMyProfile(person)\n .then((res) => {\n if (res.id) {\n dispatch(updatePersonMyProfileSuccess(res));\n } else {\n dispatch(updatePersonMyProfileFail(res));\n }\n })\n .catch((err) => {\n dispatch(updatePersonMyProfileFail(err));\n });\n };\n};\n\nexport const downloadPersonProfilePictureStart = () => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_START,\n };\n};\n\nexport const downloadPersonProfilePictureSuccess = (profilePicture) => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_SUCCESS,\n profilePicture: profilePicture,\n };\n};\n\nexport const downloadPersonProfilePictureFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_PERSON_PROFILE_PICTURE_FAIL,\n error: error,\n };\n};\n\nexport const downloadPersonProfilePicture = () => {\n return (dispatch) => {\n dispatch(downloadPersonProfilePictureStart());\n\n return PersonAPI.downloadPersonProfilePicture()\n .then((res) => {\n if (res) {\n dispatch(downloadPersonProfilePictureSuccess(res));\n } else {\n dispatch(downloadPersonProfilePictureFail(res));\n }\n })\n .catch((err) => {\n dispatch(downloadPersonProfilePictureFail(err));\n });\n };\n};\n\nexport const downloadManagedPersonProfilePicture = (email) => {\n return (dispatch) => {\n dispatch(downloadPersonProfilePictureStart());\n\n return PersonAPI.downloadManagedPersonProfilePicture(email)\n .then((res) => {\n if (res) {\n dispatch(downloadPersonProfilePictureSuccess(res));\n } else {\n dispatch(downloadPersonProfilePictureFail(res));\n }\n })\n .catch((err) => {\n dispatch(downloadPersonProfilePictureFail(err));\n });\n };\n};\n\nexport const uploadPersonProfilePictureStart = () => {\n return {\n type: actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_START,\n };\n};\n\nexport const uploadPersonProfilePictureSuccess = (profilePictureUrl) => {\n return {\n type: actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_SUCCESS,\n profilePictureUrl: profilePictureUrl.data,\n };\n};\n\nexport const uploadPersonProfilePictureFail = (error) => {\n return {\n type: actionTypes.UPLOAD_PERSON_PROFILE_PICTURE_FAIL,\n error: error,\n };\n};\n\nexport const uploadPersonProfilePicture = (profilePicture) => {\n return (dispatch) => {\n dispatch(uploadPersonProfilePictureStart());\n\n return PersonAPI.uploadPersonProfilePicture(profilePicture)\n .then((res) => {\n if (res) {\n dispatch(uploadPersonProfilePictureSuccess(res));\n } else {\n dispatch(uploadPersonProfilePictureFail(res));\n }\n })\n .catch((err) => {\n dispatch(uploadPersonProfilePictureFail(err));\n });\n };\n};\n\nexport const getPersonLatestAccountStart = () => {\n return {\n type: actionTypes.GET_PERSON_LATESTACCOUNT_START,\n };\n};\n\nexport const getPersonLatestAccountSuccess = (account) => {\n return {\n type: actionTypes.GET_PERSON_LATESTACCOUNT_SUCCESS,\n account,\n };\n};\n\nexport const getPersonLatestAccountFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_LATESTACCOUNT_FAIL,\n error: error,\n };\n};\n\nexport const getPersonLatestAccount = () => {\n return (dispatch) => {\n dispatch(getPersonLatestAccountStart());\n\n return PersonAPI.getPersonLatestAccount()\n .then((res) => {\n dispatch(getPersonLatestAccountSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonLatestAccountFail(err));\n });\n };\n};\n\nexport const getManagedPeopleLatestAccountStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_START,\n };\n};\n\nexport const getManagedPeopleLatestAccountSuccess = (account) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_SUCCESS,\n account,\n };\n};\n\nexport const getManagedPeopleLatestAccountFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_LATESTACCOUNT_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleLatestAccount = (email) => {\n return (dispatch) => {\n dispatch(getManagedPeopleLatestAccountStart());\n\n return PersonAPI.getManagedPeopleLatestAccount(email)\n .then((res) => {\n dispatch(getManagedPeopleLatestAccountSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleLatestAccountFail(err));\n });\n };\n};\n\nexport const clearPersonAccountState = () => {\n return {\n type: actionTypes.CLEAR_PERSON_ACCOUNT_STATE,\n };\n};\n\nexport const updatePersonAccountStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_START,\n };\n};\n\nexport const updatePersonAccountSuccess = (account) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_SUCCESS,\n attributes: account.attributes,\n lorAttributes: account.lorAttributes,\n };\n};\n\nexport const updatePersonAccountFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonAccountAttributes = (accountId, accountRequest) => {\n return (dispatch) => {\n dispatch(updatePersonAccountStart());\n\n return PersonAPI.updatePersonAccountAtrributes(accountId, accountRequest)\n .then((res) => {\n dispatch(updatePersonAccountSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonAccountFail(err));\n });\n };\n};\n\nexport const updatePersonAccountLorAttributes = (accountId, accountRequest) => {\n return (dispatch) => {\n dispatch(updatePersonAccountStart());\n\n return PersonAPI.updatePersonAccountLorAtrributes(accountId, accountRequest)\n .then((res) => {\n dispatch(updatePersonAccountSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonAccountFail(err));\n });\n };\n};\n\nexport const updatePersonAccountNoteStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_START,\n };\n};\n\nexport const updatePersonAccountNoteSuccess = (account) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_SUCCESS,\n account,\n };\n};\n\nexport const updatePersonAccountNoteFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACCOUNT_NOTE_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonAccountNote = (accountId, note) => {\n return (dispatch) => {\n dispatch(updatePersonAccountNoteStart());\n\n return PersonAPI.updatePersonAccountNote(accountId, note)\n .then((res) => {\n dispatch(updatePersonAccountNoteSuccess(res));\n })\n .catch((err) => {\n dispatch(updatePersonAccountNoteFail(err));\n });\n };\n};\n\nexport const updateManagedPeoplePersonAccountNoteStart = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_START,\n };\n};\n\nexport const updateManagedPeoplePersonAccountNoteSuccess = (account) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_SUCCESS,\n account,\n };\n};\n\nexport const updateManagedPeoplePersonAccountNoteFail = (error) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_PERSON_ACCOUNT_NOTE_FAIL,\n error: error,\n };\n};\n\nexport const updateManagedPeoplePersonAccountNote = (accountId, note, email) => {\n return (dispatch) => {\n dispatch(updateManagedPeoplePersonAccountNoteStart());\n\n return PersonAPI.updateManagedPeoplePersonAccountNote(accountId, note, email)\n .then((res) => {\n dispatch(updateManagedPeoplePersonAccountNoteSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeoplePersonAccountNoteFail(err));\n });\n };\n};\n\nexport const personAccountRequestApprovalStart = () => {\n return {\n type: actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_START,\n };\n};\n\nexport const personAccountRequestApprovalSuccess = (account) => {\n return {\n type: actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_SUCCESS,\n account,\n };\n};\n\nexport const personAccountRequestApprovalFail = (error) => {\n return {\n type: actionTypes.PERSON_ACCOUNT_REQUEST_APPROVAL_FAIL,\n error: error,\n };\n};\n\nexport const personAccountRequestApproval = (accountId, comments) => {\n return (dispatch) => {\n dispatch(personAccountRequestApprovalStart());\n\n return PersonAPI.personAccountRequestApproval(accountId, comments)\n .then((res) => {\n dispatch(personAccountRequestApprovalSuccess(res));\n })\n .catch((err) => {\n dispatch(personAccountRequestApprovalFail(err));\n });\n };\n};\n\nexport const personAccountShowPostponeComment = (accountId) => {\n return () => {\n PersonAPI.personAccountShowPostponeComment(accountId);\n };\n};\n\nexport const getPersonMyPeoplesStart = () => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_START,\n };\n};\n\nexport const getPersonMyPeoplesSuccess = (myPeoples) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_SUCCESS,\n myPeoples,\n };\n};\n\nexport const getPersonMyPeoplesFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMyPeoples = () => {\n return (dispatch) => {\n dispatch(getPersonMyPeoplesStart());\n\n return PersonAPI.getPersonMyPeoples()\n .then((res) => {\n dispatch(getPersonMyPeoplesSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonMyPeoplesFail(err));\n });\n };\n};\n\nexport const getPersonMyPeopleByEmailStart = () => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_START,\n };\n};\n\nexport const getPersonMyPeopleByEmailSuccess = (managedPeople) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_SUCCESS,\n managedPeople,\n };\n};\n\nexport const getPersonMyPeopleByEmailFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLE_BYEMAIL_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMyPeopleByEmail = (email) => {\n return (dispatch) => {\n dispatch(getPersonMyPeopleByEmailStart());\n\n return PersonAPI.getPersonMyPeopleByEmail(email)\n .then((res) => {\n dispatch(getPersonMyPeopleByEmailSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonMyPeopleByEmailFail(err));\n });\n };\n};\n\nexport const getPersonMyLeadersStart = () => {\n return {\n type: actionTypes.GET_PERSON_MYLEADERS_START,\n };\n};\n\nexport const getPersonMyLeadersSuccess = (myLeaders) => {\n return {\n type: actionTypes.GET_PERSON_MYLEADERS_SUCCESS,\n myLeaders,\n };\n};\n\nexport const getPersonMyLeadersFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MYLEADERS_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMyLeaders = () => {\n return (dispatch) => {\n dispatch(getPersonMyLeadersStart());\n\n return PersonAPI.getPersonMyLeaders()\n .then((res) => {\n dispatch(getPersonMyLeadersSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonMyLeadersFail(err));\n });\n };\n};\n\nexport const approveMyPeopleProfileStart = () => {\n return {\n type: actionTypes.APPROVE_MYPEOPLE_PROFILE_START,\n };\n};\n\nexport const approveMyPeopleProfileSuccess = () => {\n return {\n type: actionTypes.APPROVE_MYPEOPLE_PROFILE_SUCCESS,\n };\n};\n\nexport const approveMyPeopleProfileFail = (error) => {\n return {\n type: actionTypes.APPROVE_MYPEOPLE_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const approveMyPeopleProfile = (approval) => {\n return (dispatch) => {\n dispatch(approveMyPeopleProfileStart());\n\n return PersonAPI.approveMyPeopleProfile(approval)\n .then((res) => {\n dispatch(approveMyPeopleProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(approveMyPeopleProfileFail(err));\n });\n };\n};\n\nexport const postponeApproveMyPeopleProfileStart = () => {\n return {\n type: actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_START,\n };\n};\n\nexport const postponeApproveMyPeopleProfileSuccess = () => {\n return {\n type: actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_SUCCESS,\n };\n};\n\nexport const postponeApproveMyPeopleProfileFail = (error) => {\n return {\n type: actionTypes.POSTPONE_APPROVE_MYPEOPLE_PROFILE_FAIL,\n error: error,\n };\n};\n\nexport const postponeApproveMyPeopleProfile = (approval) => {\n return (dispatch) => {\n dispatch(postponeApproveMyPeopleProfileStart());\n\n return PersonAPI.postponeApproveMyPeopleProfile(approval)\n .then((res) => {\n dispatch(postponeApproveMyPeopleProfileSuccess(res));\n })\n .catch((err) => {\n dispatch(postponeApproveMyPeopleProfileFail(err));\n });\n };\n};\n\nexport const forgetMeStart = () => {\n return {\n type: actionTypes.PERSON_FORGET_ME_START,\n };\n};\n\nexport const forgetMeSuccess = () => {\n return {\n type: actionTypes.PERSON_FORGET_ME_SUCCESS,\n };\n};\n\nexport const forgetMeFail = (error) => {\n return {\n type: actionTypes.PERSON_FORGET_ME_FAIL,\n error: error,\n };\n};\n\nexport const forgetMe = () => {\n return (dispatch) => {\n dispatch(forgetMeStart());\n\n return PersonAPI.forgetMe()\n .then((res) => {\n dispatch(forgetMeSuccess(res));\n })\n .catch((err) => {\n dispatch(forgetMeFail(err));\n });\n };\n};\n\nexport const updatePersonActivityStatementIntervalStart = () => {\n return {\n type: actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_START,\n };\n};\n\nexport const updatePersonActivityStatementIntervalSuccess = (activityStatementInterval) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_SUCCESS,\n activityStatementInterval,\n };\n};\n\nexport const updatePersonActivityStatementIntervalFail = (error) => {\n return {\n type: actionTypes.UPDATE_PERSON_ACTIVITYSTATEMENTINTERVAL_FAIL,\n error: error,\n };\n};\n\nexport const updatePersonActivityStatementInterval = (activityStatementInterval) => {\n return (dispatch) => {\n dispatch(updatePersonActivityStatementIntervalStart());\n\n return PersonAPI.updatePersonActivityStatementInterval(activityStatementInterval)\n .then((res) => {\n dispatch(updatePersonActivityStatementIntervalSuccess(activityStatementInterval));\n })\n .catch((err) => {\n dispatch(updatePersonActivityStatementIntervalFail(err));\n });\n };\n};\n\nexport const generateActivityStatementStart = () => {\n return {\n type: actionTypes.GENERATE_ACTIVITYSTATEMENT_START,\n };\n};\n\nexport const generateActivityStatementSuccess = () => {\n return {\n type: actionTypes.GENERATE_ACTIVITYSTATEMENT_SUCCESS,\n };\n};\n\nexport const generateActivityStatementFail = (error) => {\n return {\n type: actionTypes.GENERATE_ACTIVITYSTATEMENT_FAIL,\n error: error,\n };\n};\n\nexport const generateActivityStatement = () => {\n return (dispatch) => {\n dispatch(generateActivityStatementStart());\n\n return PersonAPI.generateActivityStatement()\n .then((res) => {\n dispatch(generateActivityStatementSuccess());\n })\n .catch((err) => {\n dispatch(generateActivityStatementFail(err));\n });\n };\n};\n\nexport const getPersonMyPeoplesTeamAnalitycStart = () => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_START,\n };\n};\n\nexport const getPersonMyPeoplesTeamAnalitycSuccess = (myPeopleTeamAnalytic) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_SUCCESS,\n myPeopleTeamAnalytic,\n };\n};\n\nexport const getPersonMyPeoplesTeamAnalitycFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_MYPEOPLES_TEAMANALYTIC_FAIL,\n error: error,\n };\n};\n\nexport const getPersonMyPeoplesTeamAnalytic = () => {\n return (dispatch) => {\n dispatch(getPersonMyPeoplesTeamAnalitycStart());\n\n return PersonAPI.getPersonMyPeoplesTeamAnalytic()\n .then((res) => {\n dispatch(getPersonMyPeoplesTeamAnalitycSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonMyPeoplesTeamAnalitycFail(err));\n });\n };\n};\n\nexport const clearManagePeopleEndorsedStatus = () => {\n return {\n type: actionTypes.CLEAR_MANAGE_PEOPLE_ENDORSED_STATUS,\n };\n};\n\nexport const updateManagePeopleEndorsedStatus = (status) => {\n return {\n type: actionTypes.UPDATE_MANAGE_PEOPLE_ENDORSED_STATUS,\n status,\n };\n};\n\nexport const getPersonSkillCoinsStart = () => {\n return {\n type: actionTypes.GET_PERSON_SKILL_COINS_START,\n };\n};\n\nexport const getPersonSkillCoinsSuccess = (skillCoins) => {\n return {\n type: actionTypes.GET_PERSON_SKILL_COINS_SUCCESS,\n skillCoins,\n };\n};\n\nexport const getPersonSkillCoinsFail = (error) => {\n return {\n type: actionTypes.GET_PERSON_SKILL_COINS_FAIL,\n error: error,\n };\n};\n\nexport const getPersonSkillCoins = () => {\n return (dispatch) => {\n dispatch(getPersonSkillCoinsStart());\n\n return PersonAPI.getPersonSkillCoins()\n .then((res) => {\n dispatch(getPersonSkillCoinsSuccess(res));\n })\n .catch((err) => {\n dispatch(getPersonSkillCoinsFail(err));\n });\n };\n};\n\nexport const getColumnDisplaySettingsStart = () => {\n return {\n type: actionTypes.GET_COLUMN_DISPLAY_SETTINGS_START,\n };\n};\n\nexport const getColumnDisplaySettingsSuccess = (columnDisplaySettings) => {\n return {\n type: actionTypes.GET_COLUMN_DISPLAY_SETTINGS_SUCCESS,\n columnDisplaySettings,\n };\n};\n\nexport const getColumnDisplaySettingsFail = (error) => {\n return {\n type: actionTypes.GET_COLUMN_DISPLAY_SETTINGS_FAIL,\n error: error,\n };\n};\n\nexport const getColumnDisplaySettings = (pageName) => {\n return (dispatch) => {\n dispatch(getColumnDisplaySettingsStart());\n\n return PersonAPI.getColumnDisplaySettings(pageName)\n .then((res) => {\n dispatch(getColumnDisplaySettingsSuccess(res));\n })\n .catch((err) => {\n dispatch(getColumnDisplaySettingsFail(err));\n });\n };\n};\n\nexport const updateColumnDisplaySettingStart = () => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_START,\n };\n};\n\nexport const updateColumnDisplaySettingSuccess = (updatedColumnDisplaySetting) => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_SUCCESS,\n updatedColumnDisplaySetting,\n };\n};\n\nexport const updateColumnDisplaySettingFail = (id, error) => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_FAIL,\n error: error,\n };\n};\n\nexport const updateColumnDisplaySetting = (columnDisplaySetting) => {\n return (dispatch) => {\n dispatch(updateColumnDisplaySettingStart());\n\n return PersonAPI.updateColumnDisplaySetting(columnDisplaySetting)\n .then((res) => {\n dispatch(updateColumnDisplaySettingSuccess(res));\n })\n .catch((err) => {\n dispatch(updateColumnDisplaySettingFail(columnDisplaySetting.id, err));\n });\n };\n};\n\nexport const updateColumnDisplaySettingOrderStart = () => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_START,\n };\n};\n\nexport const updateColumnDisplaySettingOrderSuccess = (updatedColumnDisplaySettings) => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_SUCCESS,\n updatedColumnDisplaySettings,\n };\n};\n\nexport const updateColumnDisplaySettingOrderFail = (error) => {\n return {\n type: actionTypes.UPDATE_COLUMN_DISPLAY_SETTING_MOVE_FAIL,\n error: error,\n };\n};\n\nexport const updateColumnDisplaySettingOrderUp = (id) => {\n return (dispatch) => {\n dispatch(updateColumnDisplaySettingOrderStart());\n\n return PersonAPI.updateColumnDisplaySettingMoveUp(id)\n .then((res) => {\n dispatch(updateColumnDisplaySettingOrderSuccess(res));\n })\n .catch((err) => {\n dispatch(updateColumnDisplaySettingOrderFail(err));\n });\n };\n};\n\nexport const updateColumnDisplaySettingOrderDown = (id) => {\n return (dispatch) => {\n dispatch(updateColumnDisplaySettingOrderStart());\n\n return PersonAPI.updateColumnDisplaySettingMoveDown(id)\n .then((res) => {\n dispatch(updateColumnDisplaySettingOrderSuccess(res));\n })\n .catch((err) => {\n dispatch(updateColumnDisplaySettingOrderFail(err));\n });\n };\n};\n","import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle, NavLink } from 'reactstrap';\nimport React, { Component, Fragment } from 'react';\n\nimport ContentTranslator from '../translator/ContentTranslator';\nimport Flag from 'react-flagkit';\nimport { Link } from 'react-router-dom';\n\n//import sampleProfile from '../../assets/img/lgo/sample-profile.png';\n\nconst linkRightStyle = {\n padding: 0,\n marginLeft: '5px',\n marginRight: '5px',\n maxWidth: '150px',\n fontSize: 13,\n}\n\nexport class NavRightLogin extends Component {\n static displayName = NavRightLogin.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n dropdownOpen: false,\n countryFlags: [\n {\n \"name\": \"(Arabic) العربية\",\n \"code\": \"SA\"\n },\n {\n \"name\": \"Deutsch (German)\",\n \"code\": \"DE\"\n },\n {\n \"name\": \"Español (Spanish)\",\n \"code\": \"ES\"\n },\n {\n \"name\": \"日本語 (Japanese)\",\n \"code\": \"JP\"\n },\n {\n \"name\": \"中国 (Chinese)\",\n \"code\": \"CN\"\n },\n {\n \"name\": \"Français (French)\",\n \"code\": \"FR\"\n },\n {\n \"name\": \"Italiano (Italian)\",\n \"code\": \"IT\"\n },\n {\n \"name\": \"Polskie (Polish)\",\n \"code\": \"PL\"\n },\n {\n \"name\": \"Русский (Russian)\",\n \"code\": \"RU\"\n },\n {\n \"name\": \"bahasa Indonesia (Indonesian)\",\n \"code\": \"ID\"\n },\n {\n \"name\": \"ไทย (Thai)\",\n \"code\": \"TH\"\n },\n {\n \"name\": \"US (English)\",\n \"code\": \"US\"\n },\n {\n \"name\": \"English\",\n \"code\": \"GB\"\n }\n ]\n };\n }\n\n toggle = () => {\n this.setState(prevState => ({\n dropdownOpen: !prevState.dropdownOpen\n }));\n\n }\n\n selectLanguage = (language) => {\n this.props.setCurrentLanguage(language);\n }\n\n render() {\n const countryFlags = this.state.countryFlags;\n\n let email = localStorage.getItem(\"email\");\n let languages = this.props.languages;\n\n languages.map(language => {\n if (countryFlags.find(it => it.name == language.name)) {\n const countryFlag = countryFlags.find(it => it.name == language.name);\n language.code = countryFlag.code;\n }\n });\n\n let selectedLanguage = this.props.selectedLanguage;\n if (selectedLanguage && countryFlags.find(it => it.name == selectedLanguage.name)) {\n const countryFlag = countryFlags.find(it => it.name == selectedLanguage.name);\n selectedLanguage.code = countryFlag.code;\n }\n\n return (\n \n
\n \n \n {selectedLanguage && {selectedLanguage.name}}\n \n \n {languages && languages.map(language => {\n return this.selectLanguage(language)}> {language.name}\n })}\n \n \n
\n
\n \n \n \n {/* \n \n */}\n
\n
\n );\n }\n}","import * as authActions from \"../../store/actions/authAction\";\nimport * as companyActions from \"../../store/actions/companyAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as languageActions from \"../../store/actions/languageAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as adminPersonActions from \"../../store/admin/actions/adminPersonActions\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport { NavRightLogin } from \"./NavRightLogin\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, NavLink as RRNavLink } from \"react-router-dom\";\nimport { Collapse, Container, NavItem, NavLink, Navbar, NavbarBrand, NavbarToggler } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst navlinkStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n marginRight: \"10px\",\n marginLeft: \"10px\",\n};\n\nconst navlinkActiveStyle = {\n color: \"#4279E6\",\n textDecoration: \"none\",\n};\n\nconst headerLeftStyle = {\n position: \"absolute\",\n left: \"50px\",\n top: \"45px\",\n};\n\nconst navbarStyle = {\n borderRadius: \"20px\",\n};\n\nconst headerRightStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n position: \"absolute\",\n right: \"50px\",\n top: \"50px\",\n width: \"200px\",\n};\n\nconst headerStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n marginBottom: \"69px\",\n};\n\nclass NavMainLogin extends Component {\n static displayName = NavMainLogin.name;\n\n constructor(props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true,\n selectedLanguage: null,\n logoTimestamp: new Date(),\n brandingLogoImage: null,\n };\n }\n\n componentDidMount() {\n this.setState({ brandingLogoImage: this.props.brandingLogoImage });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.logoTimestamp !== this.props.logoTimestamp) {\n this.setState({ logoTimestamp: this.props.logoTimestamp });\n\n this.props.onCompany.getCompanyBrandingLogo().then(() => {\n this.setState({ brandingLogoImage: this.props.brandingLogoImage });\n });\n }\n\n if (prevProps.containerConfig !== this.props.containerConfig) {\n this.setState({ containerConfig: this.props.containerConfig });\n }\n }\n\n toggleNavbar() {\n this.setState({\n collapsed: !this.state.collapsed,\n });\n }\n\n logout = () => {\n const samlEnabled = this.props.samlEnabled && this.props.samlEnabled == \"TRUE\" ? true : false;\n\n Promise.resolve(this.props.onAuth.myPeopleClearManagedRelationship()).then(() => {\n this.props.disconnectSignalR();\n\n this.props.onAuth.authLogoutIntended().then(() => {\n Promise.resolve([\n this.props.onPerson.clearPersonAccountState(),\n this.props.onConfig.clearCurrAssessment(),\n this.props.onConfig.clearActiveUserCountStatusState(),\n this.props.onConfig.getSamlEnabledStatus(),\n this.props.onAdminPerson.clearPageAssignmentsState(),\n this.props.onAdminPerson.clearColumnDisplaySettingsState(),\n ]);\n\n if (this.props.loginWithMembee) {\n window.location = \"/membeelogout\";\n }\n });\n });\n };\n\n render() {\n const apiHostname = process.env.REACT_APP_API_ENDPOINT;\n const baseURL = process.env.NODE_ENV === \"development\" ? `${apiHostname}` : `/api`;\n\n const { containerConfig } = this.props;\n\n return (\n \n \n \n {this.props.brandingLogoChecked && this.props.brandingLogoImage ? (\n \"Comp\n ) : (\n {\n e.target.onerror = null;\n e.target.src = process.env.PUBLIC_URL + \"/assets/img/lgo/skillstx-logo-top.png\";\n }}\n alt=\"Comp Logo\"\n width=\"120\"\n className=\"compLogo\"\n />\n )}\n \n \n \n
    \n \n \n \n \n \n \n {containerConfig && ((containerConfig.nav1Label && containerConfig.nav1Label != \"\") || (containerConfig.nav1Link && containerConfig.nav1Link != \"\")) ? (\n \n {containerConfig && containerConfig.nav1Label && containerConfig.nav1Label != \"\" ? containerConfig.nav1Label : }\n \n ) : (\n \n \n \n )}\n \n \n {containerConfig && ((containerConfig.nav2Label && containerConfig.nav2Label != \"\") || (containerConfig.nav2Link && containerConfig.nav2Link != \"\")) ? (\n \n {containerConfig && containerConfig.nav2Label && containerConfig.nav2Label != \"\" ? containerConfig.nav2Label : }\n \n ) : (\n \n \n \n )}\n \n \n {containerConfig && ((containerConfig.nav3Label && containerConfig.nav3Label != \"\") || (containerConfig.nav3Link && containerConfig.nav3Link != \"\")) ? (\n \n {containerConfig && containerConfig.nav3Label && containerConfig.nav3Label != \"\" ? containerConfig.nav3Label : }\n \n ) : (\n \n \n \n )}\n \n {!this.props.loginWithTeams && (\n \n \n \n \n \n )}\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.language.loading,\n languages: state.language.languages,\n samlEnabled: state.config.samlEnabled,\n\n brandingLogoImage: state.company.brandingLogoImage,\n brandingLogoChecked: state.company.brandingLogoChecked,\n\n containerConfig: state.config.containerConfig,\n loginWithMembee: state.auth.loginWithMembee,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onLanguage: bindActionCreators(languageActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(NavMainLogin);\n","import NavMain from \"./NavMain\";\nimport NavMainLogin from \"./NavMainLogin\";\nimport \"./NavMenu.css\";\nimport React, { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\n\nexport class NavMenu extends Component {\n static displayName = NavMenu.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n logoTimestamp: this.props.logoTimestamp,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.logoTimestamp !== this.props.logoTimestamp) {\n this.setState({ logoTimestamp: this.props.logoTimestamp });\n }\n }\n\n render() {\n return (\n
\n \n } />\n } />\n } />\n } />\n \n
\n );\n }\n}\n","import React, { Component } from 'react';\n\nimport { Container } from 'reactstrap';\nimport { Footer } from './Footer';\nimport { FooterContent } from './FooterContent';\nimport { NavMenu } from './common/NavMenu';\n\n// import topBg1 from `${process.env.PUBLIC_URL}/assets/img/bg/top-bg1.png`;\n// import topBg2 from `${process.env.PUBLIC_URL}/assets/img/bg/top-bg2.png`;\n\nconst bgWrapStyle = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n}\nconst outerWrapStyle = {\n position: 'absolute',\n width: '100%',\n}\n\nconst topBgStyle = {\n position: 'absolute',\n overflow: 'hidden',\n top: '0px',\n right: '0px',\n width: '100%',\n height: '300px'\n}\n\nconst img1TopStyle = {\n position: 'absolute',\n top: '-103px',\n right: '-287px',\n overflow: 'hidden',\n}\n\nconst img2TopStyle = {\n position: 'absolute',\n top: '-50px',\n right: '-390px',\n overflow: 'hidden',\n}\n\nexport class Layout extends Component {\n static displayName = Layout.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n logoTimestamp: new Date(),\n };\n }\n\n logoUpdated = () => {\n this.setState({ logoTimestamp: new Date() })\n }\n\n render() {\n const pathName = window.location.pathname;\n const isAdmin = pathName.includes(\"/admin\");\n\n const updateChildrenWithProps = React.Children.map(\n this.props.children,\n (child, i) => {\n return React.cloneElement(child, {\n logoUpdated: this.logoUpdated,\n index: i\n });\n }\n );\n\n return (\n
\n
\n \n
\n \"Top\n \"Top\n
\n
\n
\n
\n \n {isAdmin || window.location.pathname.includes(\"TeamAnalytics\")\n ? \n {updateChildrenWithProps}\n \n : \n {updateChildrenWithProps}\n \n }\n \n
\n
\n );\n }\n}\n","import { Layout } from \"../Layout\";\nimport React from \"react\";\nimport { Redirect, Route } from \"react-router-dom\";\n\nconst ProtectedRoute = ({ component: Component, notLayout, isAuthenticated, authMode, disconnectSignalR, language, setCurrentLanguage, redirectUrl, isLogout, favIconUpdated, ...rest }) => (\n {\n if (!isAuthenticated) {\n return ;\n } else {\n if (redirectUrl && !isLogout) {\n localStorage.setItem(\"redirectUrl\", \"\");\n localStorage.setItem(\"isLogout\", \"FALSE\");\n return ;\n } else {\n return notLayout ? (\n \n ) : (\n \n \n \n );\n }\n }\n }}\n />\n);\n\nexport default ProtectedRoute;\n","import * as authActions from \"../store/actions/authAction\";\n\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Row, Spinner, } from \"reactstrap\";\nimport { dismisAlert, generateAlert } from \"../utils/alertUtils\";\n\nimport { AlertList } from \"react-bs-notifier\";\nimport ContentTranslator from \"./translator/ContentTranslator\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport { Layout } from \"./Layout\";\nimport React from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport changeInput from \"../utils/changeInput\";\nimport { connect } from \"react-redux\";\nimport { contentTranslator } from \"../utils/translatorUtils\";\n\nconst titleStyle = {\n fontFamily: 'IBMPlexSans-Bold',\n fontSize: '38px',\n align: 'left',\n}\n\nconst descStyle = {\n fontFamily: 'IBMPlexSans-Light',\n fontSize: '14px',\n align: 'left'\n}\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ForgotPassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n alerts: [],\n form: {\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n }\n },\n isFormValid: false,\n resetEmailSent: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n\n }\n\n handleChange = (event) => {\n const { name, value } = event.target\n\n const updateState = changeInput(\n this.state.form,\n name,\n value\n );\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid\n })\n }\n\n submitForm = (event) => {\n event.preventDefault();\n this.setState({ resetEmailSent: false, error: null, loading: true });\n const email = this.state.form.email.value;\n\n this.props.onAuth.forgotPassword(email).then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({ resetEmailSent: true });\n }\n }\n this.setState({ loading: this.props.loading });\n });\n }\n\n render() {\n const { form } = this.state;\n\n return (\n \n \n \n {!this.state.resetEmailSent ?\n \n \n

\n

\n \n \n
\n \n \n \n {form.email.value != \"\" && !form.email.isValidFormat && }\n \n \n {!this.state.loading ? \n :\n \n }\n \n \n \n
\n :\n \n \n

\n

NOTE : Reset links will ONLY be sent to recognised email addresses.\")\n }}>

\n \n
\n }\n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ForgotPassword);\n","import * as authActions from \"../store/actions/authAction\";\nimport * as configActions from \"../store/actions/configAction\";\nimport * as contentActions from \"../store/actions/contentAction\";\nimport * as adminPersonActions from \"../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../utils/alertUtils\";\nimport changeInput from \"../utils/changeInput\";\nimport { Layout } from \"./Layout\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport ContentTranslator from \"./translator/ContentTranslator\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { Helmet } from \"react-helmet\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\nimport { Userpilot } from \"userpilot\";\n\nconst titleStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n fontSize: \"38px\",\n align: \"left\",\n};\n\nconst descStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"14px\",\n align: \"left\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst userPilotToken = process.env.REACT_APP_USER_PILOT_TOKEN;\n\nUserpilot.initialize(userPilotToken);\n\nclass Login extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loadingInitial: true,\n loading: false,\n alerts: [],\n form: {\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n password: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n boolLoginMembee: this.props.boolLoginMembee,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n const redirectUrl = this.props.location && this.props.location.state && this.props.location.state.redirectUrl ? this.props.location.state.redirectUrl : null;\n const isLogout = this.props.location && this.props.location.state && this.props.location.state.isLogout ? this.props.location.state.isLogout : false;\n\n if (redirectUrl) {\n if (redirectUrl.includes(\"/admin/endorsements/download\") || redirectUrl.includes(\"/admin/settings/downloadmigrationimpact\")) {\n this.props.onAuth.setRedirectUrl(null, isLogout);\n } else {\n this.props.onAuth.setRedirectUrl(redirectUrl, isLogout);\n }\n } else {\n this.props.onAuth.setRedirectUrl(redirectUrl, isLogout);\n }\n\n const {\n match: { params },\n } = this.props;\n\n var token = params.token;\n\n if (!token) {\n this.setState({ loadingInitial: false });\n\n const boolLoginFail = this.props.boolLoginFail;\n if (boolLoginFail) {\n const query = new URLSearchParams(this.props.location.search);\n var email = query.get(\"email\");\n\n this.generateAlert(\"danger\", `No account found for ${email}`);\n }\n\n if (this.props.boolLoginMembee) {\n window.loginMembee();\n }\n\n if (this.props.containerConfig && this.props.containerConfig.restrictLoginSSOOnly && this.props.containerConfig.byPassLoginPage) {\n window.location = \"/sso/login\";\n }\n } else {\n this.submitLoginWithToken(token);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.boolLoginMembee !== this.props.boolLoginMembee) {\n this.setState({ boolLoginMembee: this.props.boolLoginMembee });\n if (this.props.boolLoginMembee) {\n window.loginMembee();\n }\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n submitLoginWithToken = (token) => {\n this.props.onAuth.signInUseOneTimeLoginToken(token).then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.connectSignalR();\n\n Userpilot.identify(this.props.loginResult.personId, { name: `${this.props.loginResult.firstName} ${this.props.loginResult.lastName}`, email: this.props.loginResult.email });\n Promise.resolve(\n this.props.onAuth.signInSuccess(\n this.props.loginResult.token,\n this.props.email,\n this.props.assessmentId,\n this.props.sfiaVersion,\n this.props.jobProfileReportFormat,\n this.props.selfAssessedProfileReportFormat,\n this.props.hasPeoples,\n this.props.isEndorser,\n this.props.authMode,\n this.props.loginResult.personId,\n this.props.ownJobs,\n this.props.manageEndorsements,\n this.props.manageCertifications,\n this.props.loginWithMembee,\n this.props.loginWithTeams,\n this.props.receiveLicenseNotification,\n this.props.lastActiveUserNotification,\n this.props.allowSkipSurvey,\n this.props.manageSelfAssessed,\n this.props.manageSelfProfiles,\n this.props.hasRelationships\n )\n ).then(() => {\n localStorage.setItem(\"manageEndorsementOperation\", \"HIDE\");\n\n let authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n\n if (authModes.includes(\"Survey\")) {\n this.props.history.push(`/survey/assessment/${this.props.assessmentId}`);\n }\n\n if (authModes.includes(\"Admin\")) {\n this.props.onAdminPerson.getPageAssignments().then(() => {});\n this.props.onAdminPerson.getColumnDisplaySettings().then(() => {});\n }\n\n this.props.onConfig.getContainerConfig().then(() => {});\n });\n }\n }\n this.setState({ loading: this.props.loading, loadingInitial: this.props.loading });\n });\n };\n\n submitForm = (event) => {\n event.preventDefault();\n this.setState({ error: null, loading: true });\n const email = this.state.form.email.value;\n const password = this.state.form.password.value;\n\n this.props.onAuth.signIn(email, password).then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.connectSignalR();\n\n Userpilot.identify(this.props.loginResult.personId, { name: `${this.props.loginResult.firstName} ${this.props.loginResult.lastName}`, email: this.props.loginResult.email });\n this.props.onAuth.signInSuccess(\n this.props.loginResult.token,\n email,\n this.props.assessmentId,\n this.props.sfiaVersion,\n this.props.jobProfileReportFormat,\n this.props.selfAssessedProfileReportFormat,\n this.props.hasPeoples,\n this.props.isEndorser,\n this.props.authMode,\n this.props.loginResult.personId,\n this.props.ownJobs,\n this.props.manageEndorsements,\n this.props.manageCertifications,\n this.props.loginWithMembee,\n this.props.loginWithTeams,\n this.props.receiveLicenseNotification,\n this.props.lastActiveUserNotification,\n this.props.allowSkipSurvey,\n this.props.manageSelfAssessed,\n this.props.manageSelfProfiles,\n this.props.hasRelationships\n );\n\n localStorage.setItem(\"manageEndorsementOperation\", \"HIDE\");\n\n let authMode = this.props.authMode;\n authMode = authMode ? authMode : \"Planner\";\n\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.includes(\"Admin\")) {\n this.props.onAdminPerson.getPageAssignments().then(() => {});\n this.props.onAdminPerson.getColumnDisplaySettings().then(() => {});\n }\n\n this.props.onConfig.getContainerConfig().then(() => {});\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n loginMembee = () => {\n window.loginMembee();\n };\n\n render() {\n const { form } = this.state;\n\n return (\n \n \n {this.state.loadingInitial ? (\n \n \n \n
\n \n
\n \n
\n
\n ) : (\n \n
\n \n \n \n

\n \n

\n

\n \n

\n \n \n
\n {!(this.props.samlEnabled && this.props.samlEnabled == \"TRUE\" && this.props.restrictLoginSSOOnly && this.props.restrictLoginSSOOnly == \"TRUE\") && (\n \n \n \n \n {form.email.value != \"\" && !form.email.isValidFormat && (\n \n \n \n )}\n \n \n \n \n \n \n \n
\n \n \n \n
\n
\n
\n )}\n {this.props.defaultCompany && this.props.samlEnabled && this.props.samlEnabled == \"TRUE\" && (\n {\n window.location = \"/sso/login\";\n }}\n >\n
Login with {this.props.defaultCompany.name}
\n \n )}\n {this.props.defaultCompany && this.props.containerConfig && this.props.containerConfig.ssoMembeeEnable && this.props.containerConfig.ssoMembeeClientId != \"\" && this.props.containerConfig.ssoMembeeApiId != \"\" && (\n
\n {\n this.loginMembee();\n }}\n >\n
Login with {this.props.defaultCompany.name}
\n \n
\n )}\n \n \n
\n
\n
\n
\n  \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n loginResult: state.auth.loginResult,\n isAuthenticated: state.auth.token !== null,\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n hasRelationships: state.auth.hasRelationships,\n manageEndorsements: state.auth.manageEndorsements,\n manageCertifications: state.auth.manageCertifications,\n manageSelfAssessed: state.auth.manageSelfAssessed,\n manageSelfProfiles: state.auth.manageSelfProfiles,\n loginWithMembee: state.auth.loginWithMembee,\n loginWithTeams: state.auth.loginWithTeams,\n receiveLicenseNotification: state.auth.receiveLicenseNotification,\n lastActiveUserNotification: state.auth.lastActiveUserNotification,\n ownJobs: state.auth.ownJobs,\n email: state.auth.email,\n assessmentId: state.auth.assessmentId,\n sfiaVersion: state.auth.sfiaVersion,\n jobProfileReportFormat: state.auth.jobProfileReportFormat,\n selfAssessedProfileReportFormat: state.auth.selfAssessedProfileReportFormat,\n authMode: state.auth.authMode,\n samlEnabled: state.config.samlEnabled,\n restrictLoginSSOOnly: state.config.restrictLoginSSOOnly,\n defaultCompany: state.company.defaultCompany,\n\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Login));\n","import * as authActions from \"../store/actions/authAction\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Redirect } from \"react-router-dom\";\nimport { bindActionCreators } from \"redux\";\n\nclass Logout extends Component {\n componentDidMount() {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n this.props.disconnectSignalR();\n this.props.onAuth.authLogoutIntended();\n }\n\n render() {\n return ;\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(null, mapDispatchToProps)(Logout);\n","import * as authActions from \"../store/actions/authAction\";\nimport { updateState } from \"../store/utility\";\nimport { dismisAlert, generateAlert } from \"../utils/alertUtils\";\nimport changeInput from \"../utils/changeInput\";\nimport { Layout } from \"./Layout\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport ContentTranslator from \"./translator/ContentTranslator\";\nimport moment from \"moment/min/moment-with-locales\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst titleStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n fontSize: \"38px\",\n align: \"left\",\n};\n\nconst descStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"14px\",\n align: \"left\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ResetPassword extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n tokenValid: null,\n alerts: [],\n resetPassword: null,\n form: {\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n password: {\n validation: {\n required: true,\n minLength: 8,\n isPassword: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n repassword: {\n validation: {\n required: true,\n minLength: 8,\n isPassword: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n var token = query.get(\"token\");\n\n if (token) {\n if (this.props.isAuthenticated) {\n this.props.onAuth.authLogout();\n } else {\n this.props.onAuth.getResetPassword(token).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n const resetPassword = this.props.resetPassword;\n var expiredDate = moment(this.props.resetPassword.expiredDate)._d;\n const now = new Date();\n\n if (resetPassword.inactive || now > expiredDate) {\n this.setState({ tokenValid: false });\n } else {\n this.setState({ tokenValid: true, resetPassword });\n }\n } else {\n this.setState({ tokenValid: false });\n }\n }\n this.setState({ loading: this.props.loading });\n });\n }\n } else {\n this.props.history.push(\"/login\");\n }\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n onConfirmPass = (eventValue, inputIdentifier) => {\n const updateLocalState = changeInput(this.state.form, inputIdentifier, eventValue);\n\n // Check confirm password value is equal with password\n const isEquals = eventValue === this.state.form.password.value;\n if (!isEquals) {\n updateLocalState.form[inputIdentifier] = updateState(updateLocalState.form[inputIdentifier], {\n valid: false,\n });\n }\n\n this.setState({\n form: updateLocalState.form,\n isFormValid: updateLocalState.valid && isEquals,\n });\n };\n\n submitForm = (event) => {\n event.preventDefault();\n this.setState({ error: null, loading: true });\n\n const token = this.state.resetPassword.token;\n const email = this.state.form.email.value;\n const password = this.state.form.password.value;\n\n const body = {\n token,\n email,\n password,\n };\n\n this.props.onAuth.processResetPassword(body).then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Your password has been updated\");\n this.props.history.push(\"/login\");\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n render() {\n const { form } = this.state;\n\n return (\n \n \n \n {this.state.loading && this.state.tokenValid == null ? (\n
\n \n
\n ) : (\n \n {!this.state.tokenValid ? (\n \n \n

\n \n

\n

\n \n

\n \n
\n ) : (\n \n \n

\n \n

\n

\n \n

\n \n \n
\n \n \n \n {form.email.value != \"\" && !form.email.isValidFormat && (\n \n \n \n )}\n \n \n \n \n {form.password.touched && (!form.password.valid || !form.password.isValidFormat) && (\n \n )}\n \n \n \n this.onConfirmPass(e.target.value, \"repassword\")}\n />\n \n \n
\n \n
\n )}\n
\n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loadingResetPassword,\n error: state.auth.errorResetPassword,\n resetPassword: state.auth.resetPassword,\n isAuthenticated: state.auth.token !== null,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ResetPassword));\n","import * as authActions from \"../store/actions/authAction\";\n\nimport { Col, Row, } from \"reactstrap\";\n\nimport ContentTranslator from \"./translator/ContentTranslator\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport { Layout } from \"./Layout\";\nimport React from \"react\";\nimport { bindActionCreators } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { contentTranslator } from \"../utils/translatorUtils\";\n\nconst titleStyle = {\n fontFamily: 'IBMPlexSans-Bold',\n fontSize: '38px',\n align: 'left',\n}\n\nconst descStyle = {\n fontFamily: 'IBMPlexSans-Light',\n fontSize: '14px',\n align: 'left'\n}\n\nclass ResetPasswordConfirmation extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authLogout().then(() => {\n });\n }\n\n render() {\n return (\n \n \n \n \n

\n

NOTE : Reset links will ONLY be sent to recognised email addresses.\")\n }}>

\n \n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ResetPasswordConfirmation);\n","import { Button } from \"reactstrap\";\nimport { Layout } from \"./Layout\";\nimport { ContentWrapper } from \"./common/ContentWrapper\";\nimport React from \"react\";\nimport { CSVLink } from \"react-csv\";\n\nclass TeamTabs extends React.Component {\n static displayName = TeamTabs.name;\n\n constructor(props) {\n super(props);\n this.state = {\n emailAddress: null,\n tableHeader: [\"Name\", \"Email\", \"User Principal Name\"],\n csvData: [],\n };\n }\n\n componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n const emailAddress = query.get(\"emailAddress\");\n this.setState({ emailAddress });\n }\n\n handleDownloadExcel = () => {\n this.setState({\n csvData: [this.state.tableHeader, [\"Test 1\", \"test1@skillstx.com\", \"test1@skillstx.com\"], [\"Test 2\", \"test2.collins@skillstx.com\", \"test2.collins@skillstx.com\"]],\n });\n return true;\n };\n\n render() {\n return (\n \n \n
Redirect from Teams; {this.state.emailAddress ? `Email Address ${this.state.emailAddress}` : \"No Email\"}
\n
\n \n \n \n
\n
\n
\n );\n }\n}\n\nexport default TeamTabs;\n","import React, { Component } from \"react\";\nimport { Container } from \"reactstrap\";\n\nexport class ContentWrapperLg extends Component {\n static displayName = ContentWrapperLg.name;\n\n render() {\n return (\n \n );\n }\n}\n","import { contentTranslator } from \"../../utils/translatorUtils\";\nimport \"./../../custom-admin-menu.css\";\nimport { faBarsProgress, faBriefcase, faEnvelopesBulk, faUserCheck, faUserGraduate, faUserPen, faUsers, faScrewdriverWrench, faEye, faCircleInfo, faBuildingColumns, faFilter, faTag, faFileCirclePlus, faCertificate, faChartPie, faStamp, faIdCard, faClone, faPersonCircleCheck } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { Navigation } from \"react-minimal-side-navigation/lib\";\nimport \"react-minimal-side-navigation/lib/ReactMinimalSideNavigation.css\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Container } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass NavAdmin extends React.Component {\n static displayName = NavAdmin.name;\n\n constructor(props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true,\n isDdOpen: false,\n //setIsOpen: false,\n contentTranslations: [],\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n toggleNavbar() {\n this.setState({\n collapsed: !this.state.collapsed,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.contentTranslations !== this.props.contentTranslations || prevProps.language !== this.props.language) {\n this.setState({ contentTranslations: this.props.contentTranslations });\n }\n }\n\n render() {\n const containerConfig = this.props.containerConfig;\n const pageAssignments = this.props.pageAssignments;\n const manageUserAccess = pageAssignments ? pageAssignments.find((it) => it.pageName == \"Manage Users\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) : null;\n\n let navigationItems = [];\n let manageUserNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Users\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageUserNav = {\n title: \"Manage Users\",\n itemId: \"/admin/users\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageUserNav);\n }\n\n let assignParticipantsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Participants\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n assignParticipantsNav = {\n title: \"Assign Participants\",\n itemId: \"/admin/assignparticipant\",\n elemBefore: () => ,\n };\n\n navigationItems.push(assignParticipantsNav);\n }\n\n let trackParticipantProgressNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Track Participant Progress\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n trackParticipantProgressNav = {\n title: \"Track Participant Progress\",\n itemId: \"/admin/surveyprogress\",\n elemBefore: () => ,\n };\n\n navigationItems.push(trackParticipantProgressNav);\n }\n\n let analyticsNav = null;\n if (\n containerConfig &&\n containerConfig.powerBiReportId &&\n containerConfig.powerBiWorkspaceId &&\n containerConfig.powerBiEmbeddedToken &&\n containerConfig.powerBiEmbeddedUrl &&\n pageAssignments &&\n pageAssignments.find((it) => it.pageName == \"Analytics\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))\n ) {\n analyticsNav = {\n title: \"Analytics\",\n itemId: \"/admin/analytics\",\n openNewTab: false,\n elemBefore: () => ,\n };\n\n navigationItems.push(analyticsNav);\n }\n\n let manageSelfAssessedApproveNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Approve SelfAssessed\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageSelfAssessedApproveNav = {\n title: \"Approve SelfAssessed\",\n itemId: \"/admin/selfassessed\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageSelfAssessedApproveNav);\n }\n\n let manageRelationshipsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Relationships\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageRelationshipsNav = {\n title: \"Manage Relationships\",\n itemId: \"/admin/userrelationships\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageRelationshipsNav);\n }\n\n let manageRequirementsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageRequirementsNav = {\n title: \"Manage Requirements\",\n itemId: \"/admin/requirements\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageRequirementsNav);\n }\n\n let manageRequirementFamiliesNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirement Families\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageRequirementFamiliesNav = {\n title: \"Manage Requirement Families\",\n itemId: \"/admin/requirementFamilies\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageRequirementFamiliesNav);\n }\n\n let assignRequirementsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n assignRequirementsNav = {\n title: \"Assign Requirements\",\n itemId: \"/admin/requirementassignments\",\n elemBefore: () => ,\n };\n\n navigationItems.push(assignRequirementsNav);\n }\n\n let manageEndorsementsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Endorsements and Reports\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageEndorsementsNav = {\n title: \"Manage Endorsements and Reports\",\n itemId: \"/admin/endorsements\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageEndorsementsNav);\n }\n\n let manageSelfAssessedProfilesNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Create Endorsed from Approved\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageSelfAssessedProfilesNav = {\n title: \"Create Endorsed from Approved\",\n itemId: \"/admin/selfprofiles\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageSelfAssessedProfilesNav);\n }\n\n let manageSFIACredentialsNav = null;\n if (containerConfig && containerConfig.showSfiaCertificationAdmin && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage SFIA Credentials and Reports\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageSFIACredentialsNav = {\n title: \"Manage SFIA Credentials and Reports\",\n itemId: \"/admin/sfiacredentials\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageSFIACredentialsNav);\n }\n\n let manageSkillAttributesNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Skills and Attributes\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageSkillAttributesNav = {\n title: \"Manage Skills and Attributes\",\n itemId: \"/admin/skills\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageSkillAttributesNav);\n }\n\n let manageLorNav = null;\n if (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == false && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage LoR\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageLorNav = {\n title: \"Manage LoR and Attributes\",\n itemId: \"/admin/lors\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageLorNav);\n }\n\n let manageTrainingProvidersNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Select Training Providers\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageTrainingProvidersNav = {\n title: \"Select Training Providers\",\n itemId: \"/admin/trainingprofiders\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageTrainingProvidersNav);\n }\n\n let manageActionsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Action List\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageActionsNav = {\n title: \"Manage Action List\",\n itemId: \"/admin/trainings\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageActionsNav);\n }\n\n let assignActionRequirementsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Action Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n assignActionRequirementsNav = {\n title: \"Assign Action Requirements\",\n itemId: \"/admin/trainingjobs\",\n elemBefore: () => ,\n };\n\n navigationItems.push(assignActionRequirementsNav);\n }\n\n let manageFeaturesSettingsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Features Settings\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageFeaturesSettingsNav = {\n title: \"Manage Features/Settings\",\n itemId: \"/admin/settings\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageFeaturesSettingsNav);\n }\n\n let manageEmailTemplatesNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Email Templates\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageEmailTemplatesNav = {\n title: \"Manage Email Templates\",\n itemId: \"/admin/emails\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageEmailTemplatesNav);\n }\n\n let manageReportTemplatesNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Report Templates\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageReportTemplatesNav = {\n title: \"Manage Report Templates\",\n itemId: \"/admin/reporttemplates\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageReportTemplatesNav);\n }\n\n let uploadCompanyLogoNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Upload Company Logo\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n uploadCompanyLogoNav = {\n title: \"Upload Company Logo\",\n itemId: \"/admin/branding\",\n elemBefore: () => ,\n };\n\n navigationItems.push(uploadCompanyLogoNav);\n }\n\n let manageContentsNav = null;\n if (pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Page Labels\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageContentsNav = {\n title: \"Manage Page Labels\",\n itemId: \"/admin/contents\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageContentsNav);\n }\n\n let manageExtraFrameworksNav = null;\n if (this.props.containerConfig && this.props.containerConfig.showExtraFrameworkAdmin == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Extra Frameworks\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageExtraFrameworksNav = {\n title: \"Manage Extra Frameworks\",\n itemId: \"/admin/extraframeworks\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageExtraFrameworksNav);\n }\n\n let manageLorCategoryNav = null;\n if (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage LoR Category\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageLorCategoryNav = {\n title: \"Manage LoR Category and Attributes\",\n itemId: \"/admin/lors\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageLorCategoryNav);\n }\n\n let manageSSOSettingNav = null;\n if (this.props.containerConfig && this.props.containerConfig.allowManageSSOSetting == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage SSO Setting\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true))) {\n manageSSOSettingNav = {\n title: \"Manage SSO Setting\",\n itemId: \"/admin/ssosetting\",\n elemBefore: () => ,\n };\n\n navigationItems.push(manageSSOSettingNav);\n }\n\n return (\n \n {\n const navigationItem = navigationItems.find((it) => it.itemId == itemId);\n\n if (itemId) {\n if (navigationItem && navigationItem.openNewTab) {\n const win = window.open(itemId, \"_blank\");\n win.focus();\n } else {\n this.props.history.push(itemId);\n }\n }\n }}\n items={navigationItems}\n />\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n managedPeople: state.auth.managedPeople,\n hasRelationships: state.auth.hasRelationships,\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n\n authMode: state.auth.authMode,\n pageAssignments: state.adminPerson.pageAssignments,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NavAdmin));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass EvidenceAPI {\n static getEvidencesByAccountId() {\n return axios\n .get(`/evidences/byaccountId`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getEvidencesByManagedPeopleAccountId(email) {\n return axios\n .get(`/evidences/byManagedPeopleAccountId?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static downloadEvidence(id) {\n return axios\n .get(`/evidences/download/${id}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static downloadManagedPeopleEvidence(email, id) {\n return axios\n .get(`/evidences/downloadManagedPeopleEvidence?email=${email}&id=${id}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getEvidenceTypes() {\n return axios\n .get(`/evidences/evidenceTypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addEvidence(evidence) {\n return axios\n .post(`/evidences`, evidence)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addEvidences(evidences) {\n return axios\n .post(`/evidences/addEvidences`, evidences)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addManagedPeopleEvidence(evidence) {\n return axios\n .post(`/evidences/managedPeopleEvidence`, evidence)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateEvidence(evidenceId, evidence) {\n return axios\n .put(`/evidences/${evidenceId}`, evidence)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateEvidenceAIReview(evidenceId) {\n return axios\n .post(`/evidences/${evidenceId}/aireview`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleEvidence(evidenceId, evidence) {\n return axios\n .put(`/evidences/managedPeopleEvidence/${evidenceId}`, evidence)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteEvidence(evidenceId) {\n return axios\n .delete(`/evidences/${evidenceId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteManagedPeopleEvidence(evidenceId, personEmail) {\n return axios\n .delete(`/evidences/managedPeopleEvidence/${evidenceId}?personEmail=${personEmail}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getMyBadges() {\n return axios\n .get(`/evidences/mybadges`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default EvidenceAPI;\n","import EvidenceAPI from \"../../common/api/service/EvidenceService\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"./../translator/ContentTranslator\";\nimport React, { Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { NavLink as RRNavLink } from \"react-router-dom\";\nimport { Collapse, Container, Nav, NavItem, NavLink, Navbar, NavbarToggler } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst navbarStyle = {\n borderRadius: \"10px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst navlinkLeftStyle = {\n fontSize: \"11px\",\n color: \"#FFFFFF\",\n paddingLeft: \"30px\",\n paddingRight: \"30px\",\n paddingTop: \"20px\",\n // paddingBottom: \"20px\",\n borderTopLeftRadius: \"10px\",\n borderBottomLeftRadius: \"10px\",\n borderRight: \"0.5px solid #194293\",\n height: \"57px\",\n};\n\nconst navlinkCenterStyle = {\n fontSize: \"11px\",\n color: \"#FFFFFF\",\n paddingLeft: \"30px\",\n paddingRight: \"30px\",\n paddingTop: \"20px\",\n // paddingBottom: \"20px\",\n borderRight: \"0.5px solid #194293\",\n height: \"57px\",\n};\n\nconst navlinkLeftStyle10 = {\n fontSize: \"11px\",\n color: \"#FFFFFF\",\n paddingLeft: \"30px\",\n paddingRight: \"30px\",\n paddingTop: \"13px\",\n // paddingBottom: \"20px\",\n borderTopLeftRadius: \"10px\",\n borderBottomLeftRadius: \"10px\",\n borderRight: \"0.5px solid #194293\",\n height: \"57px\",\n};\n\nconst navlinkCenterStyle10 = {\n fontSize: \"11px\",\n color: \"#FFFFFF\",\n paddingLeft: \"30px\",\n paddingRight: \"30px\",\n paddingTop: \"13px\",\n // paddingBottom: \"20px\",\n borderRight: \"0.5px solid #194293\",\n height: \"57px\",\n};\n\nconst navItem = {\n height: \"57px\",\n};\n\nclass NavSecondary extends React.Component {\n static displayName = NavSecondary.name;\n\n constructor(props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true,\n isDdOpen: false,\n //setIsOpen: false,\n contentTranslations: [],\n hasBadges: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n toggleNavbar() {\n this.setState({\n collapsed: !this.state.collapsed,\n });\n }\n\n backToProfile = () => {\n Promise.resolve(this.props.onAuth.myPeopleClearManagedRelationship()).then(() => {\n Promise.resolve(this.props.onPerson.clearPersonAccountState()).then(() => {\n this.props.history.push(\"/\");\n });\n });\n };\n\n navigateBack = () => {\n Promise.resolve(this.props.onAuth.myPeopleClearManagedRelationship()).then(() => {\n Promise.resolve(this.props.onPerson.clearPersonAccountState()).then(() => {\n localStorage.setItem(\"routeGoBack\", \"TRUE\");\n\n const routeAdminFrom = localStorage.getItem(\"routeAdminFrom\");\n if (routeAdminFrom) {\n this.props.history.push(routeAdminFrom);\n } else {\n this.props.history.goBack();\n }\n });\n });\n };\n\n componentDidMount() {\n const fetchedBadges = async () => {\n const badges = await EvidenceAPI.getMyBadges();\n this.setState({\n hasBadges: badges && Array.isArray(badges) && badges.length > 0,\n });\n };\n fetchedBadges();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.contentTranslations !== this.props.contentTranslations || prevProps.language !== this.props.language) {\n this.setState({ contentTranslations: this.props.contentTranslations });\n }\n }\n\n render() {\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n let numberOfMenu = 0;\n\n const manageProfileByAdminPopup = localStorage.getItem(\"manageProfileByAdminPopup\") && localStorage.getItem(\"manageProfileByAdminPopup\") == \"TRUE\" ? true : false;\n\n if (authModes.includes(\"Planner\") && !authModes.includes(\"Admin\")) {\n numberOfMenu += 4;\n } else if (authModes.includes(\"Planner\") && authModes.includes(\"Admin\")) {\n numberOfMenu += 4.5;\n } else if (authModes.includes(\"Admin\") && !authModes.includes(\"Planner\")) {\n // if (this.props.managedPeople) {\n // numberOfMenu += 4.5;\n // } else {\n // numberOfMenu += 0.5;\n // }\n\n numberOfMenu += 0.5;\n }\n\n if (authModes.includes(\"Planner\") && !manageProfileByAdminPopup) {\n if (this.props.hasPeoples) {\n numberOfMenu += 2;\n }\n\n if (this.props.isEndorser) {\n numberOfMenu += 1;\n }\n\n if ((this.props.hasPeoples || this.props.isEndorser) && this.props.managedPeople) {\n numberOfMenu += 1;\n }\n\n if (this.props.hasRelationships && this.props.containerConfig && this.props.containerConfig.allowUserSeeTheirRelationships) {\n numberOfMenu += 1;\n }\n }\n\n if (authModes.includes(\"Planner\") && !authModes.includes(\"Admin\") && this.props.ownJobs) {\n //Add Manage Requirements Button\n numberOfMenu += 1;\n }\n\n let showBackButton = false;\n\n if (\n manageProfileByAdminPopup &&\n (window.location.pathname.includes(\"/SfiaProfile/Manage\") ||\n window.location.pathname.includes(\"/ActionPlan/Manage\") ||\n window.location.pathname.includes(\"/Evidence/Manage\") ||\n window.location.pathname.includes(\"/Notes/Manage\") ||\n window.location.pathname.includes(\"/SfiaProfile/Certify\") ||\n window.location.pathname.includes(\"/SfiaProfile/TeamAnalytics\"))\n ) {\n //Add Back Button\n showBackButton = true;\n }\n\n return (\n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n hasRelationships: state.auth.hasRelationships,\n ownJobs: state.auth.ownJobs,\n managedPeople: state.auth.managedPeople,\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n\n authMode: state.auth.authMode,\n loginWithTeams: state.auth.loginWithTeams,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(NavSecondary));\n","import React from \"react\";\n\nclass Admin403Page extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n };\n }\n\n render() {\n return \"\";\n }\n}\n\nexport default Admin403Page;\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminCompanyAPI {\n static getBrandingLogo() {\n return axios\n .get(`/companies/brandinglogo`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static updateBrandingLogo(brandingLogo) {\n return axios\n .post(`/companies/brandinglogo`, {\n brandingLogo\n })\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static deleteBrandingLogo() {\n return axios\n .post(`/companies/deletebrandinglogo`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static getFavIcon() {\n return axios\n .get(`/companies/favicon`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static updateFavIcon(favIcon) {\n return axios\n .post(`/companies/favicon`, {\n favIcon\n })\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n\n static deleteFavIcon() {\n return axios\n .post(`/companies/deletefavicon`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n console.log(err);\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminCompanyAPI;","import * as actionTypes from \"./adminActionTypes\";\n\nimport AdminCompanyAPI from \"./../../../common/api/adminservice/AdminCompanyService\";\n\nexport const getCompanyBrandingLogoStart = () => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_START\n };\n};\n\nexport const getCompanyBrandingLogoSuccess = () => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_SUCCESS,\n };\n};\n\nexport const getCompanyBrandingLogoFail = error => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_BRANDING_LOGO_FAIL,\n error: error,\n };\n};\n\nexport const getCompanyBrandingLogo = () => {\n return dispatch => {\n dispatch(getCompanyBrandingLogoStart());\n\n return AdminCompanyAPI.getBrandingLogo()\n .then(res => {\n dispatch(getCompanyBrandingLogoSuccess(res));\n })\n .catch(err => {\n dispatch(getCompanyBrandingLogoFail(err));\n });\n };\n};\n\nexport const updateCompanyBrandingLogoStart = () => {\n return {\n type: actionTypes.UPDATE_COMPANY_BRANDING_LOGO_START\n };\n};\n\nexport const updateCompanyBrandingLogoSuccess = () => {\n return {\n type: actionTypes.UPDATE_COMPANY_BRANDING_LOGO_SUCCESS,\n };\n};\n\nexport const updateCompanyBrandingLogoFail = error => {\n return {\n type: actionTypes.UPDATE_COMPANY_BRANDING_LOGO_FAIL,\n error: error,\n };\n};\n\nexport const updateCompanyBrandingLogo = (brandingLogo) => {\n return dispatch => {\n dispatch(updateCompanyBrandingLogoStart());\n\n return AdminCompanyAPI.updateBrandingLogo(brandingLogo)\n .then(res => {\n dispatch(updateCompanyBrandingLogoSuccess(res));\n })\n .catch(err => {\n dispatch(updateCompanyBrandingLogoFail(err));\n });\n };\n};\n\nexport const deleteCompanyBrandingLogo = () => {\n return dispatch => {\n dispatch(updateCompanyBrandingLogoStart());\n\n return AdminCompanyAPI.deleteBrandingLogo()\n .then(res => {\n dispatch(updateCompanyBrandingLogoSuccess(res));\n })\n .catch(err => {\n dispatch(updateCompanyBrandingLogoFail(err));\n });\n };\n};\n\nexport const getCompanyFavIconStart = () => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_FAVICON_START\n };\n};\n\nexport const getCompanyFavIconSuccess = () => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_FAVICON_SUCCESS,\n };\n};\n\nexport const getCompanyFavIconFail = error => {\n return {\n type: actionTypes.GET_ADMIN_COMPANY_FAVICON_FAIL,\n error: error,\n };\n};\n\nexport const getCompanyFavIcon = () => {\n return dispatch => {\n dispatch(getCompanyFavIconStart());\n\n return AdminCompanyAPI.getFavIcon()\n .then(res => {\n dispatch(getCompanyFavIconSuccess(res));\n })\n .catch(err => {\n dispatch(getCompanyFavIconFail(err));\n });\n };\n};\n\nexport const updateCompanyFavIconStart = () => {\n return {\n type: actionTypes.UPDATE_COMPANY_FAVICON_START\n };\n};\n\nexport const updateCompanyFavIconSuccess = () => {\n return {\n type: actionTypes.UPDATE_COMPANY_FAVICON_SUCCESS,\n };\n};\n\nexport const updateCompanyFavIconFail = error => {\n return {\n type: actionTypes.UPDATE_COMPANY_FAVICON_FAIL,\n error: error,\n };\n};\n\nexport const updateCompanyFavIcon = (favIcon) => {\n return dispatch => {\n dispatch(updateCompanyFavIconStart());\n\n return AdminCompanyAPI.updateFavIcon(favIcon)\n .then(res => {\n dispatch(updateCompanyFavIconSuccess(res));\n })\n .catch(err => {\n dispatch(updateCompanyFavIconFail(err));\n });\n };\n};\n\nexport const deleteCompanyFavIcon = () => {\n return dispatch => {\n dispatch(updateCompanyFavIconStart());\n\n return AdminCompanyAPI.deleteFavIcon()\n .then(res => {\n dispatch(updateCompanyFavIconSuccess(res));\n })\n .catch(err => {\n dispatch(updateCompanyFavIconFail(err));\n });\n };\n};","import * as authActions from \"../../store/actions/authAction\";\nimport * as adminCompanyActions from \"../../store/admin/actions/adminCompanyActions\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../utils/alertUtils\";\nimport { faImage } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nclass AdminBranding extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n selectedImage: null,\n selectedFavIcon: null,\n isUpdating: false,\n timestamp: new Date(),\n brandingLogoFound: false,\n favIconFound: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.imageRef = React.createRef();\n this.favIconRef = React.createRef();\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onCompany.getCompanyBrandingLogo().then(() => {\n this.setState({ brandingLogoFound: this.props.brandingLogoFound });\n });\n\n this.props.onCompany.getCompanyFavIcon().then(() => {\n this.setState({ favIconFound: this.props.favIconFound });\n });\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n handleSelectPicture = () => {\n this.imageRef.current.click();\n };\n\n handlePictureChange = (event) => {\n if (event.target.files && event.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n this.setState({ selectedImage: reader.result });\n });\n reader.readAsDataURL(event.target.files[0]);\n }\n };\n\n handleResetPicture = () => {\n this.setState({ selectedImage: null });\n };\n\n handleUploadPicture = () => {\n this.setState({ isUpdating: true });\n const selectedImage = this.state.selectedImage;\n const selectedImages = selectedImage.split(\";base64,\");\n\n this.props.onCompany.updateCompanyBrandingLogo(selectedImages[1]).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Update branding logo success.\");\n this.setState({ selectedImage: null, timestamp: new Date(), brandingLogoFound: true });\n this.props.logoUpdated();\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleDeletePicture = () => {\n if (window.confirm(\"Are you sure want to delete the branding logo?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onCompany.deleteCompanyBrandingLogo().then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Delete branding logo success.\");\n this.setState({ selectedImage: null, timestamp: new Date(), brandingLogoFound: false });\n this.props.logoUpdated();\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleSelectFavIcon = () => {\n this.favIconRef.current.click();\n };\n\n handleFavIconChange = (event) => {\n if (event.target.files && event.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n this.setState({ selectedFavIcon: reader.result });\n });\n reader.readAsDataURL(event.target.files[0]);\n }\n };\n\n handleResetFavIcon = () => {\n this.setState({ selectedFavIcon: null });\n };\n\n handleUploadFavIcon = () => {\n this.setState({ isUpdating: true });\n const selectedFavIcon = this.state.selectedFavIcon;\n const selectedFavIcons = selectedFavIcon.split(\";base64,\");\n\n this.props.onCompany.updateCompanyFavIcon(selectedFavIcons[1]).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Update fav icon success.\");\n this.setState({ selectedFavIcon: null, timestamp: new Date(), favIconFound: true });\n this.props.favIconUpdated();\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleDeleteFavIcon = () => {\n if (window.confirm(\"Are you sure want to delete the fav icon?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onCompany.deleteCompanyFavIcon().then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Delete fav icon success.\");\n this.setState({ selectedFavIcon: null, timestamp: new Date(), favIconFound: false });\n this.props.favIconUpdated();\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Upload Company Logo\");\n\n const apiHostname = process.env.REACT_APP_API_ENDPOINT;\n const baseURL = process.env.NODE_ENV === \"development\" ? `${apiHostname}` : `/api`;\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n \n

\n Branding Logo\n

\n {this.state.selectedImage ? (\n \"Branding\n ) : (\n {\n e.target.onerror = null;\n e.target.src = process.env.PUBLIC_URL + \"/assets/img/lgo/skillstx-logo-top.png\";\n }}\n alt=\"Branding Logo\"\n style={{ maxHeight: \"100px\" }}\n />\n )}\n
\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n \n Select Image\n \n   \n {this.state.selectedImage && (\n \n \n Upload\n \n   \n \n Cancel\n \n   \n \n )}\n {this.state.brandingLogoFound && (\n \n \n Delete Image\n \n   \n \n )}\n \n )}\n
\n
\n
\n \n

\n Fav Icon\n

\n {this.state.selectedFavIcon ? (\n \"Fav\n ) : (\n {\n e.target.onerror = null;\n e.target.src = process.env.PUBLIC_URL + \"/favicon.ico\";\n }}\n alt=\"Fav Icon\"\n style={{ maxHeight: \"80px\" }}\n />\n )}\n
\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n \n Select Image\n \n   \n {this.state.selectedFavIcon && (\n \n \n Upload\n \n   \n \n Cancel\n \n   \n \n )}\n {this.state.favIconFound && (\n \n \n Delete Image\n \n   \n \n )}\n \n )}\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n companyLoading: state.adminCompany.loading,\n companyError: state.adminCompany.error,\n isUpdating: state.adminCompany.isUpdating,\n brandingLogoFound: state.adminCompany.brandingLogoFound,\n favIconFound: state.adminCompany.favIconFound,\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onCompany: bindActionCreators(adminCompanyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminBranding);\n","import { models } from \"powerbi-client\";\nimport { PowerBIEmbed } from \"powerbi-client-react\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\n\nconst apiHostname = process.env.REACT_APP_API_ENDPOINT;\n\nclass Analytics extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n height: 0,\n };\n }\n\n componentDidMount() {\n const element = document.getElementById(\"DivPowerBI\");\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n this.updateWindowDimensions();\n window.addEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n updateWindowDimensions() {\n this.setState({ height: window.innerHeight });\n }\n\n render() {\n const containerConfig = this.props.containerConfig;\n\n return (\n \n {containerConfig && containerConfig.powerBiReportId && containerConfig.powerBiWorkspaceId && containerConfig.powerBiEmbeddedToken && containerConfig.powerBiEmbeddedUrl && (\n \n
\n {\n this.report = embeddedReport;\n }}\n />\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n token: state.auth.token,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Analytics);\n","import ErrorHandler from \"../errorResponseHandler\";\nimport Instance from \"../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminEmailTemplateAPI {\n static getTemplateTypes() {\n return axios\n .get(`/emailtemplates/types`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static getTemplateByType(emailTemplateType) {\n return axios\n .get(`/emailtemplates?emailTemplateType=${emailTemplateType}`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static createUpdateTemplate(emailTemplate) {\n return axios\n .post(`/emailtemplates`, emailTemplate)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminEmailTemplateAPI;","import * as actionTypes from \"./adminActionTypes\";\n\nimport AdminEmailTemplateAPI from \"../../../common/api/adminservice/AdminEmailTemplateService\";\n\nexport const getEmailTemplateTypesStart = () => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_TYPES_START\n };\n};\n\nexport const getEmailTemplateTypesSuccess = (emailTemplateTypes) => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_TYPES_SUCCESS,\n emailTemplateTypes\n };\n};\n\nexport const getEmailTemplateTypesFail = error => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getEmailTemplateTypes = () => {\n return dispatch => {\n dispatch(getEmailTemplateTypesStart());\n\n return AdminEmailTemplateAPI.getTemplateTypes()\n .then(res => {\n dispatch(getEmailTemplateTypesSuccess(res));\n })\n .catch(err => {\n dispatch(getEmailTemplateTypesFail(err));\n });\n };\n};\n\nexport const getEmailTemplateByTypeStart = () => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_START\n };\n};\n\nexport const getEmailTemplateByTypeSuccess = (emailTemplate) => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_SUCCESS,\n emailTemplate\n };\n};\n\nexport const getEmailTemplateByTypeFail = error => {\n return {\n type: actionTypes.GET_EMAIL_TEMPLATE_BY_TYPE_FAIL,\n error: error,\n };\n};\n\nexport const getEmailTemplateByType = (emailTemplateType) => {\n return dispatch => {\n dispatch(getEmailTemplateByTypeStart());\n\n return AdminEmailTemplateAPI.getTemplateByType(emailTemplateType)\n .then(res => {\n dispatch(getEmailTemplateByTypeSuccess(res));\n })\n .catch(err => {\n dispatch(getEmailTemplateByTypeFail(err));\n });\n };\n};\n\nexport const createUpdateEmailTemplateStart = () => {\n return {\n type: actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_START\n };\n};\n\nexport const createUpdateEmailTemplateSuccess = (emailTemplate) => {\n return {\n type: actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS,\n emailTemplate\n };\n};\n\nexport const createUpdateEmailTemplateFail = error => {\n return {\n type: actionTypes.CREATE_UPDATE_EMAIL_TEMPLATE_SUCCESS,\n error: error,\n };\n};\n\nexport const createUpdateEmailTemplate = (emailTemplate) => {\n return dispatch => {\n dispatch(createUpdateEmailTemplateStart());\n\n return AdminEmailTemplateAPI.createUpdateTemplate(emailTemplate)\n .then(res => {\n dispatch(createUpdateEmailTemplateSuccess(res));\n })\n .catch(err => {\n dispatch(createUpdateEmailTemplateFail(err));\n });\n };\n};","import * as authActions from \"../../store/actions/authAction\";\nimport * as adminEmailTemplateActions from \"../../store/admin/actions/adminEmailTemplateActions\";\nimport changeInput from \"../../utils/changeInput\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../utils/alertUtils\";\nimport { contentTranslator } from \"./../../utils/translatorUtils\";\nimport { Switch } from \"antd\";\nimport { ContentState, EditorState, convertToRaw } from \"draft-js\";\nimport draftToHtml from \"draftjs-to-html\";\nimport htmlToDraft from \"html-to-draftjs\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { Editor } from \"react-draft-wysiwyg\";\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\nimport { connect } from \"react-redux\";\nimport { Prompt } from \"react-router\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageEmailTemplates extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n isUpdating: false,\n emailTemplateTypes: [],\n emailTemplate: null,\n showTemplateLoading: false,\n getTemplateLoading: false,\n showEditor: false,\n showUpdateActiveOption: false,\n allowHtmlEditorOnly: false,\n form: {\n emailTemplateType: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n subject: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n emailBody: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n emailActive: {\n validation: {\n required: false,\n },\n value: true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n editWithEditor: {\n validation: {\n required: false,\n },\n value: true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n haveBasicContent: {\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n basicContent: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n isFormDirty: false,\n bodyMode: \"ShowEditor\",\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const { form } = this.state;\n let showUpdateActiveOption = this.state.showUpdateActiveOption;\n let allowHtmlEditorOnly = this.state.allowHtmlEditorOnly;\n\n this.props.onAuth.authCheckState().then(() => {\n this.props.onEmailTemplate.getEmailTemplateTypes().then(() => {\n if (!this.props.emailTemplateLoading) {\n const emailTemplateTypes = this.props.emailTemplateTypes.filter((it) => it.name != \"SFIA Badges Issued Notification\" || (this.props.containerConfig && this.props.containerConfig.showSfiaCertificationAdmin && it.name == \"SFIA Badges Issued Notification\"));\n if (emailTemplateTypes && emailTemplateTypes.length > 0) {\n form.emailTemplateType.value = emailTemplateTypes[0].name;\n form.emailTemplateType.valid = true;\n form.emailTemplateType.isValidFormat = true;\n\n showUpdateActiveOption = emailTemplateTypes[0].showUpdateActiveOption;\n allowHtmlEditorOnly = emailTemplateTypes[0].allowHtmlEditorOnly;\n }\n\n this.setState(\n {\n loading: this.props.loading || this.props.emailTemplateLoading,\n emailTemplateTypes,\n form,\n showUpdateActiveOption,\n allowHtmlEditorOnly,\n },\n () => {\n if (emailTemplateTypes && emailTemplateTypes.length > 0) {\n this.getEmailTemplateByType(emailTemplateTypes[0].name);\n }\n }\n );\n }\n\n this.setState({ loading: this.props.loading });\n });\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n getEmailTemplateByType = (emailTemplateType) => {\n const form = this.state.form;\n this.setState({ getTemplateLoading: true, showTemplateLoading: true });\n\n this.props.onEmailTemplate.getEmailTemplateByType(emailTemplateType).then(() => {\n if (!this.props.emailTemplateLoading) {\n const emailTemplate = this.props.emailTemplate;\n if (emailTemplate) {\n form.subject.value = emailTemplate.subject;\n form.subject.valid = emailTemplate.subject ? true : false;\n form.subject.isValidFormat = emailTemplate.subject ? true : false;\n\n form.emailBody.value = emailTemplate.body;\n form.emailBody.valid = emailTemplate.body ? true : false;\n form.emailBody.isValidFormat = emailTemplate.body ? true : false;\n\n form.emailActive.value = emailTemplate.emailActive;\n form.emailActive.valid = true;\n form.emailActive.isValidFormat = true;\n\n form.editWithEditor.value = emailTemplate.editWithEditor;\n form.editWithEditor.valid = true;\n form.editWithEditor.isValidFormat = true;\n\n form.haveBasicContent.value = emailTemplate.haveBasicContent;\n form.basicContent.value = emailTemplate.basicContent;\n\n this.setState({ form, showEditor: true, isFormValid: true, isFormDirty: false, emailTemplate, bodyMode: emailTemplate.editWithEditor ? \"ShowEditor\" : \"ShowHtml\" });\n }\n }\n this.setState({ getTemplateLoading: this.props.emailTemplateLoading });\n });\n };\n\n onEditorStateChange(editorContent) {\n let html = draftToHtml(convertToRaw(editorContent.getCurrentContent()));\n if (html.trim() == \"

\") {\n html = \"\";\n }\n\n const updateState = changeInput(this.state.form, \"emailBody\", html);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n isFormDirty: true,\n });\n }\n\n handleChangeEmailTemplate = (event) => {\n const { emailTemplateTypes } = this.state;\n let showUpdateActiveOption = this.state.showUpdateActiveOption;\n let allowHtmlEditorOnly = this.state.allowHtmlEditorOnly;\n\n const emailTemplateType = emailTemplateTypes.find((it) => it.name == event.target.value);\n\n if (this.state.isFormDirty) {\n if (window.confirm(\"You have made changes to the current email template, do you wish to dismiss the changes and select an alternative template?\")) {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, \"emailTemplateType\", value);\n\n showUpdateActiveOption = emailTemplateType.showUpdateActiveOption;\n allowHtmlEditorOnly = emailTemplateType.allowHtmlEditorOnly;\n\n this.setState(\n {\n form: updateState.form,\n isFormValid: updateState.valid,\n showEditor: false,\n showUpdateActiveOption,\n allowHtmlEditorOnly,\n },\n () => {\n this.getEmailTemplateByType(value);\n }\n );\n } else {\n return false;\n }\n } else {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, \"emailTemplateType\", value);\n showUpdateActiveOption = emailTemplateType.showUpdateActiveOption;\n allowHtmlEditorOnly = emailTemplateType.allowHtmlEditorOnly;\n\n this.setState(\n {\n form: updateState.form,\n isFormValid: updateState.valid,\n showEditor: false,\n showUpdateActiveOption,\n allowHtmlEditorOnly,\n },\n () => {\n this.getEmailTemplateByType(value);\n }\n );\n }\n };\n\n handleCheckedChange = (checked) => {\n const { form } = this.state;\n form.emailActive.value = checked;\n\n this.setState({ form, isFormDirty: true });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n isFormDirty: true,\n });\n };\n\n handleResetClick = () => {\n this.getEmailTemplateByType(this.state.form.emailTemplateType.value);\n };\n\n handleSaveClick = () => {\n const oriEmailTemplate = this.state.emailTemplate;\n const form = this.state.form;\n\n if (oriEmailTemplate) {\n if ((oriEmailTemplate.name == \"Self Assessment Invite Email\" || oriEmailTemplate.name == \"Self Assessment Invite Email Reminder\" || oriEmailTemplate.name == \"Self Assessment Invite Email Final Reminder\") && !form.emailBody.value.includes(\"$SurveyPortalLink$\")) {\n this.setState({ showMissingLinkNotif: true });\n } else {\n const emailTemplate = {\n id: oriEmailTemplate.id,\n name: oriEmailTemplate.name,\n assessmentId: oriEmailTemplate.assessmentId,\n emailTemplateType: form.emailTemplateType.value,\n subject: form.subject.value,\n body: form.emailBody.value,\n emailActive: form.emailActive.value,\n editWithEditor: form.editWithEditor.value ? form.editWithEditor.value : false,\n haveBasicContent: form.haveBasicContent.value ? form.haveBasicContent.value : false,\n basicContent: form.haveBasicContent.value && form.haveBasicContent.value == true ? form.basicContent.value : \"\",\n };\n\n this.setState({ isUpdating: true });\n\n this.props.onEmailTemplate.createUpdateEmailTemplate(emailTemplate).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.emailTemplateError) {\n this.generateAlert(\"success\", \"Save email template success.\");\n const emailTemplate = this.props.emailTemplate;\n this.setState({ isFormDirty: false, emailTemplate });\n } else {\n this.generateAlert(\"danger\", this.props.emailTemplateError.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n }\n };\n\n changeBodyMode = (bodyMode) => {\n const form = this.state.form;\n if (form) {\n form.editWithEditor.value = bodyMode == \"ShowEditor\";\n }\n\n this.setState({ form, bodyMode });\n };\n\n togleMissingLinkNotifModal = () => {\n const showMissingLinkNotif = this.state.showMissingLinkNotif;\n this.setState({ showMissingLinkNotif: !showMissingLinkNotif });\n };\n\n modalInterventionDetail() {\n const { showMissingLinkNotif } = this.state;\n\n return (\n \n \n Invites and Reminders MUST include a hyperlink to $SurveyPortalLink$.\n
\n Please update the email template and include this link.\n
\n If unsure you can use this HTML:\n
\n {`Start Assessment`}\n
\n \n \n \n
\n );\n }\n\n generateEmailBodyEditorState = (emailBody) => {\n const blocksFromHtml = htmlToDraft(emailBody);\n const { contentBlocks, entityMap } = blocksFromHtml;\n const contentState = ContentState.createFromBlockArray(contentBlocks, entityMap);\n const emailBodyEditorState = EditorState.createWithContent(contentState);\n return emailBodyEditorState;\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Email Templates\");\n\n const toolbar = {\n options: [\"inline\", \"list\", \"textAlign\", \"fontSize\", \"link\", \"history\", \"fontFamily\", \"colorPicker\"],\n inline: {\n inDropdown: false,\n className: undefined,\n options: [\"bold\", \"italic\", \"underline\", \"superscript\", \"subscript\"],\n },\n fontFamily: {\n options: [\"Arial\", \"Georgia\", \"Impact\", \"Tahoma\", \"Times New Roman\", \"Verdana\"],\n className: undefined,\n component: undefined,\n dropdownClassName: undefined,\n },\n };\n\n const basicToolbar = {\n options: [],\n inline: {\n inDropdown: false,\n className: undefined,\n options: [],\n },\n fontFamily: {\n options: [\"Arial\", \"Georgia\", \"Impact\", \"Tahoma\", \"Times New Roman\", \"Verdana\"],\n className: undefined,\n component: undefined,\n dropdownClassName: undefined,\n },\n };\n\n const { emailTemplateTypes, form, showUpdateActiveOption, allowHtmlEditorOnly } = this.state;\n\n const emailBody = form.emailBody ? form.emailBody.value : \"\";\n const emailBodyEditorState = this.generateEmailBodyEditorState(emailBody);\n\n const basicContent = form.basicContent && form.basicContent.value ? form.basicContent.value : \"\";\n const basicContentEmailBodyEditorState = this.generateEmailBodyEditorState(basicContent);\n\n return (\n \n \n \n {this.modalInterventionDetail()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n \n \n \n \n {emailTemplateTypes.map((emailTemplateType, key) => (\n \n ))}\n \n \n \n {this.state.showTemplateLoading && (\n \n {this.state.getTemplateLoading ? (\n
\n \n
\n ) : (\n \n \n \n \n \n \n \n {showUpdateActiveOption && (\n \n \n \n \n \n \n \n )}\n {form && form.haveBasicContent.value && (\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n {!allowHtmlEditorOnly && (\n \n \n \n \n \n \n )}\n \n \n \n {this.state.showEditor &&\n (this.state.bodyMode == \"ShowEditor\" && !allowHtmlEditorOnly ? (\n \n ) : (\n \n ))}\n \n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n \n \n {\n this.handleSaveClick();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n    \n \n \n \n \n )}\n \n )}\n
\n )}\n \n
\n
\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n emailTemplateLoading: state.adminEmailTemplate.loading,\n emailTemplateTypes: state.adminEmailTemplate.emailTemplateTypes,\n emailTemplate: state.adminEmailTemplate.emailTemplate,\n emailTemplateError: state.adminEmailTemplate.error,\n isUpdating: state.adminEmailTemplate.isUpdating,\n\n pageAssignments: state.adminPerson.pageAssignments,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onEmailTemplate: bindActionCreators(adminEmailTemplateActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageEmailTemplates);\n","import * as authActions from \"../../store/actions/authAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../utils/alertUtils\";\nimport { contentTranslator } from \"./../../utils/translatorUtils\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport \"react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageReportTemplates extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n detailLoading: true,\n alerts: [],\n isUpdating: false,\n reportTemplateName: null,\n downloadLoading: false,\n reportTemplateTypes: [\n {\n text: \"Person SelfAssessed Skills Profile Report\",\n value: \"PersonSelfAssessedSkillsProfileReport\",\n templateName: \"SkillsTx_Individual_Skills_Profile_Template.dotx\",\n },\n {\n text: \"Person Endorsed Skills Profile Report\",\n value: \"PersonEndorsedSkillsProfileReport\",\n templateName: \"SkillsTx_Endorsed_Skills_Profile_Template.dotx\",\n },\n {\n text: \"Person Action Plan Report\",\n value: \"PersonActionPlanReport\",\n templateName: \"SkillsTx_Individual_Action_Plan_Template.dotx\",\n },\n {\n text: \"Requirement Skills Profile Report\",\n value: \"RequirementSkillsProfileReport\",\n templateName: \"SkillsTx_Requirement_Template.dotx\",\n },\n ],\n form: {\n reportTemplateType: {\n validation: {\n required: true,\n },\n value: \"PersonSelfAssessedSkillsProfileReport\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n fileName: null,\n fileData: null,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.templateRef = React.createRef();\n }\n\n componentDidMount() {\n const { form, reportTemplateTypes } = this.state;\n this.props.onAuth.authCheckState().then(() => {\n if (reportTemplateTypes && reportTemplateTypes.length > 0) {\n const reportTemplateType = reportTemplateTypes[0];\n this.getReportTemplateNameByType(reportTemplateType.value);\n }\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n getReportTemplateNameByType = (reportTemplateType) => {\n const form = this.state.form;\n this.setState({ detailLoading: true });\n\n this.props.onConfig.getReportTemplateName(reportTemplateType).then(() => {\n if (!this.props.reportTemplateLoading) {\n form.reportTemplateType.value = reportTemplateType;\n form.reportTemplateType.valid = true;\n form.reportTemplateType.isValidFormat = true;\n\n console.log(\"this.props.reportTemplateName\", this.props.reportTemplateName);\n\n this.setState({ form, reportTemplateName: this.props.reportTemplateName });\n }\n this.setState({ detailLoading: this.props.reportTemplateLoading });\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n isFormDirty: true,\n });\n };\n\n handleChangeReportTemplate = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, \"reportTemplateType\", value);\n this.setState(\n {\n form: updateState.form,\n isFormValid: updateState.valid,\n fileName: null,\n fileData: null,\n },\n () => {\n this.getReportTemplateNameByType(value);\n }\n );\n };\n\n handleDownloadTemplate = () => {\n const { form, reportTemplateName, reportTemplateTypes } = this.state;\n this.setState({ downloadLoading: true });\n this.props.onConfig.downloadReportTemplate(form.reportTemplateType.value).then(() => {\n if (!this.props.loadingExport && !this.props.configError) {\n if (this.props.blobData) {\n if (reportTemplateName) {\n FileDownload(this.props.blobData, reportTemplateName);\n } else {\n if (reportTemplateTypes && reportTemplateTypes.find((it) => form && it.value == form.reportTemplateType.value)) {\n const reportTemplateType = reportTemplateTypes.find((it) => form && it.value == form.reportTemplateType.value);\n FileDownload(this.props.blobData, reportTemplateType.templateName);\n }\n }\n }\n }\n this.setState({ downloadLoading: this.props.loadingExport });\n });\n };\n\n handleSelectTemplate = () => {\n this.templateRef.current.click();\n };\n\n handleTemplateChange = (event) => {\n const templateFile = event.target.files[0];\n toBase64(templateFile).then((result) => {\n this.setState({ fileName: templateFile.name, fileData: templateFile });\n });\n };\n\n handleUploadTemplate = () => {\n this.setState({ isUpdating: true });\n const { form, fileName, fileData } = this.state;\n this.props.onConfig.updateReportTemplate(form.reportTemplateType.value, fileData).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", \"Report template upload success.\");\n this.setState({ reportTemplateName: fileName, fileName: null, fileData: null });\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleResetTemplate = () => {\n this.setState({ fileName: null, fileData: null });\n };\n\n handleDeleteTemplate = () => {\n const { form, reportTemplateTypes } = this.state;\n if (reportTemplateTypes && reportTemplateTypes.find((it) => form && it.value == form.reportTemplateType.value)) {\n const reportTemplateType = reportTemplateTypes.find((it) => form && it.value == form.reportTemplateType.value);\n if (window.confirm(`You are about to delete ${reportTemplateType.text} template, are you sure?`)) {\n this.setState({ isUpdating: true });\n this.props.onConfig.clearReportTemplate(form.reportTemplateType.value).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", \"Report template deleted.\");\n this.setState({ reportTemplateName: null, fileName: null, fileData: null });\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n return false;\n }\n }\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Report Templates\");\n\n const { reportTemplateTypes, form, fileName, reportTemplateName } = this.state;\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n \n \n \n \n \n {reportTemplateTypes.map((reportTemplateType, key) => (\n \n ))}\n \n \n \n {(fileName || reportTemplateName) && (\n \n \n \n \n \n \n )}\n \n \n \n \n Download Template\n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n   \n \n Select New Template\n \n \n )}\n {fileName && (\n \n \n   \n \n Upload\n \n   \n \n Cancel\n \n   \n \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && reportTemplateName && (\n \n   \n \n Delete custom template\n \n \n )}\n \n \n \n \n
\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n pageAssignments: state.adminPerson.pageAssignments,\n containerConfig: state.config.containerConfig,\n\n loadingExport: state.config.loadingExport,\n blobData: state.config.blobData,\n configError: state.config.error,\n reportTemplateLoading: state.config.loading,\n reportTemplateName: state.config.reportTemplateName,\n isUpdating: state.config.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageReportTemplates);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminContentAPI {\n static getPages() {\n return axios\n .get(`/contents/pages`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getContents(page, languageId) {\n return axios\n .get(`/contents${page || languageId ? \"?\" : \"\"}${page ? `page=${page}` : \"\"}${languageId ? `${page ? \"&\" : \"\"}languageId=${languageId}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createContent(content) {\n return axios\n .post(`/contents`, content)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateContent(content) {\n return axios\n .put(`/contents`, content)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getContentTranslations(contentId) {\n return axios\n .get(`/contents/${contentId}/translations`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportContentTranslationsExcel(languageId) {\n return axios\n .get(`/contents/exportDefaultTranslations?languageId=${languageId}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importContentTranslationsExcel(languageId, translationsDataFiles) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n translationsDataFiles.forEach((file) => {\n body.append(\"translationsData\", file);\n });\n\n return axios\n .post(`/contents/importTranslations?languageId=${languageId}`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportGroupValueTranslationsExcel(languageId) {\n return axios\n .get(`/contents/exportGroupValueTranslations?languageId=${languageId}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importGroupValueTranslationsExcel(languageId, translationsDataFiles) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n translationsDataFiles.forEach((file) => {\n body.append(\"translationsData\", file);\n });\n\n return axios\n .post(`/contents/importGroupValueTranslations?languageId=${languageId}`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminContentAPI;\n","import AdminContentAPI from \"./../../../common/api/adminservice/AdminContentService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getContentPagesStart = () => {\n return {\n type: actionTypes.GET_CONTENT_PAGES_START,\n };\n};\n\nexport const getContentPagesSuccess = (pages) => {\n return {\n type: actionTypes.GET_CONTENT_PAGES_SUCCESS,\n pages,\n };\n};\n\nexport const getContentPagesFail = (error) => {\n return {\n type: actionTypes.GET_CONTENT_PAGES_FAIL,\n error: error,\n };\n};\n\nexport const getContentPages = () => {\n return (dispatch) => {\n dispatch(getContentPagesStart());\n\n return AdminContentAPI.getContentPages()\n .then((res) => {\n dispatch(getContentPagesSuccess(res));\n })\n .catch((err) => {\n dispatch(getContentPagesFail(err));\n });\n };\n};\n\nexport const getContentsStart = () => {\n return {\n type: actionTypes.GET_CONTENTS_START,\n };\n};\n\nexport const getContentsSuccess = (contents) => {\n return {\n type: actionTypes.GET_CONTENTS_SUCCESS,\n contents,\n };\n};\n\nexport const getContentsFail = (error) => {\n return {\n type: actionTypes.GET_CONTENTS_FAIL,\n error: error,\n };\n};\n\nexport const getContents = (page, languageId) => {\n return (dispatch) => {\n dispatch(getContentsStart());\n\n return AdminContentAPI.getContents(page, languageId)\n .then((res) => {\n dispatch(getContentsSuccess(res));\n })\n .catch((err) => {\n dispatch(getContentsFail(err));\n });\n };\n};\n\nexport const getContentTranslationsStart = () => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_START,\n };\n};\n\nexport const getContentTranslationsSuccess = (translations) => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_SUCCESS,\n translations,\n };\n};\n\nexport const getContentTranslationsFail = (error) => {\n return {\n type: actionTypes.GET_CONTENT_TRANSLATIONS_FAIL,\n error: error,\n };\n};\n\nexport const getContentTranslations = (contentId) => {\n return (dispatch) => {\n dispatch(getContentTranslationsStart());\n\n return AdminContentAPI.getContentTranslations(contentId)\n .then((res) => {\n dispatch(getContentTranslationsSuccess(res));\n })\n .catch((err) => {\n dispatch(getContentTranslationsSuccess(err));\n });\n };\n};\n\nexport const createContentTranslationStart = () => {\n return {\n type: actionTypes.CREATE_CONTENT_TRANSLATION_START,\n };\n};\n\nexport const createContentTranslationSuccess = (addedContent) => {\n return {\n type: actionTypes.CREATE_CONTENT_TRANSLATION_SUCCESS,\n addedContent,\n };\n};\n\nexport const createContentTranslationFail = (error) => {\n return {\n type: actionTypes.CREATE_CONTENT_TRANSLATION_FAIL,\n error: error,\n };\n};\n\nexport const createContentTranslation = (content) => {\n return (dispatch) => {\n dispatch(createContentTranslationStart());\n\n return AdminContentAPI.createContent(content)\n .then((res) => {\n dispatch(createContentTranslationSuccess(res));\n })\n .catch((err) => {\n dispatch(createContentTranslationFail(err));\n });\n };\n};\n\nexport const updateContentTranslationStart = () => {\n return {\n type: actionTypes.UPDATE_CONTENT_TRANSLATION_START,\n };\n};\n\nexport const updateContentTranslationSuccess = (updatedContent) => {\n return {\n type: actionTypes.UPDATE_CONTENT_TRANSLATION_SUCCESS,\n updatedContent,\n };\n};\n\nexport const updateContentTranslationFail = (error) => {\n return {\n type: actionTypes.UPDATE_CONTENT_TRANSLATION_FAIL,\n error: error,\n };\n};\n\nexport const updateContentTranslation = (content) => {\n return (dispatch) => {\n dispatch(updateContentTranslationStart());\n\n return AdminContentAPI.updateContent(content)\n .then((res) => {\n dispatch(updateContentTranslationSuccess(res));\n })\n .catch((err) => {\n dispatch(updateContentTranslationFail(err));\n });\n };\n};\n\nexport const exportContentTranslationsExcelStart = () => {\n return {\n type: actionTypes.EXPORT_CONTENT_TRANSLATIONS_START,\n };\n};\n\nexport const exportContentTranslationsExcelSuccess = (printData) => {\n return {\n type: actionTypes.EXPORT_CONTENT_TRANSLATIONS_SUCCESS,\n printData,\n };\n};\n\nexport const exportContentTranslationsExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_CONTENT_TRANSLATIONS_FAIL,\n error: error,\n };\n};\n\nexport const exportContentTranslationsExcel = (languageId) => {\n return (dispatch) => {\n dispatch(exportContentTranslationsExcelStart());\n\n return AdminContentAPI.exportContentTranslationsExcel(languageId)\n .then((res) => {\n dispatch(exportContentTranslationsExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportContentTranslationsExcelFail(err));\n });\n };\n};\n\nexport const exportGroupValueTranslationsExcel = (languageId) => {\n return (dispatch) => {\n dispatch(exportContentTranslationsExcelStart());\n\n return AdminContentAPI.exportGroupValueTranslationsExcel(languageId)\n .then((res) => {\n dispatch(exportContentTranslationsExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportContentTranslationsExcelFail(err));\n });\n };\n};\n\nexport const importContentTranslationsExcelStart = () => {\n return {\n type: actionTypes.IMPORT_CONTENT_TRANSLATIONS_START,\n };\n};\n\nexport const importContentTranslationsExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_CONTENT_TRANSLATIONS_SUCCESS,\n };\n};\n\nexport const importContentTranslationsExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_CONTENT_TRANSLATIONS_FAIL,\n error: error,\n };\n};\n\nexport const importContentTranslationsExcel = (languageId, translationsDataFiles) => {\n return (dispatch) => {\n dispatch(importContentTranslationsExcelStart());\n\n return AdminContentAPI.importContentTranslationsExcel(languageId, translationsDataFiles)\n .then((res) => {\n dispatch(importContentTranslationsExcelSuccess());\n })\n .catch((err) => {\n dispatch(importContentTranslationsExcelFail(err));\n });\n };\n};\n\nexport const importGroupValueTranslationsExcel = (languageId, translationsDataFiles) => {\n return (dispatch) => {\n dispatch(importContentTranslationsExcelStart());\n\n return AdminContentAPI.importGroupValueTranslationsExcel(languageId, translationsDataFiles)\n .then((res) => {\n dispatch(importContentTranslationsExcelSuccess());\n })\n .catch((err) => {\n dispatch(importContentTranslationsExcelFail(err));\n });\n };\n};\n","/***\n * @example parameterizedString(\"my name is {s1} and surname is {s2}\", \"John\", \"Doe\");\n * @return \"my name is John and surname is Doe\"\n *\n * @firstArgument {String} like \"my name is {s1} and surname is {s2}\"\n * @otherArguments {String | Number}\n * @returns {String}\n */\nexport const parameterizedString = (...args) => {\n let str = args[0];\n const params = args.filter((arg, index) => index !== 0);\n\n if (!str) return \"\";\n\n const len = params ? params.length : 0;\n for (let i = 0; i < len; i++) {\n if (!str.includes(`{s${i + 1}}`)) {\n str = str + ` ${params[i]}`;\n }\n }\n\n return str.replace(/{s[0-9]}+/g, (matchedStr) => {\n const variableIndex = matchedStr.replace(\"{s\", \"\").replace(\"}\", \"\") - 1;\n return params[variableIndex];\n });\n};\n\nexport const generateRandomString = (length) => {\n var result = \"\";\n var characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n};\n\nexport const pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n};\n\nexport const formatDate_yyyyMMdd_HHmmss = (date) => {\n var result = date ? date.getFullYear() + pad2(date.getMonth() + 1) + pad2(date.getDate()) + \"_\" + pad2(date.getHours()) + pad2(date.getMinutes()) + pad2(date.getSeconds()) : \"\";\n return result;\n};\n\nexport const formatDate_localeString = (date) => {\n var result = date ? date.getFullYear() + \"-\" + pad2(date.getMonth() + 1) + \"-\" + pad2(date.getDate()) + \"T\" + pad2(date.getHours()) + \":\" + pad2(date.getMinutes()) + \":\" + pad2(date.getSeconds()) + \"Z\" : \"\";\n return result;\n};\n","export const filterArray = (data, searchKeyword, searchProperties, columnSearchKeywords) => {\n let filtered = [...data];\n\n if (searchKeyword && searchKeyword != \"\") {\n if (searchProperties && searchProperties.length > 0) {\n filtered = filtered.filter((item) => {\n return searchProperties.some((field) => (typeof item[field] === \"string\" && item[field].toLowerCase().includes(searchKeyword.toLowerCase())) || (typeof item[field] === \"number\" && item[field].toString().toLowerCase().includes(searchKeyword.toLowerCase())));\n });\n } else {\n filtered = filtered.filter((entry) => Object.values(entry).some((val) => (typeof val === \"string\" && val.toLowerCase().includes(searchKeyword.toLowerCase())) || (typeof val === \"number\" && val.toString().toLowerCase().includes(searchKeyword.toLowerCase()))));\n }\n }\n\n if (columnSearchKeywords && columnSearchKeywords.length > 0) {\n columnSearchKeywords\n .filter((it) => it.value && it.value != \"\")\n .forEach((columnSearchKeyword) => {\n filtered = filtered.filter(\n (entry) =>\n (typeof entry[columnSearchKeyword.name] === \"string\" &&\n (columnSearchKeyword.searchType == \"startsWith\" ? entry[columnSearchKeyword.name].toLowerCase().startsWith(columnSearchKeyword.value.toLowerCase()) : entry[columnSearchKeyword.name].toLowerCase().includes(columnSearchKeyword.value.toLowerCase()))) ||\n (typeof entry[columnSearchKeyword.name] === \"number\" &&\n (columnSearchKeyword.searchType == \"startsWith\"\n ? entry[columnSearchKeyword.name].toString().toLowerCase().startsWith(columnSearchKeyword.value.toLowerCase())\n : entry[columnSearchKeyword.name].toString().toLowerCase().includes(columnSearchKeyword.value.toLowerCase())))\n );\n });\n }\n\n return filtered;\n};\n","import { filterArray } from \"../../utils/filterUtils\";\nimport React, { Component } from \"react\";\nimport DataTable from \"react-data-table-component\";\nimport { Spinner } from \"reactstrap\";\n\nconst customStyles = {\n rows: {\n style: {\n verticalAlign: \"top\",\n },\n },\n headCells: {\n style: {\n fontWeight: \"bold\",\n fontSize: \"14px\",\n border: \"1px solid #dee2e6\",\n whiteSpace: \"normal\",\n },\n },\n cells: {\n style: {\n padding: \"5px 10px\",\n fontSize: \"12px\",\n border: \"1px solid #dee2e6\",\n },\n },\n};\n\nconst rowSelectCritera = (row) => row.toggleSelected && row.toggleSelected == true;\n\nconst caseInsensitiveSort = (rows, selector, direction) => {\n return rows.sort((rowA, rowB) => {\n const aField = selector(rowA);\n const bField = selector(rowB);\n\n const fieldType = typeof aField;\n\n let comparison = 0;\n\n if (fieldType == \"string\") {\n const a = aField ? aField.toLowerCase() : \"\";\n const b = bField ? bField.toLowerCase() : \"\";\n\n if (a > b) {\n comparison = 1;\n }\n\n if (b > a) {\n comparison = -1;\n }\n } else {\n if (aField > bField) {\n comparison = 1;\n } else if (aField < bField) {\n comparison = -1;\n }\n }\n\n return direction === \"desc\" ? comparison * -1 : comparison;\n });\n};\n\nexport class SkillsTxTable extends Component {\n static displayName = SkillsTxTable.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n clearSelectedRow: null,\n data: [...this.props.data],\n };\n this.filterArray = filterArray.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectableRows !== this.props.selectableRows) {\n this.setState({ toggledClearRows: !this.state.toggledClearRows });\n this.setState({ data: [...this.props.data] });\n }\n\n if (prevProps.data !== this.props.data) {\n this.setState({ data: [...this.props.data] });\n }\n }\n\n handleRowClick = (row, event) => {\n if (this.props.selectableRows) {\n this.props.handleRowClick(row);\n }\n };\n\n render() {\n const { title, columns, defaultSortFieldId, pagination, searchKeyword, searchProperties, headCellsStyle, cellsStyle, columnSearchKeywords } = this.props;\n\n let filtered = this.filterArray(this.state.data, searchKeyword, searchProperties, columnSearchKeywords);\n \n return (\n \n \n \n }\n paginationRowsPerPageOptions={[10, 20, 50, 100, 300]}\n />\n );\n }\n}\n","import React, { Component } from \"react\";\nimport DataTable from \"react-data-table-component\";\nimport { Button, Container, Input } from \"reactstrap\";\n\nexport class SkillsTxTableClearSearch extends Component {\n static displayName = SkillsTxTableClearSearch.name;\n\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n handleClear = () => {\n this.props.onClear();\n };\n\n render() {\n return (\n \n );\n }\n}\n","import React, { Component } from \"react\";\nimport DataTable from \"react-data-table-component\";\nimport { Container, Input } from \"reactstrap\";\n\nexport class SkillsTxTableSearchBar extends Component {\n static displayName = SkillsTxTableSearchBar.name;\n\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n searchKeyword = (event) => {\n const { name, value } = event.target;\n this.props.onChange(value);\n };\n\n render() {\n return ;\n }\n}\n","import * as adminContentActions from \"../../../store/admin/actions/adminContentActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst textareaStyle = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n};\n\nconst textareaStyleDisable = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n background: \"#e9ecef\",\n};\n\nclass ContentDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n pages: this.props.pages,\n languages: this.props.languages,\n form: {},\n isFormValid: false,\n content: this.props.content,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.content !== this.props.content) {\n this.setState({ content: this.props.content });\n }\n }\n\n prepareFormState = () => {\n const content = this.props.content;\n if (content) {\n const form = {\n contentId: {\n validation: {\n required: false,\n },\n value: content.contentId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n contentTranslationId: {\n validation: {\n required: false,\n },\n value: content.contentTranslationId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n page: {\n validation: {\n required: true,\n },\n value: content.page,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n name: {\n validation: {\n required: true,\n },\n value: content.name ? content.name : null,\n valid: content.name ? true : false,\n isValidFormat: content.name ? true : false,\n touched: false,\n },\n contentText: {\n validation: {\n required: true,\n },\n value: content.contentText ? content.contentText : \"\",\n valid: content.contentText ? true : false,\n isValidFormat: content.contentText ? true : false,\n touched: false,\n },\n contentTextTranslation: {\n validation: {\n required: false,\n },\n value: content.contentTextTranslation,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n language: {\n validation: {\n required: true,\n },\n value: content.language ? content.language : this.props.language ? this.props.language.name : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n languageId: {\n validation: {\n required: true,\n },\n value: content.languageId ? content.languageId : this.props.language ? this.props.language.id : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n };\n\n const updateState = changeInput(form, \"page\", form.page.value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const content = {\n contentId: form.contentId.value,\n contentTranslationId: form.contentTranslationId.value,\n page: form.page.value,\n name: form.name.value,\n contentText: form.contentText.value,\n contentTextTranslation: form.contentTextTranslation.value,\n language: form.language.value,\n languageId: form.languageId.value,\n };\n\n this.setState({ isUpdating: true });\n\n if (content.contentId) {\n this.props.onContent.updateContentTranslation(content).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.props.generateAlert(\"success\", \"Update content success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onContent.createContentTranslation(content).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.props.generateAlert(\"success\", \"Create content success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { form, showDialog, languages, pages, content } = this.state;\n\n return (\n \n \n Content Detail\n \n
\n \n \n {/* \n \n \n \n {pages\n .filter((it) => it.value)\n .map((page, key) => (\n \n ))}\n \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminContent.error,\n isUpdating: state.adminContent.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onContent: bindActionCreators(adminContentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContentDetail);\n","import * as contentActions from \"../../../store/admin/actions/adminContentActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ContentTranslationBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.selectedLanguage !== this.props.selectedLanguage && this.props.selectedLanguage) {\n this.setState({ selectedLanguage: this.props.selectedLanguage });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handleChangeLanguage = (event) => {\n const { value } = event.target;\n this.setState({ selectedLanguage: value });\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onContent.importContentTranslationsExcel(this.state.selectedLanguage, this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.contentsError) {\n this.props.generateAlert(\"success\", \"Content translations imported\");\n this.excelRef.current.value = null;\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.contentsError.errData.Message);\n }\n }\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Content Translations\n \n
\n \n \n \n \n \n \n {this.props.languages.map((language, key) => (\n \n ))}\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentsError: state.adminContent.error,\n isImporting: state.adminContent.isImporting,\n languages: state.language.languages,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContentTranslationBulkUpload);\n","import * as contentActions from \"../../../store/admin/actions/adminContentActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass GroupValueTranslationBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.selectedLanguage !== this.props.selectedLanguage && this.props.selectedLanguage) {\n this.setState({ selectedLanguage: this.props.selectedLanguage });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handleChangeLanguage = (event) => {\n const { value } = event.target;\n this.setState({ selectedLanguage: value });\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onContent.importGroupValueTranslationsExcel(this.state.selectedLanguage, this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.contentsError) {\n this.props.generateAlert(\"success\", \"Group value translations imported\");\n this.excelRef.current.value = null;\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.contentsError.errData.Message);\n }\n }\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Group Value Translations\n \n
\n \n \n \n \n \n \n {this.props.languages.map((language, key) => (\n \n ))}\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentsError: state.adminContent.error,\n isImporting: state.adminContent.isImporting,\n languages: state.language.languages,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GroupValueTranslationBulkUpload);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as contentActions from \"../../../store/admin/actions/adminContentActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { generateRandomString } from \"../../../utils/stringUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ContentDetail from \"./ContentDetail\";\nimport ContentTranslationBulkUpload from \"./ContentTranslationBulkUpload\";\nimport GroupValueTranslationBulkUpload from \"./GroupValueTranslationBulkUpload\";\nimport { faFileExcel, faPenToSquare, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nvar _ = require(\"lodash\");\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageContent extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n pages: [],\n selectedLanguage: null,\n selectedPage: null,\n contents: [],\n showDialogContentDetailTs: null,\n selectedContent: null,\n searchProperties: [\"name\", \"contentText\", \"contentTextTranslation\"],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.generateRandomString = generateRandomString.bind(this);\n }\n\n componentDidMount() {\n const languages = this.props.languages;\n const language = languages ? languages.find((it) => it.name == \"English\") : null;\n\n this.setState({ selectedLanguage: language ? language.id : null });\n\n this.props.onAuth.authCheckState().then(() => {\n this.initData(null, language ? language.id : null);\n });\n }\n\n handleRefresh = () => {\n this.initData(null, this.state.selectedLanguage ? this.state.selectedLanguage : null);\n };\n\n initData = (page, languageId) => {\n this.props.onContent.getContents(page, languageId).then(() => {\n const contents = this.props.contents;\n\n const pages = [];\n\n pages.push({\n value: null,\n label: \"All Pages\",\n });\n\n const groupedPages = _.groupBy(\n contents.map((it) => {\n return it.page;\n }),\n function (it) {\n return it;\n }\n );\n\n Object.keys(groupedPages).forEach((key) => {\n pages.push({\n value: groupedPages[key][0],\n label: groupedPages[key][0],\n });\n });\n\n const selectedPage = this.state.selectedPage ? this.state.selectedPage : pages.length > 0 ? pages.sort((a, b) => (`${a.value ? \"1\" : \"0\"}${a.label}` > `${b.value ? \"1\" : \"0\"}${b.label}` ? 1 : -1))[0].value : null;\n\n this.setState({\n pages: pages.sort((a, b) => (`${a.value ? \"1\" : \"0\"}${a.label}` > `${b.value ? \"1\" : \"0\"}${b.label}` ? 1 : -1)),\n selectedPage,\n contents: selectedPage ? this.props.contents.filter((it) => it.page == selectedPage).sort((a, b) => (`${a.page}${a.name}` > `${b.page}${b.name}` ? 1 : -1)) : this.props.contents.sort((a, b) => (`${a.page}${a.name}` > `${b.page}${b.name}` ? 1 : -1)),\n });\n\n this.setState({ loading: this.props.loading || this.props.contentsLoading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.contents !== this.props.contents) {\n const contents = this.props.contents;\n\n const pages = [\n {\n value: null,\n label: \"All Pages\",\n },\n ];\n\n const groupedPages = _.groupBy(\n contents.map((it) => {\n return it.page;\n }),\n function (it) {\n return it;\n }\n );\n\n Object.keys(groupedPages).forEach((key) => {\n pages.push({\n value: groupedPages[key][0],\n label: groupedPages[key][0],\n });\n });\n\n this.setState({\n contents: this.props.contents\n ? this.state.selectedPage\n ? this.props.contents.filter((it) => it.page == this.state.selectedPage).sort((a, b) => (`${a.page}${a.name}` > `${b.page}${b.name}` ? 1 : -1))\n : this.props.contents.sort((a, b) => (`${a.page}${a.name}` > `${b.page}${b.name}` ? 1 : -1))\n : [],\n pages: pages.sort((a, b) => (`${a.value ? \"1\" : \"0\"}${a.label}` > `${b.value ? \"1\" : \"0\"}${b.label}` ? 1 : -1)),\n });\n }\n }\n\n handleChangeLanguage = (event) => {\n const { value } = event.target;\n this.setState({ selectedLanguage: value });\n\n this.initData(null, value);\n };\n\n handleChangePage = (event) => {\n const { value } = event.target;\n const contents = this.props.contents;\n\n this.setState({ selectedPage: value != \"All Pages\" ? value : null, contents: contents.filter((it) => it.page == value || value == null || value == \"All Pages\").sort((a, b) => (`${a.page}${a.name}` > `${b.page}${b.name}` ? 1 : -1)) });\n };\n\n openContentDetail = (content) => {\n this.setState({ showDialogContentDetailTs: new Date(), selectedContent: content });\n };\n\n handleAddNew = () => {\n const { pages, selectedPage, selectedLanguage } = this.state;\n const { languages } = this.props;\n\n this.setState({\n showDialogContentDetailTs: new Date(),\n selectedContent: {\n page: selectedPage && selectedPage != \"All Pages\" ? selectedPage : pages && pages.length > 1 ? pages[1].value : null,\n languageId: selectedLanguage,\n language: languages.find((it) => it.id == selectedLanguage) ? languages.find((it) => it.id == selectedLanguage).name : null,\n },\n });\n };\n\n handleExportTranslations = () => {\n const { languages } = this.props;\n const { selectedLanguage } = this.state;\n\n const language = languages.find((it) => it.id == selectedLanguage);\n\n if (language) {\n this.props.onContent.exportContentTranslationsExcel(language.id).then(() => {\n if (!this.props.loadingPrint && !this.props.contentsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportTranslations_${strToday}_${language.name}.xlsx`);\n }\n }\n });\n }\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleImportTranslations = () => {\n this.setState({ showDialogImportTranslationTs: new Date() });\n };\n\n handleExportValueTranslations = () => {\n const { languages } = this.props;\n const { selectedLanguage } = this.state;\n\n const language = languages.find((it) => it.id == selectedLanguage);\n\n if (language) {\n this.props.onContent.exportGroupValueTranslationsExcel(language.id).then(() => {\n if (!this.props.loadingPrint && !this.props.contentsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportGroupValueTranslations_${strToday}_${language.name}.xlsx`);\n }\n }\n });\n }\n };\n\n handleImportValueTranslations = () => {\n this.setState({ showDialogImportGroupValueTranslationTs: new Date() });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const { pages, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Page Labels\");\n\n const openContentDetail = this.openContentDetail;\n const onTableFilterChange = this.onTableFilterChange;\n\n const columns = [\n {\n id: \"contentId\",\n name:
Action
,\n selector: (row) => row.contentId,\n sortable: false,\n width: \"8%\",\n center: true,\n format: function (row) {\n return (\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n openContentDetail(row)} />\n \n Update Content\n \n \n )}\n
\n );\n },\n },\n // {\n // dataField: \"page\",\n // text: \"Page\",\n // sort: true,\n // headerStyle: () => {\n // return { width: \"15%\" };\n // },\n // formatter: function (value) {\n // return {value};\n // },\n // clickToSelect: false,\n // },\n {\n id: \"name\",\n name: (\n
\n Name\n
\n it.name == \"name\") ? columnSearchKeywords.find((it) => it.name == \"name\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.name,\n sortable: true,\n width: \"22%\",\n format: function (row, index) {\n return {row.name};\n },\n },\n {\n id: \"contentText\",\n name: (\n
\n Content\n
\n it.name == \"contentText\") ? columnSearchKeywords.find((it) => it.name == \"contentText\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.contentText,\n sortable: true,\n width: \"35%\",\n wrap: true,\n },\n {\n id: \"contentTextTranslation\",\n name: (\n
\n Translation\n
\n it.name == \"contentTextTranslation\") ? columnSearchKeywords.find((it) => it.name == \"contentTextTranslation\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.contentTextTranslation,\n sortable: true,\n width: \"35%\",\n wrap: true,\n },\n ];\n\n return (\n \n \n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n it.id == this.state.selectedLanguage)}\n pages={this.state.pages}\n languages={this.props.languages}\n generateAlert={this.generateAlert}\n >\n
\n \n \n \n {this.props.languages.map((language, key) => (\n \n ))}\n \n \n \n \n {pages.map((page, key) => (\n \n ))}\n \n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {/* {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n    */}\n \n Refresh\n \n   \n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) && (\n \n \n Export All Translations\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Import\" && it.allow == true) && (\n \n \n Import All Translations\n \n   \n \n )}\n {pageAssignment && (pageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) || pageAssignment.operations.find((it) => it.operation == \"Import\" && it.allow == true)) && (\n \n
\n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) && (\n \n \n Export All Value Translations\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Import\" && it.allow == true) && (\n \n \n Import All Value Translations\n \n   \n \n )}\n
\n )}\n \n
\n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n contentsLoading: state.adminContent.loading,\n contentsError: state.adminContent.error,\n pages: state.adminContent.pages,\n contents: state.adminContent.contents,\n translations: state.adminContent.translations,\n\n loadingPrint: state.adminContent.loadingPrint,\n printData: state.adminContent.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n\n languages: state.language.languages,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageContent));\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { faCircleCheck, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Input, Popover, PopoverBody, PopoverHeader, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass PersonAssessorCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateAssessorNameOpen: false,\n persons: [],\n assessorName: this.props.assessorName,\n assessorId: this.props.assessorId,\n newAssessorId: this.props.assessorId,\n dirty: false,\n isUpdating: false,\n };\n }\n\n componentDidMount() {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\"))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\"))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n togglePopover = () => {\n const popOverUpdateAssessorNameOpen = this.state.popOverUpdateAssessorNameOpen;\n const assessorId = this.state.assessorId;\n\n this.setState({ popOverUpdateAssessorNameOpen: !popOverUpdateAssessorNameOpen, dirty: false, isUpdating: false, newAssessorId: assessorId });\n };\n\n openUpdateAssignment = () => {\n const popOverUpdateAssessorNameOpen = this.state.popOverUpdateAssessorNameOpen;\n this.setState({ popOverUpdateAssessorNameOpen: !popOverUpdateAssessorNameOpen });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({ newAssessorId: value && value != \"None\" ? value : null, dirty: true });\n };\n\n handleUpdateAssessor = () => {\n const { newAssessorId, person, persons } = this.state;\n\n let assessorName = null;\n\n if (newAssessorId) {\n assessorName = persons.find((it) => it.value == newAssessorId);\n }\n\n this.setState({ isUpdating: true });\n this.props.onPerson.updatePersonEndorsementAssessor(this.props.person.id, newAssessorId, assessorName ? assessorName.label : null).then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n if (!newAssessorId) {\n this.setState({ assessorName: null, assessorId: null });\n } else if (assessorName) {\n this.setState({ assessorName: assessorName.label, assessorId: assessorName.value });\n }\n\n this.setState({ popOverUpdateAssessorNameOpen: false });\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const person = this.props.person;\n const { assessorName, assessorId, persons, newAssessorId } = this.state;\n\n return (\n \n
\n {this.props.allowEdit ? (\n this.openUpdateAssignment()}>\n {assessorId ? assessorName : \"None\"}\n \n ) : (\n {assessorId ? assessorName : \"\"}\n )}\n {this.props.allowEdit && (\n \n \n Update Assessor\n \n \n \n \n Update assessor\n \n \n  \n \n \n \n \n \n \n \n \n {persons.map((person, key) => (\n \n ))}\n \n \n \n \n \n \n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.adminPerson.isUpdating,\n error: state.adminPerson.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PersonAssessorCell);\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { faCircleCheck, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Input, Popover, PopoverBody, PopoverHeader, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass PersonEndorserCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateEndorserOpen: false,\n persons: [],\n endorser: this.props.endorser,\n endorserId: this.props.endorserId,\n newEndorserId: this.props.endorserId,\n dirty: false,\n isUpdating: false,\n };\n }\n\n componentDidMount() {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\"))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\"))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n togglePopover = () => {\n const popOverUpdateEndorserOpen = this.state.popOverUpdateEndorserOpen;\n const endorserId = this.state.endorserId;\n\n this.setState({ popOverUpdateEndorserOpen: !popOverUpdateEndorserOpen, dirty: false, isUpdating: false, newEndorserId: endorserId });\n };\n\n openUpdateAssignment = () => {\n const popOverUpdateEndorserOpen = this.state.popOverUpdateEndorserOpen;\n this.setState({ popOverUpdateEndorserOpen: !popOverUpdateEndorserOpen });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({ newEndorserId: value && value != \"None\" ? value : null, dirty: true });\n };\n\n handleUpdateEndorser = () => {\n const { newEndorserId, person, persons } = this.state;\n\n let endorser = null;\n\n if (newEndorserId) {\n endorser = persons.find((it) => it.value == newEndorserId);\n }\n\n this.setState({ isUpdating: true });\n this.props.onPerson.updatePersonEndorser(this.props.person.id, newEndorserId, endorser ? endorser.label : null).then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n if (!newEndorserId) {\n this.setState({ endorser: null, endorserId: null });\n } else if (endorser) {\n this.setState({ endorser: endorser.label, endorserId: endorser.value });\n }\n\n this.setState({ popOverUpdateEndorserOpen: false });\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const person = this.props.person;\n const { endorser, endorserId, persons, newEndorserId } = this.state;\n\n return (\n \n
\n {this.props.allowEdit ? (\n this.openUpdateAssignment()}>\n {endorserId ? endorser : \"None\"}\n \n ) : (\n {endorserId ? endorser : \"\"}\n )}\n {this.props.allowEdit && (\n \n \n Update Endorser\n \n \n \n \n Update endorser\n \n \n  \n \n \n \n \n \n \n \n \n {persons.map((person, key) => (\n \n ))}\n \n \n \n \n \n \n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.adminPerson.isUpdating,\n error: state.adminPerson.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PersonEndorserCell);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as personActions from \"../../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../../store/actions/skillProfileAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport PersonAssessorCell from \"./PersonAssessorCell\";\nimport PersonEndorserCell from \"./PersonEndorserCell\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faSync, faDownload, faSquareCheck, faSquareMinus, faPenToSquare, faClipboardCheck, faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageEndorsement extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n persons: [],\n endorserPersons: [],\n assessorPersons: [],\n isUpdating: false,\n searchProperties: [\"email\", \"firstName\", \"lastName\", \"endorsedBy\", \"endorsementLatestStatus\"],\n modeGenerateReports: false,\n personsSkillProfileSelected: [],\n personsEndorsedSelected: [],\n personsActionSelected: [],\n loadingPrint: false,\n filterAssignedToMe: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const routeGoBack = localStorage.getItem(\"routeGoBack\");\n localStorage.setItem(\"routeAdminFrom\", \"/admin/endorsements\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n let repopulate = true;\n if (routeGoBack == \"TRUE\") {\n repopulate = false;\n }\n\n this.props.onAuth.authCheckState().then(() => {\n if (repopulate || !this.props.persons || (this.props.persons && this.props.persons.length == 0)) {\n this.props.onAdminPerson.getPersonsAdmin().then(() => {\n const endorserPersons = this.props.personsAdmin\n ? [\n ...this.props.personsAdmin\n .filter(\n (it) =>\n !it.inactive &&\n it.roles &&\n it.roles.some((it) => it.role == \"Admin\") &&\n it.pageAssignments &&\n it.pageAssignments.some((it) => it.pageName == \"Manage Endorsements and Reports\" && it.operations && it.operations.some((it) => it.operation == \"Open\" && it.allow) && it.operations.some((it) => it.operation == \"Approve\" && it.allow))\n )\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n ]\n : [];\n\n const assessorPersons = this.props.personsAdmin ? [...this.props.personsAdmin.filter((it) => !it.inactive && it.roles && it.roles.some((it) => it.role == \"Admin\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))] : [];\n\n this.setState(\n {\n endorserPersons,\n assessorPersons,\n },\n () => {\n this.initData();\n }\n );\n });\n } else {\n const endorserPersons = this.props.personsAdmin\n ? [\n ...this.props.personsAdmin\n .filter(\n (it) =>\n !it.inactive &&\n it.roles &&\n it.roles.some((it) => it.role == \"Admin\") &&\n it.pageAssignments &&\n it.pageAssignments.some((it) => it.pageName == \"Manage Endorsements and Reports\" && it.operations && it.operations.some((it) => it.operation == \"Open\" && it.allow) && it.operations.some((it) => it.operation == \"Approve\" && it.allow))\n )\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n ]\n : [];\n\n const assessorPersons = this.props.personsAdmin ? [...this.props.personsAdmin.filter((it) => !it.inactive && it.roles && it.roles.some((it) => it.role == \"Admin\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))] : [];\n\n const filterAssignedToMe = this.state.filterAssignedToMe;\n let persons = this.reformPersons(this.props.persons.filter((it) => !it.inactive));\n if (filterAssignedToMe) {\n persons = persons.filter((it) => !it.inactive && it.endorsedById == this.props.personId);\n }\n\n if (this.state.modeGenerateReports) {\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n }\n\n this.setState({\n endorserPersons,\n assessorPersons,\n persons: persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id),\n loading: false,\n });\n }\n });\n }\n\n componentWillUnmount() {\n localStorage.setItem(\"routeGoBack\", \"FALSE\");\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n this.setState({ persons: this.reformPersons(this.props.persons.filter((it) => !it.inactive).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))) });\n }\n\n if (prevProps.mode !== this.props.mode && prevProps.mode) {\n this.handleRefresh();\n }\n }\n\n reformPersons = (persons) => {\n return persons.map((it) => {\n return {\n id: it.id,\n idSkillProfile: it.id,\n idActionPlan: it.id,\n idEndorsedProfile: it.id,\n companyId: it.companyId,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n completeName: `${it.firstName}${it.lastName ? ` ${it.lastName}` : \"\"}${it.email ? ` ${it.email}` : \"\"}`,\n salutation: it.salutation,\n position: it.position,\n inactive: it.inactive,\n personType: it.personType,\n accessGroup: it.accessGroup,\n allowNotifications: it.allowNotifications,\n lastActivityOn: it.lastActivityOn,\n lastActivitySystem: it.lastActivitySystem,\n createdOn: it.createdOn,\n countryCode: it.countryCode,\n country: it.country,\n location: it.location,\n selfAssessmentReason: it.selfAssessmentReason,\n encryptedId: it.encryptedId,\n team: it.team,\n usePreferredName: it.usePreferredName,\n other: it.other,\n department: it.department,\n businessUnit: it.businessUnit,\n division: it.division,\n territory: it.territory,\n costCentre: it.costCentre,\n supervisor: it.supervisor,\n validatedDate: it.validatedDate,\n isCandidate: it.isCandidate,\n isAnalyticsUser: it.isAnalyticsUser,\n leaveOn: it.leaveOn,\n isAssigned: it.isAssigned,\n isInvited: it.isInvited,\n invitedOn: it.invitedOn,\n accounts: it.accounts ? [...it.accounts] : null,\n teams: it.teams ? [...it.teams] : null,\n profilePictureUrl: it.profilePictureUrl,\n activityStatementInterval: it.activityStatementInterval,\n lastUpdatedOn: it.lastUpdatedOn,\n lastUpdatedVersion: it.lastUpdatedVersion,\n latestAssessmentId: it.latestAssessmentId,\n cartridgeId: it.cartridgeId,\n hasOutstandingAction: it.hasOutstandingAction,\n roles: it.roles ? [...it.roles] : null,\n strRoles: it.roles\n ? it.roles\n .map((it) => {\n return it.role;\n })\n .join(\", \")\n : \"User\",\n groups: it.groups ? [...it.groups] : null,\n totalQuestions: it.totalQuestions,\n answeredQuestions: it.answeredQuestions,\n totalTimeTaken: it.totalTimeTaken,\n percentage: it.percentage,\n hasEndorseProfile: it.hasEndorseProfile,\n hasAction: it.hasAction,\n\n selfAssessedReportGenerated: it.selfAssessedReportGenerated,\n lastSelfAssessedReportGeneratedVersion: it.lastSelfAssessedReportGeneratedVersion,\n lastSelfAssessedReportGeneratedOn: it.lastSelfAssessedReportGeneratedOn,\n actionReportGenerated: it.actionReportGenerated,\n lastActionReportGeneratedVersion: it.lastActionReportGeneratedVersion,\n lastActionReportGeneratedOn: it.lastActionReportGeneratedOn,\n endorsedReportGenerated: it.endorsedReportGenerated,\n lastEndorsedReportGeneratedVersion: it.lastEndorsedReportGeneratedVersion,\n lastEndorsedReportGeneratedOn: it.lastEndorsedReportGeneratedOn,\n\n latestInvitationEmailReminderNumber: it.latestInvitationEmailReminderNumber,\n latestInvitationEmailReminderSentOn: it.latestInvitationEmailReminderSentOn,\n resetPasswordRequested: it.resetPasswordRequested,\n upRelationships: it.upRelationships,\n downRelationships: it.downRelationships,\n havePassword: it.havePassword,\n endorsedById: it.endorsedById,\n endorsedBy: it.endorsedBy ? it.endorsedBy : \"\",\n endorsementLatestStatus: it.endorsementLatestStatus ? it.endorsementLatestStatus : \"\",\n endorsementLastUpdatedById: it.endorsementLastUpdatedById,\n endorsementLastUpdatedBy: it.endorsementLastUpdatedBy,\n endorsementLastUpdated: it.endorsementLastUpdated,\n endorsementLastUpdatedVersion: it.endorsementLastUpdatedVersion,\n endorsementLastReviewedById: it.endorsementLastReviewedById,\n endorsementLastReviewedBy: it.endorsementLastReviewedBy,\n endorsementLastReviewed: it.endorsementLastReviewed,\n endorsementLastReviewedVersion: it.endorsementLastReviewedVersion,\n endorsementLastApprovedById: it.endorsementLastApprovedById,\n endorsementLastApprovedBy: it.endorsementLastApprovedBy,\n endorsementLastApproved: it.endorsementLastApproved,\n endorsementLastApprovedVersion: it.endorsementLastApprovedVersion,\n assessorId: it.assessorId,\n assessorName: it.assessorName ? it.assessorName : \"\",\n };\n });\n };\n\n initData = () => {\n const filterAssignedToMe = this.state.filterAssignedToMe;\n this.props.onAdminPerson.getPersonsIncEndorsements().then(() => {\n let persons = this.reformPersons(this.props.persons.filter((it) => !it.inactive));\n if (filterAssignedToMe) {\n persons = persons.filter((it) => !it.inactive && it.endorsedById == this.props.personId);\n }\n\n if (this.state.modeGenerateReports) {\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n }\n\n this.setState({\n persons: persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id),\n });\n });\n\n this.setState({ loading: this.props.loading });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n handleRowClickDummy = () => {};\n\n handleRowSkillProfileClick = (row) => {\n if (!this.state.loadingPrint) {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleSkillProfileSelected = !updatedData.toggleSkillProfileSelected;\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id) });\n }\n };\n\n handleSelectSkillProfileAll = () => {\n const { persons, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSkillProfileSelected && it.percentage >= 1).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSkillProfileSelected && it.percentage >= 1).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n });\n\n if (selectAll) {\n persons\n .filter((it) => it.percentage >= 1)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSkillProfileSelected = true;\n }\n });\n }\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id) });\n };\n\n handleRowEndorsedClick = (row) => {\n if (!this.state.loadingPrint) {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleEndorsedSelected = !updatedData.toggleEndorsedSelected;\n\n this.setState({ persons: [...persons], personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id) });\n }\n };\n\n handleSelectEndorsedAll = () => {\n const { persons, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleEndorsedSelected = false;\n });\n\n if (selectAll) {\n persons\n .filter((it) => it.hasEndorseProfile)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleEndorsedSelected = true;\n }\n });\n }\n\n this.setState({ persons: [...persons], personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id) });\n };\n\n handleRowActionClick = (row) => {\n if (!this.state.loadingPrint) {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleActionSelected = !updatedData.toggleActionSelected;\n\n this.setState({ persons: [...persons], personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id) });\n }\n };\n\n handleSelectActionAll = () => {\n const { persons, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleActionSelected && it.hasAction).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleActionSelected && it.hasAction).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleActionSelected = false;\n });\n\n if (selectAll) {\n persons\n .filter((it) => it.hasAction)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleActionSelected = true;\n }\n });\n }\n\n this.setState({ persons: [...persons], personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n it.toggleEndorsedSelected = false;\n it.toggleActionSelected = false;\n });\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: [], personsEndorsedSelected: [], personsActionSelected: [] });\n };\n\n editProfile = (person) => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"profileType\", \"Endorsed\");\n localStorage.setItem(\"manageEndorsementOperation\", \"UPDATE\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"TRUE\");\n\n this.props.history.push(`/SfiaProfile/Manage?email=${person.email}`);\n };\n\n approveProfile = (person) => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"profileType\", \"Endorsed\");\n localStorage.setItem(\"manageEndorsementOperation\", \"APPROVE\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"TRUE\");\n\n this.props.history.push(`/SfiaProfile/Manage?email=${person.email}`);\n };\n\n handleGenerateReport = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n\n this.setState({\n modeGenerateReports: true,\n persons: [...persons],\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id),\n });\n };\n\n handleConfirmGenerateReport = () => {\n const { personsSkillProfileSelected, personsEndorsedSelected, personsActionSelected } = this.state;\n let personIds = [];\n\n personIds.push(...personsSkillProfileSelected);\n\n personsEndorsedSelected.forEach((it) => {\n if (!personIds.find((x) => x == it)) {\n personIds.push(it);\n }\n });\n\n personsActionSelected.forEach((it) => {\n if (!personIds.find((x) => x == it)) {\n personIds.push(it);\n }\n });\n\n const totalReports = (personsSkillProfileSelected ? personsSkillProfileSelected.length : 0) + (personsEndorsedSelected ? personsEndorsedSelected.length : 0) + (personsActionSelected ? personsActionSelected.length : 0);\n\n if (totalReports > 100) {\n if (window.confirm(\"Due to the number of reports you have selected, the reports will be generated in the background, and you will receive an Email with a Download link when they are completed. Proceed?\")) {\n this.props.onAdminPerson.generateProfileReportsToEmail({\n reportRequests: personIds.map((personId) => {\n return {\n personId,\n selfAssessedReport: personsSkillProfileSelected.find((it) => it == personId) ? true : false,\n endorsedReport: personsEndorsedSelected.find((it) => it == personId) ? true : false,\n actionReport: personsActionSelected.find((it) => it == personId) ? true : false,\n };\n }),\n });\n\n this.handleClearSelection();\n this.setState({ modeGenerateReports: false });\n this.generateAlert(\"success\", \"SkillsTX profile reports request sent.\");\n }\n } else {\n this.setState({ loadingPrint: true });\n this.props.onAdminPerson\n .generateProfileReports({\n reportRequests: personIds.map((personId) => {\n return {\n personId,\n selfAssessedReport: personsSkillProfileSelected.find((it) => it == personId) ? true : false,\n endorsedReport: personsEndorsedSelected.find((it) => it == personId) ? true : false,\n actionReport: personsActionSelected.find((it) => it == personId) ? true : false,\n };\n }),\n })\n .then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `SkillsTx_Persons_Profiles.zip`);\n this.handleClearSelection();\n }\n }\n\n this.setState({ loadingPrint: this.props.loadingPrint, modeGenerateReports: false });\n });\n }\n };\n\n handleCancelGenerateReport = () => {\n this.handleClearSelection();\n this.setState({ modeGenerateReports: false });\n };\n\n handleToggleAssignedToMe = () => {\n const filterAssignedToMe = this.state.filterAssignedToMe;\n let persons = this.reformPersons(this.props.persons.filter((it) => !it.inactive));\n\n if (!filterAssignedToMe == true) {\n persons = persons.filter((it) => it.endorsedById == this.props.personId && !it.inactive);\n }\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n\n this.setState({\n filterAssignedToMe: !filterAssignedToMe,\n persons: [...persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))],\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: persons.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: persons.filter((it) => it.toggleActionSelected).map((row) => row.id),\n });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportEndorsements = () => {\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.props.onAdminPerson.exportEndorsementsDataExcel(timezoneOffset).then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportEndorsements_${strToday}.xlsx`);\n }\n }\n });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const { personId } = this.props;\n const { persons, searchKeyword, searchProperties, modeGenerateReports, filterAssignedToMe, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n let pageAssignment = null;\n\n if (pageAssignments.find((it) => it.pageName == \"Manage Endorsements and Reports\")) {\n pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Endorsements and Reports\");\n }\n\n const editProfile = this.editProfile;\n const approveProfile = this.approveProfile;\n const generateAlert = this.generateAlert;\n const handleSelectSkillProfileAll = this.handleSelectSkillProfileAll;\n const handleRowSkillProfileClick = this.handleRowSkillProfileClick;\n\n const handleSelectEndorsedAll = this.handleSelectEndorsedAll;\n const handleRowEndorsedClick = this.handleRowEndorsedClick;\n\n const handleSelectActionAll = this.handleSelectActionAll;\n const handleRowActionClick = this.handleRowActionClick;\n const onTableFilterChange = this.onTableFilterChange;\n\n const loadingPrint = this.state.loadingPrint;\n\n const selectableRows = false;\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n const allowEdit = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? true : false;\n const allowApprove = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Approve\" && op.allow == true) ? true : false;\n const allowAssignEndorser = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Assign Endorser\" && op.allow == true) ? true : false;\n const allowGenerateReports = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Generate Reports\" && op.allow == true) ? true : false;\n const allowExport = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) ? true : false;\n\n const endorserSort = (rowA, rowB) => {\n let endorserA = \"FALSE\";\n let endorserB = \"FALSE\";\n\n if (rowA.endorsementLastUpdated && rowA.endorsedById && personId == rowA.endorsedById && rowA.endorsementLatestStatus != \"Approved\") {\n endorserA = \"TRUE\";\n }\n\n if (rowB.endorsementLastUpdated && rowB.endorsedById && personId == rowB.endorsedById && rowB.endorsementLatestStatus != \"Approved\") {\n endorserB = \"TRUE\";\n }\n\n if (endorserA > endorserB) {\n return -1;\n }\n\n if (endorserB > endorserA) {\n return 1;\n }\n\n return 0;\n };\n\n const lastUpdatedSort = (rowA, rowB) => {\n let lastUpdatedA = (rowA.endorsementLastUpdated ? rowA.endorsementLastUpdated.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowA.endorsementLastUpdatedVersion}` : \"\") + (rowA.endorsementLastUpdatedBy ? rowA.endorsementLastUpdatedBy : \"\");\n let lastUpdatedB = (rowB.endorsementLastUpdated ? rowB.endorsementLastUpdated.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowB.endorsementLastUpdatedVersion}` : \"\") + (rowB.endorsementLastUpdatedBy ? rowB.endorsementLastUpdatedBy : \"\");\n\n if (lastUpdatedA > lastUpdatedB) {\n return 1;\n }\n\n if (lastUpdatedB > lastUpdatedA) {\n return -1;\n }\n\n return 0;\n };\n\n const lastReviewedSort = (rowA, rowB) => {\n let lastReviewedA = (rowA.endorsementLastReviewed ? rowA.endorsementLastReviewed.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowA.endorsementLastReviewedVersion}` : \"\") + (rowA.endorsementLastReviewedBy ? rowA.endorsementLastReviewedBy : \"\");\n let lastReviewedB = (rowB.endorsementLastReviewed ? rowB.endorsementLastReviewed.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowB.endorsementLastReviewedVersion}` : \"\") + (rowB.endorsementLastReviewedBy ? rowB.endorsementLastReviewedBy : \"\");\n\n if (lastReviewedA > lastReviewedB) {\n return 1;\n }\n\n if (lastReviewedB > lastReviewedA) {\n return -1;\n }\n\n return 0;\n };\n\n const lastApprovedSort = (rowA, rowB) => {\n let lastApprovedA = (rowA.endorsementLastApproved ? rowA.endorsementLastApproved.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowA.endorsementLastApprovedVersion}` : \"\") + (rowA.endorsementLastApprovedBy ? rowA.endorsementLastApprovedBy : \"\");\n let lastApprovedB = (rowB.endorsementLastApproved ? rowB.endorsementLastApproved.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowB.endorsementLastApprovedVersion}` : \"\") + (rowB.endorsementLastApprovedBy ? rowB.endorsementLastApprovedBy : \"\");\n\n if (lastApprovedA > lastApprovedB) {\n return 1;\n }\n\n if (lastApprovedB > lastApprovedA) {\n return -1;\n }\n\n return 0;\n };\n\n const endorserPersons = this.state.endorserPersons;\n const assessorPersons = this.state.assessorPersons;\n\n const columns = [\n {\n id: \"idSkillProfile\",\n name: (\n
\n \n S\n \n \n Self-assessed\n \n
\n it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectSkillProfileAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.percentage >= 1 && handleRowSkillProfileClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"idEndorsedProfile\",\n name: (\n
\n \n E\n \n \n Endorsed\n \n
\n it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? faSquare : filtered.filter((it) => !it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectEndorsedAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.hasEndorseProfile && handleRowEndorsedClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"idActionPlan\",\n name: (\n
\n \n A\n \n \n Action Plan\n \n
\n it.toggleActionSelected && it.hasAction).length == 0 ? faSquare : filtered.filter((it) => !it.toggleActionSelected && it.hasAction).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleActionSelected && it.hasAction).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectActionAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.hasAction && handleRowActionClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: true,\n sortFunction: endorserSort,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {allowEdit && (\n \n editProfile(row)} />\n \n Edit\n \n \n )}\n {allowApprove && row.endorsementLastUpdated && row.endorsedById && personId == row.endorsedById && row.endorsementLatestStatus != \"Approved\" && (\n \n    \n approveProfile(row)} />\n \n Approve\n \n \n )}\n
\n );\n },\n omit: !(allowEdit || allowApprove),\n },\n {\n id: \"email\",\n name: (\n
\n Person Name (email)\n
\n it.name == \"completeName\") ? columnSearchKeywords.find((it) => it.name == \"completeName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: allowEdit || allowApprove ? (modeGenerateReports ? \"26%\" : \"35%\") : modeGenerateReports ? \"32%\" : \"41%\",\n center: false,\n format: function (row, index) {\n return {`${row.firstName} ${row.lastName} (${row.email})`};\n },\n },\n {\n id: \"assessorName\",\n name: (\n
\n Assessor Name\n
\n it.name == \"assessorName\") ? columnSearchKeywords.find((it) => it.name == \"assessorName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.assessorName,\n sortable: true,\n width: \"10%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n return ;\n },\n },\n {\n id: \"endorsementLastUpdated\",\n name: (\n
\n Loaded/Last Updated by and date\n
\n it.name == \"endorsementLastUpdatedBy\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLastUpdatedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLastUpdated,\n sortable: true,\n sortFunction: lastUpdatedSort,\n width: \"10%\",\n center: false,\n format: function (row, index) {\n if (row.endorsementLastUpdated) {\n return (\n \n {row.endorsementLastUpdatedBy && (\n \n {row.endorsementLastUpdatedBy}\n
\n
\n )}\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.endorsementLastUpdated))} ${row.endorsementLastUpdatedVersion ? `(v${row.endorsementLastUpdatedVersion})` : \"\"}`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n {\n id: \"endorsementLatestStatus\",\n name: (\n
\n Endorsed Status\n
\n it.name == \"endorsementLatestStatus\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLatestStatus\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLatestStatus,\n sortable: true,\n width: \"9%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n return row.endorsementLatestStatus;\n },\n },\n {\n id: \"endorsedBy\",\n name: (\n
\n Endorser Name\n
\n it.name == \"endorsedBy\") ? columnSearchKeywords.find((it) => it.name == \"endorsedBy\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.endorsedBy,\n sortable: true,\n width: \"10%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n return allowAssignEndorser ? : row.endorsedBy;\n },\n },\n {\n id: \"endorsementLastReviewed\",\n name: (\n
\n Reviewed by and date\n
\n it.name == \"endorsementLastReviewedBy\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLastReviewedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLastReviewed,\n sortable: true,\n sortFunction: lastReviewedSort,\n width: \"10%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n if (row.endorsementLastReviewed) {\n return (\n \n {row.endorsementLastReviewedBy}\n
\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.endorsementLastReviewed))} (v${row.endorsementLastReviewedVersion})`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n {\n id: \"endorsementLastApproved\",\n name: (\n
\n Approved by and date\n
\n it.name == \"endorsementLastApprovedBy\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLastApprovedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLastApproved,\n sortable: true,\n sortFunction: lastApprovedSort,\n width: \"10%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n if (row.endorsementLastApproved) {\n return (\n \n {row.endorsementLastApprovedBy}\n
\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.endorsementLastApproved))} (v${row.endorsementLastApprovedVersion})`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n ];\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, personsSkillProfileSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", personsSkillProfileSelected: [] });\n }}\n >\n   \n \n Refresh\n \n {allowExport && (\n \n   \n \n Export\n \n \n )}\n   \n \n {filterAssignedToMe ? \"Show all\" : \"Assigned to me\"}\n \n {allowGenerateReports && !modeGenerateReports && (\n \n   \n \n Generate reports\n \n \n )}\n {modeGenerateReports && (\n \n   \n \n {!this.state.loadingPrint ? \"OK\" : }\n \n   \n \n Cancel\n \n \n )}\n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n personId: state.auth.personId,\n email: state.auth.email,\n loginWithTeams: state.auth.loginWithTeams,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n personsAdmin: state.adminPerson.personsAdmin,\n isUpdating: state.adminPerson.isUpdating,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageEndorsement));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminCategoryAPI {\n static getExtraFrameworkCapabilities() {\n return axios\n .get(`/categories/extraFrameworkCapabilities`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getExtraFrameworkLevels() {\n return axios\n .get(`/categories/extraFrameworkLevels`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createExtraFrameworkLevel(level) {\n return axios\n .post(`/categories/extraFrameworkLevels`, level)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateExtraFrameworkLevel(id, level) {\n return axios\n .put(`/categories/extraFrameworkLevels/${id}`, level)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteExtraFrameworkLevel(id) {\n return axios\n .delete(`/categories/extraFrameworkLevels/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static moveExtraFrameworkLevelUp(id) {\n return axios\n .post(`/categories/extraFrameworkLevels/${id}/moveup`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static moveExtraFrameworkLevelDown(id) {\n return axios\n .post(`/categories/extraFrameworkLevels/${id}/movedown`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getExtraFrameworkCategories() {\n return axios\n .get(`/categories/extraFrameworks`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createExtraFrameworkCategory(category) {\n return axios\n .post(`/categories/extraFrameworks`, category)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateExtraFrameworkCategory(categoryId, category) {\n return axios\n .put(`/categories/extraFrameworks/${categoryId}`, category)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteExtraFrameworkCategory(categoryId) {\n return axios\n .delete(`/categories/extraFrameworks/${categoryId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createExtraFrameworkSubCategory(categoryId, subCategory) {\n return axios\n .post(`/categories/extraFrameworks/${categoryId}/subCategories`, subCategory)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateExtraFrameworkSubCategory(categoryId, subCategoryId, subCategory) {\n return axios\n .put(`/categories/extraFrameworks/${categoryId}/subCategories/${subCategoryId}`, subCategory)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteExtraFrameworkSubCategory(categoryId, subCategoryId) {\n return axios\n .delete(`/categories/extraFrameworks/${categoryId}/subCategories/${subCategoryId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createExtraFrameworkSkill(categoryId, subCategoryId, skill) {\n return axios\n .post(`/categories/extraFrameworks/${categoryId}/subCategories/${subCategoryId}/skills`, skill)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateExtraFrameworkSkill(categoryId, subCategoryId, skillId, skill) {\n return axios\n .put(`/categories/extraFrameworks/${categoryId}/subCategories/${subCategoryId}/skills/${skillId}`, skill)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteExtraFrameworkSkill(categoryId, subCategoryId, skillId) {\n return axios\n .delete(`/categories/extraFrameworks/${categoryId}/subCategories/${subCategoryId}/skills/${skillId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportExtraFrameworksDataExcel() {\n return axios\n .get(`/categories/extraFrameworks/export`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportExtraFrameworksDataExcelTemplate() {\n return axios\n .get(`/categories/extraFrameworks/exporttemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importExtraFrameworksDataExcel(extraFrameworksData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n extraFrameworksData.forEach((file) => {\n body.append(\"extraFrameworksData\", file);\n });\n\n return axios\n .post(`/categories/extraFrameworks/import`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminCategoryAPI;\n","import AdminCategoryAPI from \"./../../../common/api/adminservice/AdminCategoryService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getExtraFrameworkCapabilitiesStart = () => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_START,\n };\n};\n\nexport const getExtraFrameworkCapabilitiesSuccess = (extraFrameworkCapabilities) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS,\n extraFrameworkCapabilities,\n };\n};\n\nexport const getExtraFrameworkCapabilitiesFail = (error) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL,\n error: error,\n };\n};\n\nexport const getExtraFrameworkCapabilities = () => {\n return (dispatch) => {\n dispatch(getExtraFrameworkCapabilitiesStart());\n\n return AdminCategoryAPI.getExtraFrameworkCapabilities()\n .then((res) => {\n dispatch(getExtraFrameworkCapabilitiesSuccess(res));\n })\n .catch((err) => {\n dispatch(getExtraFrameworkCapabilitiesFail(err));\n });\n };\n};\n\nexport const getExtraFrameworkLevelsStart = () => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_START,\n };\n};\n\nexport const getExtraFrameworkLevelsSuccess = (extraFrameworkLevels) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_SUCCESS,\n extraFrameworkLevels,\n };\n};\n\nexport const getExtraFrameworkLevelsFail = (error) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_FAIL,\n error: error,\n };\n};\n\nexport const getExtraFrameworkLevels = () => {\n return (dispatch) => {\n dispatch(getExtraFrameworkLevelsStart());\n\n return AdminCategoryAPI.getExtraFrameworkLevels()\n .then((res) => {\n dispatch(getExtraFrameworkLevelsSuccess(res));\n })\n .catch((err) => {\n dispatch(getExtraFrameworkLevelsFail(err));\n });\n };\n};\n\nexport const createExtraFrameworkLevelStart = () => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_START,\n };\n};\n\nexport const createExtraFrameworkLevelSuccess = (extraFrameworkLevel) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_SUCCESS,\n extraFrameworkLevel,\n };\n};\n\nexport const createExtraFrameworkLevelFail = (error) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_LEVEL_FAIL,\n error: error,\n };\n};\n\nexport const createExtraFrameworkLevel = (level) => {\n return (dispatch) => {\n dispatch(createExtraFrameworkLevelStart());\n\n return AdminCategoryAPI.createExtraFrameworkLevel(level)\n .then((res) => {\n dispatch(createExtraFrameworkLevelSuccess(res));\n })\n .catch((err) => {\n dispatch(createExtraFrameworkLevelFail(err));\n });\n };\n};\n\nexport const updateExtraFrameworkLevelStart = () => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_START,\n };\n};\n\nexport const updateExtraFrameworkLevelSuccess = (extraFrameworkLevel) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_SUCCESS,\n extraFrameworkLevel,\n };\n};\n\nexport const updateExtraFrameworkLevelFail = (error) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_LEVEL_FAIL,\n error: error,\n };\n};\n\nexport const updateExtraFrameworkLevel = (id, level) => {\n return (dispatch) => {\n dispatch(updateExtraFrameworkLevelStart());\n\n return AdminCategoryAPI.updateExtraFrameworkLevel(id, level)\n .then((res) => {\n dispatch(updateExtraFrameworkLevelSuccess(res));\n })\n .catch((err) => {\n dispatch(updateExtraFrameworkLevelFail(err));\n });\n };\n};\n\nexport const deleteExtraFrameworkLevelStart = () => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_START,\n };\n};\n\nexport const deleteExtraFrameworkLevelSuccess = (extraFrameworkLevels) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_SUCCESS,\n extraFrameworkLevels,\n };\n};\n\nexport const deleteExtraFrameworkLevelFail = (error) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_LEVEL_START,\n error: error,\n };\n};\n\nexport const deleteExtraFrameworkLevel = (id) => {\n return (dispatch) => {\n dispatch(deleteExtraFrameworkLevelStart());\n\n return AdminCategoryAPI.deleteExtraFrameworkLevel(id)\n .then((res) => {\n dispatch(deleteExtraFrameworkLevelSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteExtraFrameworkLevelFail(err));\n });\n };\n};\n\nexport const moveExtraFrameworkLevelsStart = () => {\n return {\n type: actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_START,\n };\n};\n\nexport const moveExtraFrameworkLevelsSuccess = (extraFrameworkLevels) => {\n return {\n type: actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_SUCCESS,\n extraFrameworkLevels,\n };\n};\n\nexport const moveExtraFrameworkLevelsFail = (error) => {\n return {\n type: actionTypes.MOVE_EXTRAFRAMEWORK_LEVELS_FAIL,\n error: error,\n };\n};\n\nexport const moveExtraFrameworkLevelUp = (id) => {\n return (dispatch) => {\n dispatch(moveExtraFrameworkLevelsStart());\n\n return AdminCategoryAPI.moveExtraFrameworkLevelUp(id)\n .then((res) => {\n dispatch(moveExtraFrameworkLevelsSuccess(res));\n })\n .catch((err) => {\n dispatch(moveExtraFrameworkLevelsFail(err));\n });\n };\n};\n\nexport const moveExtraFrameworkLevelDown = (id) => {\n return (dispatch) => {\n dispatch(moveExtraFrameworkLevelsStart());\n\n return AdminCategoryAPI.moveExtraFrameworkLevelDown(id)\n .then((res) => {\n dispatch(moveExtraFrameworkLevelsSuccess(res));\n })\n .catch((err) => {\n dispatch(moveExtraFrameworkLevelsFail(err));\n });\n };\n};\n\nexport const getExtraFrameworkCategoriesStart = () => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_START,\n };\n};\n\nexport const getExtraFrameworkCategoriesSuccess = (categories) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_SUCCESS,\n categories,\n };\n};\n\nexport const getExtraFrameworkCategoriesFail = (error) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CATEGORIES_FAIL,\n error: error,\n };\n};\n\nexport const getExtraFrameworkCategories = () => {\n return (dispatch) => {\n dispatch(getExtraFrameworkCategoriesStart());\n\n return AdminCategoryAPI.getExtraFrameworkCategories()\n .then((res) => {\n dispatch(getExtraFrameworkCategoriesSuccess(res));\n })\n .catch((err) => {\n dispatch(getExtraFrameworkCategoriesFail(err));\n });\n };\n};\n\nexport const createExtraFrameworkCategoryStart = () => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_START,\n };\n};\n\nexport const createExtraFrameworkCategorySuccess = (category) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS,\n category,\n };\n};\n\nexport const createExtraFrameworkCategoryFail = (error) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_CATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const createExtraFrameworkCategory = (category) => {\n return (dispatch) => {\n dispatch(createExtraFrameworkCategoryStart());\n\n return AdminCategoryAPI.createExtraFrameworkCategory(category)\n .then((res) => {\n dispatch(createExtraFrameworkCategorySuccess(res));\n })\n .catch((err) => {\n dispatch(createExtraFrameworkCategoryFail(err));\n });\n };\n};\n\nexport const updateExtraFrameworkCategoryStart = () => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_START,\n };\n};\n\nexport const updateExtraFrameworkCategorySuccess = (category) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_SUCCESS,\n category,\n };\n};\n\nexport const updateExtraFrameworkCategoryFail = (error) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_CATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const updateExtraFrameworkCategory = (categoryId, category) => {\n return (dispatch) => {\n dispatch(updateExtraFrameworkCategoryStart());\n\n return AdminCategoryAPI.updateExtraFrameworkCategory(categoryId, category)\n .then((res) => {\n dispatch(updateExtraFrameworkCategorySuccess(res));\n })\n .catch((err) => {\n dispatch(updateExtraFrameworkCategoryFail(err));\n });\n };\n};\n\nexport const deleteExtraFrameworkCategoryStart = () => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_START,\n };\n};\n\nexport const deleteExtraFrameworkCategorySuccess = (id) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_SUCCESS,\n id,\n };\n};\n\nexport const deleteExtraFrameworkCategoryFail = (error) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_CATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const deleteExtraFrameworkCategory = (categoryId) => {\n return (dispatch) => {\n dispatch(deleteExtraFrameworkCategoryStart());\n\n return AdminCategoryAPI.deleteExtraFrameworkCategory(categoryId)\n .then((res) => {\n dispatch(deleteExtraFrameworkCategorySuccess(categoryId));\n })\n .catch((err) => {\n dispatch(deleteExtraFrameworkCategoryFail(err));\n });\n };\n};\n\nexport const createExtraFrameworkSubCategoryStart = () => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_START,\n };\n};\n\nexport const createExtraFrameworkSubCategorySuccess = (categoryId, subCategory) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS,\n categoryId,\n subCategory,\n };\n};\n\nexport const createExtraFrameworkSubCategoryFail = (error) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const createExtraFrameworkSubCategory = (categoryId, subCategory) => {\n return (dispatch) => {\n dispatch(createExtraFrameworkSubCategoryStart());\n\n return AdminCategoryAPI.createExtraFrameworkSubCategory(categoryId, subCategory)\n .then((res) => {\n dispatch(createExtraFrameworkSubCategorySuccess(categoryId, res));\n })\n .catch((err) => {\n dispatch(createExtraFrameworkSubCategoryFail(err));\n });\n };\n};\n\nexport const updateExtraFrameworkSubCategoryStart = () => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_START,\n };\n};\n\nexport const updateExtraFrameworkSubCategorySuccess = (categoryId, subCategory) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS,\n categoryId,\n subCategory,\n };\n};\n\nexport const updateExtraFrameworkSubCategoryFail = (error) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const updateExtraFrameworkSubCategory = (categoryId, subCategoryId, subCategory) => {\n return (dispatch) => {\n dispatch(updateExtraFrameworkSubCategoryStart());\n\n return AdminCategoryAPI.updateExtraFrameworkSubCategory(categoryId, subCategoryId, subCategory)\n .then((res) => {\n dispatch(updateExtraFrameworkSubCategorySuccess(categoryId, res));\n })\n .catch((err) => {\n dispatch(updateExtraFrameworkSubCategoryFail(err));\n });\n };\n};\n\nexport const deleteExtraFrameworkSubCategoryStart = () => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_START,\n };\n};\n\nexport const deleteExtraFrameworkSubCategorySuccess = (categoryId, subCategoryId) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_SUCCESS,\n categoryId,\n subCategoryId,\n };\n};\n\nexport const deleteExtraFrameworkSubCategoryFail = (error) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SUBCATEGORY_FAIL,\n error: error,\n };\n};\n\nexport const deleteExtraFrameworkSubCategory = (categoryId, subCategoryId) => {\n return (dispatch) => {\n dispatch(deleteExtraFrameworkSubCategoryStart());\n\n return AdminCategoryAPI.deleteExtraFrameworkSubCategory(categoryId, subCategoryId)\n .then((res) => {\n dispatch(deleteExtraFrameworkSubCategorySuccess(categoryId, subCategoryId));\n })\n .catch((err) => {\n dispatch(deleteExtraFrameworkSubCategoryFail(err));\n });\n };\n};\n\nexport const createExtraFrameworkSkillStart = () => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_START,\n };\n};\n\nexport const createExtraFrameworkSkillSuccess = (categoryId, subCategoryId, skill) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_SUCCESS,\n categoryId,\n subCategoryId,\n skill,\n };\n};\n\nexport const createExtraFrameworkSkillFail = (error) => {\n return {\n type: actionTypes.CREATE_EXTRAFRAMEWORK_SKILL_FAIL,\n error: error,\n };\n};\n\nexport const createExtraFrameworkSkill = (categoryId, subCategoryId, skill) => {\n return (dispatch) => {\n dispatch(createExtraFrameworkSkillStart());\n\n return AdminCategoryAPI.createExtraFrameworkSkill(categoryId, subCategoryId, skill)\n .then((res) => {\n dispatch(createExtraFrameworkSkillSuccess(categoryId, subCategoryId, res));\n })\n .catch((err) => {\n dispatch(createExtraFrameworkSkillFail(err));\n });\n };\n};\n\nexport const updateExtraFrameworkSkillStart = () => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_START,\n };\n};\n\nexport const updateExtraFrameworkSkillSuccess = (categoryId, subCategoryId, skill) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_SUCCESS,\n categoryId,\n subCategoryId,\n skill,\n };\n};\n\nexport const updateExtraFrameworkSkillFail = (error) => {\n return {\n type: actionTypes.UPDATE_EXTRAFRAMEWORK_SKILL_FAIL,\n error: error,\n };\n};\n\nexport const updateExtraFrameworkSkill = (categoryId, subCategoryId, skillId, skill) => {\n return (dispatch) => {\n dispatch(updateExtraFrameworkSkillStart());\n\n return AdminCategoryAPI.updateExtraFrameworkSkill(categoryId, subCategoryId, skillId, skill)\n .then((res) => {\n dispatch(updateExtraFrameworkSkillSuccess(categoryId, subCategoryId, res));\n })\n .catch((err) => {\n dispatch(updateExtraFrameworkSkillFail(err));\n });\n };\n};\n\nexport const deleteExtraFrameworkSkillStart = () => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_START,\n };\n};\n\nexport const deleteExtraFrameworkSkillSuccess = (categoryId, subCategoryId, skillId) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_SUCCESS,\n categoryId,\n subCategoryId,\n skillId,\n };\n};\n\nexport const deleteExtraFrameworkSkillFail = (error) => {\n return {\n type: actionTypes.DELETE_EXTRAFRAMEWORK_SKILL_FAIL,\n error: error,\n };\n};\n\nexport const deleteExtraFrameworkSkill = (categoryId, subCategoryId, skillId) => {\n return (dispatch) => {\n dispatch(deleteExtraFrameworkSkillStart());\n\n return AdminCategoryAPI.deleteExtraFrameworkSkill(categoryId, subCategoryId, skillId)\n .then((res) => {\n dispatch(deleteExtraFrameworkSkillSuccess(categoryId, subCategoryId, skillId));\n })\n .catch((err) => {\n dispatch(deleteExtraFrameworkSkillFail(err));\n });\n };\n};\n\nexport const exportExtraFrameworksDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_START,\n };\n};\n\nexport const exportExtraFrameworksDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportExtraFrameworksDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_EXTRAFRAMEWORKS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportExtraFrameworksDataExcel = () => {\n return (dispatch) => {\n dispatch(exportExtraFrameworksDataExcelStart());\n\n return AdminCategoryAPI.exportExtraFrameworksDataExcel()\n .then((res) => {\n dispatch(exportExtraFrameworksDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportExtraFrameworksDataExcelFail(err));\n });\n };\n};\n\nexport const exportExtraFrameworksDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportExtraFrameworksDataExcelStart());\n\n return AdminCategoryAPI.exportExtraFrameworksDataExcelTemplate()\n .then((res) => {\n dispatch(exportExtraFrameworksDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportExtraFrameworksDataExcelFail(err));\n });\n };\n};\n\nexport const importExtraFrameworksDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_START,\n };\n};\n\nexport const importExtraFrameworksDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_SUCCESS,\n };\n};\n\nexport const importExtraFrameworksDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_EXTRAFRAMEWORKS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importExtraFrameworksDataExcel = (extraFrameworksData) => {\n return (dispatch) => {\n dispatch(importExtraFrameworksDataExcelStart());\n\n return AdminCategoryAPI.importExtraFrameworksDataExcel(extraFrameworksData)\n .then((res) => {\n dispatch(importExtraFrameworksDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importExtraFrameworksDataExcelFail(err));\n });\n };\n};\n","import * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass ExtraFrameworkBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onAdminCategory.exportExtraFrameworksDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `ExtraFrameworkUploadTemplate.xlsx`);\n }\n }\n });\n };\n\n handleChangeOption = (event) => {\n const { name, value } = event.target;\n this.setState({ importOption: value });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onAdminCategory.importExtraFrameworksDataExcel(this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.categoryError) {\n this.excelRef.current.value = null;\n this.props.generateAlert(\"success\", \"Import extra frameworks success.\");\n this.togleDialogModal();\n this.props.handleImportSuccess();\n } else {\n this.props.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Extra Frameworks\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n categoryError: state.adminCategory.error,\n exportData: state.adminCategory.exportData,\n loadingExport: state.adminCategory.loadingExport,\n isImporting: state.adminCategory.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExtraFrameworkBulkUpload);\n","import * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ExtraFrameworkLevelDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n level: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.extraFrameworkLevel !== this.props.extraFrameworkLevel) {\n this.setState({\n extraFrameworkLevel: this.props.extraFrameworkLevel,\n form: {\n level: {\n validation: {\n required: true,\n },\n value: this.props.extraFrameworkLevel ? this.props.extraFrameworkLevel.level : \"\",\n valid: this.props.extraFrameworkLevel ? true : false,\n isValidFormat: this.props.extraFrameworkLevel ? true : false,\n touched: false,\n },\n },\n isFormValid: this.props.extraFrameworkLevel ? true : false,\n });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n form: {\n level: {\n validation: {\n required: true,\n },\n value: this.props.extraFrameworkLevel ? this.props.extraFrameworkLevel.level : \"\",\n valid: this.props.extraFrameworkLevel ? true : false,\n isValidFormat: this.props.extraFrameworkLevel ? true : false,\n touched: false,\n },\n },\n isFormValid: this.props.extraFrameworkLevel ? true : false,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const extraFrameworkLevel = {\n level: form.level.value,\n };\n\n this.setState({ isUpdating: true });\n\n if (this.props.extraFrameworkLevel && this.props.extraFrameworkLevel.id) {\n this.props.onAdminCategory.updateExtraFrameworkLevel(this.props.extraFrameworkLevel.id, extraFrameworkLevel).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Update level success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onAdminCategory.createExtraFrameworkLevel(extraFrameworkLevel).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Add level success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { form } = this.state;\n const { extraFrameworkLevel } = this.props;\n\n return (\n \n \n {extraFrameworkLevel && extraFrameworkLevel.id ? \"Update Level\" : \"Add Level\"}\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid}\n >\n Save\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminCategory.error,\n isUpdating: state.adminCategory.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExtraFrameworkLevelDetail);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport ExtraFrameworkLevelDetail from \"./ExtraFrameworkLevelDetail\";\nimport { faPenToSquare, faPlus, faSync, faArrowUp, faArrowDown, faMinusCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageExtraFrameworkCapabilities extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.extraFrameworkCapabilities !== this.props.extraFrameworkCapabilities) {\n this.setState({\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n });\n }\n }\n\n componentWillUnmount() {}\n\n render() {\n const { pageAssignment } = this.props;\n const { extraFrameworkCapabilities } = this.state;\n\n let allowUpdate = false;\n // allowUpdate = pageAssignment.operations.find((it) => it.operation == \"Manage\" && it.allow == true) ? true : false;\n\n const columns = [\n {\n id: \"capability\",\n name: \"Capability\",\n selector: (row) => row.capability,\n sortable: false,\n width: \"70%\",\n },\n {\n id: \"weight\",\n name: \"Weight\",\n selector: (row) => row.weight,\n sortable: false,\n width: \"30%\",\n center: true,\n },\n ];\n\n return (\n \n

\n Extra Framework Capabilities\n

\n
\n \n \n \n Refresh\n \n \n \n b.weight - a.weight)} pagination={false} selectableRows={true} selectableRowsHighlight={true} progressPending={this.props.capabilityLoading}>\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n isUpdating: state.adminCategory.isUpdating,\n capabilityLoading: state.adminCategory.capabilityLoading,\n categoryError: state.adminCategory.error,\n extraFrameworkLevels: state.adminCategory.extraFrameworkLevels,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageExtraFrameworkCapabilities));\n","import * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { SketchPicker, ChromePicker } from \"react-color\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ExtraFrameworkCategoryDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n colour: {\n validation: {\n required: true,\n },\n value: \"#bfbbbb\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n displayColorPicker: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.category !== this.props.category) {\n this.setState({\n category: this.props.category,\n });\n\n this.prepareForm(this.props.category);\n }\n }\n\n prepareForm = (category) => {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: category ? category.name : \"\",\n valid: category ? true : false,\n isValidFormat: category ? true : false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: category ? category.description : \"\",\n valid: category ? true : false,\n isValidFormat: category ? true : false,\n touched: false,\n },\n colour: {\n validation: {\n required: true,\n },\n value: category ? category.colour : \"#bfbbbb\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: category ? true : false,\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n\n this.prepareForm(this.props.category);\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const category = {\n name: form.name.value,\n description: form.description.value,\n colour: form.colour.value,\n };\n\n this.setState({ isUpdating: true });\n\n if (this.props.category && this.props.category.id) {\n this.props.onAdminCategory.updateExtraFrameworkCategory(this.props.category.id, category).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Update category success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onAdminCategory.createExtraFrameworkCategory(category).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Add category success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleChangeComplete = (color) => {\n const form = this.state.form;\n form.colour.value = color.hex;\n this.setState({ form });\n };\n\n handleOpenColorPicker = () => {\n this.setState({ displayColorPicker: !this.state.displayColorPicker });\n };\n\n handleCloseColorPicker = () => {\n this.setState({ displayColorPicker: false });\n };\n\n render() {\n const { form } = this.state;\n const { category } = this.props;\n\n const popover = {\n position: \"absolute\",\n zIndex: \"2\",\n };\n const cover = {\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n bottom: \"0px\",\n left: \"0px\",\n };\n\n return (\n \n \n {category && category.id ? \"Update Category\" : \"Add Category\"}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n  \n
\n {this.state.displayColorPicker ? (\n
\n
\n \n
\n ) : null}\n \n \n \n \n \n \n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid}\n >\n Save\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminCategory.error,\n isUpdating: state.adminCategory.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExtraFrameworkCategoryDetail);\n","import * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { SketchPicker, ChromePicker } from \"react-color\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ExtraFrameworkSkillDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n skillsCode: {\n validation: {\n required: true,\n minLength: 4,\n maxLength: 4,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n levels: [],\n };\n }\n\n componentDidMount() {\n let levels = [...this.props.extraFrameworkLevels];\n this.setState({ levels });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.skill !== this.props.skill || prevProps.extraFrameworkLevels !== this.props.extraFrameworkLevels) {\n this.setState({\n category: this.props.category,\n subCategory: this.props.subCategory,\n skill: this.props.skill,\n });\n\n this.prepareForm(this.props.skill);\n }\n }\n\n prepareForm = (skill) => {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: skill ? skill.name : \"\",\n valid: skill ? true : false,\n isValidFormat: skill ? true : false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: skill ? skill.description : \"\",\n valid: skill ? true : false,\n isValidFormat: skill ? true : false,\n touched: false,\n },\n skillsCode: {\n validation: {\n required: true,\n minLength: 4,\n maxLength: 4,\n },\n value: skill ? skill.skillsCode : \"\",\n valid: skill ? true : false,\n isValidFormat: skill ? true : false,\n touched: false,\n },\n },\n isFormValid: skill ? true : false,\n });\n\n let levels = [...this.props.extraFrameworkLevels];\n levels.forEach((level) => {\n if (skill && skill.levels) {\n var skillLevel = skill.levels.find((it) => it.extraFrameworkLevelId == level.id);\n if (skillLevel) {\n level.selected = true;\n level.skillLevelId = skillLevel.id;\n level.description = skillLevel.description;\n } else {\n level.selected = false;\n level.skillLevelId = null;\n level.description = null;\n }\n } else {\n level.selected = false;\n level.skillLevelId = null;\n level.description = null;\n }\n });\n\n this.setState({ levels });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n\n this.prepareForm(this.props.skill);\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeSelectLevel = (levelId) => {\n const { levels } = this.state;\n const level = levels.find((it) => it.id == levelId);\n if (level) {\n level.selected = !level.selected;\n }\n\n this.setState({ levels: [...levels] });\n };\n\n handleChangeLevelDescription = (levelId, event) => {\n const { name, value } = event.target;\n\n const { levels } = this.state;\n const level = levels.find((it) => it.id == levelId);\n if (level) {\n level.description = value;\n }\n\n this.setState({ levels: [...levels] });\n };\n\n handlePerformSave = () => {\n const { form, levels } = this.state;\n\n const skill = {\n name: form.name.value,\n description: form.description.value,\n skillsCode: form.skillsCode.value,\n levels: levels\n .filter((it) => it.selected)\n .map((level) => {\n return {\n id: level.skillLevelId ? level.skillLevelId : null,\n extraFrameworkLevelId: level.id,\n description: level.description,\n };\n }),\n };\n\n this.setState({ isUpdating: true });\n if (this.props.skill && this.props.skill.id) {\n this.props.onAdminCategory.updateExtraFrameworkSkill(this.props.category.id, this.props.subCategory.id, this.props.skill.id, skill).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Update skill success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onAdminCategory.createExtraFrameworkSkill(this.props.category.id, this.props.subCategory.id, skill).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Add skill success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { form, levels } = this.state;\n const { category, subCategory, skill, extraFrameworkLevels } = this.props;\n\n return (\n \n \n {skill && skill.id ? \"Update Skill\" : \"Add Skill\"}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n {form.skillsCode.value != \"\" && !form.skillsCode.isValidFormat && Skills code length must be 4 characters}\n \n \n \n \n \n \n \n \n \n \n \n \n \n  \n \n \n \n \n \n \n \n \n \n {levels.map((level, index) => {\n return (\n \n \n \n this.handleChangeSelectLevel(level.id)}\n />\n \n \n \n this.handleChangeLevelDescription(level.id, event)}\n placeholder=\"Level description\"\n />\n \n \n \n );\n })}\n \n
\n
\n \n {\n this.handlePerformSave();\n }}\n disabled={!(this.state.isFormValid && this.state.levels.filter((it) => it.selected == true).length > 0 && this.state.levels.filter((it) => it.selected == true && (it.description == \"\" || it.description == undefined)).length == 0)}\n >\n Save\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminCategory.error,\n isUpdating: state.adminCategory.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExtraFrameworkSkillDetail);\n","import * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { SketchPicker, ChromePicker } from \"react-color\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ExtraFrameworkSubCategoryDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n colour: {\n validation: {\n required: true,\n },\n value: \"#dad5d5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skillColour: {\n validation: {\n required: true,\n },\n value: \"#dad5d5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n displayColorPicker: false,\n displaySkillColorPicker: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.subCategory !== this.props.subCategory) {\n this.setState({\n category: this.props.category,\n subCategory: this.props.subCategory,\n });\n\n this.prepareForm(this.props.subCategory);\n }\n }\n\n prepareForm = (subCategory) => {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: subCategory ? subCategory.name : \"\",\n valid: subCategory ? true : false,\n isValidFormat: subCategory ? true : false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: subCategory ? subCategory.description : \"\",\n valid: subCategory ? true : false,\n isValidFormat: subCategory ? true : false,\n touched: false,\n },\n colour: {\n validation: {\n required: true,\n },\n value: subCategory ? subCategory.colour : \"#dad5d5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skillColour: {\n validation: {\n required: true,\n },\n value: subCategory ? subCategory.skillColour : \"#dad5d5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: subCategory ? true : false,\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n\n this.prepareForm(this.props.subCategory);\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const subCategory = {\n name: form.name.value,\n description: form.description.value,\n colour: form.colour.value,\n skillColour: form.skillColour.value,\n };\n this.setState({ isUpdating: true });\n if (this.props.subCategory && this.props.subCategory.id) {\n this.props.onAdminCategory.updateExtraFrameworkSubCategory(this.props.category.id, this.props.subCategory.id, subCategory).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Update sub category success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onAdminCategory.createExtraFrameworkSubCategory(this.props.category.id, subCategory).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Add sub category success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleChangeComplete = (name, color) => {\n const form = this.state.form;\n\n if (name == \"colour\") {\n form.colour.value = color.hex;\n } else if (name == \"skillColour\") {\n form.skillColour.value = color.hex;\n }\n\n this.setState({ form });\n };\n\n handleOpenColorPicker = () => {\n this.setState({ displayColorPicker: !this.state.displayColorPicker });\n };\n\n handleCloseColorPicker = () => {\n this.setState({ displayColorPicker: false });\n };\n\n handleOpenSkillColorPicker = () => {\n this.setState({ displaySkillColorPicker: !this.state.displaySkillColorPicker });\n };\n\n handleCloseSkillColorPicker = () => {\n this.setState({ displaySkillColorPicker: false });\n };\n\n render() {\n const { form } = this.state;\n const { category, subCategory } = this.props;\n\n const popover = {\n position: \"absolute\",\n zIndex: \"2\",\n };\n const cover = {\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n bottom: \"0px\",\n left: \"0px\",\n };\n\n return (\n \n \n {subCategory && subCategory.id ? \"Update Sub Category\" : \"Add Sub Category\"}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n  \n
\n {this.state.displayColorPicker ? (\n
\n
\n this.handleChangeComplete(\"colour\", color)} />\n
\n ) : null}\n \n \n \n \n \n
\n  \n
\n {this.state.displaySkillColorPicker ? (\n
\n
\n this.handleChangeComplete(\"skillColour\", color)} />\n
\n ) : null}\n \n \n \n \n \n \n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid}\n >\n Save\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminCategory.error,\n isUpdating: state.adminCategory.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ExtraFrameworkSubCategoryDetail);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport ExtraFrameworkCategoryDetail from \"./ExtraFrameworkCategoryDetail\";\nimport ExtraFrameworkSkillDetail from \"./ExtraFrameworkSkillDetail\";\nimport ExtraFrameworkSubCategoryDetail from \"./ExtraFrameworkSubCategoryDetail\";\nimport { faPlus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageExtraFrameworkCategories extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n categories: this.props.categories,\n selectedCategory: null,\n showDialogCategoryDetailTs: null,\n selectedSubCategory: null,\n showDialogSubCategoryDetailTs: null,\n selectedSkill: null,\n showDialogSkillDetailTs: null,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n this.props.onAdminCategory.getExtraFrameworkCategories().then(() => {\n this.setState({\n categories: this.props.categories,\n });\n\n this.setState({ loading: this.props.categoryLoading });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.extraFrameworkLevels !== this.props.extraFrameworkLevels) {\n this.setState({\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n });\n }\n\n if (prevProps.categories !== this.props.categories) {\n this.setState({\n categories: this.props.categories,\n });\n }\n\n if (prevProps.forceRefreshExtraFrameworks !== this.props.forceRefreshExtraFrameworks && this.props.forceRefreshExtraFrameworks) {\n this.handleRefreshCategories();\n }\n }\n\n componentWillUnmount() {}\n\n handleRefreshCategories = () => {\n this.props.onAdminCategory.getExtraFrameworkCategories().then(() => {\n this.setState({\n categories: this.props.categories,\n });\n });\n };\n\n handleAddNewCategory = () => {\n this.setState({ showDialogCategoryDetailTs: new Date(), selectedCategory: null });\n };\n\n handleOpenEditCategory = (category) => {\n this.setState({ showDialogCategoryDetailTs: new Date(), selectedCategory: category });\n };\n\n handleDeleteCategory = (category) => {\n if (window.confirm(\"Are you sure want to delete this category?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onAdminCategory.deleteExtraFrameworkCategory(category.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Delete category success.\");\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleAddNewSubCategory = (category) => {\n this.setState({ showDialogSubCategoryDetailTs: new Date(), selectedCategory: category, selectedSubCategory: null });\n };\n\n handleOpenEditSubCategory = (category, subCategory) => {\n this.setState({ showDialogSubCategoryDetailTs: new Date(), selectedCategory: category, selectedSubCategory: subCategory });\n };\n\n handleDeleteSubCategory = (category, subCategory) => {\n if (window.confirm(\"Are you sure want to delete this sub category?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onAdminCategory.deleteExtraFrameworkSubCategory(category.id, subCategory.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Delete sub category success.\");\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleAddNewSkill = (category, subCategory) => {\n this.setState({ showDialogSkillDetailTs: new Date(), selectedCategory: category, selectedSubCategory: subCategory, selectedSkill: null });\n };\n\n handleOpenEditSkill = (category, subCategory, skill) => {\n this.setState({ showDialogSkillDetailTs: new Date(), selectedCategory: category, selectedSubCategory: subCategory, selectedSkill: skill });\n };\n\n handleDeleteSkill = (category, subCategory, skill) => {\n if (window.confirm(\"Are you sure want to delete this skill?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onAdminCategory.deleteExtraFrameworkSkill(category.id, subCategory.id, skill.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Delete skill success.\");\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { pageAssignment } = this.props;\n const { extraFrameworkLevels, categories } = this.state;\n const showEditSkill = false;\n\n let allowManage = false;\n //allowManage = pageAssignment.operations.find((it) => it.operation == \"Manage\" && it.allow == true) ? true : false;\n\n return (\n \n \n \n \n

\n Extra Frameworks\n

\n
\n \n \n \n Refresh\n \n   \n {allowManage && (\n \n Add Framework Category\n \n )}\n \n \n
\n {categories && categories.length > 0 ? (\n \n
\n \n {categories.map((category, index) => {\n var emptyLevels = [];\n for (let i = 1; i <= 7 - extraFrameworkLevels.length; i++) {\n emptyLevels.push(\n \n \n \n );\n }\n\n return (\n \n \n \n \n {category.name}\n \n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n return (\n \n \n {extraFrameworkLevel.level}\n \n \n );\n })}\n {emptyLevels}\n {\n \n Selection\n \n }\n {\n \n {allowManage && (\n \n \n   \n \n \n )}\n \n }\n \n \n \n {category.subCategories && category.subCategories.length > 0\n ? category.subCategories.map((subCategory, index) => {\n return (\n \n \n \n {subCategory.name}\n \n \n {\n \n }\n \n {subCategory.skills && subCategory.skills.length > 0\n ? subCategory.skills.map((skill, elIndex) => {\n var emptySkillLevels = [];\n for (let i = 1; i <= 7 - extraFrameworkLevels.length; i++) {\n emptySkillLevels.push(\n \n \n \n );\n }\n\n return (\n \n {skill.name}\n \n \n \n \n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n const level = skill.levels ? skill.levels.find((it) => it.extraFrameworkLevelId == extraFrameworkLevel.id) : false;\n return (\n \n \n {level && (\n \n )}\n \n );\n })}\n {emptySkillLevels}\n {\n \n {skill && skill.levelSelection ? skill.levelSelection : \"Multiple\"}\n \n }\n {\n \n {allowManage && (\n \n \n   \n \n   \n \n \n )}\n \n }\n \n );\n })\n : allowManage && (\n \n \n \n \n \n )}\n {}\n \n );\n })\n : allowManage && (\n \n \n \n \n \n )}\n \n \n \n \n \n );\n })}\n
\n {allowManage && (\n \n \n   \n \n   \n \n \n )}\n
\n \n
\n {skill.skillsCode}\n
\n
\n
\n ) : (\n No Data to Display\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n isUpdating: state.adminCategory.isUpdating,\n categoryLoading: state.adminCategory.categoryLoading,\n categoryError: state.adminCategory.error,\n extraFrameworkLevels: state.adminCategory.extraFrameworkLevels,\n categories: state.adminCategory.categories,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageExtraFrameworkCategories));\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport ExtraFrameworkLevelDetail from \"./ExtraFrameworkLevelDetail\";\nimport { faPenToSquare, faPlus, faSync, faArrowUp, faArrowDown, faMinusCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageExtraFrameworkLevels extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n showDialogLevelDetailTs: null,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.extraFrameworkLevels !== this.props.extraFrameworkLevels) {\n this.setState({\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n });\n }\n }\n\n componentWillUnmount() {}\n\n handleAddNewLevel = () => {\n const { extraFrameworkLevels } = this.state;\n if (extraFrameworkLevels && extraFrameworkLevels.length >= 7) {\n this.props.generateAlert(\"danger\", \"Max levels number allowed is 7\");\n } else {\n this.setState({ showDialogLevelDetailTs: new Date(), selectedExtraFrameworkLevel: null });\n }\n };\n\n handleOpenLevelDetail = (extraFrameworkLevel) => {\n this.setState({ showDialogLevelDetailTs: new Date(), selectedExtraFrameworkLevel: extraFrameworkLevel });\n };\n\n handleMoveLevelUp = (extraFrameworkLevel) => {\n this.props.onAdminCategory.moveExtraFrameworkLevelUp(extraFrameworkLevel.id).then(() => {});\n };\n\n handleMoveLevelDown = (extraFrameworkLevel) => {\n this.props.onAdminCategory.moveExtraFrameworkLevelDown(extraFrameworkLevel.id).then(() => {});\n };\n\n handleDeleteLevel = (extraFrameworkLevel) => {\n if (window.confirm(\"Are you sure want to delete this data?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onAdminCategory.deleteExtraFrameworkLevel(extraFrameworkLevel.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"Delete level success.\");\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { pageAssignment } = this.props;\n const { extraFrameworkLevels } = this.state;\n\n let allowUpdate = false;\n // allowUpdate = pageAssignment.operations.find((it) => it.operation == \"Manage\" && it.allow == true) ? true : false;\n\n const openLevelDetail = this.handleOpenLevelDetail;\n const moveLevelUp = this.handleMoveLevelUp;\n const moveLevelDown = this.handleMoveLevelDown;\n const deleteLevel = this.handleDeleteLevel;\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"10%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openLevelDetail(row)} />\n \n Update Level\n \n    \n deleteLevel(row)} />\n \n Delete Level\n \n
\n );\n },\n omit: !allowUpdate,\n },\n {\n id: \"level\",\n name: \"Level\",\n selector: (row) => row.level,\n sortable: false,\n width: allowUpdate ? \"80%\" : \"100%\",\n },\n {\n id: \"levelNumber\",\n name: \"\",\n selector: (row) => row.level,\n center: true,\n width: \"10%\",\n format: function (row, index) {\n return (\n
\n moveLevelUp(row)} />\n \n Move Level Up\n \n    \n moveLevelDown(row)} />\n \n Move Level Down\n \n
\n );\n },\n omit: !allowUpdate,\n },\n ];\n\n return (\n \n \n

\n Extra Framework Levels\n

\n
\n \n \n \n Refresh\n \n {allowUpdate && (\n \n   \n {pageAssignment.operations.find((it) => it.operation == \"Manage\" && it.allow == true) && (\n \n Add Level\n \n )}\n \n )}\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n isUpdating: state.adminCategory.isUpdating,\n levelLoading: state.adminCategory.levelLoading,\n categoryError: state.adminCategory.error,\n extraFrameworkLevels: state.adminCategory.extraFrameworkLevels,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageExtraFrameworkLevels));\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport ExtraFrameworkBulkUpload from \"./ExtraFrameworkBulkUpload\";\nimport ManageExtraFrameworkCapabilities from \"./ManageExtraFrameworkCapabilities\";\nimport ManageExtraFrameworkCategories from \"./ManageExtraFrameworkCategories\";\nimport ManageExtraFrameworkLevels from \"./ManageExtraFrameworkLevels\";\nimport { faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageExtraFramework extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n extraFrameworkCapabilities: [],\n extraFrameworkLevels: [],\n extraFrameworkProvided: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n Promise.all([this.props.onAdminCategory.getExtraFrameworkCapabilities(), this.props.onAdminCategory.getExtraFrameworkLevels()]).then(() => {\n this.setState({\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n extraFrameworkProvided: this.props.extraFrameworkLevels && this.props.extraFrameworkLevels.length > 0,\n });\n\n this.setState({ loading: this.props.loading || this.props.levelLoading || this.props.capabilityLoading });\n });\n });\n }\n\n componentWillUnmount() {}\n\n handleRefreshCapabilities = () => {\n this.props.onAdminCategory.getExtraFrameworkCapabilities().then(() => {\n this.setState({\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n });\n });\n };\n\n handleRefreshLevels = () => {\n this.props.onAdminCategory.getExtraFrameworkLevels().then(() => {\n this.setState({\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.extraFrameworkCapabilities !== this.props.extraFrameworkCapabilities) {\n this.setState({\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n });\n }\n\n if (prevProps.extraFrameworkLevels !== this.props.extraFrameworkLevels) {\n this.setState({\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n });\n }\n }\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportExtraFrameworks = () => {\n this.props.onAdminCategory.exportExtraFrameworksDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportExtraFrameworks_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportExtraFrameworks = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.handleRefreshCapabilities();\n this.handleRefreshLevels();\n this.setState({ forceRefreshExtraFrameworksTS: new Date() });\n\n if (this.state.extraFrameworkProvided) {\n this.props.onJob.recalculateJobMatches();\n } else {\n this.setState({ extraFrameworkProvided: true });\n }\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Extra Frameworks\");\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n \n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations.find((it) => it.operation == \"Import\" && it.allow == true) && (\n \n Import\n \n )}\n \n \n \n
\n \n \n \n \n \n \n \n \n
 
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n categoryLoading: state.adminCategory.categoryLoading,\n levelLoading: state.adminCategory.levelLoading,\n capabilityLoading: state.adminCategory.capabilityLoading,\n categoryError: state.adminCategory.error,\n extraFrameworkCapabilities: state.adminCategory.extraFrameworkCapabilities,\n extraFrameworkLevels: state.adminCategory.extraFrameworkLevels,\n categories: state.adminCategory.categories,\n\n exportData: state.adminCategory.exportData,\n loadingExport: state.adminCategory.loadingExport,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminCategory: bindActionCreators(adminCategoryActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageExtraFramework));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminAdminRoleAPI {\n static getAdminRoles() {\n return axios\n .get(`/adminRoles`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getAdminRolePageAssignments(adminRoleId) {\n return axios\n .get(`/adminRoles/${adminRoleId}/pageassignments`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createAdminRolePageAssignments(adminRole) {\n return axios\n .post(`/adminRoles/pageassignments`, adminRole)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateAdminRolePageAssignments(adminRoleId, adminRole) {\n return axios\n .post(`/adminRoles/${adminRoleId}/pageassignments`, adminRole)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static renameAdminRole(adminRoleId, name) {\n return axios\n .post(`/adminRoles/${adminRoleId}/rename`, { name })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteAdminRole(adminRoleId) {\n return axios\n .delete(`/adminRoles/${adminRoleId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminAdminRoleAPI;\n","import AdminAdminRoleAPI from \"./../../../common/api/adminservice/AdminAdminRoleService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getAdminRolesStart = () => {\n return {\n type: actionTypes.GET_ADMIN_ROLES_START,\n };\n};\n\nexport const getAdminRolesSuccess = (adminRoles) => {\n return {\n type: actionTypes.GET_ADMIN_ROLES_SUCCESS,\n adminRoles,\n };\n};\n\nexport const getAdminRolesFail = (error) => {\n return {\n type: actionTypes.GET_ADMIN_ROLES_FAIL,\n error: error,\n };\n};\n\nexport const getAdminRoles = () => {\n return (dispatch) => {\n dispatch(getAdminRolesStart());\n\n return AdminAdminRoleAPI.getAdminRoles()\n .then((res) => {\n dispatch(getAdminRolesSuccess(res));\n })\n .catch((err) => {\n dispatch(getAdminRolesFail(err));\n });\n };\n};\n\nexport const getAdminRolePageAssignmentsStart = () => {\n return {\n type: actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_START,\n };\n};\n\nexport const getAdminRolePageAssignmentsSuccess = (pageAssignments) => {\n return {\n type: actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS,\n pageAssignments,\n };\n};\n\nexport const getAdminRolePageAssignmentsFail = (error) => {\n return {\n type: actionTypes.GET_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL,\n error: error,\n };\n};\n\nexport const getAdminRolePageAssignments = (adminRoleId) => {\n return (dispatch) => {\n dispatch(getAdminRolePageAssignmentsStart());\n\n return AdminAdminRoleAPI.getAdminRolePageAssignments(adminRoleId)\n .then((res) => {\n dispatch(getAdminRolePageAssignmentsSuccess(res));\n })\n .catch((err) => {\n dispatch(getAdminRolePageAssignmentsFail(err));\n });\n };\n};\n\nexport const createAdminRoleStart = () => {\n return {\n type: actionTypes.ADD_ADMIN_ROLE_START,\n };\n};\n\nexport const createAdminRoleSuccess = (adminRole) => {\n return {\n type: actionTypes.ADD_ADMIN_ROLE_SUCCESS,\n adminRole,\n };\n};\n\nexport const createAdminRoleFail = (error) => {\n return {\n type: actionTypes.ADD_ADMIN_ROLE_FAIL,\n error: error,\n };\n};\n\nexport const createAdminRole = (adminRole) => {\n return (dispatch) => {\n dispatch(createAdminRoleStart());\n\n return AdminAdminRoleAPI.createAdminRolePageAssignments(adminRole)\n .then((res) => {\n dispatch(createAdminRoleSuccess(res));\n })\n .catch((err) => {\n dispatch(createAdminRoleFail(err));\n });\n };\n};\n\nexport const updateAdminRolePageAssignmentsStart = () => {\n return {\n type: actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_START,\n };\n};\n\nexport const updateAdminRolePageAssignmentsSuccess = () => {\n return {\n type: actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_SUCCESS,\n };\n};\n\nexport const updateAdminRolePageAssignmentsFail = (error) => {\n return {\n type: actionTypes.UPDATE_ADMIN_ROLE_PAGE_ASSIGNMENTS_FAIL,\n error: error,\n };\n};\n\nexport const updateAdminRolePageAssignments = (adminRoleId, adminRole) => {\n return (dispatch) => {\n dispatch(updateAdminRolePageAssignmentsStart());\n\n return AdminAdminRoleAPI.updateAdminRolePageAssignments(adminRoleId, adminRole)\n .then((res) => {\n dispatch(updateAdminRolePageAssignmentsSuccess(res));\n })\n .catch((err) => {\n dispatch(updateAdminRolePageAssignmentsFail(err));\n });\n };\n};\n\nexport const deleteAdminRoleStart = () => {\n return {\n type: actionTypes.DELETE_ADMIN_ROLE_START,\n };\n};\n\nexport const deleteAdminRoleSuccess = (adminRoleId) => {\n return {\n type: actionTypes.DELETE_ADMIN_ROLE_SUCCESS,\n adminRoleId,\n };\n};\n\nexport const deleteAdminRoleFail = (error) => {\n return {\n type: actionTypes.DELETE_ADMIN_ROLE_FAIL,\n error: error,\n };\n};\n\nexport const deleteAdminRole = (adminRoleId) => {\n return (dispatch) => {\n dispatch(deleteAdminRoleStart());\n\n return AdminAdminRoleAPI.deleteAdminRole(adminRoleId)\n .then((res) => {\n dispatch(deleteAdminRoleSuccess(adminRoleId));\n })\n .catch((err) => {\n dispatch(deleteAdminRoleFail(err));\n });\n };\n};\n\nexport const renameAdminRoleStart = () => {\n return {\n type: actionTypes.RENAME_ADMIN_ROLE_START,\n };\n};\n\nexport const renameAdminRoleSuccess = (adminRoleId, name) => {\n return {\n type: actionTypes.RENAME_ADMIN_ROLE_SUCCESS,\n adminRoleId,\n name: name,\n };\n};\n\nexport const renameAdminRoleFail = (error) => {\n return {\n type: actionTypes.RENAME_ADMIN_ROLE_FAIL,\n error: error,\n };\n};\n\nexport const renameAdminRole = (adminRoleId, name) => {\n return (dispatch) => {\n dispatch(renameAdminRoleStart());\n\n return AdminAdminRoleAPI.renameAdminRole(adminRoleId, name)\n .then((res) => {\n dispatch(renameAdminRoleSuccess(adminRoleId, name));\n })\n .catch((err) => {\n dispatch(renameAdminRoleFail(err));\n });\n };\n};\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\n\nclass AdminRoleDeleteConfirmation extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showDialog: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n if (showDialog) {\n this.props.reopenManageAdminRole();\n }\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleConfirm = () => {\n this.setState({\n showDialog: false,\n });\n this.props.handleConfirmDelete();\n };\n\n render() {\n return (\n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n \n {\n this.handleConfirm();\n }}\n >\n Ok\n \n {\n this.togleDialogModal();\n }}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminRoleDeleteConfirmation);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\n\nclass AdminRoleOverwriteConfirmation extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showDialog: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n if (showDialog) {\n this.props.reopenManageAdminRole();\n }\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleConfirm = () => {\n this.setState({\n showDialog: false,\n });\n this.props.handleConfirmOverwrite();\n };\n\n render() {\n return (\n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n \n {\n this.handleConfirm();\n }}\n >\n Ok\n \n {\n this.togleDialogModal();\n }}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminRoleOverwriteConfirmation);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\n\nclass AdminRoleRename extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showDialog: false,\n adminRoleName: this.props.adminRoleName,\n adminRoleNameInvalid: false,\n adminRoleNameTouched: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.adminRoleName !== this.props.adminRoleName) {\n this.setState({ adminRoleName: this.props.adminRoleName, adminRoleNameTouched: false, adminRoleNameInvalid: false });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n if (showDialog) {\n this.setState({ adminRoleName: this.props.adminRoleName });\n this.props.reopenManageAdminRole();\n }\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleConfirm = () => {\n this.setState({\n showDialog: false,\n });\n this.props.handleConfirmRename(this.state.adminRoleName);\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n this.setState({ adminRoleNameTouched: true, adminRoleName: value, adminRoleNameInvalid: !value || value == \"\" });\n };\n\n render() {\n const { adminRoleName, adminRoleNameTouched, adminRoleNameInvalid } = this.state;\n\n return (\n \n \n \n \n
\n \n \n \n \n \n = maxAdminRoles)}\n maxLength={30}\n placeholder=\"Enter Name (Max 30 chars)\"\n />\n \n \n \n \n
\n
\n \n \n {\n this.handleConfirm();\n }}\n >\n Ok\n \n {\n this.togleDialogModal();\n }}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {};\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminRoleRename);\n","import * as adminAdminRoleActions from \"../../../store/admin/actions/adminAdminRoleActions\";\nimport AdminRoleDeleteConfirmation from \"./AdminRoleDeleteConfirmation\";\nimport AdminRoleOverwriteConfirmation from \"./AdminRoleOverwriteConfirmation\";\nimport AdminRoleRename from \"./AdminRoleRename\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ManageAdminRole extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n mode: this.props.mode,\n adminRoleName: \"\",\n adminRoleNameInvalid: true,\n adminRoleNameTouched: false,\n pageAssignments: null,\n adminRoles: [],\n showDialogOverwriteConfirmationTs: null,\n showDialogDeleteConfirmationTs: null,\n showDialogRenameTs: null,\n };\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.initData();\n }\n\n if (prevProps.mode !== this.props.mode) {\n this.setState({ mode: this.props.mode });\n }\n\n if (prevProps.pageAssignments !== this.props.pageAssignments) {\n this.setState({ pageAssignments: this.props.pageAssignments });\n }\n\n if (prevProps.adminRoles !== this.props.adminRoles) {\n this.setState({ adminRoles: this.props.adminRoles });\n }\n }\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onAdminRole.getAdminRoles().then(() => {\n if (!this.props.loading) {\n this.setState({ adminRoles: this.props.adminRoles });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n if (showDialog) {\n this.setState({ adminRoleName: \"\", adminRoleNameInvalid: true, adminRoleNameTouched: false });\n this.props.reopenPageAssignment();\n }\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n this.setState({ adminRoleNameTouched: true, adminRoleName: value, adminRoleNameInvalid: !value || value == \"\" });\n };\n\n handlePerformSave = () => {\n const { pageAssignments, adminRoleName } = this.state;\n this.setState({ isUpdating: true });\n this.props.onAdminRole\n .createAdminRole({\n name: adminRoleName,\n pageAssignments: pageAssignments,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Add new admin role success\");\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleLoadViewAdminRole = (mode, adminRole) => {\n this.setState({ isUpdating: true });\n this.props.onAdminRole.getAdminRolePageAssignments(adminRole.id).then(() => {\n if (!this.props.loading) {\n this.setState({ adminRoleName: \"\", adminRoleNameInvalid: true, adminRoleNameTouched: false, showDialog: false });\n if (mode == \"Load\") {\n this.props.handleLoadAdminRole(adminRole.name, this.props.adminRolePageAssignments);\n } else {\n this.props.handleViewAdminRole(adminRole.name, this.props.adminRolePageAssignments);\n }\n }\n this.setState({ isUpdating: this.props.loading });\n });\n };\n\n reopenManageAdminRole = () => {\n this.setState({ showDialog: true });\n };\n\n handleOverwrite = (adminRole) => {\n this.setState({ selectedAdminRole: adminRole, showDialogOverwriteConfirmationTs: new Date(), showDialog: false });\n };\n\n handleConfirmOverwrite = () => {\n const { selectedAdminRole, pageAssignments } = this.state;\n this.setState({ showDialog: true, isUpdating: true });\n this.props.onAdminRole\n .updateAdminRolePageAssignments(selectedAdminRole.id, {\n pageAssignments,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Overwrite admin role success\");\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleDelete = (adminRole) => {\n this.setState({ selectedAdminRole: adminRole, showDialogDeleteConfirmationTs: new Date(), showDialog: false });\n };\n\n handleConfirmDelete = () => {\n const { selectedAdminRole } = this.state;\n this.setState({ showDialog: true, isUpdating: true });\n this.props.onAdminRole.deleteAdminRole(selectedAdminRole.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({ adminRoles: this.props.adminRoles });\n this.props.generateAlert(\"success\", \"Delete admin role success\");\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleRename = (adminRole) => {\n this.setState({ selectedAdminRole: adminRole, showDialogRenameTs: new Date(), showDialog: false });\n };\n\n handleConfirmRename = (adminRoleName) => {\n const { selectedAdminRole } = this.state;\n this.setState({ showDialog: true, isUpdating: true });\n this.props.onAdminRole.renameAdminRole(selectedAdminRole.id, adminRoleName).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n this.setState({ showDialogRenameTs: new Date(), showDialog: false });\n } else {\n this.setState({ adminRoles: this.props.adminRoles });\n this.props.generateAlert(\"success\", \"Rename admin role success\");\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const maxAdminRoles = 8;\n const { mode, adminRoleName, adminRoleNameTouched, adminRoleNameInvalid, adminRoles, selectedAdminRole } = this.state;\n\n return (\n \n \n \n \n \n \n \n
\n {mode == \"Save Admin Role\" && (\n \n \n \n \n \n = maxAdminRoles ? `You already have the maximum ${maxAdminRoles} roles` : adminRoleName}\n invalid={adminRoleNameTouched && adminRoleNameInvalid}\n onChange={this.handleChange}\n disabled={this.state.isUpdating || (adminRoles && adminRoles.length >= maxAdminRoles)}\n maxLength={30}\n placeholder=\"Enter Name (Max 30 chars)\"\n />\n \n \n \n \n )}\n
\n {adminRoles.map((adminRole, index) => (\n \n {adminRole.name}\n \n {mode == \"Save Admin Role\" ? (\n \n {\n this.handleOverwrite(adminRole);\n }}\n disabled={this.state.isUpdating}\n >\n Overwrite\n \n    \n {\n this.handleRename(adminRole);\n }}\n disabled={this.state.isUpdating}\n >\n Rename\n \n    \n {\n this.handleDelete(adminRole);\n }}\n disabled={this.state.isUpdating}\n >\n Delete\n \n \n ) : (\n \n {\n this.handleLoadViewAdminRole(\"View\", adminRole);\n }}\n disabled={this.state.isUpdating}\n >\n View\n \n    \n {\n this.handleLoadViewAdminRole(\"Load\", adminRole);\n }}\n disabled={this.state.isUpdating}\n >\n Load\n \n \n )}\n \n \n ))}\n
\n \n \n {mode == \"Save Admin Role\" && (\n {\n this.handlePerformSave();\n }}\n disabled={this.state.isUpdating || adminRoleNameInvalid || (adminRoles && adminRoles.length >= maxAdminRoles)}\n >\n Save\n \n )}\n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.adminAdminRole.error,\n loading: state.adminAdminRole.loading,\n isUpdating: state.adminAdminRole.isUpdating,\n adminRoles: state.adminAdminRole.adminRoles,\n adminRolePageAssignments: state.adminAdminRole.adminRolePageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAdminRole: bindActionCreators(adminAdminRoleActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageAdminRole);\n","import * as countryActions from \"../../../store/actions/countryAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport ManageAdminRole from \"./ManageAdminRole\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UserPageAssignments extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n selectedPerson: this.props.selectedPerson,\n selectedAdminRoleName: null,\n personPageAssignments: null,\n staticPersonPageAssignments: null,\n showDialogManageAdminRoleTs: null,\n viewAdminRoleMode: false,\n };\n }\n\n componentDidMount() {\n if (this.props.selectedPerson) {\n this.props.onPerson.getPersonPageAssignments(this.props.selectedPerson.id).then(() => {\n this.setState({ personPageAssignments: [...this.props.personPageAssignments], staticPersonPageAssignments: [...this.props.personPageAssignments] });\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.selectedPerson !== this.props.selectedPerson) {\n this.setState({ selectedPerson: this.props.selectedPerson });\n if (this.props.selectedPerson) {\n this.props.onPerson.getPersonPageAssignments(this.props.selectedPerson.id).then(() => {\n this.setState({ personPageAssignments: [...this.props.personPageAssignments], staticPersonPageAssignments: [...this.props.personPageAssignments] });\n });\n }\n }\n }\n\n togleDialogModal = (updatedAdminRoleName) => {\n const showDialog = this.state.showDialog;\n if (showDialog) {\n this.setState({ selectedAdminRoleName: null, viewAdminRoleMode: false, personPageAssignments: this.state.staticPersonPageAssignments ? [...this.state.staticPersonPageAssignments] : [] });\n this.props.reopenPersonDetail(updatedAdminRoleName);\n }\n this.setState({\n showDialog: !showDialog,\n editMode: false,\n });\n };\n\n handleClearAll = () => {\n let { personPageAssignments } = this.state;\n\n personPageAssignments.forEach((personPageAssignment) => {\n personPageAssignment.operations.forEach((operation) => {\n operation.allow = false;\n });\n });\n\n this.setState({ personPageAssignments: [...personPageAssignments] });\n };\n\n handleChangeCheckBox = (pageName, operation, allow) => {\n let { personPageAssignments } = this.state;\n\n let personPageAssignment = personPageAssignments.find((it) => it.pageName == pageName);\n if (personPageAssignment) {\n if (personPageAssignment.operations && personPageAssignment.operations.find((it) => it.operation == operation)) {\n let objOperation = personPageAssignment.operations.find((it) => it.operation == operation);\n objOperation.allow = allow;\n }\n }\n\n this.setState({ personPageAssignments: [...personPageAssignments] });\n };\n\n handlePerformSave = () => {\n const { selectedPerson, personPageAssignments, selectedAdminRoleName } = this.state;\n this.setState({ isUpdating: true });\n this.props.onPerson.updatePersonPageAssignments(selectedPerson.id, selectedAdminRoleName ? selectedAdminRoleName : selectedPerson.adminRoleName, personPageAssignments).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Update access permissions success\");\n this.setState({ personPageAssignments: [...this.props.personPageAssignments], staticPersonPageAssignments: [...this.props.personPageAssignments] });\n this.togleDialogModal(selectedAdminRoleName ? selectedAdminRoleName : selectedPerson.adminRoleName);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleOpenLoadAdminRoles = () => {\n this.setState({ showDialogManageAdminRoleTs: new Date(), showDialog: false, manageAdminRoleMode: \"Load Admin Roles\" });\n };\n\n handleOpenSaveAdminRole = () => {\n this.setState({ showDialogManageAdminRoleTs: new Date(), showDialog: false, manageAdminRoleMode: \"Save Admin Role\", adminRolePageAssignments: this.state.personPageAssignments });\n };\n\n reopenPageAssignment = () => {\n this.setState({ showDialog: true, selectedAdminRoleName: null });\n };\n\n handleViewAdminRole = (adminRoleName, pageAssignments) => {\n this.setState({\n showDialog: true,\n selectedAdminRoleName: adminRoleName,\n personPageAssignments: [\n ...pageAssignments.map((it) => {\n return {\n pageName: it.pageName,\n operations: it.operations.map((entry) => {\n return {\n operation: entry.operation,\n allow: entry.allow,\n };\n }),\n };\n }),\n ],\n viewAdminRoleMode: true,\n });\n };\n\n handleLoadAdminRole = (adminRoleName, pageAssignments) => {\n this.setState({\n showDialog: true,\n selectedAdminRoleName: adminRoleName,\n personPageAssignments: [\n ...pageAssignments.map((it) => {\n return {\n pageName: it.pageName,\n operations: it.operations.map((entry) => {\n return {\n operation: entry.operation,\n allow: entry.allow,\n };\n }),\n };\n }),\n ],\n viewAdminRoleMode: false,\n });\n };\n\n render() {\n const { selectedPerson, personPageAssignments, selectedAdminRoleName, viewAdminRoleMode } = this.state;\n\n return (\n \n \n \n \n
\n \n {selectedPerson ? `Assign permissions for ${selectedPerson.firstName} ${selectedPerson.lastName}` : \"Person Page Assignments\"}\n {(selectedAdminRoleName || (selectedPerson && selectedPerson.adminRoleName)) && {`Admin Role used: ${selectedAdminRoleName ? selectedAdminRoleName : selectedPerson.adminRoleName}`}}\n \n
\n
\n \n
\n {personPageAssignments &&\n personPageAssignments.length > 0 &&\n personPageAssignments\n .filter(\n (it) =>\n (it.pageName != \"Manage Extra Frameworks\" && it.pageName != \"Manage SFIA Credentials and Reports\" && it.pageName != \"Manage SSO Setting\" && it.pageName != \"Manage LoR Category\" && it.pageName != \"Manage LoR\") ||\n (this.props.containerConfig && this.props.containerConfig.showExtraFrameworkAdmin && it.pageName == \"Manage Extra Frameworks\" ? true : false) ||\n (this.props.containerConfig && this.props.containerConfig.showSfiaCertificationAdmin && it.pageName == \"Manage SFIA Credentials and Reports\" ? true : false) ||\n (this.props.containerConfig && this.props.containerConfig.allowManageSSOSetting && it.pageName == \"Manage SSO Setting\" ? true : false) ||\n (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer && it.pageName == \"Manage LoR Category\" ? true : false) ||\n (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == false && it.pageName == \"Manage LoR\" ? true : false)\n )\n .map((personPageAssignment) => (\n \n \n {personPageAssignment.pageName}\n \n \n {personPageAssignment.operations &&\n personPageAssignment.operations.length &&\n personPageAssignment.operations.map((operation) => (\n \n \n \n this.handleChangeCheckBox(personPageAssignment.pageName, operation.operation, !operation.allow)}\n />\n \n \n \n \n \n \n ))}\n \n \n \n \n ))}\n
\n
\n \n {viewAdminRoleMode ? (\n \n {\n this.setState({ viewAdminRoleMode: false });\n }}\n disabled={this.state.isUpdating}\n >\n Load Admin Role\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Close\n \n \n ) : (\n \n {\n this.handleOpenLoadAdminRoles();\n }}\n disabled={this.state.isUpdating}\n >\n Load Admin Role\n \n {\n this.handleOpenSaveAdminRole();\n }}\n disabled={this.state.isUpdating}\n >\n Save as Admin Role\n \n {\n this.handleClearAll();\n }}\n disabled={this.state.isUpdating}\n >\n Clear All\n \n {\n this.handlePerformSave();\n }}\n disabled={this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n )}\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n loading: state.adminPerson.loading,\n isUpdating: state.adminPerson.isUpdating,\n countries: state.country.countries,\n resetPasswordSent: state.adminPerson.resetPasswordSent,\n personPageAssignments: state.adminPerson.personPageAssignments,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onCountry: bindActionCreators(countryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserPageAssignments);\n","import * as countryActions from \"../../../store/actions/countryAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport { formatDate_localeString } from \"../../../utils/stringUtils\";\nimport UserPageAssignments from \"./UserPageAssignments\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UserDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n showDialog: false,\n isUpdating: false,\n countries: [],\n jobs: [],\n optionYesOrNo: [\n {\n label: \"Yes\",\n value: true,\n },\n {\n label: \"No\",\n value: false,\n },\n ],\n form: {\n active: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n usePreferredName: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n preferredName: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n position: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n team: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n other: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roles: {\n validation: {\n required: false,\n },\n value: [],\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n validatedDate: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n leaveOn: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n department: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n businessUnit: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n division: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n territory: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n costCentre: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n supervisor: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isCandidate: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isContractor: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isMentorIneligible: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isAnalyticsUser: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous1: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous2: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous3: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous4: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous5: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skipSelfAssessmentSurvey: {\n validation: {\n required: false,\n isBool: true,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurveyId: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurvey: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n fte: {\n validation: {\n isUserFte: true,\n required: true,\n },\n value: \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n selectedPerson: this.props.selectedPerson,\n showMoreDetails: false,\n editMode: false,\n dateValue: new Date().toISOString(),\n showDialogUserPageAssignmentsTs: null,\n };\n\n this.formatDate_localeString = formatDate_localeString.bind(this);\n }\n\n componentDidMount() {\n Promise.all([this.props.onJob.getJobs(), this.props.onCountry.getCountries()]).then(() => {\n let countries = [\n {\n label: \"Select Country\",\n value: \"\",\n },\n ];\n if (this.props.countries) {\n countries.push(...this.props.countries.map((country) => ({ label: country.name, value: country.name })));\n }\n\n let jobs = [\n {\n label: \"Select Role\",\n value: \"\",\n },\n ];\n if (this.props.jobs) {\n jobs.push(\n ...this.props.jobs\n .filter((it) => it.inActive != true && it.reference && !it.isSample)\n .sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n .map((job) => ({ label: job.name, value: job.id }))\n );\n }\n this.setState({ countries, jobs });\n this.setState({ loading: this.props.countryLoading || this.props.jobsLoading });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.selectedPerson !== this.props.selectedPerson) {\n this.setState({ selectedPerson: this.props.selectedPerson });\n }\n\n if (prevProps.resetPasswordSent !== this.props.resetPasswordSent && this.props.resetPasswordSent) {\n this.props.generateAlert(\"success\", \"Reset password request sent\");\n }\n }\n\n prepareFormState = () => {\n const person = this.props.selectedPerson;\n if (person) {\n this.setState({\n form: {\n active: {\n validation: {\n required: true,\n },\n value: person.inactive ? \"Inactive\" : \"Active\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n firstName: {\n validation: {\n required: true,\n },\n value: person.firstName,\n valid: person && person.firstName && person.firstName != \"\" ? true : false,\n isValidFormat: person && person.firstName && person.firstName != \"\" ? true : false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: person.lastName,\n valid: person && person.lastName && person.lastName != \"\" ? true : false,\n isValidFormat: person && person.lastName && person.lastName != \"\" ? true : false,\n touched: false,\n },\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: person.email,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n usePreferredName: {\n validation: {\n required: false,\n },\n value: person.usePreferredName,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n preferredName: {\n validation: {\n required: false,\n },\n value: person.salutation,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n position: {\n validation: {\n required: false,\n },\n value: person.position,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n team: {\n validation: {\n required: false,\n },\n value: person.team,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: false,\n },\n value: person.country,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: person.location,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n other: {\n validation: {\n required: false,\n },\n value: person.other,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roles: {\n validation: {\n required: false,\n },\n value: person.roles\n ? person.roles.map((it) => {\n return it.role;\n })\n : [],\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n validatedDate: {\n validation: {\n required: false,\n },\n value: person.validatedDate,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n leaveOn: {\n validation: {\n required: false,\n },\n value: person.leaveOn,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n department: {\n validation: {\n required: false,\n },\n value: person.department,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n businessUnit: {\n validation: {\n required: false,\n },\n value: person.businessUnit,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n division: {\n validation: {\n required: false,\n },\n value: person.division,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n territory: {\n validation: {\n required: false,\n },\n value: person.territory,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n costCentre: {\n validation: {\n required: false,\n },\n value: person.costCentre,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n supervisor: {\n validation: {\n required: false,\n },\n value: person.supervisor,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isCandidate: {\n validation: {\n required: false,\n },\n value: person.isCandidate,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isContractor: {\n validation: {\n required: false,\n },\n value: person.isContractor,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isMentorIneligible: {\n validation: {\n required: false,\n },\n value: person.isMentorIneligible,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isAnalyticsUser: {\n validation: {\n required: false,\n },\n value: person.isAnalyticsUser,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous1: {\n validation: {\n required: false,\n },\n value: person.miscellaneous1,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous2: {\n validation: {\n required: false,\n },\n value: person.miscellaneous2,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous3: {\n validation: {\n required: false,\n },\n value: person.miscellaneous3,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous4: {\n validation: {\n required: false,\n },\n value: person.miscellaneous4,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n miscellaneous5: {\n validation: {\n required: false,\n },\n value: person.miscellaneous5,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skipSelfAssessmentSurvey: {\n validation: {\n required: false,\n isBool: true,\n },\n value: person.skipSelfAssessmentSurvey && person.skipSelfAssessmentSurvey == true ? true : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurveyId: {\n validation: {\n required: false,\n },\n value: person.roleBasedSurveyId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurvey: {\n validation: {\n required: false,\n },\n value: person.roleBasedSurvey,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n fte: {\n validation: {\n isUserFte: true,\n required: true,\n },\n value: person && person.fte ? (person.fte % 1 != 0 ? Math.round(person.fte * 100) / 100 : person.fte.toFixed(1)) : \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: person && person.firstName && person.firstName != \"\" && person.lastName && person.lastName != \"\" ? true : false,\n isAdminPerson: person.roles.find((it) => it.role == \"Admin\") ? true : false,\n });\n }\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n editMode: false,\n });\n };\n\n handleChange = (event) => {\n const { jobs } = this.state;\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"roleBasedSurveyId\") {\n const job = jobs.find((it) => it.value == value);\n if (job) {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", job.label);\n } else {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", \"\");\n }\n } else if (name == \"skipSelfAssessmentSurvey\" && value == \"true\") {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", null);\n updateState = changeInput(updateState.form, \"roleBasedSurveyId\", \"\");\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeCheckBox = (event) => {\n const { name, checked } = event.target;\n\n let updateState = changeInput(this.state.form, name, checked);\n\n if (name == \"isContractor\" && checked) {\n updateState = changeInput(updateState.form, \"isCandidate\", false);\n } else if (name == \"isCandidate\" && checked) {\n updateState = changeInput(updateState.form, \"isContractor\", false);\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeCheckBoxRole = (role) => {\n const form = this.state.form;\n\n if (form.roles.value.includes(role)) {\n const index = form.roles.value.indexOf(role);\n form.roles.value.splice(index, 1);\n } else {\n form.roles.value.push(role);\n }\n\n this.setState({ form });\n };\n\n handleDateChange = (name, value) => {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n togleShowEdit = () => {\n const editMode = this.state.editMode;\n\n this.setState({ editMode: !editMode });\n\n if (editMode) {\n this.prepareFormState();\n }\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const person = {\n inactive: form.active.value == \"Active\" ? false : true,\n firstName: form.firstName.value,\n lastName: form.lastName.value,\n email: form.email.value,\n usePreferredName: form.usePreferredName.value,\n salutation: form.preferredName.value,\n position: form.position.value,\n team: form.team.value,\n location: form.location.value,\n country: form.country.value,\n countryCode: form.country.value,\n other: form.other.value,\n roles: form.roles.value,\n validatedDate: form.validatedDate.value,\n leaveOn: form.leaveOn.value,\n department: form.department.value,\n businessUnit: form.businessUnit.value,\n division: form.division.value,\n territory: form.territory.value,\n costCentre: form.costCentre.value,\n supervisor: form.supervisor.value,\n isCandidate: form.isCandidate.value,\n isContractor: form.isContractor.value,\n isMentorIneligible: form.isMentorIneligible.value,\n isAnalyticsUser: form.isAnalyticsUser.value,\n miscellaneous1: form.miscellaneous1.value,\n miscellaneous2: form.miscellaneous2.value,\n miscellaneous3: form.miscellaneous3.value,\n miscellaneous4: form.miscellaneous4.value,\n miscellaneous5: form.miscellaneous5.value,\n skipSelfAssessmentSurvey: form.skipSelfAssessmentSurvey.value,\n roleBasedSurveyId: form.roleBasedSurveyId.value,\n roleBasedSurvey: form.roleBasedSurvey.value,\n fte: form.fte.value,\n };\n\n this.setState({ isUpdating: true });\n\n this.props.onPerson.updatePerson(this.props.selectedPerson.id, person).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.props.generateAlert(\"success\", \"Update person success.\");\n this.togleDialogModal();\n\n if (form.roles.value.includes(\"Admin\") && (!this.props.selectedPerson.havePassword || this.props.selectedPerson.havePassword == false) && (!this.props.selectedPerson.resetPasswordRequested || this.props.selectedPerson.resetPasswordRequested == false)) {\n if (window.confirm(\"Do you want to send reset password email to this new admin user?\")) {\n this.props.onPerson.resetPersonPassword(this.props.selectedPerson.id).then(() => {});\n }\n }\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleShowMoreDetail = () => {\n const showMoreDetails = this.state.showMoreDetails;\n\n this.setState({ showMoreDetails: !showMoreDetails });\n };\n\n openPersonPageAssignments = () => {\n this.setState({ showDialogUserPageAssignmentsTs: new Date(), showDialog: false });\n };\n\n reopenPersonDetail = (updatedAdminRoleName) => {\n const person = this.props.selectedPerson;\n\n this.setState({ showDialog: true });\n\n if (updatedAdminRoleName && person.adminRoleName != updatedAdminRoleName && this.props.handleUpdatePersonAdminRoleName) {\n this.props.handleUpdatePersonAdminRoleName(person.id, updatedAdminRoleName);\n }\n };\n\n render() {\n const person = this.props.selectedPerson;\n const { config } = this.props;\n const { form, editMode, countries, jobs, selectedPerson, isAdminPerson, optionYesOrNo } = this.state;\n\n const validatedDate = form.validatedDate && form.validatedDate.value ? this.formatDate_localeString(new Date(form.validatedDate.value)) : null;\n\n const leaveOn = form.leaveOn && form.leaveOn.value ? this.formatDate_localeString(new Date(form.leaveOn.value)) : null;\n\n return (\n \n {this.props.allowUpdateAccess && isAdminPerson && }\n \n Person Detail\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {form.email.value != \"\" && !form.email.isValidFormat && Incorrect email format}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.config && this.props.config.allowSkipSelfAssessmentSurvey && (\n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n )}\n \n \n \n \n \n   \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.loading ? (\n \n ) : (\n \n {countries.map((country, key) => (\n \n ))}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {editMode && this.props.allowSetAdminRole ? (\n \n
\n this.handleChangeCheckBoxRole(\"User\")}\n />\n \n      \n this.handleChangeCheckBoxRole(\"Admin\")}\n />\n \n
\n
\n ) : (\n \n )}\n \n
\n \n \n \n {this.state.loading ? (\n \n ) : (\n \n {jobs.map((job, key) => (\n \n ))}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {this.state.showMoreDetails ? \"Show less fields\" : \"Show more fields\"}\n \n \n {this.state.showMoreDetails && (\n \n \n \n \n \n \n \n \n this.handleDateChange(\"validatedDate\", value)}\n disabled={!editMode || this.state.isUpdating}\n className=\"form-control\"\n isClearable={!(!editMode || this.state.isUpdating)}\n />\n \n \n \n \n \n \n \n this.handleDateChange(\"leaveOn\", value)}\n disabled={!editMode || this.state.isUpdating}\n className=\"form-control\"\n isClearable={!(!editMode || this.state.isUpdating)}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {config && (\n \n {config && config.personMiscellaneous1Enable && (\n \n \n \n \n \n \n \n \n \n \n )}\n {config && config.personMiscellaneous2Enable && (\n \n \n \n \n \n \n \n \n \n \n )}\n {config && config.personMiscellaneous3Enable && (\n \n \n \n \n \n \n \n \n \n \n )}\n {config && config.personMiscellaneous4Enable && (\n \n \n \n \n \n \n \n \n \n \n )}\n {config && config.personMiscellaneous5Enable && (\n \n \n \n \n \n \n \n \n \n \n )}\n \n )}\n \n )}\n
\n
\n
\n \n {!editMode && (\n \n {this.props.allowUpdateAccess && isAdminPerson && (\n {\n this.openPersonPageAssignments();\n }}\n >\n Update Access Permissions\n \n )}\n {!this.props.disableEdit && this.props.allowEdit && (\n {\n this.togleShowEdit();\n }}\n >\n Edit\n \n )}\n \n \n )}\n {editMode && (\n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating || (form && form.fte && (form.fte.value == \"0\" || form.fte.value == \"0.0\" || form.fte.value == 0)) || (form && form.roles && form.roles.value.length == 0)}\n >\n Save\n \n {\n this.togleShowEdit();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n )}\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n isUpdating: state.adminPerson.isUpdating,\n countries: state.country.countries,\n countryLoading: state.country.loading,\n jobsLoading: state.job.loading,\n jobs: state.job.jobs,\n resetPasswordSent: state.adminPerson.resetPasswordSent,\n config: state.config.config,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onCountry: bindActionCreators(countryActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserDetail);\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass JobAssignmentBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n importOption: \"Update\",\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onJob.exportJobMatchesDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.jobsError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `UploadAssignmentsTemplate.xlsx`);\n }\n }\n });\n };\n\n handleChangeOption = (event) => {\n const { name, value } = event.target;\n this.setState({ importOption: value });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onJob.importJobMatchesDataExcel(this.state.importOption, this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.jobsError) {\n // if (this.props.message) {\n // this.props.generateAlert(\"success\", this.props.message)\n // } else {\n // this.props.generateAlert(\"success\", \"Import resources done.\")\n // }\n this.excelRef.current.value = null;\n\n this.props.generateAlert(\"success\", \"Import assignments success.\");\n this.togleDialogModal();\n this.props.handleImportSuccess();\n } else {\n this.props.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Assignments\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n jobsError: state.job.error,\n loadingExport: state.job.loadingExport,\n exportData: state.job.exportData,\n\n isImporting: state.job.isImporting,\n message: state.job.message,\n addedJobImports: state.job.addedJobImports,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobAssignmentBulkUpload);\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { faCheckCircle, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Input, Popover, PopoverBody, PopoverHeader, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass JobAssignmentCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateAssignmentOpen: false,\n jobs: [],\n jobMatchType: this.props.jobMatchType,\n jobMatch: this.props.jobMatch,\n jobMatchId: this.props.jobMatchId,\n jobReference: this.props.jobReference,\n newJobMatchId: this.props.jobMatchId,\n dirty: false,\n inProgress: false,\n };\n }\n\n componentDidMount() {\n const jobMatchType = this.props.jobMatchType;\n const person = this.props.person;\n\n const jobs =\n this.props.jobs &&\n this.props.jobs\n .filter((it) => (jobMatchType == \"Current\" || jobMatchType == \"Future\" ? (it.isHidden == false && (person.isCandidate == null || person.isCandidate == false)) || (it.isCandidateJob == true && person.isCandidate) : true))\n .map((it) => {\n return { value: it.id, label: it.name };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ jobs: [{ label: \"None\", value: null }, ...jobs] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs && this.props.jobs) {\n const jobMatchType = this.props.jobMatchType;\n const person = this.props.person;\n\n const jobs =\n this.props.jobs &&\n this.props.jobs\n .filter((it) => (jobMatchType == \"Current\" || jobMatchType == \"Future\" ? (it.isHidden == false && (person.isCandidate == null || person.isCandidate == false)) || (it.isCandidateJob == true && person.isCandidate) : true))\n .map((it) => {\n return { value: it.id, label: it.name };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ jobs: [{ label: \"None\", value: null }, ...jobs] });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n togglePopover = () => {\n const popOverUpdateAssignmentOpen = this.state.popOverUpdateAssignmentOpen;\n const jobMatchId = this.state.jobMatchId;\n\n this.setState({ popOverUpdateAssignmentOpen: !popOverUpdateAssignmentOpen, dirty: false, inProgress: false, newJobMatchId: jobMatchId });\n };\n\n openUpdateAssignment = () => {\n const popOverUpdateAssignmentOpen = this.state.popOverUpdateAssignmentOpen;\n this.setState({ popOverUpdateAssignmentOpen: !popOverUpdateAssignmentOpen });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({ newJobMatchId: value && value != \"None\" ? value : null, dirty: true });\n };\n\n handleUpdateJobMatch = () => {\n const { newJobMatchId, jobMatchType, jobs } = this.state;\n\n this.setState({ inProgress: true });\n this.props.onJob.assignJobMatchPerson(this.props.person.personId, newJobMatchId, jobMatchType).then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n const job = jobs.find((it) => it.value == newJobMatchId);\n if (job) {\n this.setState({ jobMatch: job.label, jobMatchId: job.value, jobReference: job.reference });\n }\n\n this.setState({ popOverUpdateAssignmentOpen: false });\n }\n\n this.setState({ inProgress: this.props.isUpdating });\n });\n };\n\n render() {\n const person = this.props.person;\n const { jobMatch, jobMatchType, jobMatchId, jobReference, jobs, newJobMatchId } = this.state;\n\n return (\n \n
\n {this.props.allowEdit ? (\n this.openUpdateAssignment()}>\n {jobMatchId ? jobMatch : \"None\"}\n \n ) : (\n {jobMatchId ? jobMatch : \"None\"}\n )}\n {jobReference && jobReference != \"\" && (\n \n
\n {jobReference}\n
\n )}\n {this.props.allowEdit && (\n \n \n Update Requirement Assigned\n \n \n \n \n Update roles\n \n \n  \n \n \n \n \n \n \n \n \n {jobs.map((job, key) => (\n \n ))}\n \n \n \n \n \n \n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.job.isUpdating,\n error: state.job.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobAssignmentCell);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { generateRandomString } from \"../../../utils/stringUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport UserDetail from \"../users/UserDetail\";\nimport JobAssignmentBulkUpload from \"./JobAssignmentBulkUpload\";\nimport JobAssignmentCell from \"./JobAssignmentCell\";\nimport { faInfoCircle, faSync, faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Input, Label, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst messageHubHostname = process.env.NODE_ENV === \"development\" ? process.env.REACT_APP_MESSAGE_HUB_ENDPOINT : \"/messagehub\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageJobAssignment extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n config: null,\n alerts: [],\n jobMatchPersons: [],\n showDialogUserDetailTs: null,\n selectedPerson: null,\n searchProperties: [],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.generateRandomString = generateRandomString.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onConfig.getAdminConfig().then(() => {\n if (this.props.config && !this.props.configLoading) {\n this.setState({ config: this.props.config });\n Promise.all([this.props.onJob.getJobs(), this.props.onJob.getJobMatchPersons()]).then(() => {\n this.setState({\n jobs: this.props.jobs.filter((it) => it.inActive == false || !it.inActive),\n jobMatchPersons: this.reformJobMatchPersons(this.props.jobMatchPersons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n\n this.setState({ loading: this.props.loading || this.props.jobsLoading });\n });\n }\n });\n });\n }\n\n handleRefresh = () => {\n this.props.onJob.getJobMatchPersons().then(() => {\n this.setState({\n jobMatchPersons: this.reformJobMatchPersons(this.props.jobMatchPersons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobMatchPersons !== this.props.jobMatchPersons) {\n this.setState({\n jobMatchPersons: this.reformJobMatchPersons(this.props.jobMatchPersons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n }\n }\n\n reformJobMatchPersons = (jobMatchPersons) => {\n return jobMatchPersons.map((it) => {\n return {\n personId: it.personId,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n salutation: it.salutation,\n position: it.position,\n inactive: it.inactive,\n personType: it.personType,\n accessGroup: it.accessGroup,\n allowNotifications: it.allowNotifications,\n lastActivityOn: it.lastActivityOn,\n lastActivitySystem: it.lastActivitySystem,\n createdOn: it.createdOn,\n countryCode: it.countryCode,\n country: it.country,\n location: it.location,\n selfAssessmentReason: it.selfAssessmentReason,\n encryptedId: it.encryptedId,\n team: it.team,\n usePreferredName: it.usePreferredName,\n other: it.other,\n department: it.department,\n businessUnit: it.businessUnit,\n division: it.division,\n territory: it.territory,\n costCentre: it.costCentre,\n supervisor: it.supervisor,\n validatedDate: it.validatedDate,\n isCandidate: it.isCandidate,\n isAnalyticsUser: it.isAnalyticsUser,\n leaveOn: it.leaveOn,\n roles: it.roles,\n groups: it.groups,\n currentJobMatchId: it.currentJobMatchId,\n currentJobMatch: it.currentJobMatch,\n currentJobReference: it.currentJobReference,\n currentJobMatchReference: it.currentJobMatchId ? `${it.currentJobMatch}${it.currentJobReference ? ` ${it.currentJobReference}` : \"\"}` : \"None\",\n currentJobMatchPercentSelf: it.currentJobMatchPercentSelf,\n currentJobMatchPercentValidated: it.currentJobMatchPercentValidated,\n currentJobMatchUpdatedOn: it.currentJobMatchUpdatedOn,\n futureJobMatchId: it.futureJobMatchId,\n futureJobMatch: it.futureJobMatch,\n futureJobReference: it.futureJobReference,\n futureJobMatchReference: it.futureJobMatchId ? `${it.futureJobMatch}${it.futureJobReference ? ` ${it.futureJobReference}` : \"\"}` : \"None\",\n futureJobMatchPercentSelf: it.futureJobMatchPercentSelf,\n futureJobMatchPercentValidated: it.futureJobMatchPercentValidated,\n futureJobMatchUpdatedOn: it.futureJobMatchUpdatedOn,\n proposedJobMatchId: it.proposedJobMatchId,\n proposedJobMatch: it.proposedJobMatch,\n proposedJobReference: it.proposedJobReference,\n proposedJobMatchReference: it.proposedJobMatchId ? `${it.proposedJobMatch}${it.proposedJobReference ? ` ${it.proposedJobReference}` : \"\"}` : \"None\",\n proposedJobMatchPercentSelf: it.proposedJobMatchPercentSelf,\n proposedJobMatchPercentValidated: it.proposedJobMatchPercentValidated,\n proposedJobMatchUpdatedOn: it.proposedJobMatchUpdatedOn,\n lastUpdatedOn: it.lastUpdatedOn,\n lastUpdatedOn1: it.lastUpdatedOn1,\n lastUpdatedOn2: it.lastUpdatedOn2,\n lastUpdatedOn3: it.lastUpdatedOn3,\n };\n });\n };\n\n openPersonDetail = (person) => {\n this.setState({ showDialogUserDetailTs: new Date(), selectedPerson: person });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportJobMatches = () => {\n this.props.onJob.exportJobMatchesDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.jobsError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportAssignments_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportJobMatches = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.handleRefresh();\n };\n\n handleChangeShowEndorsedMatchPercent = () => {\n const config = {\n allowSelfRegistration: this.state.config.allowSelfRegistration,\n selfRegistransMarkedAsCandidate: this.state.config.selfRegistransMarkedAsCandidate,\n restrictRegistransEmailDomain: this.state.config.restrictRegistransEmailDomain,\n selfRegistrationWording: this.state.config.selfRegistrationWording,\n selfRegistrationConfirmationWording: this.state.config.selfRegistrationConfirmationWording,\n assessmentId: this.state.config.assessmentId,\n hasCurrentJobLocked: this.state.config.hasCurrentJobLocked,\n hasFutureJobLocked: this.state.config.hasFutureJobLocked,\n whoAllowApproval: this.state.config.whoAllowApproval,\n enableApprovalRequest: this.state.config.enableApprovalRequest,\n allowUsersToBeForgotten: this.state.config.allowUsersToBeForgotten,\n defaultActivityStatementFrequency: this.state.config.defaultActivityStatementFrequency,\n reminderRepeatInterval: this.state.config.reminderRepeatInterval,\n reminderTotal: this.state.config.reminderTotal,\n assessmentTutorialUrl: this.state.config.assessmentTutorialUrl,\n assessmentDescription: this.state.config.assessmentDescription,\n assessmentSurveyTargetCompletionInterval: this.state.config.assessmentSurveyTargetCompletionInterval,\n jobProfileReportFormat: this.state.config.jobProfileReportFormat,\n selfAssessedProfileReportFormat: this.state.config.selfAssessedProfileReportFormat,\n suppressActivityNotification: this.state.config.suppressActivityNotification,\n allowUserSuppressActivityNotification: this.state.config.allowUserSuppressActivityNotification,\n allowCertification: this.state.config.allowCertification,\n nav1Label: this.state.config.nav1Label,\n nav1Link: this.state.config.nav1Link,\n nav2Label: this.state.config.nav2Label,\n nav2Link: this.state.config.nav2Link,\n nav3Label: this.state.config.nav3Label,\n nav3Link: this.state.config.nav3Link,\n stepPanelBackgroundColor: this.state.config.stepPanelBackgroundColor,\n stepPanelFontColor: this.state.config.stepPanelFontColor,\n companyName: this.state.config.companyName,\n entityName: this.state.config.entityName,\n automaticUserInactivationLoginDays: this.state.config.automaticUserInactivationLoginDays,\n showEndorsedMatchPercentInRequirementAssign: !this.state.config.showEndorsedMatchPercentInRequirementAssign,\n };\n\n this.setState({ config });\n\n this.props.onConfig.updateAdminConfig(config).then(() => {});\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Assign Requirements\");\n\n const { jobs, jobMatchPersons, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n const openPersonDetail = this.openPersonDetail;\n const onTableFilterChange = this.onTableFilterChange;\n\n const sortName = (rowA, rowB) => {\n let nameA = ((rowA.firstName ? rowA.firstName.trim().toLowerCase() : \"\") + \" \" + (rowA.lastName ? rowA.lastName.trim().toLowerCase() : \"\")).trim();\n let nameB = ((rowB.firstName ? rowB.firstName.trim().toLowerCase() : \"\") + \" \" + (rowB.lastName ? rowB.lastName.trim().toLowerCase() : \"\")).trim();\n\n if (nameA > nameB) {\n return 1;\n }\n\n if (nameB > nameA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortCurrentMatch = (rowA, rowB) => {\n let jobMatchA = rowA.currentJobMatchId ? `${rowA.currentJobMatch}${rowA.currentJobReference ? ` ${rowA.currentJobReference}` : \"\"}` : \"\";\n let jobMatchB = rowB.currentJobMatchId ? `${rowB.currentJobMatch}${rowB.currentJobReference ? ` ${rowB.currentJobReference}` : \"\"}` : \"\";\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortCurrentMatchPercentSelf = (rowA, rowB) => {\n let jobMatchA = rowA.currentJobMatchId ? rowA.currentJobMatchPercentSelf : -1;\n let jobMatchB = rowB.currentJobMatchId ? rowB.currentJobMatchPercentSelf : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortCurrentMatchPercentValidated = (rowA, rowB) => {\n let jobMatchA = rowA.currentJobMatchId ? rowA.currentJobMatchPercentValidated : -1;\n let jobMatchB = rowB.currentJobMatchId ? rowB.currentJobMatchPercentValidated : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortFutureMatch = (rowA, rowB) => {\n let jobMatchA = rowA.futureJobMatchId ? `${rowA.futureJobMatch}${rowA.futureJobReference ? ` ${rowA.futureJobReference}` : \"\"}` : \"\";\n let jobMatchB = rowB.futureJobMatchId ? `${rowB.futureJobMatch}${rowB.futureJobReference ? ` ${rowB.futureJobReference}` : \"\"}` : \"\";\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortFutureMatchPercentSelf = (rowA, rowB) => {\n let jobMatchA = rowA.futureJobMatchId ? rowA.futureJobMatchPercentSelf : -1;\n let jobMatchB = rowB.futureJobMatchId ? rowB.futureJobMatchPercentSelf : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortFutureMatchPercentValidated = (rowA, rowB) => {\n let jobMatchA = rowA.futureJobMatchId ? rowA.futureJobMatchPercentValidated : -1;\n let jobMatchB = rowB.futureJobMatchId ? rowB.futureJobMatchPercentValidated : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortProposedMatch = (rowA, rowB) => {\n let jobMatchA = rowA.proposedJobMatchId ? `${rowA.proposedJobMatch}${rowA.proposedJobReference ? ` ${rowA.proposedJobReference}` : \"\"}` : \"\";\n let jobMatchB = rowB.proposedJobMatchId ? `${rowB.proposedJobMatch}${rowB.proposedJobReference ? ` ${rowB.proposedJobReference}` : \"\"}` : \"\";\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortProposedMatchPercentSelf = (rowA, rowB) => {\n let jobMatchA = rowA.proposedJobMatchId ? rowA.proposedJobMatchPercentSelf : -1;\n let jobMatchB = rowB.proposedJobMatchId ? rowB.proposedJobMatchPercentSelf : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortProposedMatchPercentValidated = (rowA, rowB) => {\n let jobMatchA = rowA.proposedJobMatchId ? rowA.proposedJobMatchPercentValidated : -1;\n let jobMatchB = rowB.proposedJobMatchId ? rowB.proposedJobMatchPercentValidated : -1;\n\n if (jobMatchA > jobMatchB) {\n return 1;\n }\n\n if (jobMatchB > jobMatchA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortPosition = (rowA, rowB) => {\n let positionA = rowA.position ? rowA.position.toLowerCase() : \"\";\n let positionB = rowB.position ? rowB.position.toLowerCase() : \"\";\n\n if (positionA > positionB) {\n return 1;\n }\n\n if (positionB > positionA) {\n return -1;\n }\n\n return 0;\n };\n\n const sortTeam = (rowA, rowB) => {\n let teamA = rowA.team ? rowA.team.toLowerCase() : \"\";\n let teamB = rowB.team ? rowB.team.toLowerCase() : \"\";\n\n if (teamA > teamB) {\n return 1;\n }\n\n if (teamB > teamA) {\n return -1;\n }\n\n return 0;\n };\n\n const columns = [\n {\n id: \"lastUpdatedOn\",\n name: \"Action\",\n selector: (row) => row.lastUpdatedOn,\n sortable: false,\n width: \"80px\",\n center: true,\n format: function (row, index) {\n return (\n
\n openPersonDetail(row)} />\n \n Person Info\n \n
\n );\n },\n },\n {\n id: \"firstName\",\n name: (\n
\n Name\n
\n it.name == \"firstName\") ? columnSearchKeywords.find((it) => it.name == \"firstName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.firstName,\n sortFunction: sortName,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n return `${row.firstName} ${row.lastName}`;\n },\n },\n {\n id: \"email\",\n name: (\n
\n Email Address\n
\n it.name == \"email\") ? columnSearchKeywords.find((it) => it.name == \"email\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: \"200px\",\n format: function (row, index) {\n return {row.email};\n },\n },\n {\n id: \"lastUpdatedOn1\",\n name: (\n
\n Current Requirement\n
\n it.name == \"currentJobMatchReference\") ? columnSearchKeywords.find((it) => it.name == \"currentJobMatchReference\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lastUpdatedOn1,\n sortable: true,\n sortFunction: sortCurrentMatch,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n let jobsSelections = [...jobs];\n if (row.futureJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.futureJobMatchId && (row.currentJobMatchId ? row.currentJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n if (row.proposedJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.proposedJobMatchId && (row.currentJobMatchId ? row.currentJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n return (\n op.operation == \"Assign Current Requirement\" && op.allow == true) ? true : false}\n >\n );\n },\n },\n {\n id: \"currentJobMatchPercentSelf\",\n name: \"Current Self Match\",\n selector: (row) => row.currentJobMatchPercentSelf,\n sortable: true,\n sortFunction: sortCurrentMatchPercentSelf,\n width: \"100px\",\n format: function (row, index) {\n return
{row.currentJobMatchPercentSelf}
;\n },\n },\n {\n id: \"currentJobMatchPercentValidated\",\n name: \"Current Endorsed Match\",\n selector: (row) => row.currentJobMatchPercentValidated,\n sortable: true,\n sortFunction: sortCurrentMatchPercentValidated,\n width: \"100px\",\n format: function (row, index) {\n return
{row.currentJobMatchPercentValidated}
;\n },\n omit: !(this.state.config && this.state.config.showEndorsedMatchPercentInRequirementAssign),\n },\n {\n id: \"lastUpdatedOn2\",\n name: (\n
\n Future Requirement\n
\n it.name == \"futureJobMatchReference\") ? columnSearchKeywords.find((it) => it.name == \"futureJobMatchReference\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lastUpdatedOn2,\n sortable: true,\n sortFunction: sortFutureMatch,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n let jobsSelections = [...jobs];\n if (row.currentJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.currentJobMatchId && (row.futureJobMatchId ? row.futureJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n if (row.proposedJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.proposedJobMatchId && (row.futureJobMatchId ? row.futureJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n return (\n op.operation == \"Assign Future Requirement\" && op.allow == true) ? true : false}\n >\n );\n },\n },\n {\n id: \"futureJobMatchPercentSelf\",\n name: \"Future Self Match\",\n selector: (row) => row.futureJobMatchPercentSelf,\n sortable: true,\n sortFunction: sortFutureMatchPercentSelf,\n width: \"100px\",\n format: function (row, index) {\n return
{row.futureJobMatchPercentSelf}
;\n },\n },\n {\n id: \"futureJobMatchPercentValidated\",\n name: \"Future Endorsed Match\",\n selector: (row) => row.futureJobMatchPercentValidated,\n sortable: true,\n sortFunction: sortFutureMatchPercentValidated,\n width: \"100px\",\n format: function (row, index) {\n return
{row.futureJobMatchPercentValidated}
;\n },\n omit: !(this.state.config && this.state.config.showEndorsedMatchPercentInRequirementAssign),\n },\n {\n id: \"lastUpdatedOn3\",\n name: (\n
\n Proposed Requirement\n
\n it.name == \"proposedJobMatchReference\") ? columnSearchKeywords.find((it) => it.name == \"proposedJobMatchReference\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lastUpdatedOn3,\n sortable: true,\n sortFunction: sortProposedMatch,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n let jobsSelections = [...jobs];\n if (row.currentJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.currentJobMatchId && (row.proposedJobMatchId ? row.proposedJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n if (row.futureJobMatchId) {\n const job = jobsSelections.find((it) => it.id == row.futureJobMatchId && (row.proposedJobMatchId ? row.proposedJobMatchId : null) != it.id);\n if (job) {\n const index = jobsSelections.indexOf(job);\n jobsSelections.splice(index, 1);\n }\n }\n\n return (\n op.operation == \"Assign Proposed Requirement\" && op.allow == true) ? true : false}\n >\n );\n },\n },\n {\n id: \"proposedJobMatchPercentSelf\",\n name: \"Proposed Self Match\",\n selector: (row) => row.proposedJobMatchPercentSelf,\n sortable: true,\n sortFunction: sortProposedMatchPercentSelf,\n width: \"100px\",\n format: function (row, index) {\n return
{row.proposedJobMatchPercentSelf}
;\n },\n },\n {\n id: \"proposedJobMatchPercentValidated\",\n name: \"Proposed Endorsed Match\",\n selector: (row) => row.proposedJobMatchPercentValidated,\n sortable: true,\n sortFunction: sortProposedMatchPercentValidated,\n width: \"100px\",\n format: function (row, index) {\n return
{row.proposedJobMatchPercentValidated}
;\n },\n omit: !(this.state.config && this.state.config.showEndorsedMatchPercentInRequirementAssign),\n },\n {\n id: \"position\",\n name: (\n
\n Position\n
\n it.name == \"position\") ? columnSearchKeywords.find((it) => it.name == \"position\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.position,\n sortable: true,\n sortFunction: sortPosition,\n width: \"100px\",\n wrap: true,\n format: function (row, index) {\n return row.position;\n },\n },\n {\n id: \"team\",\n name: (\n
\n Team\n
\n it.name == \"team\") ? columnSearchKeywords.find((it) => it.name == \"team\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.team,\n sortable: true,\n sortFunction: sortTeam,\n width: \"100px\",\n wrap: true,\n format: function (row, index) {\n return row.team;\n },\n },\n ];\n\n return (\n \n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n Import   \n \n )}\n \n \n \n \n {\n this.handleChangeShowEndorsedMatchPercent();\n }}\n checked={this.state.config && this.state.config.showEndorsedMatchPercentInRequirementAssign}\n />\n   \n \n \n \n \n \n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n configLoading: state.config.loading,\n config: state.config.config,\n\n jobsLoading: state.job.loading,\n jobsError: state.job.error,\n jobs: state.job.jobs,\n jobMatchPersons: state.job.jobMatchPersons,\n\n exportData: state.job.exportData,\n loadingExport: state.job.loadingExport,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageJobAssignment));\n","import * as adminPersonActions from \"../../store/admin/actions/adminPersonActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ColumnDisplaySetting extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n columnDisplaySettingLoadings: [],\n columnDisplaySettings: null,\n };\n }\n\n componentDidMount() {\n this.setState({\n columnDisplaySettings: this.props.columnDisplaySettings,\n columnDisplaySettingLoadings: this.props.columnDisplaySettingLoadings,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.columnDisplaySettings !== this.props.columnDisplaySettings) {\n this.setState({ columnDisplaySettings: this.props.columnDisplaySettings });\n }\n\n if (prevProps.columnDisplaySettingLoadings !== this.props.columnDisplaySettingLoadings) {\n this.setState({ columnDisplaySettingLoadings: this.props.columnDisplaySettingLoadings });\n }\n }\n\n updateColumnDisplaySetting = (columnDisplaySetting) => {\n columnDisplaySetting.visible = !columnDisplaySetting.visible;\n this.props.onPerson.updateColumnDisplaySetting(columnDisplaySetting).then(() => {});\n };\n\n render() {\n const { columnDisplaySettings, containerConfig } = this.props;\n\n return (\n \n \n \n {columnDisplaySettings &&\n columnDisplaySettings\n .filter((it) => it.pageName == this.props.pageName && it.updateable)\n .map((columnDisplaySetting, index) => {\n const loading = this.props.columnDisplaySettingLoadings ? this.props.columnDisplaySettingLoadings.find((it) => it.id == columnDisplaySetting.id) : null;\n let show = true;\n let caption = columnDisplaySetting.caption;\n\n if (columnDisplaySetting.columnName.includes(\"miscellaneous\")) {\n if (containerConfig) {\n if (columnDisplaySetting.columnName == \"miscellaneous1\" && !containerConfig.personMiscellaneous1Enable) {\n show = false;\n } else if (columnDisplaySetting.columnName == \"miscellaneous2\" && !containerConfig.personMiscellaneous2Enable) {\n show = false;\n } else if (columnDisplaySetting.columnName == \"miscellaneous3\" && !containerConfig.personMiscellaneous3Enable) {\n show = false;\n } else if (columnDisplaySetting.columnName == \"miscellaneous4\" && !containerConfig.personMiscellaneous4Enable) {\n show = false;\n } else if (columnDisplaySetting.columnName == \"miscellaneous5\" && !containerConfig.personMiscellaneous5Enable) {\n show = false;\n }\n\n if (columnDisplaySetting.columnName == \"miscellaneous1\" && containerConfig.personMiscellaneous1Enable) {\n caption = containerConfig.personMiscellaneous1Caption;\n }\n\n if (columnDisplaySetting.columnName == \"miscellaneous2\" && containerConfig.personMiscellaneous2Enable) {\n caption = containerConfig.personMiscellaneous2Caption;\n }\n\n if (columnDisplaySetting.columnName == \"miscellaneous3\" && containerConfig.personMiscellaneous3Enable) {\n caption = containerConfig.personMiscellaneous3Caption;\n }\n\n if (columnDisplaySetting.columnName == \"miscellaneous4\" && containerConfig.personMiscellaneous4Enable) {\n caption = containerConfig.personMiscellaneous4Caption;\n }\n\n if (columnDisplaySetting.columnName == \"miscellaneous5\" && containerConfig.personMiscellaneous5Enable) {\n caption = containerConfig.personMiscellaneous5Caption;\n }\n } else {\n show = false;\n }\n } else if (columnDisplaySetting.columnName == \"skipSelfAssessmentSurvey\") {\n show = containerConfig && containerConfig.allowSkipSelfAssessmentSurvey ? true : false;\n } else if (columnDisplaySetting.columnName == \"showAsVacancy\" || columnDisplaySetting.columnName == \"vacancyOwner\") {\n show = containerConfig && containerConfig.internalJobMarket ? true : false;\n }\n\n if (show) {\n return (\n \n this.updateColumnDisplaySetting(columnDisplaySetting)}\n style={{\n fontSize: \"12px\",\n height: \"30px\",\n marginBottom: \"5px\",\n }}\n disabled={loading ? loading.loading : false}\n >\n {`${caption}`}\n \n   \n \n );\n } else {\n return \"\";\n }\n })}\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n columnDisplaySettings: state.adminPerson.columnDisplaySettings,\n columnDisplaySettingLoadings: state.adminPerson.columnDisplaySettingLoadings,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ColumnDisplaySetting);\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass JobBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n importOption: \"InsertUpdate\",\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onJob.exportJobsDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.jobsError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `UploadRequirementsTemplate.xlsx`);\n }\n }\n });\n };\n\n handleChangeOption = (event) => {\n const { name, value } = event.target;\n this.setState({ importOption: value });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onJob.importJobsDataExcel(this.props.jobImportSessionId, this.state.importOption, this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.jobsError) {\n if (this.props.message) {\n this.props.generateAlert(\"success\", this.props.message);\n } else {\n this.excelRef.current.value = null;\n this.props.handleAddedJobImports(this.props.addedJobImports);\n this.props.generateAlert(\"success\", \"Requirements excel data imported and waiting processing.\");\n }\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Requirements\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n jobsError: state.job.error,\n loadingExport: state.job.loadingExport,\n exportData: state.job.exportData,\n\n isImporting: state.job.isImporting,\n message: state.job.message,\n addedJobImports: state.job.addedJobImports,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobBulkUpload);\n","import changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\n\nclass JobCopyDialog extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n reference: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n copyAttributes: {\n validation: {\n required: true,\n },\n value: true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n optionCopy: [\n {\n label: \"Copy Attributes\",\n value: true,\n },\n {\n label: \"Don't Copy Attributes\",\n value: false,\n },\n ],\n selectedJob: null,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.selectedJob !== this.props.selectedJob) {\n this.setState({\n selectedJob: this.props.selectedJob,\n });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({\n isUpdating: this.props.isUpdating,\n });\n }\n\n if (prevProps.copyJobSuccess !== this.props.copyJobSuccess) {\n if (this.props.copyJobSuccess == true) {\n this.setState({ showDialog: false });\n }\n }\n }\n\n prepareFormState = () => {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n reference: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n copyAttributes: {\n validation: {\n required: true,\n },\n value: true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n const persons = this.state.persons;\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"definedById\") {\n if (value != \"\") {\n const person = persons.find((it) => it.value == value);\n if (person) {\n updateState = changeInput(updateState.form, \"definedBy\", person.label);\n }\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const { selectedJob, form } = this.state;\n\n const request = {\n jobToCopyId: selectedJob.id,\n newName: form.name.value,\n newReference: form.reference.value,\n copyAttributes: form.copyAttributes.value,\n };\n\n this.props.handleSaveCopyJob(request);\n };\n\n render() {\n const { form, optionCopy, selectedJob } = this.state;\n\n return (\n \n \n Copy Requirement\n \n {selectedJob && (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionCopy.map((it, key) => (\n \n ))}\n \n \n \n \n \n
\n )}\n
\n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n
\n
\n );\n }\n}\n\nexport default JobCopyDialog;\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Combobox } from \"react-widgets/cjs\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass JobDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n persons: [],\n vacancyOwners: [],\n form: {},\n isFormValid: false,\n selectedJob: this.props.selectedJob,\n editMode: false,\n optionActive: [\n {\n label: \"Active\",\n value: false,\n },\n {\n label: \"Inactive\",\n value: true,\n },\n ],\n optionJobRole: [\n {\n label: \"Job\",\n value: \"Job\",\n },\n {\n label: \"Role\",\n value: \"Role\",\n },\n ],\n optionWhoCanSee: [\n {\n label: \"Nobody\",\n value: \"Nobody\",\n },\n {\n label: \"Employee Only\",\n value: \"Employee Only\",\n },\n {\n label: \"Candidate Only\",\n value: \"Candidate Only\",\n },\n {\n label: \"Candidates and Employees\",\n value: \"Candidates and Employees\",\n },\n ],\n optionSeniority: [\n { label: \"Select Seniority\", value: \"\" },\n { label: \"Senior or Executive Manager\", value: \"Senior or Executive Manager\" },\n { label: \"Senior Advisor\", value: \"Senior Advisor\" },\n { label: \"Line Manager\", value: \"Line Manager\" },\n { label: \"Team Leader\", value: \"Team Leader\" },\n { label: \"Senior Employee\", value: \"Senior Employee\" },\n { label: \"Experienced Employee\", value: \"Experienced Employee\" },\n { label: \"Junior Employee\", value: \"Junior Employee\" },\n { label: \"None of the above (please comment)\", value: \"None of the above (please comment)\" },\n { label: \"Not Applicable\", value: \"Not Applicable\" },\n ],\n optionEmploymentStatus: [\n { label: \"Select Status\", value: \"\" },\n { label: \"Permanent Full-time\", value: \"Permanent Full-time\" },\n { label: \"Permanent Part-time\", value: \"Permanent Part-time\" },\n { label: \"1-2 year contract\", value: \"1-2 year contract\" },\n { label: \"2-5 year contract\", value: \"2-5 year contract\" },\n { label: \"Consultant/Contractor\", value: \"Consultant/Contractor\" },\n { label: \"Casual\", value: \"Casual\" },\n { label: \"Other (Please comment)\", value: \"Other (Please comment)\" },\n { label: \"Not Applicable\", value: \"Not Applicable\" },\n ],\n optionLanguages: [],\n optionYesOrNo: [\n {\n label: \"Yes\",\n value: true,\n },\n {\n label: \"No\",\n value: false,\n },\n ],\n };\n }\n\n componentDidMount() {\n this.prepareFormState();\n let optionLanguages = [];\n\n if (this.props.languages) {\n optionLanguages = [\n ...this.props.languages.map((language) => {\n return {\n value: language.name,\n label: language.name,\n };\n }),\n ];\n\n this.setState({ optionLanguages });\n }\n\n this.props.onPerson.getPersonsDropdown().then(() => {\n let persons = [\n {\n value: \"Select owner\",\n label: \"Select owner\",\n },\n ];\n persons.push(\n ...this.props.persons\n .filter((it) => !it.inactive)\n .map((person) => {\n return {\n value: person.id,\n label: `${person.firstName} ${person.lastName}`,\n };\n })\n .sort((a, b) => {\n return a.label > b.label ? 1 : -1;\n })\n );\n\n let vacancyOwners = [\n {\n value: \"Select vacancy owner\",\n label: \"Select vacancy owner\",\n },\n ];\n\n vacancyOwners.push(\n ...this.props.persons\n .filter((it) => !it.inactive)\n .map((person) => {\n return {\n value: person.id,\n label: `${person.firstName} ${person.lastName}`,\n };\n })\n .sort((a, b) => {\n return a.label > b.label ? 1 : -1;\n })\n );\n\n this.setState({\n persons,\n vacancyOwners,\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.selectedJob !== this.props.selectedJob) {\n this.setState({ selectedJob: this.props.selectedJob });\n }\n\n if (prevProps.selectedJobUpdated !== this.props.selectedJobUpdated && this.props.selectedJobUpdated == true) {\n this.props.generateAlert(\"success\", \"Update job success.\");\n this.togleDialogModal();\n }\n }\n\n prepareFormState = () => {\n const job = this.props.selectedJob;\n const languages = this.props.languages;\n\n let integrityValid = false;\n\n if (job) {\n integrityValid = true;\n\n const inActive = job && job.inActive ? job.inActive : false;\n const whoCanSee = job && (job.isHidden && !job.isCandidateJob ? \"Nobody\" : !job.isHidden && !job.isCandidateJob ? \"Employee Only\" : job.isHidden && job.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\");\n\n if ((inActive == true && whoCanSee != \"Nobody\") || (inActive == true && job.jobMatches && job.jobMatches.length > 0)) {\n integrityValid = false;\n }\n }\n\n this.setState({\n form: {\n sequence: {\n validation: {\n required: true,\n },\n value: job && job.sequence ? job.sequence : 0,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n name: {\n validation: {\n required: true,\n },\n value: job && job.name ? job.name : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n reference: {\n validation: {\n required: true,\n },\n value: job && job.reference ? job.reference : \"\",\n valid: job && job.reference && job.reference != \"\" ? true : false,\n isValidFormat: job && job.reference && job.reference != \"\" ? true : false,\n touched: false,\n },\n customerReference: {\n validation: {\n required: false,\n },\n value: job && job.customerReference ? job.customerReference : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n jobRole: {\n validation: {\n required: true,\n },\n value: job && job.isRole ? \"Role\" : \"Job\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n definedBy: {\n validation: {\n required: false,\n },\n value: job && job.definedBy ? job.definedBy : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n definedById: {\n validation: {\n required: false,\n },\n value: job && job.definedById ? job.definedById : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n owner: {\n validation: {\n required: false,\n },\n value: job && job.owner ? job.owner : \"Select owner\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ownerId: {\n validation: {\n required: false,\n },\n value: job && job.ownerId ? job.ownerId : \"Select owner\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n whoCanSee: {\n validation: {\n required: false,\n },\n value: job && (job.isHidden && !job.isCandidateJob ? \"Nobody\" : !job.isHidden && !job.isCandidateJob ? \"Employee Only\" : job.isHidden && job.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\"),\n valid: integrityValid,\n isValidFormat: integrityValid,\n touched: integrityValid == false ? true : false,\n },\n reportingTo: {\n validation: {\n required: false,\n },\n value: job && job.reportingTo ? job.reportingTo : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n seniority: {\n validation: {\n required: false,\n },\n value: job && job.seniority ? job.seniority : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n employmentStatus: {\n validation: {\n required: false,\n },\n value: job && job.employmentStatus ? job.employmentStatus : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n department: {\n validation: {\n required: false,\n },\n value: job && job.department ? job.department : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: job && job.location ? job.location : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n inActive: {\n validation: {\n required: false,\n },\n value: job && job.inActive ? job.inActive : false,\n valid: integrityValid,\n isValidFormat: integrityValid,\n touched: integrityValid == false ? true : false,\n },\n fte: {\n validation: {\n isFte: true,\n required: true,\n },\n value: job ? job.fte.toFixed(1) : \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n language: {\n validation: {\n required: true,\n },\n value: job && job.language ? job.language : \"English\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n languageId: {\n validation: {\n required: true,\n },\n value: job && job.languageId ? job.languageId : languages && languages.find((it) => it.name == \"English\") ? languages.find((it) => it.name == \"English\").id : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n showAsRoleBasedSurveyInSelfRegistration: {\n validation: {\n required: false,\n },\n value: job && job.showAsRoleBasedSurveyInSelfRegistration != null ? (job.showAsRoleBasedSurveyInSelfRegistration == true ? true : false) : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n showAsVacancy: {\n validation: {\n required: false,\n },\n value: job && job.showAsVacancy != null ? (job.showAsVacancy == true ? true : false) : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n vacancyOwner: {\n validation: {\n required: false,\n },\n value: job && job.vacancyOwner ? job.vacancyOwner : \"Select vacancy owner\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n vacancyOwnerId: {\n validation: {\n required: false,\n },\n value: job && job.vacancyOwnerId ? job.vacancyOwnerId : \"Select vacancy owner\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: job && job.reference && job.reference != \"\" && integrityValid ? true : false,\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n editMode: false,\n });\n };\n\n handleChange = (event) => {\n const { persons, vacancyOwners } = this.state;\n const languages = this.props.languages;\n let { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"ownerId\") {\n if (value && value != \"Select owner\") {\n const person = persons.find((it) => it.value == value);\n if (person) {\n updateState = changeInput(updateState.form, \"owner\", person.label);\n }\n } else {\n updateState = changeInput(updateState.form, \"owner\", \"Select owner\");\n }\n }\n\n if (name == \"vacancyOwnerId\") {\n if (value && value != \"Select vacancy owner\") {\n const person = vacancyOwners.find((it) => it.value == value);\n if (person) {\n updateState = changeInput(updateState.form, \"vacancyOwner\", person.label);\n }\n } else {\n updateState = changeInput(updateState.form, \"vacancyOwner\", \"Select vacancy owner\");\n }\n }\n\n if (name == \"language\" && languages) {\n const language = languages.find((it) => it.name == value);\n updateState = changeInput(updateState.form, \"languageId\", language ? language.id : null);\n }\n\n if (name == \"inActive\" || name == \"whoCanSee\") {\n if (name == \"inActive\") {\n updateState = changeInput(updateState.form, \"whoCanSee\", updateState.form.whoCanSee.value);\n } else {\n updateState = changeInput(updateState.form, \"inActive\", updateState.form.inActive.value);\n }\n\n if ((updateState.form.inActive.value == true && this.props.selectedJob.jobMatches && this.props.selectedJob.jobMatches.length > 0) || (updateState.form.inActive.value == true && updateState.form.whoCanSee.value != \"Nobody\")) {\n updateState.form.inActive.valid = false;\n //updateState.form.inActive.isValidFormat = false;\n updateState.form.inActive.touched = true;\n\n updateState.form.whoCanSee.valid = false;\n //updateState.form.whoCanSee.isValidFormat = false;\n updateState.form.whoCanSee.touched = true;\n\n updateState.valid = false;\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n togleShowEdit = () => {\n const editMode = this.state.editMode;\n\n this.setState({ editMode: !editMode });\n\n if (editMode) {\n this.prepareFormState();\n }\n };\n\n handlePerformSave = () => {\n const { form } = this.state;\n\n let job = Object.assign({}, this.props.selectedJob);\n job.sequence = form.sequence.value;\n job.name = form.name.value;\n job.description = form.name.value;\n job.reference = form.reference.value;\n job.customerReference = form.customerReference.value;\n job.name = form.name.value;\n job.isRole = form.jobRole.value == \"Role\" ? true : false;\n job.definedBy = form.definedBy.value;\n job.definedById = form.definedById.value;\n job.owner = form.ownerId.value ? (form.owner.value != \"Select owner\" ? form.owner.value : null) : null;\n job.ownerId = form.ownerId.value ? (form.ownerId.value != \"Select owner\" ? form.ownerId.value : null) : null;\n\n job.isHidden = form.whoCanSee.value == \"Nobody\" || form.whoCanSee.value == \"Candidate Only\" ? true : false;\n job.isCandidateJob = form.whoCanSee.value == \"Candidates and Employees\" || form.whoCanSee.value == \"Candidate Only\" ? true : false;\n\n job.inActive = form.inActive.value;\n job.reportingTo = form.reportingTo.value;\n job.seniority = form.seniority.value;\n job.employmentStatus = form.employmentStatus.value;\n job.department = form.department.value;\n job.location = form.location.value;\n job.fte = form.fte.value;\n\n job.language = form.language.value;\n job.languageId = form.languageId.value;\n\n job.showAsRoleBasedSurveyInSelfRegistration = form.showAsRoleBasedSurveyInSelfRegistration.value;\n\n job.showAsVacancy = form.showAsVacancy.value;\n job.vacancyOwnerId = (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId.value ? (form.vacancyOwnerId.value != \"Select vacancny owner\" ? form.vacancyOwnerId.value : null) : null;\n job.vacancyOwner = (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwner.value ? (form.vacancyOwner.value != \"Select vacancny owner\" ? form.vacancyOwner.value : null) : null;\n\n this.setState({ isUpdating: true });\n\n this.props.onJob.updateJob(job.id, job).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { form, editMode, persons, vacancyOwners, optionWhoCanSee, optionActive, optionEmploymentStatus, optionSeniority, optionLanguages, optionYesOrNo } = this.state;\n\n return (\n \n \n Requirement Detail\n \n {this.props.selectedJob && (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"ownerId\",\n value: value.value,\n },\n });\n }}\n textField=\"label\"\n dataKey=\"value\"\n filter=\"contains\"\n placeholder=\"Select owner\"\n autoSelectMatches={true}\n value={persons.find((it) => (it.value == form.ownerId.value ? form.ownerId.value : null))}\n disabled={!editMode || this.state.isUpdating}\n />\n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"whoCanSee\",\n value: value.value,\n },\n });\n }}\n style={{ border: editMode && form.whoCanSee.touched && !form.whoCanSee.valid ? \"1px solid #FF0000\" : \"none\", borderRadius: \"0.25rem\" }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionWhoCanSee.find((it) => (it.value == form.whoCanSee.value ? form.whoCanSee.value : null))}\n disabled={!editMode || this.state.isUpdating}\n invalid={form.whoCanSee.touched && !form.whoCanSee.valid}\n />\n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"inActive\",\n value: value.value,\n },\n });\n }}\n style={{ border: editMode && form.inActive.touched && !form.inActive.valid ? \"1px solid #FF0000\" : \"none\", borderRadius: \"0.25rem\" }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionActive.find((it) => it.value == form.inActive.value)}\n disabled={!editMode || this.state.isUpdating || (this.props.selectedJob && this.props.selectedJob.jobMatches && this.props.selectedJob.jobMatches.filter((it) => it.personInactive == false).length > 0 && this.props.selectedJob.inActive == false)}\n invalid={form.inActive.touched && !form.inActive.valid}\n />\n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"language\",\n value: value.value,\n },\n });\n }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionLanguages.find((it) => (it.value == form.language.value ? form.language.value : null))}\n disabled={!editMode || this.state.isUpdating}\n />\n \n \n {this.props.containerConfig && this.props.containerConfig.internalJobMarket == true && (\n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"showAsVacancy\",\n value: value.value,\n },\n });\n }}\n style={{ border: editMode && form.showAsVacancy.touched && !form.showAsVacancy.valid ? \"1px solid #FF0000\" : \"none\", borderRadius: \"0.25rem\" }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionYesOrNo.find((it) => it.value == form.showAsVacancy.value)}\n disabled={!editMode || this.state.isUpdating}\n invalid={form.showAsVacancy.touched && !form.showAsVacancy.valid}\n />\n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"vacancyOwnerId\",\n value: value.value,\n },\n });\n }}\n textField=\"label\"\n dataKey=\"value\"\n filter=\"contains\"\n placeholder=\"Select vacancy owner\"\n autoSelectMatches={true}\n value={vacancyOwners.find((it) => (it.value == form.vacancyOwnerId.value ? form.vacancyOwnerId.value : null))}\n disabled={!editMode || this.state.isUpdating || form.showAsVacancy.value == false || form.showAsVacancy.value == \"false\"}\n invalid={editMode && (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId.value == \"Select vacancy owner\"}\n style={{ border: editMode && (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId.value == \"Select vacancy owner\" ? \"1px solid #FF0000\" : \"none\", borderRadius: \"0.25rem\" }}\n />\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"seniority\",\n value: value.value,\n },\n });\n }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionSeniority.find((it) => (it.value == form.seniority.value ? form.seniority.value : null))}\n disabled={!editMode || this.state.isUpdating}\n />\n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"employmentStatus\",\n value: value.value,\n },\n });\n }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionEmploymentStatus.find((it) => (it.value == form.employmentStatus.value ? form.employmentStatus.value : null))}\n disabled={!editMode || this.state.isUpdating}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"showAsRoleBasedSurveyInSelfRegistration\",\n value: value.value,\n },\n });\n }}\n style={{ border: editMode && form.showAsRoleBasedSurveyInSelfRegistration.touched && !form.showAsRoleBasedSurveyInSelfRegistration.valid ? \"1px solid #FF0000\" : \"none\", borderRadius: \"0.25rem\" }}\n filter=\"contains\"\n textField=\"label\"\n dataKey=\"value\"\n autoSelectMatches={true}\n value={optionYesOrNo.find((it) => it.value == form.showAsRoleBasedSurveyInSelfRegistration.value)}\n disabled={!editMode || this.state.isUpdating}\n invalid={form.showAsRoleBasedSurveyInSelfRegistration.touched && !form.showAsRoleBasedSurveyInSelfRegistration.valid}\n />\n \n \n \n \n
\n )}\n
\n \n {!editMode && (\n \n {this.props.selectedJob && this.props.allowEdit && (\n {\n this.togleShowEdit();\n }}\n >\n Edit\n \n )}\n \n \n )}\n {editMode && (\n \n {\n this.handlePerformSave();\n }}\n disabled={\n !this.state.isFormValid ||\n this.state.isUpdating ||\n (form && form.fte && (form.fte.value == \"0\" || form.fte.value == \"0.0\" || form.fte.value == 0)) ||\n (this.props.containerConfig && this.props.containerConfig.internalJobMarket == true && form && form.showAsVacancy && (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId && form.vacancyOwnerId.value == \"Select vacancy owner\")\n }\n >\n Save\n \n {\n this.togleShowEdit();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n )}\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n authPersonId: state.auth.personId,\n personsLoading: state.adminPerson.loading,\n persons: state.adminPerson.personsDropdown,\n personsError: state.adminPerson.error,\n\n error: state.job.error,\n isUpdating: state.job.isUpdating,\n\n languages: state.language.languages,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobDetail);\n","import { filterArray } from \"../../../utils/filterUtils\";\nimport { generateRandomString } from \"../../../utils/stringUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faSquareCheck, faSquareMinus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { Component } from \"react\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageJobSample extends Component {\n constructor(props) {\n super(props);\n this.state = {\n jobs: this.props.jobs,\n jobsSelected: [],\n isUpdating: false,\n showDialog: false,\n searchProperties: [\"name\"],\n };\n\n this.generateRandomString = generateRandomString.bind(this);\n this.filterArray = filterArray.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs) {\n this.setState({ jobs: this.props.jobs });\n }\n\n if (prevProps.showDialog !== this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n\n if (prevProps.copyJobsSuccess !== this.props.copyJobsSuccess) {\n if (this.props.copyJobsSuccess == true) {\n this.setState({ showDialog: false, jobsSelected: [] });\n }\n }\n }\n\n // handleSave = () => {\n // let job = this.state.job;\n // this.props.handleSaveJobNoteUpdate(job);\n // };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog, jobsSelected: [] });\n };\n\n handleRowClick = (row) => {\n const jobs = this.state.jobs;\n const updatedData = jobs.find((it) => it.id == row.id);\n updatedData.toggleSelected = !updatedData.toggleSelected;\n\n this.setState({ jobs: [...jobs], jobsSelected: jobs.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleSelectAll = () => {\n const { jobs, searchKeyword, searchProperties } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(jobs, searchKeyword, searchProperties);\n\n if (filtered.filter((it) => it.toggleSelected).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSelected).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (selectAll) {\n jobs.forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSelected = true;\n }\n });\n }\n\n this.setState({ jobs: [...jobs], jobsSelected: jobs.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const jobs = this.state.jobs;\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ jobs: [...jobs] });\n };\n\n handlePerformCopy = () => {\n const { jobs, jobsSelected } = this.state;\n const randomString = this.generateRandomString(5);\n\n const copiedJobs = jobs\n .filter((it) => jobsSelected.includes(it.id))\n .map((job) => {\n return {\n jobToCopyId: job.id,\n newName: `${job.name} SAMPLE`,\n copyAttributes: true,\n };\n });\n\n this.props.handlePerformCopyJobs(copiedJobs);\n this.handleClearSelection();\n };\n\n render() {\n const { jobs, searchKeyword, searchProperties } = this.state;\n\n const handleRowClick = this.handleRowClick;\n const handleSelectAll = this.handleSelectAll;\n\n const filtered = this.filterArray(jobs, searchKeyword, searchProperties);\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n it.toggleSelected).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSelected).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSelected).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"10%\",\n center: true,\n format: function (row, index) {\n return (\n
\n handleRowClick(row)} />\n
\n );\n },\n },\n {\n id: \"name\",\n name: \"Name\",\n selector: (row) => row.name,\n sortable: false,\n width: \"90%\",\n },\n ];\n\n return (\n \n \n Sample Requirements\n \n
\n \n \n \n \n \n \n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, jobsSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", jobsSelected: [] });\n }}\n >\n \n \n \n
\n \n
\n
\n
\n \n {\n this.handlePerformCopy();\n }}\n disabled={this.state.jobsSelected.length == 0 || this.state.isUpdating}\n >\n Copy Requirements\n \n \n \n
\n
\n );\n }\n}\n\nexport default ManageJobSample;\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { generateRandomString } from \"../../../utils/stringUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ColumnDisplaySetting from \"../ColumnDisplaySetting\";\nimport JobBulkUpload from \"./JobBulkUpload\";\nimport JobCopyDialog from \"./JobCopyDialog\";\nimport JobDetail from \"./JobDetail\";\nimport ManageJobSample from \"./ManageJobSample\";\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faCog, faCopy, faDownload, faFileExcel, faInfoCircle, faListUl, faMinusCircle, faPenToSquare, faPlus, faSquareCheck, faSquareMinus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst messageHubHostname = process.env.NODE_ENV === \"development\" ? process.env.REACT_APP_MESSAGE_HUB_ENDPOINT : \"/messagehub\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageJob extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n jobs: [],\n sampleJobs: [],\n selectedJob: null,\n selectedJobUpdated: false,\n jobImportSessionId: this.props.jobImportSessionId,\n showDialogImportTs: null,\n jobImportQueue: [],\n showDeleteJobDialog: false,\n showJobCopyDialogTs: false,\n showSampleJobsDialogTs: false,\n printReportsMode: false,\n loadingPrint: false,\n selectedJobsPrint: [],\n showColumnSettings: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.generateRandomString = generateRandomString.bind(this);\n }\n\n componentDidMount() {\n const routeGoBack = localStorage.getItem(\"routeGoBack\");\n\n let repopulate = true;\n if (routeGoBack == \"TRUE\") {\n repopulate = false;\n }\n\n this.props.onAuth.authCheckState().then(() => {\n this.connectJobSignalR();\n\n if (!this.state.jobImportSessionId) {\n const jobImportSessionId = this.generateRandomString(30);\n Promise.resolve(this.props.onJob.setJobImportSessionId(jobImportSessionId)).then(() => {\n this.setState({ jobImportSessionId });\n this.connectJobImportSignalR(jobImportSessionId);\n });\n } else {\n this.connectJobImportSignalR(this.state.jobImportSessionId);\n }\n\n if (repopulate || !this.props.jobs || (this.props.jobs && this.props.jobs.length == 0)) {\n Promise.all([this.props.onJob.getJobs(), this.props.onJob.getSampleJobs(), this.props.onJob.getJobImportQueue()]).then(() => {\n this.setState({\n jobs: this.reformJobs(this.props.jobs),\n sampleJobs: this.props.sampleJobs,\n jobImportQueue: this.props.jobImportQueue && this.props.jobImportQueue.sort((b, a) => new Date(a.importedOn) - new Date(b.importedOn)),\n });\n\n this.setState({ loading: this.props.loading || this.props.jobsLoading });\n });\n } else {\n this.setState({\n jobs: this.reformJobs(this.props.jobs),\n sampleJobs: this.props.sampleJobs,\n jobImportQueue: this.props.jobImportQueue && this.props.jobImportQueue.sort((b, a) => new Date(a.importedOn) - new Date(b.importedOn)),\n });\n\n this.setState({ loading: false });\n }\n });\n }\n\n searchProperties = () => {\n const pageName = \"Manage Requirements\";\n return this.props.columnDisplaySettings\n ? this.props.columnDisplaySettings\n .filter(\n (it) =>\n it.pageName == pageName &&\n it.visible == true &&\n it.searchable == true &&\n ((it.columnName != \"showAsVacancy\" && it.columnName != \"vacancyOwner\") || (this.props.containerConfig && this.props.containerConfig.internalJobMarket && (it.columnName == \"showAsVacancy\" || it.columnName == \"vacancyOwner\")))\n )\n .map((it) => it.columnName)\n : [];\n };\n\n componentWillUnmount() {\n localStorage.setItem(\"routeGoBack\", \"FALSE\");\n this.disconnectJobSignalR();\n this.disconnectJobImportSignalR();\n }\n\n connectJobSignalR = () => {\n const personId = this.props.personId;\n this.connectionJob = new HubConnectionBuilder().withUrl(messageHubHostname).build();\n\n this.connectionJob.on(`UpdateRequirementNotification${personId}`, (response) => {\n if (response.action == \"JobUpdate\") {\n if (response.status == \"Success\") {\n let updatedJob = response.data;\n this.props.onJob.updateJobByNotification(updatedJob);\n this.setState({ selectedJobUpdated: true });\n }\n }\n });\n\n this.connectionJob.start().catch((err) => console.error(err.toString()));\n };\n\n disconnectJobSignalR = () => {\n if (this.connectionJob) this.connectionJob.stop();\n };\n\n connectJobImportSignalR = (jobImportSessionId) => {\n this.connectionJobImport = new HubConnectionBuilder().withUrl(messageHubHostname).build();\n\n this.connectionJobImport.on(`ImportJobsDataNotification${jobImportSessionId}`, (response) => {\n if (response.action == \"ImportJobsData\") {\n if (response.status == \"Success\") {\n let importJobResponse = response.data;\n //console.log(\"importJobResponse\", importJobResponse);\n this.props.onJob.updateImportJobStatus(importJobResponse.item1, importJobResponse.item2);\n }\n }\n });\n\n this.connectionJobImport.start().catch((err) => console.error(err.toString()));\n };\n\n disconnectJobImportSignalR = () => {\n if (this.connectionJobImport) this.connectionJobImport.stop();\n };\n\n handleRefresh = () => {\n this.props.onJob.getJobs().then(() => {\n this.setState({\n jobs: this.reformJobs(this.props.jobs),\n });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs) {\n this.setState({\n jobs: this.props.jobs ? this.reformJobs(this.props.jobs.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))) : [],\n });\n }\n\n if (prevProps.jobImportQueue !== this.props.jobImportQueue) {\n this.setState({\n jobImportQueue: this.props.jobImportQueue ? this.props.jobImportQueue.sort((b, a) => new Date(a.importedOn) - new Date(b.importedOn)) : [],\n });\n }\n }\n\n reformJobs = (jobs) => {\n return jobs.map((it) => {\n return {\n id: it.id,\n companyId: it.companyId,\n cartridgeId: it.cartridgeId,\n name: it.name,\n description: it.description,\n reference: it.reference,\n customerReference: it.customerReference,\n sequence: it.sequence,\n isRole: it.isRole,\n createdOn: it.createdOn,\n definedById: it.definedById,\n definedBy: it.definedBy,\n reportingTo: it.reportingTo,\n seniority: it.seniority,\n employmentStatus: it.employmentStatus,\n department: it.department,\n location: it.location,\n purpose: it.purpose,\n keyAccountibilities: it.keyAccountibilities,\n keyProcesses: it.keyProcesses,\n educationRequirements: it.educationRequirements,\n qualificationRequirements: it.qualificationRequirements,\n otherRequirements: it.otherRequirements,\n comment: it.comment,\n isHidden: it.isHidden,\n isCandidateJob: it.isCandidateJob,\n whoCanSee: it.isHidden && !it.isCandidateJob ? \"Nobody\" : !it.isHidden && !it.isCandidateJob ? \"Employee Only\" : it.isHidden && it.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\",\n inActive: it.inActive,\n active: it.inActive ? \"Inactive\" : \"Active\",\n isSample: it.isSample,\n ownerId: it.ownerId,\n owner: it.owner,\n updatedOn: it.updatedOn,\n languageId: it.languageId,\n language: it.language,\n fte: it.fte,\n jobFamilyId: it.jobFamilyId,\n jobFamily: it.jobFamily,\n jobFamilySequence: it.jobFamilySequence,\n jobMatches: it.jobMatches,\n userCountCurrent: it.jobMatches ? it.jobMatches.filter((jm) => jm.jobType == \"Current\" && jm.personInactive != true).length : 0,\n userCountFuture: it.jobMatches ? it.jobMatches.filter((jm) => jm.jobType == \"Future\" && jm.personInactive != true).length : 0,\n showAsRoleBasedSurveyInSelfRegistration: it.showAsRoleBasedSurveyInSelfRegistration != null ? it.showAsRoleBasedSurveyInSelfRegistration : false,\n strShowAsRoleBasedSurveyInSelfRegistration: it.showAsRoleBasedSurveyInSelfRegistration != null ? (it.showAsRoleBasedSurveyInSelfRegistration ? \"Yes\" : \"No\") : \"No\",\n showAsVacancy: it.showAsVacancy,\n showAsVacancyFilter: it.showAsVacancy ? \"Yes\" : \"No\",\n vacancyOwner: it.vacancyOwner,\n vacancyOwnerId: it.vacancyOwnerId,\n };\n });\n };\n\n openJobDetail = (job) => {\n this.setState({ showDialogJobDetailTs: new Date(), selectedJob: job, selectedJobUpdated: false });\n };\n\n handleDeleteJob = (job) => {\n this.setState({ deletedJob: job, showDeleteJobDialog: true });\n };\n\n togleDeleteJobModal = () => {\n const showDeleteJobDialog = this.state.showDeleteJobDialog;\n this.setState({ showDeleteJobDialog: !showDeleteJobDialog });\n };\n\n handleConfirmDeleteJob = () => {\n const job = this.state.deletedJob;\n if (job) {\n this.setState({ isUpdating: true });\n\n this.props.onJob.deleteJob(job.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Delete requirement success.\");\n this.handleRefresh();\n this.setState({ showDeleteJobDialog: false });\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n renderDeleteJobConfirmation = () => {\n return (\n \n Delete Requirement Confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmDeleteJob();\n }}\n >\n OK\n \n \n \n
\n );\n };\n\n handleCopyJob = (job) => {\n this.setState({ selectedJob: job, copyJobSuccess: false, showJobCopyDialogTs: new Date() });\n };\n\n handleSaveCopyJob = (request) => {\n this.setState({ isUpdating: true });\n\n this.props.onJob.copyJob(request).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Copy requirement success.\");\n this.setState({ copyJobSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleAddNew = () => {\n this.props.history.push(\"requirements/create\");\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportJobs = () => {\n this.props.onJob.exportJobsDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.jobsError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportRequirements_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportJobs = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleAddedJobImports = (jobImports) => {\n const jobImportIds = jobImports.map((it) => {\n return it.id;\n });\n\n Promise.resolve(this.props.onJob.processJobImportQueue(jobImportIds)).then(() => {});\n };\n\n handleRefreshJobQueueu = () => {\n this.props.onJob.getJobImportQueue().then(() => {\n this.setState({\n jobImportQueue: this.props.jobImportQueue && this.props.jobImportQueue.sort((b, a) => new Date(a.importedOn) - new Date(b.importedOn)),\n });\n });\n };\n\n downloadImportJobExcel = (jobImport) => {\n this.props.onJob.downloadJobImportExcel(jobImport.id).then(() => {\n if (!this.props.loadingExport && !this.props.jobsError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, jobImport.fileName);\n }\n }\n });\n };\n\n renderJobImportQueue = () => {\n const { jobImportQueue, searchKeywordQueue } = this.state;\n const downloadImportJobExcel = this.downloadImportJobExcel;\n\n const columns = [\n {\n id: \"fileName\",\n name: \"FileName\",\n selector: (row) => row.fileName,\n sortable: true,\n width: \"20%\",\n format: function (row, index) {\n return row.fileName;\n },\n },\n {\n id: \"status\",\n name: \"Status\",\n selector: (row) => row.status,\n sortable: true,\n width: \"12%\",\n },\n {\n id: \"importedOn\",\n name: \"Imported On\",\n selector: (row) => row.importedOn,\n sortable: true,\n width: \"15%\",\n format: function (row, index) {\n return new Intl.DateTimeFormat(\"en-GB\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hourCycle: \"h23\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(new Date(row.importedOn));\n },\n },\n {\n id: \"statusMessage\",\n name: \"Status Message\",\n selector: (row) => row.statusMessage,\n sortable: true,\n width: \"15%\",\n },\n {\n id: \"id\",\n name: \"Download\",\n selector: (row) => row.id,\n sortable: true,\n width: \"10%\",\n format: function (row, index) {\n return (\n downloadImportJobExcel(row)}>\n Download\n \n );\n },\n },\n {\n id: \"message\",\n name: \"Message\",\n selector: (row) => row.message,\n sortable: true,\n wrap: true,\n width: \"28%\",\n },\n ];\n\n return (\n \n {jobImportQueue && jobImportQueue.length > 0 && (\n \n
\n \n Requirements Import Queue\n

\n
\n \n \n {\n this.setState({ searchKeywordQueue: searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeywordQueue: \"\" });\n }}\n >\n   \n \n Refresh\n \n \n \n \n
\n
\n )}\n
\n );\n };\n\n handlePerformCopyJobs = (copiedJobs) => {\n this.setState({ isUpdating: true, copyJobsSuccess: false });\n this.props.onJob.copyJobs(copiedJobs).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Copy default requirements success.\");\n this.setState({ copyJobsSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleShowSampleJobs = () => {\n this.setState({ showSampleJobsDialogTs: new Date() });\n };\n\n handleGenerateReport = () => {\n this.setState({ printReportsMode: true });\n };\n\n handleConfirmGenerateReport = () => {\n const selectedJobsPrint = this.state.selectedJobsPrint;\n this.setState({ loadingPrint: true, printReportsMode: false });\n this.handleClearSelection();\n this.props.onJob.printJobReports(selectedJobsPrint).then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `SkillsTx_Requirement_Profiles.zip`);\n this.setState({ selectedJobsPrint: [] });\n }\n }\n\n this.setState({ loadingPrint: this.props.loadingPrint });\n });\n };\n\n handleCancelGenerateReport = () => {\n this.setState({ printReportsMode: false });\n this.handleClearSelection();\n };\n\n handleRowClick = (row) => {\n const jobs = this.state.jobs;\n const updatedData = jobs.find((it) => it.id == row.id);\n updatedData.toggleSelected = !updatedData.toggleSelected;\n\n this.setState({ jobs: [...jobs], selectedJobsPrint: jobs.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleSelectAll = () => {\n const { jobs, searchKeyword, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(jobs, searchKeyword, this.searchProperties(), columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSelected).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSelected).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (selectAll) {\n jobs.forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSelected = true;\n }\n });\n }\n\n this.setState({ jobs: [...jobs], selectedJobsPrint: jobs.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const jobs = this.state.jobs;\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ jobs: [...jobs] });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n handleShowColumnSettings = () => {\n const showColumnSettings = this.state.showColumnSettings;\n\n this.setState({ showColumnSettings: !showColumnSettings });\n };\n\n render() {\n const { pageAssignments, loginWithTeams } = this.props;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Requirements\");\n\n const { authPersonId } = this.props;\n\n const openJobDetail = this.openJobDetail;\n const handleDeleteJob = this.handleDeleteJob;\n const handleCopyJob = this.handleCopyJob;\n const handleRowClick = this.handleRowClick;\n const handleSelectAll = this.handleSelectAll;\n\n const onTableFilterChange = this.onTableFilterChange;\n\n const { jobImportQueue, searchKeyword, jobs, columnSearchKeywords } = this.state;\n\n const filtered = this.filterArray(jobs, searchKeyword, this.searchProperties(), columnSearchKeywords);\n\n const ownerSort = (rowA, rowB) => {\n let ownerA = rowA.owner ? `0${rowA.owner}` : \"1\";\n let ownerB = rowB.owner ? `0${rowB.owner}` : \"1\";\n\n if (ownerA > ownerB) {\n return 1;\n }\n\n if (ownerB > ownerA) {\n return -1;\n }\n\n return 0;\n };\n\n const whoCanSeeSort = (rowA, rowB) => {\n let whoCanSeeA = rowA.isHidden && !rowA.isCandidateJob ? \"Nobody\" : !rowA.isHidden && !rowA.isCandidateJob ? \"Employee Only\" : rowA.isHidden && rowA.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\";\n let whoCanSeeB = rowB.isHidden && !rowB.isCandidateJob ? \"Nobody\" : !rowB.isHidden && !rowB.isCandidateJob ? \"Employee Only\" : rowB.isHidden && rowB.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\";\n\n if (whoCanSeeA > whoCanSeeB) {\n return 1;\n }\n\n if (whoCanSeeB > whoCanSeeA) {\n return -1;\n }\n\n return 0;\n };\n\n const pageName = \"Manage Requirements\";\n const columnDisplaySettings = this.props.columnDisplaySettings ? this.props.columnDisplaySettings.filter((it) => it.pageName == pageName) : [];\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n it.toggleSelected).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSelected).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSelected).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"80px\",\n center: true,\n format: function (row, index) {\n return (\n
\n handleRowClick(row)} />\n
\n );\n },\n omit: !this.state.printReportsMode,\n },\n {\n id: \"updatedOn\",\n name: \"Action\",\n selector: (row) => row.updatedOn,\n sortable: false,\n width: \"120px\",\n center: true,\n format: function (row, index) {\n return (\n
\n openJobDetail(row)} />\n \n Requirement Info\n \n    \n \n \n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (!row.ownerId || row.ownerId == authPersonId) ? \"Edit Requirement Profile\" : \"Show Requirement Profile\"}\n \n \n    \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Copy Requirement\" && op.allow == true) && (\n \n handleCopyJob(row)} />\n \n Copy Requirement\n \n    \n \n )}\n {pageAssignment &&\n pageAssignment.operations &&\n pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) &&\n !(row.jobMatches && row.jobMatches.filter((it) => it.personInactive == false).length > 0) &&\n (!row.ownerId || row.ownerId == authPersonId) && (\n \n handleDeleteJob(row)} />\n \n Delete Requirement\n \n \n )}\n
\n );\n },\n },\n {\n id: \"name\",\n name: (\n
\n Name\n
\n it.name == \"name\") ? columnSearchKeywords.find((it) => it.name == \"name\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.name,\n sortable: true,\n width: \"300px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"name\") ? !columnDisplaySettings.find((it) => it.columnName == \"name\").visible : true,\n },\n {\n id: \"reference\",\n name: (\n
\n Reference\n
\n it.name == \"reference\") ? columnSearchKeywords.find((it) => it.name == \"reference\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.reference,\n sortable: true,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n return row.reference;\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"reference\") ? !columnDisplaySettings.find((it) => it.columnName == \"reference\").visible : true,\n },\n {\n id: \"customerReference\",\n name: (\n
\n Customer Reference\n
\n it.name == \"customerReference\") ? columnSearchKeywords.find((it) => it.name == \"customerReference\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.customerReference,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n return row.customerReference;\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"customerReference\") ? !columnDisplaySettings.find((it) => it.columnName == \"customerReference\").visible : true,\n },\n {\n id: \"owner\",\n name: (\n
\n Owner\n
\n it.name == \"owner\") ? columnSearchKeywords.find((it) => it.name == \"owner\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.owner,\n sortFunction: ownerSort,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"owner\") ? !columnDisplaySettings.find((it) => it.columnName == \"owner\").visible : true,\n },\n {\n id: \"isHidden\",\n name: (\n
\n Who can see\n
\n it.name == \"whoCanSee\") ? columnSearchKeywords.find((it) => it.name == \"whoCanSee\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isHidden,\n sortFunction: whoCanSeeSort,\n sortable: true,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n return row.isHidden && !row.isCandidateJob ? \"Nobody\" : !row.isHidden && !row.isCandidateJob ? \"Employee Only\" : row.isHidden && row.isCandidateJob ? \"Candidate Only\" : \"Candidates and Employees\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"whoCanSee\") ? !columnDisplaySettings.find((it) => it.columnName == \"whoCanSee\").visible : true,\n },\n {\n id: \"inActive\",\n name: (\n
\n InActive\n
\n it.name == \"active\") ? columnSearchKeywords.find((it) => it.name == \"active\").value : \"\"} onChange={(e) => onTableFilterChange(e, \"startsWith\")} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.inActive,\n sortable: true,\n width: \"100px\",\n format: function (row, index) {\n return row.inActive ? \"Inactive\" : \"Active\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"inActive\") ? !columnDisplaySettings.find((it) => it.columnName == \"inActive\").visible : true,\n },\n {\n id: \"showAsRoleBasedSurveyInSelfRegistration\",\n name: (\n
\n Include in Self Registration Role Based Survey\n
\n it.name == \"strShowAsRoleBasedSurveyInSelfRegistration\") ? columnSearchKeywords.find((it) => it.name == \"strShowAsRoleBasedSurveyInSelfRegistration\").value : \"\"}\n onChange={(e) => onTableFilterChange(e, \"startsWith\")}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.showAsRoleBasedSurveyInSelfRegistration,\n sortable: true,\n width: \"150px\",\n format: function (row, index) {\n return row.strShowAsRoleBasedSurveyInSelfRegistration;\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"showAsRoleBasedSurveyInSelfRegistration\") ? !columnDisplaySettings.find((it) => it.columnName == \"showAsRoleBasedSurveyInSelfRegistration\").visible : true,\n },\n {\n id: \"department\",\n name: (\n
\n Department\n
\n it.name == \"department\") ? columnSearchKeywords.find((it) => it.name == \"department\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.department,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"department\") ? !columnDisplaySettings.find((it) => it.columnName == \"department\").visible : true,\n },\n {\n id: \"reportingTo\",\n name: (\n
\n Reporting To\n
\n it.name == \"reportingTo\") ? columnSearchKeywords.find((it) => it.name == \"reportingTo\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.reportingTo,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"reportingTo\") ? !columnDisplaySettings.find((it) => it.columnName == \"reportingTo\").visible : true,\n },\n {\n id: \"location\",\n name: (\n
\n Location\n
\n it.name == \"location\") ? columnSearchKeywords.find((it) => it.name == \"location\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.location,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"location\") ? !columnDisplaySettings.find((it) => it.columnName == \"location\").visible : true,\n },\n {\n id: \"fte\",\n name: (\n
\n FTE Count\n
\n it.name == \"fte\") ? columnSearchKeywords.find((it) => it.name == \"fte\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.fte,\n sortable: true,\n width: \"100px\",\n wrap: true,\n center: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"fte\") ? !columnDisplaySettings.find((it) => it.columnName == \"fte\").visible : true,\n },\n {\n id: \"employmentStatus\",\n name: (\n
\n Employment Status\n
\n it.name == \"employmentStatus\") ? columnSearchKeywords.find((it) => it.name == \"employmentStatus\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.employmentStatus,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"employmentStatus\") ? !columnDisplaySettings.find((it) => it.columnName == \"employmentStatus\").visible : true,\n },\n {\n id: \"userCountCurrent\",\n name: (\n
\n User count (Current Requirement)\n
\n it.name == \"userCountCurrent\") ? columnSearchKeywords.find((it) => it.name == \"userCountCurrent\").value : \"\"}\n onChange={(e) => onTableFilterChange(e, \"startsWith\")}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.userCountCurrent,\n sortable: true,\n width: \"150px\",\n center: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"userCountCurrent\") ? !columnDisplaySettings.find((it) => it.columnName == \"userCountCurrent\").visible : true,\n },\n {\n id: \"userCountFuture\",\n name: (\n
\n User count (Future Requirement)\n
\n it.name == \"userCountFuture\") ? columnSearchKeywords.find((it) => it.name == \"userCountFuture\").value : \"\"}\n onChange={(e) => onTableFilterChange(e, \"startsWith\")}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.userCountFuture,\n sortable: true,\n width: \"150px\",\n center: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"userCountFuture\") ? !columnDisplaySettings.find((it) => it.columnName == \"userCountFuture\").visible : true,\n },\n {\n id: \"showAsVacancy\",\n name: (\n
\n Show as Vacancy\n
\n it.name == \"showAsVacancyFilter\") ? columnSearchKeywords.find((it) => it.name == \"showAsVacancyFilter\").value : \"\"}\n onChange={(e) => onTableFilterChange(e, \"startsWith\")}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.showAsVacancy,\n sortable: true,\n width: \"150px\",\n format: function (row, index) {\n return row.showAsVacancyFilter;\n },\n center: true,\n omit:\n this.props.containerConfig && this.props.containerConfig.internalJobMarket && columnDisplaySettings.find((it) => it.columnName == \"showAsVacancy\")\n ? !columnDisplaySettings.find((it) => it.columnName == \"showAsVacancy\").visible\n : this.props.containerConfig && this.props.containerConfig.internalJobMarket\n ? false\n : true,\n },\n {\n id: \"vacancyOwner\",\n name: (\n
\n Vacancy Owner\n
\n it.name == \"vacancyOwner\") ? columnSearchKeywords.find((it) => it.name == \"vacancyOwner\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.vacancyOwner,\n sortable: true,\n width: \"150px\",\n center: true,\n omit:\n this.props.containerConfig && this.props.containerConfig.internalJobMarket && columnDisplaySettings.find((it) => it.columnName == \"vacancyOwner\")\n ? !columnDisplaySettings.find((it) => it.columnName == \"vacancyOwner\").visible\n : this.props.containerConfig && this.props.containerConfig.internalJobMarket\n ? false\n : true,\n },\n ];\n\n return (\n \n \n {this.renderDeleteJobConfirmation()}\n \n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n op.operation == \"Edit\" && op.allow == true) ? true : false}\n >\n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, selectedJobsPrint: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", selectedJobsPrint: [] });\n }}\n >\n   \n \n Refresh\n \n   \n {!this.state.printReportsMode && (\n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Add\" && op.allow == true) && (\n \n \n Add New\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n it.status != \"Completed\").length == 0))}\n >\n Import\n \n {!(!jobImportQueue || (jobImportQueue && jobImportQueue.length == 0) || (jobImportQueue && jobImportQueue.filter((it) => it.status != \"Completed\").length == 0)) && (\n \n While the process is running the uploading of more requirements will be unavailable\n \n )}\n   \n \n )}\n \n )}\n \n \n Columns\n \n   \n \n {!this.state.printReportsMode && (\n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Copy Sample Requirement\" && op.allow == true) && (\n \n \n Sample Requirements\n \n   \n \n )}\n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Generate Reports\" && op.allow == true) && (\n \n Generate Reports\n \n )}\n {this.state.printReportsMode && (\n \n   \n \n OK\n \n   \n \n Cancel\n \n \n )}\n \n \n {this.state.showColumnSettings && (\n
\n \n
\n )}\n \n
\n {this.renderJobImportQueue()}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personId: state.auth.personId,\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n loginWithTeams: state.auth.loginWithTeams,\n\n jobsLoading: state.job.loading,\n jobsError: state.job.error,\n jobs: state.job.jobs,\n sampleJobs: state.job.sampleJobs,\n jobImportQueue: state.job.jobImportQueue,\n\n jobImportSessionId: state.job.jobImportSessionId,\n exportData: state.job.exportData,\n loadingExport: state.job.loadingExport,\n\n loadingPrint: state.job.loadingPrint,\n printData: state.job.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n columnDisplaySettings: state.adminPerson.columnDisplaySettings,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageJob));\n","import changeInput from \"../../../utils/changeInput\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport React, { Component } from \"react\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Col, CustomInput, Form, FormGroup, Input, Label, Row } from \"reactstrap\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"28px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nconst labelCaptionStyle = {\n fontWeight: \"bold\",\n};\n\nconst textareaStyle = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n};\n\nconst textareaStyleDisable = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n background: \"#e9ecef\",\n};\n\nconst largeContainer = {\n width: \"100%\",\n maxWidth: \"100%\",\n fontSize: \"14px\",\n};\n\nconst commonContainer = {\n fontSize: \"14px\",\n};\n\nclass ManageJobDetail extends Component {\n constructor(props) {\n super(props);\n this.state = {\n job: this.props.job,\n optionJobRole: [\n {\n label: \"Job\",\n value: \"Job\",\n },\n {\n label: \"Role\",\n value: \"Role\",\n },\n ],\n optionSeniority: [\n { label: \"Select Seniority\", value: \"\" },\n { label: \"Senior or Executive Manager\", value: \"Senior or Executive Manager\" },\n { label: \"Senior Advisor\", value: \"Senior Advisor\" },\n { label: \"Line Manager\", value: \"Line Manager\" },\n { label: \"Team Leader\", value: \"Team Leader\" },\n { label: \"Senior Employee\", value: \"Senior Employee\" },\n { label: \"Experienced Employee\", value: \"Experienced Employee\" },\n { label: \"Junior Employee\", value: \"Junior Employee\" },\n { label: \"None of the above (please comment)\", value: \"None of the above (please comment)\" },\n { label: \"Not Applicable\", value: \"Not Applicable\" },\n ],\n optionEmploymentStatus: [\n { label: \"Select Status\", value: \"\" },\n { label: \"Permanent Full-time\", value: \"Permanent Full-time\" },\n { label: \"Permanent Part-time\", value: \"Permanent Part-time\" },\n { label: \"1-2 year contract\", value: \"1-2 year contract\" },\n { label: \"2-5 year contract\", value: \"2-5 year contract\" },\n { label: \"Consultant/Contractor\", value: \"Consultant/Contractor\" },\n { label: \"Casual\", value: \"Casual\" },\n { label: \"Other (Please comment)\", value: \"Other (Please comment)\" },\n { label: \"Not Applicable\", value: \"Not Applicable\" },\n ],\n form: this.prepareFormState(),\n isFormValid: this.props.job && this.props.job.reference && this.props.job.reference != \"\" ? true : false,\n editMode: this.props.createNew ? true : false,\n isUpdating: false,\n createNewMode: this.props.createNew ? true : false,\n selectedCopyJobId: [],\n optionLanguages: [],\n optionYesOrNo: [\n {\n label: \"Yes\",\n value: true,\n },\n {\n label: \"No\",\n value: false,\n },\n ],\n vacancyOwners: this.props.personsDropdown\n ? [\n {\n value: \"Select vacancy owner\",\n label: \"Select vacancy owner\",\n },\n ...this.props.personsDropdown\n .filter((it) => !it.inactive)\n .map((person) => {\n return {\n value: person.id,\n label: `${person.firstName} ${person.lastName}`,\n };\n })\n .sort((a, b) => {\n return a.label > b.label ? 1 : -1;\n }),\n ]\n : [\n {\n value: \"Select vacancy owner\",\n label: \"Select vacancy owner\",\n },\n ],\n };\n }\n\n componentDidMount() {\n this.prepareFormState();\n\n let optionLanguages = [];\n\n if (this.props.languages) {\n optionLanguages = [\n ...this.props.languages.map((language) => {\n return {\n value: language.name,\n label: language.name,\n };\n }),\n ];\n\n this.setState({ optionLanguages });\n }\n }\n\n prepareFormState = () => {\n return {\n jobRole: {\n validation: {\n required: true,\n },\n value: this.props.job ? (this.props.job.isRole ? \"Role\" : \"Job\") : \"Role\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n name: {\n validation: {\n required: true,\n },\n value: this.props.job && this.props.job.name ? this.props.job.name : \"\",\n valid: this.props.job ? true : false,\n isValidFormat: this.props.job ? true : false,\n touched: false,\n },\n reference: {\n validation: {\n required: true,\n },\n value: this.props.job && this.props.job.reference ? this.props.job.reference : \"\",\n valid: this.props.job && this.props.job.reference ? true : false,\n isValidFormat: this.props.job && this.props.job.reference ? true : false,\n touched: false,\n },\n customerReference: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.customerReference ? this.props.job.customerReference : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n reportingTo: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.reportingTo ? this.props.job.reportingTo : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n seniority: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.seniority ? this.props.job.seniority : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n employmentStatus: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.employmentStatus ? this.props.job.employmentStatus : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n department: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.department ? this.props.job.department : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.location ? this.props.job.location : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n fte: {\n validation: {\n isFte: true,\n required: true,\n },\n value: this.props.job && this.props.job.fte ? (typeof this.props.job.fte == \"number\" ? this.props.job.fte.toFixed(1) : this.props.job.fte) : \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n purpose: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.purpose ? this.props.job.purpose : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n keyAccountibilities: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.keyAccountibilities ? this.props.job.keyAccountibilities : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n keyProcesses: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.keyProcesses ? this.props.job.keyProcesses : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n educationRequirements: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.educationRequirements ? this.props.job.educationRequirements : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n qualificationRequirements: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.qualificationRequirements ? this.props.job.qualificationRequirements : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n otherRequirements: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.otherRequirements ? this.props.job.otherRequirements : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n language: {\n validation: {\n required: true,\n },\n value: this.props.job && this.props.job.language ? this.props.job.language : \"English\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n languageId: {\n validation: {\n required: true,\n },\n value: this.props.job && this.props.job.languageId ? this.props.job.languageId : this.props.languages && this.props.languages.find((it) => it.name == \"English\") ? this.props.languages.find((it) => it.name == \"English\").id : null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n showAsRoleBasedSurveyInSelfRegistration: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.showAsRoleBasedSurveyInSelfRegistration != null ? (this.props.job.showAsRoleBasedSurveyInSelfRegistration == true || this.props.job.showAsRoleBasedSurveyInSelfRegistration == \"true\" ? true : false) : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n showAsVacancy: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.showAsVacancy != null ? (this.props.job.showAsVacancy == true || this.props.job.showAsVacancy == \"true\" ? true : false) : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n vacancyOwner: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.vacancyOwner ? this.props.job.vacancyOwner : \"-\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n vacancyOwnerId: {\n validation: {\n required: false,\n },\n value: this.props.job && this.props.job.vacancyOwnerId ? this.props.job.vacancyOwnerId : \"-\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n };\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.job !== this.props.job) {\n this.setState({ job: this.props.job });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n\n if (prevProps.updateSuccess !== this.props.updateSuccess) {\n if (this.props.updateSuccess) {\n this.setState({ editMode: false, form: this.prepareFormState() });\n }\n }\n }\n\n handleChange = (event) => {\n const { vacancyOwners } = this.state;\n const languages = this.props.languages;\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"language\" && languages) {\n const language = languages.find((it) => it.name == value);\n updateState = changeInput(updateState.form, \"languageId\", language ? language.id : null);\n }\n\n if (name == \"vacancyOwnerId\") {\n if (value && value != \"Select vacancy owner\") {\n const person = vacancyOwners.find((it) => it.value == value);\n if (person) {\n updateState = changeInput(updateState.form, \"vacancyOwner\", person.label);\n }\n } else {\n updateState = changeInput(updateState.form, \"vacancyOwner\", \"Select vacancy owner\");\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeShowEdit = () => {\n const editMode = this.state.editMode;\n\n if (editMode) {\n this.setState({ form: this.prepareFormState(), isFormValid: this.props.job && this.props.job.reference && this.props.job.reference != \"\" ? true : false });\n }\n\n this.setState({ editMode: !editMode });\n };\n\n handleSave = () => {\n const { form, selectedCopyJobId } = this.state;\n\n let job = this.state.job;\n\n if (job != null) {\n job.isRole = form.jobRole.value == \"Role\" ? true : false;\n job.reference = form.reference.value;\n job.customerReference = form.customerReference.value;\n\n job.reportingTo = form.reportingTo.value;\n job.seniority = form.seniority.value;\n job.employmentStatus = form.employmentStatus.value;\n job.department = form.department.value;\n job.location = form.location.value;\n job.fte = form.fte.value;\n job.purpose = form.purpose.value;\n job.keyAccountibilities = form.keyAccountibilities.value;\n job.keyProcesses = form.keyProcesses.value;\n job.educationRequirements = form.educationRequirements.value;\n job.qualificationRequirements = form.qualificationRequirements.value;\n job.otherRequirements = form.otherRequirements.value;\n job.language = form.language.value;\n job.languageId = form.languageId.value;\n job.showAsRoleBasedSurveyInSelfRegistration = form.showAsRoleBasedSurveyInSelfRegistration.value == true || form.showAsRoleBasedSurveyInSelfRegistration.value == \"true\" ? true : false;\n job.showAsVacancy = form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\" ? true : false;\n job.vacancyOwnerId = (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId.value ? (form.vacancyOwnerId.value != \"Select vacancny owner\" && form.vacancyOwnerId.value != \"-\" ? form.vacancyOwnerId.value : null) : null;\n job.vacancyOwner = (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwner.value ? (form.vacancyOwner.value != \"Select vacancny owner\" && form.vacancyOwner.value != \"-\" ? form.vacancyOwner.value : null) : null;\n\n this.props.handleSaveJobDetailUpdate(job);\n } else {\n job = {\n name: form.name.value,\n description: form.name.value,\n isRole: form.jobRole.value == \"Role\" ? true : false,\n reference: form.reference.value,\n customerReference: form.customerReference.value,\n reportingTo: form.reportingTo.value,\n seniority: form.seniority.value,\n employmentStatus: form.employmentStatus.value,\n department: form.department.value,\n location: form.location.value,\n fte: form.fte.value,\n purpose: form.purpose.value,\n keyAccountibilities: form.keyAccountibilities.value,\n keyProcesses: form.keyProcesses.value,\n educationRequirements: form.educationRequirements.value,\n qualificationRequirements: form.qualificationRequirements.value,\n otherRequirements: form.otherRequirements.value,\n isHidden: true,\n isCandidateJob: false,\n inActive: false,\n copiedJobIds: selectedCopyJobId != null && selectedCopyJobId.length > 0 ? [...selectedCopyJobId] : [],\n language: form.language.value,\n languageId: form.languageId.value,\n showAsRoleBasedSurveyInSelfRegistration: form.showAsRoleBasedSurveyInSelfRegistration.value == true || form.showAsRoleBasedSurveyInSelfRegistration.value == \"true\" ? true : false,\n showAsVacancy: form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\" ? true : false,\n vacancyOwnerId: (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwnerId.value ? (form.vacancyOwnerId.value != \"Select vacancny owner\" && form.vacancyOwnerId.value != \"-\" ? form.vacancyOwnerId.value : null) : null,\n vacancyOwner: (form.showAsVacancy.value == true || form.showAsVacancy.value == \"true\") && form.vacancyOwner.value ? (form.vacancyOwner.value != \"Select vacancny owner\" && form.vacancyOwner.value != \"-\" ? form.vacancyOwner.value : null) : null,\n };\n\n this.props.handleSaveNewJobDetail(job);\n }\n };\n\n handleCopySkillCheckedChange = (jobId) => {\n const { selectedCopyJobId } = this.state;\n\n if (selectedCopyJobId.includes(jobId)) {\n const index = selectedCopyJobId.indexOf(jobId);\n selectedCopyJobId.splice(index, 1);\n } else {\n selectedCopyJobId.push(jobId);\n }\n\n this.setState({ selectedCopyJobId });\n };\n\n render() {\n const pathName = window.location.pathname;\n const isAdmin = pathName.includes(\"/admin\");\n const { form, editMode, createNewMode, optionJobRole, optionSeniority, optionEmploymentStatus, selectedCopyJobId, optionLanguages, optionYesOrNo } = this.state;\n\n return (\n \n \n {createNewMode && (\n \n \n

\n Create Requirement\n

\n \n
\n )}\n \n \n \n Requirement Detail\n

\n \n \n {!editMode && this.props.allowEdit && (\n \n )}\n {editMode && !createNewMode && (\n \n \n Save\n \n \n \n )}\n \n
\n
\n \n \n {!editMode ? (\n \n {/* \n \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.containerConfig && this.props.containerConfig.internalJobMarket == true && (\n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n {this.state.createNewMode && (\n \n \n \n \n {optionJobRole.map((it, key) => (\n \n ))}\n \n \n \n )}\n {this.state.createNewMode && (\n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionSeniority.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionEmploymentStatus.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionLanguages.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n {this.props.containerConfig && this.props.containerConfig.internalJobMarket == true && (\n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {this.state.vacancyOwners.map((it, key) => (\n \n ))}\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n
\n {createNewMode && (\n \n
\n \n  \n \n \n \n \n Copy skills from\n

\n \n
\n
\n \n {this.props.jobs\n .sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n .map((job, index) => {\n return (\n \n \n this.handleCopySkillCheckedChange(job.id)}\n disabled={!editMode || this.state.isUpdating}\n inline\n className=\"copy-skill-checkbox\"\n />\n \n \n );\n })}\n \n
\n \n  \n \n \n \n \n Create Requirement\n \n \n \n
\n )}\n
\n
\n );\n }\n}\n\nexport default ManageJobDetail;\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"./../../../utils/alertUtils\";\nimport ManageJobDetail from \"./ManageJobDetail\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageJobCreate extends React.Component {\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n job: null,\n jobs: [],\n jobIsUpdating: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n const fetchPersonsDropdown = this.props.personsDropdown && this.props.personsDropdown.length > 0 ? false : true;\n\n this.props.onAuth.authCheckState().then(() => {\n Promise.all([this.props.onJob.getJobs(), fetchPersonsDropdown && this.props.onPerson.getPersonsDropdown()]).then(() => {\n this.setState({\n jobs: this.props.jobs,\n personsDropdown: this.props.personsDropdown,\n loading: this.props.loading || this.props.jobsLoading || (fetchPersonsDropdown && this.props.personsLoading),\n });\n });\n });\n }\n\n handleSaveNewJobDetail = (job) => {\n this.setState({ jobIsUpdating: true });\n\n this.props.onJob.createJob(job).then(() => {\n if (!this.props.jobIsUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Create job success.\");\n this.props.history.push(`${this.props.job.id}/profile`);\n } else {\n this.setState({ jobIsUpdating: false });\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n });\n };\n\n render() {\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n jobsLoading: state.job.loading,\n jobsError: state.job.error,\n job: state.job.job,\n jobs: state.job.jobs,\n jobIsUpdating: state.job.isUpdating,\n\n languages: state.language.languages,\n containerConfig: state.config.containerConfig,\n\n personsLoading: state.adminPerson.loading,\n personsDropdown: state.adminPerson.personsDropdown,\n personsError: state.adminPerson.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageJobCreate));\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass JobFamilyDetail extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {},\n isFormValid: false,\n selectedJobFamily: this.props.selectedJobFamily,\n };\n }\n\n componentDidMount() {\n this.prepareFormState();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.selectedJobFamily !== this.props.selectedJobFamily) {\n this.setState({ selectedJobFamily: this.props.selectedJobFamily });\n }\n }\n\n prepareFormState = () => {\n const jobFamily = this.props.selectedJobFamily;\n\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: jobFamily && jobFamily.name ? jobFamily.name : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: jobFamily ? true : false,\n });\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n let { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const { form } = this.state;\n\n let jobFamily = Object.assign({}, this.props.selectedJobFamily);\n jobFamily.name = form.name.value;\n\n this.setState({ isUpdating: true });\n\n if (!this.props.selectedJobFamily) {\n this.props.onJob.createJobFamily(jobFamily).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onJob.updateJobFamily(jobFamily.id, jobFamily).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { form } = this.state;\n\n return (\n \n \n Requirement Family Detail\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.job.error,\n isUpdating: state.job.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobFamilyDetail);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { generateRandomString } from \"../../../utils/stringUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport JobFamilyDetail from \"./JobFamilyDetail\";\nimport { faPenToSquare, faPlus, faSync, faMinusCircle, faMinus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Modal, ModalBody, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nclass ManageJobFamily extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n jobs: [],\n jobFamilies: [],\n showDialogImportTs: null,\n searchProperties: [\"name\"],\n jobFamilyEntries: [],\n showLoadingPanel: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.generateRandomString = generateRandomString.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.initData();\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobs !== this.props.jobs) {\n const jobs = this.props.jobs ? this.props.jobs.filter((it) => !(it.jobFamilyId && it.jobFamilyId != \"\")).sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : null;\n this.setState({\n jobs: [...jobs],\n });\n }\n\n if (prevProps.jobFamilies !== this.props.jobFamilies) {\n const jobFamilies = this.props.jobFamilies ? this.props.jobFamilies.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [];\n\n const jobFamiliesSelected = this.state.jobFamiliesSelected;\n\n if (!(jobFamiliesSelected && jobFamiliesSelected.length > 0) && jobFamilies.length > 0) {\n jobFamilies[0].toggleSelected = true;\n const jobFamilySelectedId = jobFamilies[0].id;\n\n this.setState(\n {\n jobFamilies: [...jobFamilies],\n jobFamiliesSelected: [jobFamilySelectedId],\n },\n () => {\n this.handleSelectRow(jobFamilySelectedId);\n }\n );\n } else {\n this.setState({\n jobFamilies: [...jobFamilies],\n });\n }\n }\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n const jobFamiliesSelected = this.state.jobFamiliesSelected;\n let jobFamilySelectedId = null;\n\n if (jobFamiliesSelected && jobFamiliesSelected.length > 0) {\n jobFamilySelectedId = jobFamiliesSelected[0];\n }\n\n Promise.all([this.props.onJob.getJobs(), this.props.onJob.getJobFamilies()]).then(() => {\n const jobs = this.props.jobs ? this.props.jobs.filter((it) => !(it.jobFamilyId && it.jobFamilyId != \"\")).sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : null;\n const jobFamilies = this.props.jobFamilies ? this.props.jobFamilies.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [];\n\n if (jobFamilySelectedId) {\n if (!jobFamilies.find((it) => it.id == jobFamilySelectedId)) {\n if (jobFamilies.length > 0) {\n jobFamilySelectedId = jobFamilies[0].id;\n jobFamilies[0].toggleSelected = true;\n }\n } else {\n const jobFamily = jobFamilies.find((it) => it.id == jobFamilySelectedId);\n jobFamily.toggleSelected = true;\n }\n } else {\n if (jobFamilies.length > 0) {\n jobFamilySelectedId = jobFamilies[0].id;\n jobFamilies[0].toggleSelected = true;\n }\n }\n\n this.setState(\n {\n jobs: [...jobs],\n jobFamilies: [...jobFamilies],\n jobFamiliesSelected: jobFamilySelectedId ? [jobFamilySelectedId] : [],\n },\n () => {\n this.handleSelectRow(jobFamilySelectedId);\n }\n );\n\n this.setState({ loading: this.props.loading || this.props.jobsLoading });\n });\n };\n\n handleAddNew = () => {\n this.setState({ showDialogJobFamilyDetailTs: new Date(), selectedJobFamily: null });\n };\n\n handleOnSelect = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const jobFamilies = this.state.jobFamilies;\n const updatedData = jobFamilies.find((it) => it.id == row.id);\n\n if (!updatedData.toggleSelected) {\n jobFamilies.forEach((it) => {\n it.toggleSelected = false;\n });\n\n updatedData.toggleSelected = true;\n\n this.handleSelectRow(row.id);\n this.setState({ jobFamilies: [...jobFamilies], jobFamiliesSelected: [row.id] });\n }\n };\n\n handleAfterSearch = (searchKeyword) => {\n const { jobFamilies, searchProperties } = this.state;\n const filtered = this.filterArray(jobFamilies, searchKeyword, searchProperties);\n\n jobFamilies.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (filtered.length > 0) {\n const row = filtered[0];\n const jobFamily = jobFamilies.find((it) => it.id == row.id);\n jobFamily.toggleSelected = true;\n this.handleSelectRow(jobFamily.id);\n this.setState({ jobFamilies: [...jobFamilies], jobFamiliesSelected: [jobFamily.id] });\n } else {\n this.handleSelectRow();\n this.setState({ jobFamilies: [...jobFamilies], jobFamiliesSelected: [] });\n }\n };\n\n handleSelectRow = (jobFamilyId) => {\n const jobFamilies = this.props.jobFamilies;\n\n const { jobFamiliesSelected, jobs } = this.state;\n\n var jobFamilySelected = null;\n\n if (jobFamiliesSelected.length > 0) {\n jobFamilySelected = jobFamiliesSelected[0];\n }\n\n const selectedJobFamily = jobFamilies.find((it) => it.id == jobFamilyId);\n\n if (selectedJobFamily) {\n const jobFamilyEntries = selectedJobFamily.entries ? selectedJobFamily.entries : [];\n\n jobFamilyEntries.forEach((it) => {\n it.toggleSelected = false;\n });\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({\n jobFamilyEntries,\n jobFamilyEntriesDeleteSelected: [],\n jobs: jobs.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n jobsSelected: [],\n });\n }\n };\n\n handleEditJobFamily = (jobFamily) => {\n this.setState({ showDialogJobFamilyDetailTs: new Date(), selectedJobFamily: jobFamily });\n };\n\n handleDeleteJobFamily = (jobFamily) => {\n if (window.confirm(\"Are you sure want to delete the job family?\")) {\n this.setState({ isUpdating: true, showLoadingPanel: true, loadingPanelHeader: \"Delete requirement family\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onJob.deleteJobFamily(jobFamily.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n let jobFamilySelectedId = null;\n const jobs = this.props.jobs ? this.props.jobs.filter((it) => !(it.jobFamilyId && it.jobFamilyId != \"\")).sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : null;\n\n jobs.forEach((it) => {\n it.toggleSelected = false;\n });\n\n const jobFamilies = this.props.jobFamilies ? this.props.jobFamilies.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [];\n if (jobFamilies.length > 0) {\n jobFamilySelectedId = jobFamilies[0].id;\n jobFamilies[0].toggleSelected = true;\n }\n\n this.setState(\n {\n jobs: [...jobs],\n jobFamilies: jobFamilies,\n jobFamiliesSelected: jobFamilySelectedId ? [jobFamilySelectedId] : [],\n jobFamilyEntries: [],\n },\n () => {\n this.handleSelectRow(jobFamilySelectedId);\n }\n );\n\n this.generateAlert(\"success\", \"Requirement Family Deleted.\");\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating, showLoadingPanel: this.props.isUpdating });\n });\n }\n };\n\n handleOnSelectDeleteEntry = (row) => {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Requirement Families\");\n const allowEdit = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? true : false;\n\n if (this.state.isUpdating || !allowEdit) {\n return false;\n }\n\n const { jobFamilyEntries } = this.state;\n let jobFamilyEntriesDeleteSelected = this.state.jobFamilyEntriesDeleteSelected;\n\n if (jobFamilyEntriesDeleteSelected) {\n const jobFamilyEntry = jobFamilyEntries.find((it) => it.id == row.id);\n if (jobFamilyEntriesDeleteSelected.find((it) => it == row.jobId)) {\n jobFamilyEntry.toggleSelected = false;\n\n const jobFamilyEntryDeleteSelected = jobFamilyEntriesDeleteSelected.find((it) => it == row.jobId);\n var index = jobFamilyEntriesDeleteSelected.indexOf(jobFamilyEntryDeleteSelected);\n if (index !== -1) {\n jobFamilyEntriesDeleteSelected.splice(index, 1);\n }\n } else {\n jobFamilyEntry.toggleSelected = true;\n jobFamilyEntriesDeleteSelected = [...jobFamilyEntriesDeleteSelected, row.jobId];\n }\n } else {\n const jobFamilyEntry = jobFamilyEntries.find((it) => it.id == row.id);\n jobFamilyEntry.toggleSelected = true;\n jobFamilyEntriesDeleteSelected = [jobFamilyEntry.jobId];\n }\n\n this.setState({ jobFamilyEntries: [...jobFamilyEntries], jobFamilyEntriesDeleteSelected: [...jobFamilyEntriesDeleteSelected] });\n };\n\n handleDeleteJobFamilyEntries = () => {\n const jobFamilies = this.props.jobFamilies;\n const { jobFamiliesSelected, jobFamilyEntriesDeleteSelected } = this.state;\n let jobFamiliySelectedId = null;\n\n if (jobFamiliesSelected && jobFamiliesSelected.length > 0) {\n jobFamiliySelectedId = jobFamiliesSelected[0];\n }\n\n const selectedJobFamily = jobFamilies.find((it) => it.id == jobFamiliySelectedId);\n\n if (selectedJobFamily) {\n this.setState({ isUpdating: true, showLoadingPanel: true, loadingPanelHeader: \"Delete requirement family entries\", loadingPanelBody: \"Please wait...\" });\n const deletedJobIds = [...jobFamilyEntriesDeleteSelected];\n\n this.props.onJob.updateJobFamilyDeleteEntries(selectedJobFamily.id, deletedJobIds).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n this.setState(\n {\n jobFamilies: this.props.jobFamilies ? this.props.jobFamilies.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [],\n jobFamilyEntriesDeleteSelected: [],\n },\n () => {\n this.handleSelectRow(selectedJobFamily.id);\n }\n );\n\n this.generateAlert(\"success\", \"Requirement Family Entries Deleted.\");\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating, showLoadingPanel: this.props.isUpdating });\n });\n }\n };\n\n handleOnSelectJob = (row) => {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Requirement Families\");\n const allowEdit = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? true : false;\n\n if (this.state.isUpdating || !allowEdit) {\n return false;\n }\n\n const { jobs } = this.state;\n let jobsSelected = this.state.jobsSelected;\n\n if (jobsSelected) {\n const job = jobs.find((it) => it.id == row.id);\n if (jobsSelected.find((it) => it == row.id)) {\n job.toggleSelected = false;\n\n const jobSelected = jobsSelected.find((it) => it == row.id);\n var index = jobsSelected.indexOf(jobSelected);\n if (index !== -1) {\n jobsSelected.splice(index, 1);\n }\n } else {\n job.toggleSelected = true;\n jobsSelected = [...jobsSelected, row.id];\n }\n } else {\n const job = jobs.find((it) => it.id == row.id);\n job.toggleSelected = true;\n jobsSelected = [row.id];\n }\n\n this.setState({ jobs: [...jobs.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))], jobsSelected: [...jobsSelected] });\n };\n\n handleAddJobFamilyEntries = () => {\n const jobFamilies = this.props.jobFamilies;\n const { jobFamiliesSelected, jobsSelected } = this.state;\n let jobFamiliySelectedId = null;\n\n if (jobFamiliesSelected && jobFamiliesSelected.length > 0) {\n jobFamiliySelectedId = jobFamiliesSelected[0];\n }\n\n const selectedJobFamily = jobFamilies.find((it) => it.id == jobFamiliySelectedId);\n\n if (selectedJobFamily) {\n this.setState({ isUpdating: true, showLoadingPanel: true, loadingPanelHeader: \"Add requirement family entries\", loadingPanelBody: \"Please wait...\" });\n const addedJobIds = [...jobsSelected];\n\n this.props.onJob.updateJobFamilyAddEntries(selectedJobFamily.id, addedJobIds).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.jobsError) {\n this.setState(\n {\n jobFamilies: this.props.jobFamilies ? this.props.jobFamilies.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [],\n jobsSelected: [],\n },\n () => {\n this.handleSelectRow(selectedJobFamily.id);\n }\n );\n\n this.generateAlert(\"success\", \"Requirement Family Entries Added.\");\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating, showLoadingPanel: this.props.isUpdating });\n });\n }\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Requirement Families\");\n const allowAdd = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Add\" && op.allow == true) ? true : false;\n const allowEdit = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? true : false;\n const allowDelete = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) ? true : false;\n\n const handleOnSelect = this.handleOnSelect;\n const handleEditJobFamily = this.handleEditJobFamily;\n const handleDeleteJobFamily = this.handleDeleteJobFamily;\n\n const handleOnSelectDeleteEntry = this.handleOnSelectDeleteEntry;\n const handleOnSelectJob = this.handleOnSelectJob;\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"20%\",\n style: { cursor: \"pointer\" },\n format: function (row) {\n return (\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n handleEditJobFamily(row)} />\n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) && (\n \n handleDeleteJobFamily(row)} />\n \n )}\n
\n );\n },\n omit: !allowEdit && !allowDelete,\n },\n {\n id: \"name\",\n name: \"Job Family\",\n selector: (row) => row.name,\n sortable: false,\n width: allowEdit || allowDelete ? \"80%\" : \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row) {\n return (\n
handleOnSelect(row)}>\n {`${row.name}`}\n
\n );\n },\n },\n ];\n\n const columnsEntries = [\n {\n id: \"jobId\",\n name: \"JobId\",\n selector: (row) => row.jobId,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row) {\n return (\n
handleOnSelectDeleteEntry(row)}>\n \n {row.jobName}\n {row.jobReference && row.jobReference != \"\" ? (\n \n
\n {row.jobReference}\n
\n ) : (\n \"\"\n )}\n
\n
\n );\n },\n },\n ];\n\n const columnsJob = [\n {\n id: \"id\",\n name: \"id\",\n selector: (row) => row.id,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row) {\n return (\n
handleOnSelectJob(row)}>\n \n {row.name}\n {row.reference && row.reference != \"\" ? (\n \n
\n {row.reference}\n
\n ) : (\n \"\"\n )}\n
\n
\n );\n },\n },\n ];\n\n return (\n \n \n {this.renderLoadingPanel()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n \n Refresh\n \n   \n {allowAdd && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n

\n Requirement Families\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel1 });\n this.handleAfterSearch(searchKeywordLevel1);\n }}\n >\n \n \n
\n \n
\n
\n \n \n

\n Requirement Entry\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel3 });\n }}\n >\n \n \n
\n \n
\n
\n {allowEdit && (\n 0) || this.state.isUpdating}\n >\n \n Delete Entries\n \n \n \n \n \n )}\n \n \n

\n Select requirement :\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel2 });\n }}\n >\n \n \n
\n \n
\n
\n {allowEdit && (\n 0 && this.state.jobsSelected && this.state.jobsSelected.length > 0) || this.state.isUpdating}\n >\n \n Add Entries\n \n \n \n \n \n )}\n \n
\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n jobsLoading: state.job.loading,\n jobsError: state.job.error,\n jobs: state.job.jobs,\n jobFamilies: state.job.jobFamilies,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageJobFamily));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass CategoryAPI {\n static getExtraFrameworkLevels() {\n return axios\n .get(`/categories/extraFrameworkLevels`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getExtraFrameworkCapabilities() {\n return axios\n .get(`/categories/extraFrameworkCapabilities`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getCategories(includeAccountAttributes, languageId) {\n return axios\n .get(`/categories?includeAccountAttributes=${includeAccountAttributes ? \"true\" : \"false\"}${languageId ? `&languageId=${languageId}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addSkillAttribute(categoryId, subCategoryId, skillId, attribute) {\n return axios\n .post(`/categories/${categoryId}/${subCategoryId}/${skillId}/attributes`, attribute)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateSkillAttribute(categoryId, subCategoryId, skillId, attributeId, attribute) {\n return axios\n .put(`/categories/${categoryId}/${subCategoryId}/${skillId}/attributes/${attributeId}`, attribute)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteSkillAttribute(categoryId, subCategoryId, skillId, attributeId) {\n return axios\n .delete(`/categories/${categoryId}/${subCategoryId}/${skillId}/attributes/${attributeId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateSkillIsHidden(categoryId, subCategoryId, skillId, isHidden) {\n return axios\n .post(`/categories/${categoryId}/${subCategoryId}/${skillId}/updateIsHidden?isHidden=${isHidden ? true : false}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportSkillsHiddenDataExcel() {\n return axios\n .get(`/categories/exportskillshidden`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importSkillsHiddenDataExcel(skillsHiddenData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n body.append(\"skillsHiddenData\", skillsHiddenData);\n\n return axios\n .post(`/categories/importskillsHidden`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportSkillAttributesDataExcel() {\n return axios\n .get(`/categories/exportskillattributes`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportSkillAttributesDataExcelTemplate() {\n return axios\n .get(`/categories/exportskillattributestemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importAttributesDataExcel(attributesData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n attributesData.forEach((file) => {\n body.append(\"attributesData\", file);\n });\n\n return axios\n .post(`/categories/importskillattributes`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default CategoryAPI;\n","import CategoryAPI from \"./../../common/api/service/CategoryService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getExtraFrameworkCapabilitiesStart = () => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_START,\n };\n};\n\nexport const getExtraFrameworkCapabilitiesSuccess = (extraFrameworkCapabilities) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_SUCCESS,\n extraFrameworkCapabilities,\n };\n};\n\nexport const getExtraFrameworkCapabilitiesFail = (error) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_CAPABILITIES_FAIL,\n error: error,\n };\n};\n\nexport const getExtraFrameworkCapabilities = () => {\n return (dispatch) => {\n dispatch(getExtraFrameworkCapabilitiesStart());\n\n return CategoryAPI.getExtraFrameworkCapabilities()\n .then((res) => {\n if (res) {\n dispatch(getExtraFrameworkCapabilitiesSuccess(res));\n } else {\n dispatch(getExtraFrameworkCapabilitiesFail(res));\n }\n })\n .catch((err) => {\n dispatch(getExtraFrameworkCapabilitiesFail(err));\n });\n };\n};\n\nexport const getExtraFrameworkLevelsStart = () => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_START,\n };\n};\n\nexport const getExtraFrameworkLevelsSuccess = (extraFrameworkLevels) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_SUCCESS,\n extraFrameworkLevels,\n };\n};\n\nexport const getExtraFrameworkLevelsFail = (error) => {\n return {\n type: actionTypes.GET_EXTRAFRAMEWORK_LEVELS_FAIL,\n error: error,\n };\n};\n\nexport const getExtraFrameworkLevels = () => {\n return (dispatch) => {\n dispatch(getExtraFrameworkLevelsStart());\n\n return CategoryAPI.getExtraFrameworkLevels()\n .then((res) => {\n if (res) {\n dispatch(getExtraFrameworkLevelsSuccess(res));\n } else {\n dispatch(getExtraFrameworkLevelsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getExtraFrameworkLevelsFail(err));\n });\n };\n};\n\nexport const getCategoriesStart = () => {\n return {\n type: actionTypes.GET_CATEGORIES_START,\n };\n};\n\nexport const getCategoriesSuccess = (categories) => {\n return {\n type: actionTypes.GET_CATEGORIES_SUCCESS,\n categories,\n };\n};\n\nexport const getCategoriesFail = (error) => {\n return {\n type: actionTypes.GET_CATEGORIES_FAIL,\n error: error,\n };\n};\n\nexport const getCategories = (includeAccountAttributes, languageId) => {\n return (dispatch) => {\n dispatch(getCategoriesStart());\n\n return CategoryAPI.getCategories(includeAccountAttributes, languageId)\n .then((res) => {\n if (res) {\n dispatch(getCategoriesSuccess(res));\n } else {\n dispatch(getCategoriesFail(res));\n }\n })\n .catch((err) => {\n dispatch(getCategoriesFail(err));\n });\n };\n};\n\nexport const addSkillAttributeStart = () => {\n return {\n type: actionTypes.ADD_SKILL_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const addSkillAttributeSuccess = (categoryId, subCategoryId, skillId, addedAttribute) => {\n return {\n type: actionTypes.ADD_SKILL_ATTRIBUTE_DATA_SUCCESS,\n categoryId,\n subCategoryId,\n skillId,\n addedAttribute,\n };\n};\n\nexport const addSkillAttributeFail = (error) => {\n return {\n type: actionTypes.ADD_SKILL_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const addSkillAttribute = (categoryId, subCategoryId, skillId, attribute) => {\n return (dispatch) => {\n dispatch(addSkillAttributeStart());\n\n return CategoryAPI.addSkillAttribute(categoryId, subCategoryId, skillId, attribute)\n .then((res) => {\n if (res) {\n dispatch(addSkillAttributeSuccess(categoryId, subCategoryId, skillId, res));\n } else {\n dispatch(addSkillAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(addSkillAttributeFail(err));\n });\n };\n};\n\nexport const updateSkillAttributeStart = () => {\n return {\n type: actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const updateSkillAttributeSuccess = (categoryId, subCategoryId, skillId, updatedAttribute) => {\n return {\n type: actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_SUCCESS,\n categoryId,\n subCategoryId,\n skillId,\n updatedAttribute,\n };\n};\n\nexport const updateSkillAttributeFail = (error) => {\n return {\n type: actionTypes.UPDATE_SKILL_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const updateSkillAttribute = (categoryId, subCategoryId, skillId, attributeId, attribute) => {\n return (dispatch) => {\n dispatch(updateSkillAttributeStart());\n\n return CategoryAPI.updateSkillAttribute(categoryId, subCategoryId, skillId, attributeId, attribute)\n .then((res) => {\n if (res) {\n dispatch(updateSkillAttributeSuccess(categoryId, subCategoryId, skillId, res));\n } else {\n dispatch(updateSkillAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateSkillAttributeFail(err));\n });\n };\n};\n\nexport const deleteSkillAttributeStart = () => {\n return {\n type: actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const deleteSkillAttributeSuccess = (categoryId, subCategoryId, skillId, deletedAttributeId) => {\n return {\n type: actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_SUCCESS,\n categoryId,\n subCategoryId,\n skillId,\n deletedAttributeId,\n };\n};\n\nexport const deleteSkillAttributeFail = (error) => {\n return {\n type: actionTypes.DELETE_SKILL_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const deleteSkillAttribute = (categoryId, subCategoryId, skillId, attributeId) => {\n return (dispatch) => {\n dispatch(deleteSkillAttributeStart());\n\n return CategoryAPI.deleteSkillAttribute(categoryId, subCategoryId, skillId, attributeId)\n .then((res) => {\n if (res) {\n dispatch(deleteSkillAttributeSuccess(categoryId, subCategoryId, skillId, attributeId));\n } else {\n dispatch(deleteSkillAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(deleteSkillAttributeFail(err));\n });\n };\n};\n\nexport const updateSkillSetIsHiddenStart = () => {\n return {\n type: actionTypes.UPDATE_SKILL_SET_ISHIDDEN_START,\n };\n};\n\nexport const updateSkillSetIsHiddenSuccess = (categoryId, subCategoryId, skillId, isHidden) => {\n return {\n type: actionTypes.UPDATE_SKILL_SET_ISHIDDEN_SUCCESS,\n categoryId,\n subCategoryId,\n skillId,\n isHidden,\n };\n};\n\nexport const updateSkillSetIsHiddenFail = (error) => {\n return {\n type: actionTypes.UPDATE_SKILL_SET_ISHIDDEN_FAIL,\n error: error,\n };\n};\n\nexport const updateSkillSetIsHidden = (categoryId, subCategoryId, skillId, isHidden) => {\n return (dispatch) => {\n dispatch(updateSkillSetIsHiddenStart());\n\n return CategoryAPI.updateSkillIsHidden(categoryId, subCategoryId, skillId, isHidden)\n .then((res) => {\n if (res) {\n dispatch(updateSkillSetIsHiddenSuccess(categoryId, subCategoryId, skillId, isHidden));\n } else {\n dispatch(updateSkillSetIsHiddenFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateSkillSetIsHiddenFail(err));\n });\n };\n};\n\nexport const exportSkillAttributesDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_START,\n };\n};\n\nexport const exportSkillAttributesDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportSkillAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_SKILL_ATTRIBUTES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportSkillAttributesDataExcel = () => {\n return (dispatch) => {\n dispatch(exportSkillAttributesDataExcelStart());\n\n return CategoryAPI.exportSkillAttributesDataExcel()\n .then((res) => {\n dispatch(exportSkillAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportSkillAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const exportSkillAttributesDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportSkillAttributesDataExcelStart());\n\n return CategoryAPI.exportSkillAttributesDataExcelTemplate()\n .then((res) => {\n dispatch(exportSkillAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportSkillAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const importSkillAttributesDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_START,\n };\n};\n\nexport const importSkillAttributesDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_SUCCESS,\n };\n};\n\nexport const importSkillAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_SKILL_ATTRIBUTES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importSkillAttributesDataExcel = (attributesData) => {\n return (dispatch) => {\n dispatch(importSkillAttributesDataExcelStart());\n\n return CategoryAPI.importAttributesDataExcel(attributesData)\n .then((res) => {\n dispatch(importSkillAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importSkillAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const exportSkillsHiddenDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_SKILLS_HIDDEN_DATA_START,\n };\n};\n\nexport const exportSkillsHiddenDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_SKILLS_HIDDEN_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportSkillsHiddenDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_SKILLS_HIDDEN_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportSkillsHiddenDataExcel = () => {\n return (dispatch) => {\n dispatch(exportSkillsHiddenDataExcelStart());\n\n return CategoryAPI.exportSkillsHiddenDataExcel()\n .then((res) => {\n dispatch(exportSkillsHiddenDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportSkillsHiddenDataExcelFail(err));\n });\n };\n};\n\nexport const importSkillsHiddenDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_SKILLS_HIDDEN_DATA_START,\n };\n};\n\nexport const importSkillsHiddenDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_SKILLS_HIDDEN_DATA_SUCCESS,\n };\n};\n\nexport const importSkillsHiddenDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_SKILLS_HIDDEN_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importSkillsHiddenDataExcel = (skillsHiddenData) => {\n return (dispatch) => {\n dispatch(importSkillsHiddenDataExcelStart());\n\n return CategoryAPI.importSkillsHiddenDataExcel(skillsHiddenData)\n .then((res) => {\n dispatch(importSkillsHiddenDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importSkillsHiddenDataExcelFail(err));\n });\n };\n};","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass LorAPI {\n static getLors() {\n return axios\n .get(`/lors`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateLor(id, lor) {\n return axios\n .put(`/lors/${id}`, lor)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateLorIsHidden(id, isHidden) {\n return axios\n .post(`/lors/${id}/updateIsHidden?isHidden=${isHidden ? true : false}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateLorOptional(id, optional) {\n return axios\n .post(`/lors/${id}/updateOptional?optional=${optional ? true : false}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static addLorAttribute(lorId, attribute) {\n return axios\n .post(`/lors/${lorId}/attributes`, attribute)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateLorAttribute(lorId, attributeId, attribute) {\n return axios\n .put(`/lors/${lorId}/attributes/${attributeId}`, attribute)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteLorAttribute(lorId, attributeId) {\n return axios\n .delete(`/lors/${lorId}/attributes/${attributeId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportLorAttributesDataExcel() {\n return axios\n .get(`/lors/exportlorattributes`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportLorAttributesDataExcelTemplate() {\n return axios\n .get(`/lors/exportlorattributestemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importLorAttributesDataExcel(attributesData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n attributesData.forEach((file) => {\n body.append(\"attributesData\", file);\n });\n\n return axios\n .post(`/lors/importlorattributes`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default LorAPI;\n","import LorAPI from \"./../../common/api/service/LorService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getLorsStart = () => {\n return {\n type: actionTypes.GET_LORS_START,\n };\n};\n\nexport const getLorsSuccess = (lors) => {\n return {\n type: actionTypes.GET_LORS_SUCCESS,\n lors,\n };\n};\n\nexport const getLorsFail = (error) => {\n return {\n type: actionTypes.GET_LORS_FAIL,\n error: error,\n };\n};\n\nexport const getLors = () => {\n return (dispatch) => {\n dispatch(getLorsStart());\n\n return LorAPI.getLors()\n .then((res) => {\n if (res) {\n dispatch(getLorsSuccess(res));\n } else {\n dispatch(getLorsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getLorsFail(err));\n });\n };\n};\n\nexport const updateLorStart = () => {\n return {\n type: actionTypes.UPDATE_LOR_START,\n };\n};\n\nexport const updateLorSuccess = (lor) => {\n return {\n type: actionTypes.UPDATE_LOR_SUCCESS,\n lor,\n };\n};\n\nexport const updateLorFail = (error) => {\n return {\n type: actionTypes.UPDATE_LOR_FAIL,\n error: error,\n };\n};\n\nexport const updateLor = (id, lor) => {\n return (dispatch) => {\n dispatch(updateLorStart());\n\n return LorAPI.updateLor(id, lor)\n .then((res) => {\n if (res) {\n dispatch(updateLorSuccess(res));\n } else {\n dispatch(updateLorFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateLorFail(err));\n });\n };\n};\n\nexport const updateLorSetIsHiddenStart = () => {\n return {\n type: actionTypes.UPDATE_LOR_SET_ISHIDDEN_START,\n };\n};\n\nexport const updateLorSetIsHiddenSuccess = (id, isHidden) => {\n return {\n type: actionTypes.UPDATE_LOR_SET_ISHIDDEN_SUCCESS,\n id,\n isHidden,\n };\n};\n\nexport const updateLorSetOptionalSuccess = (id, optional) => {\n return {\n type: actionTypes.UPDATE_LOR_SET_OPTIONAL_SUCCESS,\n id,\n optional,\n };\n};\n\nexport const updateLorSetIsHiddenFail = (error) => {\n return {\n type: actionTypes.UPDATE_LOR_SET_ISHIDDEN_FAIL,\n error: error,\n };\n};\n\nexport const updateLorSetIsHidden = (id, isHidden) => {\n return (dispatch) => {\n dispatch(updateLorSetIsHiddenStart());\n\n return LorAPI.updateLorIsHidden(id, isHidden)\n .then((res) => {\n if (res) {\n dispatch(updateLorSetIsHiddenSuccess(id, isHidden));\n } else {\n dispatch(updateLorSetIsHiddenFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateLorSetIsHiddenFail(err));\n });\n };\n};\n\nexport const updateLorSetOptional = (id, optional) => {\n return (dispatch) => {\n dispatch(updateLorSetIsHiddenStart());\n\n return LorAPI.updateLorOptional(id, optional)\n .then((res) => {\n if (res) {\n dispatch(updateLorSetOptionalSuccess(id, optional));\n } else {\n dispatch(updateLorSetIsHiddenFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateLorSetIsHiddenFail(err));\n });\n };\n};\n\nexport const addLorAttributeStart = () => {\n return {\n type: actionTypes.ADD_LOR_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const addLorAttributeSuccess = (lorId, addedAttribute) => {\n return {\n type: actionTypes.ADD_LOR_ATTRIBUTE_DATA_SUCCESS,\n lorId,\n addedAttribute,\n };\n};\n\nexport const addLorAttributeFail = (error) => {\n return {\n type: actionTypes.ADD_LOR_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const addLorAttribute = (lorId, attribute) => {\n return (dispatch) => {\n dispatch(addLorAttributeStart());\n\n return LorAPI.addLorAttribute(lorId, attribute)\n .then((res) => {\n if (res) {\n dispatch(addLorAttributeSuccess(lorId, res));\n } else {\n dispatch(addLorAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(addLorAttributeFail(err));\n });\n };\n};\n\nexport const updateLorAttributeStart = () => {\n return {\n type: actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const updateLorAttributeSuccess = (lorId, updatedAttribute) => {\n return {\n type: actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_SUCCESS,\n lorId,\n updatedAttribute,\n };\n};\n\nexport const updateLorAttributeFail = (error) => {\n return {\n type: actionTypes.UPDATE_LOR_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const updateLorAttribute = (lorId, attributeId, attribute) => {\n return (dispatch) => {\n dispatch(updateLorAttributeStart());\n\n return LorAPI.updateLorAttribute(lorId, attributeId, attribute)\n .then((res) => {\n if (res) {\n dispatch(updateLorAttributeSuccess(lorId, res));\n } else {\n dispatch(updateLorAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateLorAttributeFail(err));\n });\n };\n};\n\nexport const deleteLorAttributeStart = () => {\n return {\n type: actionTypes.DELETE_LOR_ATTRIBUTE_DATA_START,\n };\n};\n\nexport const deleteLorAttributeSuccess = (lorId, deletedAttributeId) => {\n return {\n type: actionTypes.DELETE_LOR_ATTRIBUTE_DATA_SUCCESS,\n lorId,\n deletedAttributeId,\n };\n};\n\nexport const deleteLorAttributeFail = (error) => {\n return {\n type: actionTypes.DELETE_LOR_ATTRIBUTE_DATA_FAIL,\n error: error,\n };\n};\n\nexport const deleteLorAttribute = (lorId, attributeId) => {\n return (dispatch) => {\n dispatch(deleteLorAttributeStart());\n\n return LorAPI.deleteLorAttribute(lorId, attributeId)\n .then((res) => {\n if (res) {\n dispatch(deleteLorAttributeSuccess(lorId, attributeId));\n } else {\n dispatch(deleteLorAttributeFail(res));\n }\n })\n .catch((err) => {\n dispatch(deleteLorAttributeFail(err));\n });\n };\n};\n\nexport const exportLorAttributesDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_START,\n };\n};\n\nexport const exportLorAttributesDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportLorAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_LOR_ATTRIBUTES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportLorAttributesDataExcel = () => {\n return (dispatch) => {\n dispatch(exportLorAttributesDataExcelStart());\n\n return LorAPI.exportLorAttributesDataExcel()\n .then((res) => {\n dispatch(exportLorAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportLorAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const exportLorAttributesDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportLorAttributesDataExcelStart());\n\n return LorAPI.exportLorAttributesDataExcelTemplate()\n .then((res) => {\n dispatch(exportLorAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportLorAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const importLorAttributesDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_START,\n };\n};\n\nexport const importLorAttributesDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_SUCCESS,\n };\n};\n\nexport const importLorAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_LOR_ATTRIBUTES_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importLorAttributesDataExcel = (attributesData) => {\n return (dispatch) => {\n dispatch(importLorAttributesDataExcelStart());\n\n return LorAPI.importLorAttributesDataExcel(attributesData)\n .then((res) => {\n dispatch(importLorAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importLorAttributesDataExcelFail(err));\n });\n };\n};","import React, { Component } from \"react\";\nimport { UncontrolledAlert } from \"reactstrap\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nexport class AlertDialog extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isActive: true,\n sticky: this.props.sticky,\n };\n }\n\n componentDidMount() {\n const sticky = this.state.sticky;\n if (!sticky) {\n setTimeout(() => {\n this.setState({ isActive: false });\n }, alertAutoHideInterval);\n }\n }\n\n render() {\n const isActive = this.state.isActive;\n\n const { message, color, nowrap, className } = this.props;\n\n if (isActive) {\n return (\n \n {message}\n \n );\n } else {\n return \"\";\n }\n }\n}\n","import React, { Component } from \"react\";\nimport { Container, Table } from \"reactstrap\";\n\nclass ManageJobDetailMatches extends Component {\n constructor(props) {\n super(props);\n this.state = {\n job: this.props.job,\n isUpdating: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.job !== this.props.job) {\n this.setState({ job: this.props.job });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n }\n\n handleChange = (event) => {\n const job = this.state.job;\n const { value } = event.target;\n job.comment = value;\n\n this.setState({ job });\n };\n\n // handleSave = () => {\n // let job = this.state.job;\n // this.props.handleSaveJobNoteUpdate(job);\n // };\n\n render() {\n const job = this.props.job;\n const jobMatches = job && job.jobMatches && job.jobMatches.length > 0 ? job.jobMatches.filter((it) => it.jobType == this.props.jobType && it.personInactive == false) : [];\n\n return (\n \n \n \n {this.props.title}\n

\n \n \n \n \n \n \n \n {jobMatches.length > 0 ? (\n \n {jobMatches.map((jobMatch, index) => {\n return (\n \n \n \n \n );\n })}\n \n ) : (\n \n \n \n \n \n )}\n
NameEmail
{`${jobMatch.firstName} ${jobMatch.lastName}`}{jobMatch.email}
No persons have assigned this as their {this.props.jobType} Requirement.
\n
\n
\n );\n }\n}\n\nexport default ManageJobDetailMatches;\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport ContentTranslator from \"../../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, CustomInput, Form, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ManageJobLorAttribute extends React.Component {\n static displayName = ManageJobLorAttribute.name;\n\n constructor(props) {\n super(props);\n this.state = {\n job: this.props.job,\n attributes: this.props.lorAttributes ? [...this.props.lorAttributes] : [],\n updating: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.lorAttributes !== this.props.lorAttributes) {\n this.setState({\n attributes: this.props.lorAttributes ? [...this.props.lorAttributes] : [],\n });\n }\n }\n\n handleAttributeCheckedChange = (attributeId) => {\n let attributes = this.state.attributes;\n if (attributes && attributes.length > 0) {\n if (attributes.find((it) => it.lorAttributeId == attributeId)) {\n var attribute = attributes.find((it) => it.lorAttributeId == attributeId);\n var index = attributes.indexOf(attribute);\n if (index !== -1) {\n attributes.splice(index, 1);\n }\n } else {\n attributes.push({\n lorAttributeId: attributeId,\n });\n }\n } else {\n attributes = [\n {\n lorAttributeId: attributeId,\n },\n ];\n }\n this.setState({ attributes });\n };\n\n togleEditLorAttribute = () => {\n this.setState({\n attributes: this.props.skillAttributes ? [...this.props.skillAttributes] : [],\n });\n this.props.togleEditLorAttribute();\n };\n\n handleSaveEditAttributeClick = () => {\n const { job, attributes } = this.state;\n this.setState({ updating: true });\n this.props.onJob.updateJobLorAttributes(job.id, attributes).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Lor attributes updated\");\n this.props.updateLorAttributes(this.props.jobLorAttributes);\n }\n }\n this.setState({ updating: this.props.updating });\n });\n };\n\n render() {\n const { editedLor } = this.props;\n const attributes = this.state.attributes;\n\n if (this.props.editAttribute) {\n return (\n \n Edit Attributes\n \n
\n
\n \n \n \n \n \n {this.state.updating ? (\n \n \n \n ) : (\n \n \n it.lorAttributeId == attribute.id) ? true : false}\n label={\n attribute.link && attribute.link != \"\" && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )\n }\n onChange={() => this.handleAttributeCheckedChange(attribute.id)}\n inline\n disabled={this.props.managedPeople || !this.props.allowEdit}\n />\n \n );\n })}\n \n \n \n )}\n \n
\n \n
\n \n
\n \n {editedLor.attributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n
\n
\n
\n
\n \n {\" \"}\n {!this.props.managedPeople && this.props.allowEdit && (\n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.job.updating,\n error: state.job.error,\n jobLorAttributes: state.job.jobLorAttributes,\n contentTranslations: state.content.contentTranslations,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageJobLorAttribute);\n","import { contentTranslator } from \"../../../utils/translatorUtils\";\nimport ContentTranslator from \"../../translator/ContentTranslator\";\nimport ManageJobLorAttribute from \"./ManageJobLorAttribute\";\nimport { faComment, faEdit, faList } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Table, UncontrolledTooltip } from \"reactstrap\";\n\nconst tableBodyStyle = {\n fontSize: 11,\n fontFamily: \"IBMPlexSans\",\n};\n\nconst tdEditStyle = {\n padding: \"2px 10px\",\n};\n\nconst lorOrders = [\n { lor: \"Autonomy\", order: 1 },\n { lor: \"Influence\", order: 2 },\n { lor: \"Complexity\", order: 3 },\n { lor: \"Business Skills\", order: 4 },\n { lor: \"Knowledge\", order: 5 },\n { lor: \"Responsibility and Autonomy\", order: 1 },\n { lor: \"Complexity and Scope\", order: 2 },\n { lor: \"Skills\", order: 3 },\n];\n\nclass ManageJobLorProfile extends Component {\n constructor(props) {\n super(props);\n this.state = {\n editLorProfile: false,\n editedLor: null,\n editedLorProfile: null,\n lorProfiles: this.props.lorProfiles,\n lorAttributes: this.props.lorAttributes,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.lorProfiles !== this.props.lorProfiles) {\n this.setState({ lorProfiles: this.props.lorProfiles });\n }\n\n if (prevProps.lorAttributes !== this.props.lorAttributes) {\n this.setState({ lorAttributes: this.props.lorAttributes });\n }\n }\n\n openEditLorAttribute = (editedLor) => {\n this.setState({ editAttribute: true, editedLor });\n };\n\n togleEditLorAttribute = () => {\n const { editAttribute } = this.state;\n this.setState({ editAttribute: !editAttribute });\n };\n\n updateLorAttributes = (updatedJobLorAttributes) => {\n this.props.updateLorAttributes(updatedJobLorAttributes);\n this.setState({ editAttribute: false });\n };\n\n renderLorProfileList = (categoryIndex, category, categoryColor, lorColor) => {\n const { containerConfig, lors, showHiddenSkills } = this.props;\n const { lorProfiles } = this.state;\n\n if (lors) {\n lors.forEach((lor) => {\n const lorOrder = lorOrders.find((it) => it.lor == lor.name);\n if (lorOrder) {\n lor.order = lorOrder.order;\n } else {\n lor.order = 999;\n }\n });\n }\n\n const rows = lors\n .filter((it) => (it.category ? it.category : \"Generic Attributes\") == (category ? category : \"Generic Attributes\"))\n //.sort((a, b) => (`${a.sequence}${a.order}${a.name}` > `${b.sequence}${b.order}${b.name}` ? 1 : -1))\n .sort((a, b) => {\n if (a.sequence > b.sequence) {\n return 1;\n }\n if (a.sequence < b.sequence) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n if (a.order < b.order) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n })\n .map((lor, lorindex) => {\n const lorProfile = lorProfiles.find((x) => x.lor === lor.name);\n const lorHidden = lor.isHidden && !showHiddenSkills;\n const lorOptional = lor.optional;\n const levels = [1, 2, 3, 4, 5, 6, 7];\n\n let selectedLorAttributes = [];\n\n if (lor.attributes && lor.attributes.length > 0) {\n selectedLorAttributes = lor.attributes.filter((it) => !it.isHidden && this.state.lorAttributes.find((attribute) => it.id == attribute.lorAttributeId));\n }\n\n if (lorProfile) {\n const currLevel = lorProfile.edited ? (lorProfile.editedNumericVal ? lorProfile.editedNumericVal : 0) : lorProfile.numericVal;\n return (\n !lorHidden && (\n \n \n \n {lor.attributes && lor.attributes.length > 0 ? (\n \n \n \n {selectedLorAttributes.length > 0 && (\n \n
\n {selectedLorAttributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n \n \n {attribute.link && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )}\n {index + 1 < selectedLorAttributes.length && \", \"}\n \n \n );\n })}\n
\n )}\n \n \n this.openEditLorAttribute(lor)}\n />\n \n
\n ) : (\n \n \n \n )}\n
\n \n \n {lor && }\n \n \n {levels.map((level, levelindex) => {\n const lorLevel = lor.levels.find((x) => x.levelNumber == level);\n return (\n \n this.props.showEditSkill && containerConfig.enableClickToEditLoR && ((currLevel === level && lorOptional) || currLevel != level) && this.handleSelectLorLevel(lor, level, lorProfile)}\n >\n {currLevel === level && lorProfile.comment && }\n \n \n {lorLevel && }\n \n \n );\n })}\n {this.props.showEditSkill && (\n \n !containerConfig.enableClickToEditLoR && this.openEditLorProfile(lor, { id: lorProfile.id, value: currLevel })}\n >\n \n \n {containerConfig.enableClickToEditLoR && (\n \n Click on the level cell to select LoR level\n \n )}\n \n )}\n \n )\n );\n } else {\n return (\n !lorHidden && (\n \n \n \n \n \n \n \n \n \n {lor && }\n \n \n {levels.map((level, levelindex) => {\n const lorLevel = lor.levels.find((x) => x.levelNumber == level);\n return (\n \n this.props.showEditSkill && containerConfig.enableClickToEditLoR && this.handleSelectLorLevel(lor, level, null)}\n >\n \n {lorLevel && }\n \n \n );\n })}\n {this.props.showEditSkill && (\n \n !containerConfig.enableClickToEditLoR && this.openEditLorProfile(lor, null)}\n >\n \n \n {containerConfig.enableClickToEditLoR && (\n \n Click on the level cell to select LoR level\n \n )}\n \n )}\n \n )\n );\n }\n });\n\n return {rows};\n };\n\n openEditLorProfile = (editedLor, editedLorProfile) => {\n this.setState({ editLorProfile: true, editedLor, editedLorProfile });\n };\n\n togleEditLorProfile = () => {\n const { editLorProfile } = this.state;\n this.setState({ editLorProfile: !editLorProfile });\n };\n\n renderModalEditProfile() {\n const { editedLor, editedLorProfile } = this.state;\n\n let lorProfileElement = null;\n\n if (editedLorProfile) {\n lorProfileElement = {\n id: editedLorProfile.id,\n value: editedLorProfile.value,\n };\n }\n return (\n \n Edit Responsibility\n \n
\n
\n \n \n \n \n \n \n \n \n {editedLor &&\n editedLor.levels &&\n editedLor.levels.map((level, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n {editedLor && }\n
\n {editedLor && }\n
\n {level.levelNumber}\n \n \n \n \n null}\n onClick={() => this.handleRadioClick(level.levelNumber)}\n />\n \n
\n
\n
\n
\n \n {\" \"}\n {editedLor && editedLor.optional && editedLorProfile && editedLorProfile.value > 0 && (\n \n {\" \"}\n \n \n )}\n \n \n
\n );\n }\n\n handleRadioClick = (value) => {\n let editedLorProfile = this.state.editedLorProfile;\n\n if (editedLorProfile) {\n editedLorProfile.value = value;\n } else {\n editedLorProfile = {\n value,\n };\n }\n\n this.setState({ editedLorProfile });\n };\n\n handleClearProfileClick = () => {\n const { lorProfiles, editedLor, editedLorProfile } = this.state;\n\n let lorProfile = null;\n if (lorProfiles && editedLor.optional && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === editedLor.name));\n\n if (lorProfile) {\n if (lorProfile.id) {\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n\n lorProfile.edited = true;\n\n lorProfile.source = \"lorProfiles\";\n } else {\n lorProfile.level = null;\n lorProfile.numericVal = null;\n lorProfile.stringVal = null;\n lorProfile.labelVal = null;\n\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n\n lorProfile.source = \"lorProfiles\";\n }\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles, editLorProfile: false });\n }\n }\n\n if (!lorProfile) {\n this.setState({ editLorProfile: false });\n }\n };\n\n handleSaveEditProfileClick = () => {\n const { lors } = this.props;\n const { lorProfiles, editedLor, editedLorProfile } = this.state;\n\n const level = lors.find((it) => it.name == editedLor.name).levels.find((level) => level.levelNumber == editedLorProfile.value);\n\n let lorProfile = null;\n if (lorProfiles && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === editedLor.name));\n\n if (lorProfile) {\n if (((lorProfile.editedNumericVal || lorProfile.editedNumericVal == 0) && lorProfile.editedNumericVal != editedLorProfile.value) || (!lorProfile.editedNumericVal && lorProfile.numericVal != editedLorProfile.value)) {\n if (lorProfile.id) {\n if (lorProfile.level == level.levelNumber) {\n // Updated back to original level\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n } else {\n lorProfile.editedLevel = level.levelNumber;\n lorProfile.editedNumericVal = editedLorProfile.value;\n lorProfile.editedStringVal = level && `${level.levelNumber}- ${level.levelName}`;\n lorProfile.editedLabelVal = level && level.description;\n lorProfile.edited = true;\n }\n } else {\n lorProfile.editedLevel = level.levelNumber;\n lorProfile.editedNumericVal = editedLorProfile.value;\n lorProfile.editedStringVal = level && `${level.levelNumber}- ${level.levelName}`;\n lorProfile.editedLabelVal = level && level.description;\n lorProfile.edited = true;\n }\n\n lorProfile.source = \"lorProfiles\";\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles, editLorProfile: false });\n } else {\n this.setState({ editLorProfile: false });\n }\n }\n }\n\n if (!lorProfile && level) {\n lorProfile = {\n lor: editedLor.name,\n lorCode: editedLor.lorCode,\n level: level.levelNumber,\n numericVal: editedLorProfile.value,\n stringVal: level && `${level.levelNumber}- ${level.levelName}`,\n labelVal: level && level.description,\n editedLevel: level.levelNumber,\n editedNumericVal: editedLorProfile.value,\n editedStringVal: level && `${level.levelNumber}- ${level.levelName}`,\n editedLabelVal: level && level.description,\n edited: true,\n source: \"lorProfiles\",\n };\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles: [...lorProfiles, lorProfile], editLorProfile: false });\n }\n };\n\n handleSelectLorLevel = (lor, level, editedLorProfile) => {\n const { lors } = this.props;\n const { lorProfiles } = this.state;\n const lorLevel = lors.find((it) => it.name == lor.name).levels.find((it) => it.levelNumber == level);\n\n let lorProfile = null;\n if (lorProfiles && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === lor.name));\n\n if (lorProfile) {\n if (lorProfile.id) {\n // Update existing lor profile\n if (\n // First update\n (!lorProfile.editedNumericVal && lorProfile.numericVal != level) ||\n // Update after first update\n (lorProfile.editedNumericVal && lorProfile.editedNumericVal != level)\n ) {\n // Click on different level cell\n if (lorProfile.level == level) {\n // Updated back to original level\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n } else {\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n lorProfile.edited = true;\n }\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n } else if (\n lor.optional &&\n // First update\n ((!lorProfile.editedNumericVal && lorProfile.numericVal == level) ||\n // Update after first update\n (lorProfile.editedNumericVal && lorProfile.editedNumericVal == level))\n ) {\n // Click on same level cell, must be Optional Lor\n if (lorProfile.editedNumericVal == 0) {\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n } else {\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n }\n\n lorProfile.source = \"lorProfiles\";\n\n if (lorProfile.numericVal != lorProfile.editedNumericVal) {\n lorProfile.edited = true;\n } else {\n lorProfile.edited = false;\n }\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n }\n } else {\n // Update new selected lor profile\n if (!lorProfile.editedNumericVal || lorProfile.editedNumericVal == 0 || (lorProfile.editedNumericVal && lorProfile.editedNumericVal != level)) {\n lorProfile.level = lorLevel.levelNumber;\n lorProfile.numericVal = level;\n lorProfile.stringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.labelVal = lorLevel && lorLevel.description;\n\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n lorProfile.edited = true;\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n } else if (lorProfile.editedNumericVal && lorProfile.editedNumericVal == level) {\n lorProfile.level = null;\n lorProfile.numericVal = null;\n lorProfile.stringVal = null;\n lorProfile.labelVal = null;\n\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n }\n }\n }\n }\n\n if (!lorProfile && lorLevel) {\n lorProfile = {\n lor: lor.name,\n lorCode: lor.lorCode,\n level: lorLevel.levelNumber,\n numericVal: level,\n stringVal: lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`,\n labelVal: lorLevel && lorLevel.description,\n editedLevel: lorLevel.levelNumber,\n editedNumericVal: level,\n editedStringVal: lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`,\n editedLabelVal: lorLevel && lorLevel.description,\n edited: true,\n source: \"lorProfiles\",\n };\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles: [...lorProfiles, lorProfile] });\n }\n };\n\n render() {\n const props = this.props;\n const { lors, showHiddenSkills, authPersonId, job } = this.props;\n\n const lorCategories = [];\n\n if (lors && lors.find((it) => !it.category)) {\n lorCategories.push({\n category: \"Generic Attributes\",\n categoryColor: \"#69849c\",\n lorColor: \"#ecf0f5\",\n lors: lors.find((it) => !it.category) ? [...lors.filter((it) => !it.category)] : [],\n });\n }\n\n if (lors) {\n lors.filter((it) => it.category).forEach((lor) => {\n if (!lorCategories.find((it) => it.category == lor.category)) {\n lorCategories.push({\n category: lor.category,\n categoryColor: lor.categoryColor,\n lorColor: lor.lorColor,\n lors: lors.find((it) => it.category == lor.category) ? [...lors.filter((it) => it.category == lor.category)] : [],\n });\n }\n });\n }\n\n const allowEdit = !job.ownerId || job.ownerId == authPersonId;\n\n return (\n \n {this.renderModalEditProfile()}\n \n {lorCategories.map((lorCategory, index) => {\n const categoryHidden = !lorCategory.lors.some((lor) => !lor.isHidden) && !showHiddenSkills;\n\n return (\n \n {!categoryHidden && (\n \n \n \n \n \n \n \n \n \n \n \n \n {props.showEdit && }\n \n \n {this.renderLorProfileList(index, lorCategory.category, lorCategory.categoryColor, lorCategory.lorColor)}\n
\n {lorCategory.category == \"Generic Attributes\" ? : lorCategory.category}\n \n 1\n \n 2\n \n 3\n \n 4\n \n 5\n \n 6\n \n 7\n
\n )}\n
\n );\n })}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n authPersonId: state.auth.personId,\n };\n};\n\nconst mapDispatchToProps = () => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageJobLorProfile);\n","import { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport React, { Component } from \"react\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, Col, Form, Row } from \"reactstrap\";\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nconst labelCaptionStyle = {\n fontWeight: \"bold\",\n};\n\nconst textareaStyle = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n};\n\nconst textareaStyleDisable = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n background: \"#e9ecef\",\n};\n\nconst largeContainer = {\n width: \"100%\",\n maxWidth: \"100%\",\n fontSize: \"14px\",\n};\n\nconst commonContainer = {\n fontSize: \"14px\",\n};\n\nclass ManageJobNote extends Component {\n constructor(props) {\n super(props);\n this.state = {\n job: this.props.job,\n isUpdating: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.job !== this.props.job) {\n this.setState({ job: this.props.job });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n }\n\n handleChange = (event) => {\n const job = this.state.job;\n const { name, value } = event.target;\n job.comment = value;\n\n this.setState({ job });\n };\n\n handleSave = () => {\n let job = this.state.job;\n this.props.handleSaveJobNoteUpdate(job);\n };\n\n render() {\n const pathName = window.location.pathname;\n const isAdmin = pathName.includes(\"/admin\");\n\n return (\n \n \n \n \n \n Note\n

\n \n
\n
\n \n \n \n \n \n {this.props.allowEdit && (\n \n \n \n \n \n )}\n
\n
\n
\n );\n }\n}\n\nexport default ManageJobNote;\n","import * as jobActions from \"../../../store/actions/jobAction\";\nimport ContentTranslator from \"../../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, CustomInput, Form, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ManageJobSkillAttribute extends React.Component {\n static displayName = ManageJobSkillAttribute.name;\n\n constructor(props) {\n super(props);\n this.state = {\n job: this.props.job,\n attributes: this.props.skillAttributes ? [...this.props.skillAttributes] : [],\n updating: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.skillAttributes !== this.props.skillAttributes) {\n this.setState({\n attributes: this.props.skillAttributes ? [...this.props.skillAttributes] : [],\n });\n }\n }\n\n handleAttributeCheckedChange = (attributeId) => {\n let attributes = this.state.attributes;\n if (attributes && attributes.length > 0) {\n if (attributes.find((it) => it.skillAttributeId == attributeId)) {\n var attribute = attributes.find((it) => it.skillAttributeId == attributeId);\n var index = attributes.indexOf(attribute);\n if (index !== -1) {\n attributes.splice(index, 1);\n }\n } else {\n attributes.push({\n skillAttributeId: attributeId,\n });\n }\n } else {\n attributes = [\n {\n skillAttributeId: attributeId,\n },\n ];\n }\n this.setState({ attributes });\n };\n\n togleEditSkillAttribute = () => {\n this.setState({\n attributes: this.props.skillAttributes ? [...this.props.skillAttributes] : [],\n });\n this.props.togleEditSkillAttribute();\n };\n\n handleSaveEditAttributeClick = () => {\n const { job, attributes } = this.state;\n this.setState({ updating: true });\n\n this.props.onJob.updateJobSkillAttributes(job.id, attributes).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Skill attributes updated\");\n this.props.updateSkillAttributes(this.props.jobSkillAttributes);\n }\n }\n this.setState({ updating: this.props.updating });\n });\n };\n\n render() {\n const { editedCategory, editedSubCategory, editedSkill } = this.props;\n const attributes = this.state.attributes;\n\n if (this.props.editAttribute) {\n return (\n \n Edit Attributes\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.updating ? (\n \n \n \n ) : (\n \n \n it.skillAttributeId == attribute.id) ? true : false}\n label={\n attribute.link && attribute.link != \"\" && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )\n }\n onChange={() => this.handleAttributeCheckedChange(attribute.id)}\n inline\n disabled={this.props.managedPeople || !this.props.allowEdit}\n />\n \n );\n })}\n \n \n \n )}\n \n
\n \n
\n \n
\n \n
\n \n {editedSkill.attributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n
\n
\n
\n
\n \n {\" \"}\n {!this.props.managedPeople && this.props.allowEdit && (\n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.job.updating,\n error: state.job.error,\n jobSkillAttributes: state.job.jobSkillAttributes,\n contentTranslations: state.content.contentTranslations,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageJobSkillAttribute);\n","import { contentTranslator } from \"../../../utils/translatorUtils\";\nimport ContentTranslator from \"../../translator/ContentTranslator\";\nimport ManageJobSkillAttribute from \"./ManageJobSkillAttribute\";\nimport { faComment, faEdit, faList } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport Select from \"react-select\";\nimport { FormGroup, Button, Col, Form, Modal, ModalBody, ModalFooter, ModalHeader, Row, Table, UncontrolledTooltip } from \"reactstrap\";\n\nclass ManageJobSkillProfile extends Component {\n constructor(props) {\n super(props);\n this.state = {\n skillValueOptions: [],\n editSkill: false,\n editedCategory: null,\n editedSubCategory: null,\n editedSkill: null,\n editedSkillProfiles: [],\n skillProfiles: this.props.skillProfiles,\n skillAttributes: this.props.skillAttributes,\n editAttribute: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const skillValueOptions = [\n {\n value: \"N\",\n label: \"None\",\n numericVal: 0,\n },\n {\n value: \"P\",\n label: \"Desirable\",\n numericVal: 0.5,\n },\n {\n value: \"M\",\n label: \"Required\",\n numericVal: 1,\n },\n ];\n\n this.setState({ skillValueOptions });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.skillProfiles !== this.props.skillProfiles) {\n this.setState({ skillProfiles: this.props.skillProfiles });\n }\n\n if (prevProps.skillAttributes !== this.props.skillAttributes) {\n this.setState({ skillAttributes: this.props.skillAttributes });\n }\n }\n\n elementSkill(skillsCode, level, levels, subCategorySkillProfiles, catColour, colour, skillColour, category, subCategory) {\n const { showEditSkill } = this.props;\n\n const colFully = `${colour}`;\n const colUnmatched = `${skillColour}`;\n\n const colDesirable = `repeating-linear-gradient(90deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n\n const skillLevel = levels.filter((x) => x.level == level)[0];\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillsCode} ${level} Description`, skillLevelDescription);\n\n if (subCategorySkillProfiles.filter((x) => x.level == level).length > 0) {\n const skillProfile = subCategorySkillProfiles.find((x) => x.level == level);\n const skillVal = skillProfile && (skillProfile.editedStringVal ? skillProfile.editedStringVal : skillProfile.stringVal);\n\n return (\n \n \n {skillProfile.comment && }\n \n \n \n );\n } else {\n return (\n \n \n {skillLevel && (\n \n )}\n \n );\n }\n }\n\n elementSkillExtraFramework(skillsCode, extraFrameworkLevelId, levels, subCategorySkillProfiles, catColour, colour, skillColour, category, subCategory) {\n const { showEditSkill, isShowJobProfile } = this.props;\n\n const colFully = `${colour}`;\n const colUnmatched = `${skillColour}`;\n\n const colDesirable = `repeating-linear-gradient(90deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n\n const skillLevel = levels.filter((x) => x.extraFrameworkLevelId == extraFrameworkLevelId)[0];\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillsCode} ${extraFrameworkLevelId} Description`, skillLevelDescription);\n\n if (subCategorySkillProfiles.filter((x) => x.extraFrameworkLevelId == extraFrameworkLevelId).length > 0) {\n const skillProfile = subCategorySkillProfiles.find((x) => x.extraFrameworkLevelId == extraFrameworkLevelId);\n const skillVal = skillProfile && (skillProfile.editedStringVal ? skillProfile.editedStringVal : skillProfile.stringVal);\n\n return (\n \n \n {skillProfile.comment && }\n \n \n \n );\n } else {\n return (\n \n \n {skillLevel && (\n \n )}\n \n );\n }\n }\n\n openEditSkillProfile = (editedCategory, editedSubCategory, editedSkill, editedSkillProfiles) => {\n this.setState({ editSkill: true, editedCategory, editedSubCategory, editedSkill, editedSkillProfiles });\n };\n\n togleEditSkillProfile = () => {\n const { editSkill } = this.state;\n this.setState({ editSkill: !editSkill });\n };\n\n handleChangeSkillLevel = (skill) => {\n let editedSkillProfiles = this.state.editedSkillProfiles;\n let changedSkill = null;\n\n if (skill.id) {\n changedSkill = editedSkillProfiles.find((it) => it.id == skill.id);\n if (changedSkill) {\n changedSkill.editedStringVal = skill.value;\n }\n } else {\n changedSkill = editedSkillProfiles.find((it) => it.skillCode == skill.skillsCode && it.level == skill.skillLevel);\n if (changedSkill) {\n changedSkill.editedStringVal = skill.value;\n } else {\n const addedSkill = {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillCode: skill.skillsCode,\n level: skill.skillLevel,\n editedStringVal: skill.value,\n isExtraFramework: skill.extraFrameworkLevelId ? true : false,\n extraFrameworkLevel: skill.extraFrameworkLevel,\n extraFrameworkLevelId: skill.extraFrameworkLevelId,\n };\n\n editedSkillProfiles.push(addedSkill);\n }\n }\n\n this.setState({ editedSkillProfiles });\n };\n\n handleSaveEditProfileClick = () => {\n let { skillProfiles, editedSkillProfiles, skillValueOptions } = this.state;\n let editedProfiles = [];\n if (editedSkillProfiles.some((it) => it.editedStringVal && it.editedStringVal != it.stringVal)) {\n editedSkillProfiles\n .filter((editedSkillProfile) => editedSkillProfile.editedStringVal && editedSkillProfile.editedStringVal != editedSkillProfile.stringVal)\n .forEach((editedSkillProfile) => {\n if (editedSkillProfile.id) {\n let skillProfile = skillProfiles.find((skillProfile) => skillProfile.id == editedSkillProfile.id);\n if (skillProfile) {\n skillProfile.editedStringVal = editedSkillProfile.editedStringVal;\n skillProfile.edited = true;\n skillProfile.source = \"skillProfiles\";\n const selectedSkillValue = skillValueOptions.find((it) => it.value == editedSkillProfile.editedStringVal);\n if (selectedSkillValue) {\n skillProfile.editedNumericVal = selectedSkillValue.numericVal;\n skillProfile.editedLabelVal = selectedSkillValue.labelVal;\n }\n editedProfiles.push(skillProfile);\n }\n } else {\n const selectedSkillValue = skillValueOptions.find((it) => it.value == editedSkillProfile.editedStringVal);\n const skillProfile = {\n category: editedSkillProfile.category,\n subCategory: editedSkillProfile.subCategory,\n skill: editedSkillProfile.skill,\n skillCode: editedSkillProfile.skillCode,\n level: editedSkillProfile.level,\n isExtraFramework: editedSkillProfile.isExtraFramework,\n extraFrameworkLevel: editedSkillProfile.extraFrameworkLevel,\n extraFrameworkLevelId: editedSkillProfile.extraFrameworkLevelId,\n stringVal: editedSkillProfile.editedStringVal,\n numericVal: selectedSkillValue && selectedSkillValue.numericVal,\n labelVal: selectedSkillValue && selectedSkillValue.labelVal,\n editedStringVal: editedSkillProfile.editedStringVal,\n editedNumericVal: selectedSkillValue && selectedSkillValue.numericVal,\n editedLabelVal: selectedSkillValue && selectedSkillValue.labelVal,\n edited: true,\n source: \"skillProfiles\",\n };\n skillProfiles.push(skillProfile);\n editedProfiles.push(skillProfile);\n }\n });\n this.props.handleEditProfileSkills(editedProfiles);\n this.setState({ editSkill: false, skillProfiles: [...skillProfiles] });\n } else {\n this.setState({ editSkill: false });\n }\n };\n\n renderModalEditSkill = () => {\n const { editedCategory, editedSubCategory, editedSkill, editedSkillProfiles, skillValueOptions } = this.state;\n\n if (this.state.editSkill) {\n return (\n \n Edit Skill\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n {editedSkill && }\n \n \n \n \n \n {editedSkill &&\n editedSkill.levels &&\n editedSkill.levels.map((level, index) => {\n const skill = editedSkillProfiles.find((it) => it.skillCode == editedSkill.skillsCode && it.level == level.level);\n\n return (\n \n \n \n \n \n );\n })}\n \n
\n {editedCategory && }\n
\n {editedSubCategory && }\n
\n {editedSkill && }\n
\n {level.level}\n \n \n \n \n it.value == (skill ? (skill.editedStringVal ? skill.editedStringVal : skill.stringVal) : \"N\"))}\n menuPlacement={index == editedSkill.levels.length - 1 ? \"top\" : \"auto\"}\n onChange={(value) =>\n this.handleChangeSkillLevel(\n skill\n ? {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n id: skill.id,\n skillsCode: skill.skillCode,\n skillLevel: skill.level,\n value: value.value,\n extraFrameworkLevel: skill.level.extraFrameworkLevel,\n extraFrameworkLevelId: skill.level.extraFrameworkLevelId,\n }\n : {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n skillsCode: editedSkill.skillsCode,\n skillLevel: level.level,\n value: value.value,\n extraFrameworkLevel: level.extraFrameworkLevel,\n extraFrameworkLevelId: level.extraFrameworkLevelId,\n }\n )\n }\n options={skillValueOptions}\n />\n \n
\n
\n
\n
\n \n {\" \"}\n \n \n
\n );\n } else {\n return \"\";\n }\n };\n\n openEditSkillAttribute = (editedCategory, editedSubCategory, editedSkill) => {\n this.setState({ editAttribute: true, editedCategory, editedSubCategory, editedSkill });\n };\n\n togleEditSkillAttribute = () => {\n const { editAttribute } = this.state;\n this.setState({ editAttribute: !editAttribute });\n };\n\n updateSkillAttributes = (updatedJobSkillAttributes) => {\n this.props.updateSkillAttributes(updatedJobSkillAttributes);\n this.setState({ editAttribute: false });\n };\n\n render() {\n const { categories, showAllSkill, showHiddenSkills, showEditSkill, extraFrameworkLevels, authPersonId, job } = this.props;\n const { skillProfiles } = this.state;\n\n const allowEdit = !job.ownerId || job.ownerId == authPersonId;\n\n return (\n \n {this.renderModalEditSkill()}\n \n \n {categories.map((category, index) => {\n var emptyLevels = [];\n for (let i = extraFrameworkLevels.length + 1; i <= 7; i++) {\n emptyLevels.push(\n \n \n \n );\n }\n\n const categoryFound = skillProfiles.filter((x) => x.category == category.name).length > 0 ? true : false;\n if (categoryFound || showAllSkill || showEditSkill) {\n const categoryHasValue = skillProfiles.filter((c) => c.category == category.name && (c.stringVal !== \"N\" || c.editedStringVal)).length > 0 ? true : false;\n const catSkillProfilesCodeWithValue = skillProfiles.filter((it) => it.category == category.name && (it.stringVal !== \"N\" || it.editedStringVal)).map((skill) => skill.skillCode);\n\n const categorySkills = category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills.flatMap((skill, index) => {\n return skill;\n });\n });\n\n const checkedCatSkills = showAllSkill || showEditSkill ? categorySkills : categorySkills.filter((it) => catSkillProfilesCodeWithValue.includes(it.skillsCode));\n const categoryHidden = !checkedCatSkills.some((skill) => !skill.isHidden) && !showHiddenSkills;\n\n if (categoryHasValue || showAllSkill || showEditSkill) {\n return (\n \n \n \n \n \n \n \n {!category.isExtraFramework == true ? (\n \n \n 1\n \n \n 2\n \n \n 3\n \n \n 4\n \n \n 5\n \n \n 6\n \n \n 7\n \n \n ) : (\n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n return (\n \n \n {extraFrameworkLevel.level}\n \n \n );\n })}\n {emptyLevels}\n \n )}\n {showEditSkill && (\n \n )}\n \n \n \n {category.subCategories.map((subCategory, index) => {\n const subCategoryHasValue = skillProfiles.filter((it) => it.subCategory === subCategory.name && (it.stringVal !== \"N\" || it.editedStringVal)).length > 0 ? true : false;\n\n const subCatSkillProfilesCodeWithValue = skillProfiles.filter((it) => it.subCategory === subCategory.name && (it.stringVal !== \"N\" || it.editedStringVal)).map((skill) => skill.skillCode);\n const checkedSubCatSkills = showAllSkill || showEditSkill ? subCategory.skills : subCategory.skills.filter((it) => subCatSkillProfilesCodeWithValue.includes(it.skillsCode));\n\n const subCategoryHidden = !checkedSubCatSkills.some((skill) => !skill.isHidden) && !showHiddenSkills;\n\n if (subCategoryHasValue || showAllSkill || showEditSkill) {\n return (\n \n \n \n \n \n \n \n {subCategory.skills.map((skill, elIndex) => {\n const subCatDetailSkillProfiles = skillProfiles.filter((x) => x.skillCode === skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n\n const hasValue = subCatDetailSkillProfiles.length > 0 ? true : false;\n let selectedSkillAttributes = [];\n\n if (skill.attributes && skill.attributes.length > 0) {\n selectedSkillAttributes = skill.attributes.filter((it) => !it.isHidden && this.state.skillAttributes.find((attribute) => it.id == attribute.skillAttributeId));\n }\n\n const skillHidden = skill.isHidden && !showHiddenSkills;\n\n var emptySkillLevels = [];\n for (let i = extraFrameworkLevels.length + 1; i <= 7; i++) {\n emptySkillLevels.push(\n \n {this.elementSkillExtraFramework(skill.skillsCode, `emptyLevel${subCategory.id}${skill.id}${i}`, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n \n );\n }\n\n return (\n \n \n \n \n )}\n \n \n \n \n \n {!category.isExtraFramework == true ? (\n \n {this.elementSkill(skill.skillsCode, 1, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 2, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 3, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 4, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 5, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 6, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n {this.elementSkill(skill.skillsCode, 7, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory)}\n \n ) : (\n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n return this.elementSkillExtraFramework(skill.skillsCode, extraFrameworkLevel.id, skill.levels, subCatDetailSkillProfiles, category.colour, subCategory.colour, subCategory.skillColour, category, subCategory);\n })}\n {emptySkillLevels}\n \n )}\n {showEditSkill && (\n \n )}\n \n );\n })}\n \n );\n }\n })}\n \n \n \n \n \n );\n } else {\n return ;\n }\n } else {\n return ;\n }\n })}\n
\n \n {hasValue && skill.attributes && skill.attributes.length > 0 ? (\n \n \n \n {selectedSkillAttributes.length > 0 && (\n \n
\n {selectedSkillAttributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n \n \n {attribute.link && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )}\n {index + 1 < selectedSkillAttributes.length && \", \"}\n \n \n );\n })}\n
\n )}\n \n \n \n this.openEditSkillAttribute(\n {\n id: category.id,\n name: category.name,\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: subCategory.name,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n skill\n )\n }\n />\n \n
\n ) : (\n
\n {skill.skillsCode}\n \n it.edited).length > 0 ? \" btn-warning-edit\" : \" btnEdit-Style\"}`}\n onClick={() =>\n this.openEditSkillProfile(\n {\n id: category.id,\n name: category.name,\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: subCategory.name,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n skill,\n skillProfiles.filter((x) => x.skillCode === skill.skillsCode)\n )\n }\n >\n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n authPersonId: state.auth.personId,\n loginWithTeams: state.auth.loginWithTeams,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = () => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageJobSkillProfile);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as categoryActions from \"../../../store/actions/categoryAction\";\nimport * as contentActions from \"../../../store/actions/contentAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as lorActions from \"../../../store/actions/lorAction\";\nimport * as adminCategoryActions from \"../../../store/admin/actions/adminCategoryActions\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { AlertDialog } from \"../../AlertDialog\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../../utils/alertUtils\";\nimport { contentTranslator } from \"./../../../utils/translatorUtils\";\nimport ManageJobDetail from \"./ManageJobDetail\";\nimport ManageJobDetailMatches from \"./ManageJobDetailMatches\";\nimport ManageJobLorProfile from \"./ManageJobLorProfile\";\nimport ManageJobNote from \"./ManageJobNote\";\nimport ManageJobSkillProfile from \"./ManageJobSkillProfile\";\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport Select from \"react-select\";\nimport { Alert, Col, Container, Row, Spinner, Table } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst messageHubHostname = process.env.NODE_ENV === \"development\" ? process.env.REACT_APP_MESSAGE_HUB_ENDPOINT : \"/messagehub\";\n\nconst largeContainer = {\n width: \"100%\",\n maxWidth: \"100%\",\n fontSize: \"11px\",\n};\n\nconst commonContainer = {\n fontSize: \"11px\",\n};\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"28px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nconst FileDownload = require(\"js-file-download\");\n\nconst signalRTimerMaxCount = 300;\n\nclass ManageJobProfile extends React.Component {\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n profileUpdating: this.props.profileUpdating,\n profileUpdatingSuccess: this.props.profileUpdatingSuccess,\n profileUpdatingError: this.props.profileUpdatingError,\n udpatedSkills: this.props.udpatedSkills,\n\n error: null,\n loading: true,\n alerts: [],\n jobId: null,\n job: null,\n loadingProfile: true,\n jobLorProfiles: [],\n jobSkillProfiles: [],\n jobSkillAttributes: [],\n jobLorAttributes: [],\n showHidden: false,\n showDetail: false,\n showEdit: false,\n profileVersions: [],\n selectedProfileVersion: null,\n willCreateNewVersion: false,\n skillProfilesEdit: [],\n editCount: 0,\n jobDetailIsUpdating: false,\n jobDetailUpdateSuccess: false,\n jobDetailNoteIsUpdating: false,\n extraFrameworkLevels: [],\n signalRTimerStarted: false,\n signalRTimerCount: 0,\n isTopSkillProfileLegendInViewport: false,\n isDivAnchorInViewport: false,\n showFloatingLegend: false,\n personsDropdown: [],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener(\"scroll\", this.checkSkillProfileLegendInViewport);\n\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaProfile-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.initData();\n });\n } else {\n this.initData();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"scroll\", this.checkSkillProfileLegendInViewport);\n }\n\n checkSkillProfileLegendInViewport = () => {\n const pathName = window.location.pathname;\n const isAdmin = pathName.includes(\"/admin\");\n\n let isTopSkillProfileLegendInViewport = this.state.isTopSkillProfileLegendInViewport;\n let isDivAnchorInViewport = this.state.isDivAnchorInViewport;\n\n //get how much pixels left to scrolling our ReactElement\n if (this.topSkillProfileLegendElement && this.divAnchorElement) {\n const topLegendTop = this.topSkillProfileLegendElement.getBoundingClientRect().top;\n const divAnchorTop = this.divAnchorElement.getBoundingClientRect().top - 200;\n\n isTopSkillProfileLegendInViewport = topLegendTop <= 0 ? false : true;\n isDivAnchorInViewport = divAnchorTop <= 0 ? false : true;\n\n this.setState({ isTopSkillProfileLegendInViewport, isDivAnchorInViewport });\n this.setState({ showFloatingLegend: !isTopSkillProfileLegendInViewport && isDivAnchorInViewport ? true : false });\n\n if (this.props.updateAdminFloatingLegendStatus) {\n this.props.updateAdminFloatingLegendStatus(isAdmin && !isTopSkillProfileLegendInViewport && isDivAnchorInViewport ? true : false);\n }\n }\n };\n\n initData = () => {\n this.props.onAuth.authCheckState().then(() => {\n const {\n match: { params },\n } = this.props;\n\n var jobId = params.id;\n\n this.connectSignalR(jobId);\n\n const fetchPersonsDropdown = this.props.personsDropdown && this.props.personsDropdown.length > 0 ? false : true;\n Promise.all([this.props.onJob.getJob(jobId), this.props.onJob.getJobProfileVersions(jobId), this.props.onLor.getLors(), this.props.onCategory.getCategories(), this.props.onAdminCategory.getExtraFrameworkLevels(), fetchPersonsDropdown && this.props.onPerson.getPersonsDropdown()])\n .then(() => {\n if (!(this.props.loading || this.props.jobsLoading || this.props.lorLoading || this.props.categoryLoading)) {\n const profileVersions = this.props.profileVersions;\n let selectedProfileVersion = null;\n if (profileVersions.length > 0) {\n selectedProfileVersion = {\n version: profileVersions[0].version,\n sfiaVersion: profileVersions[0].sfiaVersion,\n };\n }\n this.setState(\n {\n jobId,\n loading: this.props.loading || this.props.jobsLoading || this.props.lorLoading || this.props.categoryLoading || (fetchPersonsDropdown && this.props.personsLoading),\n job: this.props.job,\n profileVersions: this.props.profileVersions.map((it) => {\n return {\n value: `Version ${it.version}`,\n label: `v${it.version} - ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(it.createdOn))}`,\n version: it.version,\n sfiaVersion: it.sfiaVersion,\n createdOn: it.createdOn,\n };\n }),\n selectedProfileVersion: {\n value: `Version ${this.props.profileVersions[0].version}`,\n label: `v${this.props.profileVersions[0].version} - ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(this.props.profileVersions[0].createdOn))}`,\n version: this.props.profileVersions[0].version,\n sfiaVersion: this.props.profileVersions[0].sfiaVersion,\n createdOn: this.props.profileVersions[0].createdOn,\n },\n personsDropdown: this.props.personsDropdown,\n },\n () => {\n Promise.all([\n this.props.onJob.getJobLorProfiles(jobId, selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version),\n this.props.onJob.getJobSkillProfiles(jobId, selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version),\n this.props.onJob.getJobSkillAttributes(jobId),\n this.props.onJob.getJobLorAttributes(jobId),\n ])\n .then(() => {\n if (!this.props.jobLoading && !this.props.jobError) {\n this.setState({\n jobLorProfiles: this.props.jobLorProfiles,\n jobSkillProfiles: this.props.jobSkillProfiles,\n jobSkillAttributes: this.props.jobSkillAttributes,\n jobLorAttributes: this.props.jobLorAttributes,\n });\n }\n\n this.setState({\n loadingProfile: this.props.jobLoading,\n });\n })\n .catch(() => {\n this.setState({\n loadingProfile: false,\n });\n });\n }\n );\n }\n })\n .catch(() => {\n this.setState({\n loading: false,\n });\n });\n });\n };\n\n componentWillUnmount() {\n this.disconnectSignalR();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.profileUpdating !== this.props.profileUpdating) {\n this.setState({ profileUpdating: this.props.profileUpdating });\n }\n\n if (prevProps.profileUpdatingSuccess !== this.props.profileUpdatingSuccess || prevProps.profileUpdatingError !== this.props.profileUpdatingError || prevProps.udpatedSkills !== this.props.udpatedSkills) {\n this.setState({\n profileUpdatingSuccess: this.props.profileUpdatingSuccess,\n profileUpdatingError: this.props.profileUpdatingError,\n udpatedSkills: this.props.udpatedSkills,\n });\n\n if (this.props.profileUpdatingSuccess && this.props.udpatedSkills) {\n const udpatedSkills = this.props.udpatedSkills;\n const { selectedProfileVersion, jobLorProfiles, jobSkillProfiles } = this.state;\n let profileVersions = this.state.profileVersions;\n\n const lorProfileResponses = udpatedSkills ? udpatedSkills.jobLorProfileResponses : [];\n const skillProfileResponses = udpatedSkills ? udpatedSkills.jobSkillProfileResponses : [];\n\n let version = null;\n if (lorProfileResponses.length > 0) {\n version = {\n version: lorProfileResponses[0].version,\n sfiaVersion: lorProfileResponses[0].sfiaVersion,\n createdOn: lorProfileResponses[0].createdOn,\n };\n } else if (skillProfileResponses.length > 0) {\n version = {\n version: skillProfileResponses[0].version,\n sfiaVersion: skillProfileResponses[0].sfiaVersion,\n createdOn: skillProfileResponses[0].createdOn,\n };\n }\n\n if (version.sfiaVersion != (selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null) || version.version != (selectedProfileVersion ? selectedProfileVersion.version : null)) {\n const zeroVersion = profileVersions.find((it) => it.version == 0 && it.sfiaVersion == version.sfiaVersion);\n if (zeroVersion) {\n const index = profileVersions.indexOf(zeroVersion);\n if (index !== -1) {\n profileVersions.splice(index, 1);\n }\n }\n\n this.setState({\n profileVersions: [\n {\n value: `Version ${version.version}`,\n label: `v${version.version} - ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(version.createdOn))}`,\n version: version.version,\n sfiaVersion: version.sfiaVersion,\n createdOn: version.createdOn,\n },\n ...profileVersions,\n ],\n selectedProfileVersion: {\n value: `Version ${version.version}`,\n label: `v${version.version} - ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(version.createdOn))}`,\n version: version.version,\n sfiaVersion: version.sfiaVersion,\n createdOn: version.createdOn,\n },\n jobLorProfiles: [...lorProfileResponses],\n jobSkillProfiles: [...skillProfileResponses],\n });\n } else {\n if (lorProfileResponses) {\n jobLorProfiles\n .filter((it) => it.editedNumericVal)\n .forEach((lorProfile) => {\n if (lorProfileResponses.find((lorProfileResponse) => lorProfileResponse.id === lorProfile.id)) {\n const lorProfileResponse = lorProfileResponses.find((lorProfileResponse) => lorProfileResponse.id === lorProfile.id);\n lorProfile.numericVal = lorProfileResponse.numericVal;\n lorProfile.stringVal = lorProfileResponse.stringVal;\n lorProfile.labelVal = lorProfileResponse.labelVal;\n\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = null;\n }\n });\n\n lorProfileResponses\n .filter(\n (it) =>\n !jobLorProfiles\n .map((lorProfile) => {\n return lorProfile.id;\n })\n .includes(it.id)\n )\n .forEach((lorProfile) => {\n jobLorProfiles.push(lorProfile);\n });\n\n this.setState({ jobLorProfiles: [...jobLorProfiles] });\n }\n\n if (skillProfileResponses) {\n jobSkillProfiles\n .filter((it) => it.editedNumericVal)\n .forEach((skillProfile) => {\n if (skillProfileResponses.find((skillProfileResponse) => skillProfileResponse.id === skillProfile.id || (skillProfileResponse.skillCode === skillProfile.skillCode && skillProfileResponse.level === skillProfile.level))) {\n const skillProfileResponse = skillProfileResponses.find((skillProfileResponse) => skillProfileResponse.id === skillProfile.id || (skillProfileResponse.skillCode === skillProfile.skillCode && skillProfileResponse.level === skillProfile.level));\n\n skillProfile.id = skillProfileResponse.id;\n skillProfile.numericVal = skillProfileResponse.numericVal;\n skillProfile.stringVal = skillProfileResponse.stringVal;\n skillProfile.labelVal = skillProfileResponse.labelVal;\n\n skillProfile.editedNumericVal = null;\n skillProfile.editedStringVal = null;\n skillProfile.editedLabelVal = null;\n skillProfile.edited = null;\n }\n });\n\n skillProfileResponses\n .filter(\n (it) =>\n !jobSkillProfiles\n .map((skillProfile) => {\n return skillProfile.id;\n })\n .includes(it.id)\n )\n .forEach((skillProfile) => {\n jobSkillProfiles.push(skillProfile);\n });\n\n this.setState({ jobSkillProfiles: [...jobSkillProfiles] });\n }\n }\n }\n\n if (this.props.profileUpdatingError) {\n this.generateAlert(\"danger\", this.props.profileUpdatingError);\n }\n\n if (this.props.profileUpdatingSuccess || this.props.profileUpdatingError) {\n setTimeout(() => {\n this.props.onJob.clearUpdateJobSkillProfiles();\n }, alertAutoHideInterval);\n }\n }\n }\n\n connectSignalR = (jobId) => {\n if (!this.connection) {\n this.connection = new HubConnectionBuilder().withUrl(messageHubHostname).build();\n\n this.connection.on(`UpdateJobProfilesNotification${jobId}`, (response) => {\n console.log(\"response\", response);\n if (response.action == \"UpdateJobProfiles\") {\n if (response.status == \"Success\") {\n let udpatedSkills = response.data;\n this.props.onJob.updateJobSkillProfilesSuccess(udpatedSkills);\n } else {\n this.props.onJob.updateJobSkillProfilesFail(response.message);\n }\n }\n });\n\n this.connection.start().catch((err) => console.error(err.toString()));\n this.startTimer();\n }\n };\n\n disconnectSignalR = () => {\n if (this.connection) {\n this.connection.stop().then(() => {\n this.connection = null;\n });\n }\n };\n\n renderSkillProfileHeader = () => {\n let setRefTopLegend = (el) => {\n this.topSkillProfileLegendElement = el;\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Skills Profile Key\n \n Not Selected\n \n Required\n \n Desirable\n
\n );\n };\n\n handleChangeVersion = (selectedProfileVersion) => {\n this.setState({ selectedProfileVersion, loadingProfile: true });\n\n Promise.all([this.props.onJob.getJobLorProfiles(this.state.jobId, selectedProfileVersion.sfiaVersion, selectedProfileVersion.version), this.props.onJob.getJobSkillProfiles(this.state.jobId, selectedProfileVersion.sfiaVersion, selectedProfileVersion.version)])\n .then(() => {\n if (!this.props.jobLoading && !this.props.jobError) {\n this.setState({\n jobLorProfiles: this.props.jobLorProfiles,\n jobSkillProfiles: this.props.jobSkillProfiles,\n });\n }\n\n this.setState({\n loadingProfile: this.props.jobLoading,\n });\n })\n .catch(() => {\n this.setState({\n loadingProfile: false,\n });\n });\n };\n\n handleChangeShowDetail = () => {\n this.setState({\n showDetail: !this.state.showDetail,\n });\n };\n\n handleChangeShowHidden = () => {\n this.setState({\n showHidden: !this.state.showHidden,\n });\n };\n\n handleChangeShowEdit = () => {\n let willCreateNewVersion = false;\n\n if (!this.state.showEdit) {\n willCreateNewVersion = true;\n this.setState({ showEdit: !this.state.showEdit, willCreateNewVersion });\n } else if (this.state.skillProfilesEdit.length > 0) {\n if (window.confirm(\"You have some updates, are you sure to cancel the updates?\")) {\n let { jobLorProfiles, jobSkillProfiles } = this.state;\n if (jobLorProfiles) {\n jobLorProfiles.forEach((it) => {\n it.edited = false;\n it.editedNumericVal = null;\n });\n }\n\n if (jobSkillProfiles) {\n jobSkillProfiles.forEach((it) => {\n it.edited = false;\n it.editedNumericVal = null;\n });\n }\n\n this.setState({\n skillProfilesEdit: [],\n editCount: 0,\n showEdit: !this.state.showEdit,\n jobLorProfiles: jobLorProfiles.filter((it) => it.id),\n jobSkillProfiles: jobSkillProfiles.filter((it) => it.id),\n });\n }\n } else {\n this.setState({ showEdit: !this.state.showEdit, willCreateNewVersion });\n }\n };\n\n handleEditProfileSkill = (profileEdit) => {\n let { skillProfilesEdit } = this.state;\n\n let oriProfileEdit = skillProfilesEdit.find(\n (it) => (it.id && it.id === profileEdit.id && it.source == profileEdit.source) || (!it.id && it.source == profileEdit.source && ((it.lorCode && it.lorCode === profileEdit.lorCode) || (it.skillCode && it.skillCode === profileEdit.skillCode && it.level === profileEdit.level)))\n );\n\n if (oriProfileEdit) {\n oriProfileEdit.numericVal = profileEdit.numericVal;\n oriProfileEdit.editedNumericVal = profileEdit.editedNumericVal;\n oriProfileEdit.editedLabelVal = profileEdit.editedLabelVal;\n\n const editCount = skillProfilesEdit.filter((it) => (it.id && it.edited) || (!it.id && it.editedNumericVal != 0)).length;\n this.setState({ skillProfilesEdit: skillProfilesEdit, editCount });\n } else {\n skillProfilesEdit = [...skillProfilesEdit, profileEdit];\n\n const editCount = skillProfilesEdit.filter((it) => (it.id && it.edited) || (!it.id && it.editedNumericVal != 0)).length;\n this.setState({ skillProfilesEdit, editCount });\n }\n };\n\n handleEditProfileSkills = (profilesEdit) => {\n let { skillProfilesEdit } = this.state;\n\n profilesEdit.forEach((profileEdit) => {\n let oriProfileEdit = skillProfilesEdit.find(\n (it) => (it.id && it.id === profileEdit.id && it.source == profileEdit.source) || (!it.id && it.source == profileEdit.source && ((it.lorCode && it.lorCode === profileEdit.lorCode) || (it.skillCode && it.skillCode === profileEdit.skillCode && it.level === profileEdit.level)))\n );\n\n if (oriProfileEdit) {\n oriProfileEdit.numericVal = profileEdit.numericVal;\n oriProfileEdit.editedNumericVal = profileEdit.editedNumericVal;\n oriProfileEdit.editedLabelVal = profileEdit.editedLabelVal;\n } else {\n skillProfilesEdit = [...skillProfilesEdit, profileEdit];\n }\n });\n\n const editCount = skillProfilesEdit.length;\n this.setState({ skillProfilesEdit: skillProfilesEdit, editCount });\n };\n\n handleSaveSkillUpdate = () => {\n const { jobId, selectedProfileVersion, willCreateNewVersion, skillProfilesEdit } = this.state;\n const lorProfiles = this.state.jobLorProfiles;\n const skillProfiles = this.state.jobSkillProfiles;\n\n if (willCreateNewVersion) {\n lorProfiles.forEach((profile) => {\n if (!skillProfilesEdit.find((it) => it.id == profile.id) || !profile.id) {\n skillProfilesEdit.push({\n sfiaVersion: selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null,\n version: selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1,\n createdOn: new Date(),\n updatedOn: new Date(),\n lor: profile.lor,\n lorCode: profile.lorCode,\n level: profile.numericVal * 1,\n stringVal: profile.stringVal,\n numericVal: profile.numericVal,\n labelVal: profile.labelVal,\n profileType: profile.profileType,\n isEditable: profile.isEditable,\n source: \"lorProfiles\",\n });\n }\n });\n\n skillProfiles.forEach((profile) => {\n if (!skillProfilesEdit.find((it) => it.id == profile.id)) {\n skillProfilesEdit.push({\n sfiaVersion: selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null,\n version: selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1,\n createdOn: new Date(),\n updatedOn: new Date(),\n category: profile.category,\n subCategory: profile.subCategory,\n skill: profile.skill,\n skillCode: profile.skillCode,\n level: profile.level,\n isExtraFramework: profile.isExtraFramework,\n extraFrameworkLevel: profile.extraFrameworkLevel,\n extraFrameworkLevelId: profile.extraFrameworkLevelId,\n stringVal: profile.stringVal,\n numericVal: profile.numericVal,\n labelVal: profile.labelVal,\n profileType: profile.profileType,\n isEditable: profile.isEditable,\n source: \"skillProfiles\",\n });\n }\n });\n\n skillProfilesEdit.forEach((skillProfile) => {\n skillProfile.id = null;\n skillProfile.sfiaVersion = selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null;\n skillProfile.version = selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1;\n skillProfile.createdOn = new Date();\n skillProfile.updatedOn = new Date();\n skillProfile.isEditable = true;\n\n if (skillProfile.editedStringVal) {\n skillProfile.stringVal = skillProfile.editedStringVal;\n skillProfile.numericVal = skillProfile.editedNumericVal;\n skillProfile.labelVal = skillProfile.editedLabelVal;\n }\n });\n } else {\n skillProfilesEdit.forEach((skillProfile) => {\n if (!skillProfile.id) {\n skillProfile.sfiaVersion = selectedProfileVersion.sfiaVersion;\n skillProfile.version = selectedProfileVersion.version;\n skillProfile.createdOn = selectedProfileVersion.createdOn;\n skillProfile.updatedOn = new Date();\n skillProfile.isEditable = true;\n } else {\n skillProfile.updatedOn = new Date();\n }\n });\n }\n\n this.props.onJob.updateJobSkillProfiles(\n jobId,\n skillProfilesEdit.filter((it) => it.id || it.editedNumericVal != 0)\n );\n\n if (lorProfiles) {\n lorProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n if (skillProfiles) {\n skillProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n this.setState({\n skillProfilesEdit: [],\n showEdit: !this.state.showEdit,\n jobLorProfiles: lorProfiles,\n jobSkillProfiles: skillProfiles,\n });\n };\n\n handleSaveJobDetailUpdate = (job) => {\n this.setState({ jobDetailIsUpdating: true, jobDetailUpdateSuccess: false });\n\n this.props.onJob.updateJob(job.id, job).then(() => {\n if (!this.props.jobIsUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Update job success.\");\n this.setState({ jobDetailUpdateSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ jobDetailIsUpdating: this.props.jobIsUpdating });\n });\n };\n\n handleSaveJobNoteUpdate = (job) => {\n this.setState({ jobDetailNoteIsUpdating: true });\n\n this.props.onJob.updateJobNote(job.id, job.comment).then(() => {\n if (!this.props.jobIsUpdating) {\n if (!this.props.jobsError) {\n this.generateAlert(\"success\", \"Update job note success.\");\n } else {\n this.generateAlert(\"danger\", this.props.jobsError.errData.Message);\n }\n }\n\n this.setState({ jobDetailNoteIsUpdating: this.props.jobIsUpdating });\n });\n };\n\n updateSkillAttributes = (updatedJobSkillAttributes) => {\n this.setState({ jobSkillAttributes: [...updatedJobSkillAttributes] });\n };\n\n updateLorAttributes = (updatedJobLorAttributes) => {\n this.setState({ jobLorAttributes: [...updatedJobLorAttributes] });\n };\n\n handlePrintDefinition = () => {\n const job = this.state.job;\n\n this.props.onJob.printJobReport(job.id).then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n let reportFormat = \"PDF\";\n if (this.props.jobProfileReportFormat) {\n reportFormat = this.props.jobProfileReportFormat;\n }\n\n FileDownload(this.props.printData, `${job.name}_SkillsTx_Requirement_Profile.${reportFormat == \"PDF\" ? \"pdf\" : \"docx\"}`);\n }\n }\n });\n };\n\n navigateBack = () => {\n localStorage.setItem(\"routeGoBack\", \"TRUE\");\n this.props.history.goBack();\n };\n\n startTimer = () => {\n const signalRTimerStarted = this.state.signalRTimerStarted;\n\n if (!signalRTimerStarted) {\n setInterval(() => {\n let signalRTimerCount = this.state.signalRTimerCount + 1;\n\n if (signalRTimerCount >= signalRTimerMaxCount && !this.props.skillsProfileUpdating) {\n signalRTimerCount = 0;\n\n this.disconnectSignalR();\n setTimeout(() => {\n const {\n match: { params },\n } = this.props;\n\n var jobId = params.id;\n\n this.connectSignalR(jobId);\n }, 100);\n }\n\n this.setState({ signalRTimerCount: signalRTimerCount });\n }, 1000);\n\n this.setState({ signalRTimerStarted: true });\n }\n };\n\n render() {\n let setRefAnchor = (el) => {\n this.divAnchorElement = el;\n };\n\n const { pageAssignments, isManagedByOwner, loginWithTeams } = this.props;\n\n const pageAssignment = pageAssignments ? pageAssignments.find((it) => it.pageName == \"Manage Requirements\") : null;\n\n const pathName = window.location.pathname;\n const isAdmin = pathName.includes(\"/admin\");\n\n const { skillProfilesEdit, editCount, job, jobLorProfiles } = this.state;\n const { lors } = this.props;\n const { authPersonId } = this.props;\n\n let enableSave = false;\n if (skillProfilesEdit.length != 0 && editCount > 0) {\n const visibleLors = lors\n .filter((it) => !it.isHidden && !it.optional)\n .map((it) => {\n return {\n lor: it.name,\n lorCode: it.lorCode,\n };\n });\n\n let lorProfilesAdded = lors\n .map((lor) => {\n const lorSkillProfileEdit = skillProfilesEdit.find((it) => it.source == \"lorProfiles\" && it.lorCode == lor.lorCode);\n return { lorCode: lor.lorCode, numericVal: lorSkillProfileEdit ? (lorSkillProfileEdit.numericVal ? lorSkillProfileEdit.numericVal : lorSkillProfileEdit.editedNumericVal) : null };\n })\n .filter((it) => it.numericVal);\n\n let lorProfilesCheck = lors\n .map((lor) => {\n const lorSkillProfileEdit = skillProfilesEdit.find((it) => it.source == \"lorProfiles\" && it.lorCode == lor.lorCode);\n const jobLorProfile = jobLorProfiles.find((it) => it.lorCode == lor.lorCode);\n return { lorCode: lor.lorCode, numericVal: lorSkillProfileEdit ? (lorSkillProfileEdit.numericVal ? lorSkillProfileEdit.numericVal : lorSkillProfileEdit.editedNumericVal) : jobLorProfile ? jobLorProfile.numericVal : null };\n })\n .filter((it) => it.numericVal);\n\n const missingAddedLors = visibleLors.filter((it) => !lorProfilesAdded.find((l) => l.lorCode == it.lorCode));\n const missingCheckLors = visibleLors.filter((it) => !lorProfilesCheck.find((l) => l.lorCode == it.lorCode));\n const missingLorProfiles = visibleLors.filter((it) => !jobLorProfiles.find((l) => l.lorCode == it.lorCode));\n\n enableSave = ((missingCheckLors.length == 0 || missingAddedLors.length == 0) && skillProfilesEdit.filter((it) => it.source == \"skillProfiles\" && it.editedNumericVal != 0).length > 0) || ((missingCheckLors.length == 0 || missingLorProfiles.length == 0) && skillProfilesEdit.length > 0);\n }\n\n return (\n \n
\n {this.state.profileUpdating && Update requirement profiles still in progress}\n {!this.state.profileUpdating && this.state.profileUpdatingSuccess && (\n
\n \n
\n )}\n {!this.state.profileUpdating && !this.state.profileUpdatingSuccess && this.state.profileUpdatingError && (\n
\n \n
\n )}\n \n
\n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n \n

\n {job && job.name}\n

\n
\n \n \n \n Version : {\" \"}\n \n \n \n \n Import Lor Attributes\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n lorError: state.lor.error,\n loadingExport: state.lor.loadingExport,\n exportData: state.lor.exportData,\n\n isImporting: state.lor.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LorAttributeBulkUpload);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\nimport * as lorActions from \"../../../store/actions/lorAction\";\nimport changeInput from \"../../../utils/changeInput\";\n\nclass UpdateLor extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n lorCode: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n category: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n categoryColor: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n lorColor: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: true,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n }\n\n prepareFormState = () => {\n const lor = this.props.lor;\n if (lor) {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: lor.name,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n lorCode: {\n validation: {\n required: true,\n },\n value: lor.lorCode,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n category: {\n validation: {\n required: false,\n },\n value: lor.category,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n categoryColor: {\n validation: {\n required: false,\n },\n value: lor.categoryColor,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n lorColor: {\n validation: {\n required: false,\n },\n value: lor.lorColor,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: true,\n });\n }\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const lor = {\n name: form.name.value,\n lorCode: form.lorCode.value,\n category: form.category.value,\n categoryColor: form.category.value ? (form.categoryColor.value ? form.categoryColor.value : \"#69849c\") : null,\n lorColor: form.category.value ? (form.lorColor.value ? form.lorColor.value : \"#ecf0f5\") : null,\n };\n this.setState({ isUpdating: true });\n this.props.onLor.updateLor(this.props.lor.id, lor).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.error) {\n this.props.generateAlert(\"success\", \"LoR updated.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleChangeComplete = (name, color) => {\n const form = this.state.form;\n\n if (name == \"categoryColor\") {\n form.categoryColor.value = color.hex;\n } else if (name == \"lorColor\") {\n form.lorColor.value = color.hex;\n }\n\n this.setState({ form });\n };\n\n render() {\n const { form } = this.state;\n\n const popover = {\n position: \"absolute\",\n zIndex: \"2\",\n };\n const cover = {\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n bottom: \"0px\",\n left: \"0px\",\n };\n\n return (\n \n \n Update LoR Category\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid}\n >\n Save\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.lor.error,\n isUpdating: state.lor.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UpdateLor);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as lorActions from \"../../../store/actions/lorAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport LorAttributeBulkUpload from \"./LorAttributeBulkUpload\";\nimport UpdateLor from \"./UpdateLor\";\nimport { faFileExcel, faPenToSquare, faSync, faSquarePen, faChevronLeft, faPlus, faMinusCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"28px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst manageAttributeWrapper = {\n width: \"100%\",\n maxWidth: \"100%\",\n fontSize: \"11px\",\n};\n\nclass ManageLor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n lors: [],\n searchProperties: [\"name\", \"category\", \"lorCode\", \"strattributes\"],\n showLoadingPanel: false,\n showDialogImportTs: null,\n editMode: false,\n editedLor: null,\n editAttribute: false,\n optionHidden: [\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ],\n editedAttribute: null,\n lorAttributeIsUpdating: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.editAttributeAnchor = React.createRef();\n }\n\n scroll(ref) {\n ref.current.scrollIntoView({ behavior: \"smooth\" });\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.initData();\n });\n }\n\n componentWillUnmount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.lors !== this.props.lors) {\n this.setState({\n lors: this.reformLors(this.props.lors),\n });\n }\n }\n\n initData = () => {\n this.props.onLor.getLors().then(() => {\n const lors = this.reformLors(this.props.lors);\n\n this.setState({\n lors,\n });\n\n this.setState({ loading: this.props.loading || this.props.lorLoading });\n });\n };\n\n reformLors = (lors) => {\n return lors.map((it) => {\n return {\n id: it.id,\n name: it.name,\n description: it.description,\n lorCode: it.lorCode,\n category: it.category != null ? it.category : \"Generic Attributes\",\n categoryColor: it.category != null ? it.categoryColor : \"#69849c\",\n lorColor: it.category != null ? it.lorColor : \"#ecf0f5\",\n sequence: it.sequence,\n canHide: it.canHide,\n isHidden: it.isHidden,\n levels: it.levels,\n optional: it.optional,\n attributes: it.attributes ? it.attributes : [],\n strattributes: it.attributes\n ? it.attributes\n .map((it) => {\n return it.attribute;\n })\n .sort((a, b) => (a > b ? 1 : -1))\n .join(\", \")\n : \"\",\n };\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n handleClearSelection = () => {\n const interventions = this.state.interventions;\n\n interventions.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ interventions: [...interventions] });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n openEditLor = (lor) => {\n this.setState({ showDialogLorDetailTs: new Date(), selectedLor: lor });\n };\n\n handleHideLor = (lor) => {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: null, loadingPanelBody: \"Please wait ...\" });\n this.props.onLor.updateLorSetIsHidden(lor.id, !lor.isHidden).then(() => {\n this.setState({ showLoadingPanel: this.props.isUpdating });\n });\n };\n\n handleLorOptional = (lor) => {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: null, loadingPanelBody: \"Please wait ...\" });\n this.props.onLor.updateLorSetOptional(lor.id, !lor.optional).then(() => {\n this.setState({ showLoadingPanel: this.props.isUpdating });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader && {this.state.loadingPanelHeader}}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportAttributes = () => {\n this.props.onLor.exportLorAttributesDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.lorError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportLorAttributes_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportAttributes = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.props.onLor.getLors().then(() => {\n if (!(this.props.loading || this.props.lorLoading)) {\n const lors = this.reformLors(this.props.lors);\n\n this.setState({\n lors,\n });\n }\n\n this.setState({ loading: this.props.loading || this.props.lorLoading });\n });\n };\n\n openEditLorAttribute = (lor) => {\n this.setState({\n editMode: true,\n editedLor: {\n id: lor.id,\n name: lor.name,\n lorCode: lor.lorCode,\n attributes: [...lor.attributes],\n },\n });\n setTimeout(() => {\n this.scroll(this.editAttributeAnchor);\n }, 200);\n };\n\n handleBackToList = () => {\n this.setState({ editMode: false });\n };\n\n handleAddNewAttribute = () => {\n this.setState({ editAttribute: true, editedAttribute: { id: null, attribute: null, link: null, isHidden: false } });\n };\n\n handleEditAttribute = (attribute) => {\n this.setState({\n editAttribute: true,\n editedAttribute: {\n id: attribute.id,\n attribute: attribute.attribute,\n link: attribute.link,\n isHidden: attribute.isHidden,\n },\n });\n };\n\n cancelUpdateAttribute = () => {\n this.setState({ editAttribute: false, editedAttribute: null });\n };\n\n handleChangeAttribute = (event) => {\n const { editedAttribute } = this.state;\n let { name, value } = event.target;\n\n if (name == \"attribute\") {\n editedAttribute.attribute = value;\n } else if (name == \"link\") {\n editedAttribute.link = value;\n } else if (name == \"isHidden\") {\n editedAttribute.isHidden = value;\n }\n\n this.setState({ editedAttribute });\n };\n\n handleSaveAttribute = () => {\n const { editedAttribute, editedLor } = this.state;\n if (editedAttribute.id) {\n this.setState({ lorAttributeIsUpdating: true });\n this.props.onLor\n .updateLorAttribute(editedLor.id, editedAttribute.id, {\n attribute: editedAttribute.attribute,\n link: editedAttribute.link,\n isHidden: editedAttribute.isHidden,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.lorError) {\n this.generateAlert(\"success\", \"Update attribute success.\");\n this.setState({ editAttribute: false, editedAttribute: null });\n } else {\n this.generateAlert(\"danger\", this.props.lorError.errData.Message);\n }\n }\n this.setState({ lorAttributeIsUpdating: this.props.isUpdating });\n });\n } else {\n this.setState({ lorAttributeIsUpdating: true });\n this.props.onLor\n .addLorAttribute(editedLor.id, {\n attribute: editedAttribute.attribute,\n link: editedAttribute.link,\n isHidden: editedAttribute.isHidden,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.lorError) {\n this.generateAlert(\"success\", \"Add attribute success.\");\n this.setState({ editAttribute: false, editedAttribute: null });\n const lors = this.props.lors;\n const lor = lors.find((it) => it.id == editedLor.id);\n if (lor) {\n editedLor.attributes = [...lor.attributes];\n }\n this.setState({ editedLor });\n } else {\n this.generateAlert(\"danger\", this.props.lorError.errData.Message);\n }\n }\n this.setState({ lorAttributeIsUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleDeleteAttribute = (attribute) => {\n const { editedLor } = this.state;\n this.setState({ lorAttributeIsUpdating: true });\n this.props.onLor.deleteLorAttribute(editedLor.id, attribute.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.lorError) {\n this.generateAlert(\"success\", \"Delete attribute success.\");\n const lors = this.props.lors;\n const lor = lors.find((it) => it.id == editedLor.id);\n if (lor) {\n editedLor.attributes = [...lor.attributes];\n }\n this.setState({ editedLor });\n } else {\n this.generateAlert(\"danger\", this.props.lorError.errData.Message);\n }\n }\n this.setState({ lorAttributeIsUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { lors, searchKeyword, searchProperties, columnSearchKeywords, editedLor } = this.state;\n\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment =\n (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == true && pageAssignments.find((it) => it.pageName == \"Manage LoR Category\")) ||\n (this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == false && pageAssignments.find((it) => it.pageName == \"Manage LoR\"));\n\n const onTableFilterChange = this.onTableFilterChange;\n const openEditLor = this.openEditLor;\n const openEditLorAttribute = this.openEditLorAttribute;\n const handleHideLor = this.handleHideLor;\n const handleLorOptional = this.handleLorOptional;\n\n const filtered = this.filterArray(lors, searchKeyword, searchProperties, columnSearchKeywords);\n\n const nonEEAContainer = this.props.containerConfig && !this.props.containerConfig.eeaFrameworkContainer; //lors && lors.find(it => it.canHide);\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"7%\",\n center: true,\n format: function (row, index) {\n return (\n
\n \n openEditLorAttribute(row)} />\n \n Update LoR Attributes\n \n \n {!nonEEAContainer && (\n \n      \n openEditLor(row)} />\n \n Update LoR Category\n \n \n )}\n
\n );\n },\n omit: pageAssignment && pageAssignment.operations && (pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) || pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true)) ? false : true,\n },\n {\n id: \"name\",\n name: (\n
\n Name\n
\n it.name == \"name\") ? columnSearchKeywords.find((it) => it.name == \"name\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.name,\n sortable: true,\n wrap: true,\n width: pageAssignment && pageAssignment.operations && (pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) || pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true)) ? \"32%\" : \"39%\",\n },\n {\n id: \"lorCode\",\n name: (\n
\n LoR Code\n
\n it.name == \"lorCode\") ? columnSearchKeywords.find((it) => it.name == \"lorCode\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.lorCode,\n sortable: true,\n width: nonEEAContainer ? \"10%\" : \"12%\",\n wrap: true,\n center: true,\n },\n {\n id: \"category\",\n name: (\n
\n Category\n
\n it.name == \"category\") ? columnSearchKeywords.find((it) => it.name == \"category\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.category,\n sortable: true,\n width: nonEEAContainer ? \"20%\" : \"26%\",\n wrap: true,\n },\n {\n id: \"attributes\",\n name: (\n
\n Attributes\n
\n it.name == \"strattributes\") ? columnSearchKeywords.find((it) => it.name == \"strattributes\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.attributes,\n sortable: true,\n width: \"15%\",\n wrap: true,\n format: function (row, index) {\n return row.strattributes;\n },\n },\n {\n id: \"isHidden\",\n name:
LoR Is Shown
,\n selector: (row) => row.isHidden,\n sortable: false,\n width: \"8%\",\n wrap: true,\n center: true,\n format: function (row, index) {\n return (\n \n \n \n \n \n \n );\n },\n omit: !nonEEAContainer,\n },\n {\n id: \"optional\",\n name:
LoR Is Optional
,\n selector: (row) => row.optional,\n sortable: false,\n width: \"8%\",\n wrap: true,\n center: true,\n format: function (row, index) {\n return (\n \n \n \n \n \n \n );\n },\n },\n ];\n\n const handleEditAttribute = this.handleEditAttribute;\n const handleDeleteAttribute = this.handleDeleteAttribute;\n\n const attributeColumns = [\n {\n id: \"attribute\",\n name: \"Attribute\",\n selector: (row) => row.attribute,\n sortable: true,\n width: \"30%\",\n },\n {\n id: \"link\",\n name: \"Link\",\n selector: (row) => row.link,\n sortable: true,\n width: \"40%\",\n wrap: true,\n },\n {\n id: \"isHidden\",\n name: \"Is Hidden\",\n selector: (row) => row.isHidden,\n sortable: true,\n width: \"15%\",\n format: function (row, index) {\n return row.isHidden ? \"Yes\" : \"No\";\n },\n },\n {\n id: \"id\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n handleEditAttribute(row)} />\n \n Edit Attribute\n \n    \n {!(row.accountSkillAttributes && row.accountSkillAttributes.length > 0) && (\n \n handleDeleteAttribute(row)} />\n \n Delete Attribute\n \n    \n \n )}\n
\n );\n },\n },\n ];\n\n return (\n \n \n {this.renderLoadingPanel()}\n \n \n {this.state.loading ? (\n
\n \n
\n ) : !this.state.editMode ? (\n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, selectedInterventions: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", selectedInterventions: [] });\n }}\n >\n   \n \n Refresh\n \n   \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export Attributes\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n Import Attributes\n \n )}\n \n \n
\n \n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n

\n Update Lor Attributes - {editedLor ? `${editedLor.name} (${editedLor.lorCode})` : \"\"}\n

\n \n
\n \n
\n \n  \n \n {editedLor && (\n \n \n \n
\n \n \n \n Add New\n \n \n \n a.attribute > b.attribute)} pagination={false}>\n
\n \n {this.state.editAttribute && (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.optionHidden.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n {\n this.handleSaveAttribute();\n }}\n disabled={!(this.state.editedAttribute && this.state.editedAttribute.attribute && this.state.editedAttribute.attribute != \"\") || this.state.lorAttributeIsUpdating}\n >\n Save\n \n   \n {\n this.cancelUpdateAttribute();\n }}\n disabled={this.state.lorAttributeIsUpdating}\n >\n Cancel\n \n \n \n \n \n
\n \n )}\n
\n
\n )}\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n lors: state.lor.lors,\n lorError: state.lor.error,\n lorLoading: state.lor.loading,\n exportData: state.lor.exportData,\n loadingExport: state.lor.loadingExport,\n\n pageAssignments: state.adminPerson.pageAssignments,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageLor));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminRelationshipAPI {\n static addRelationships(relationships) {\n return axios\n .post(`/relationships/postmultiple`, {\n relationships\n })\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteRelationships(relationshipIds) {\n return axios\n .post(`/relationships/deletemultiple`, {\n relationshipIds\n })\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static exportRelationshipsDataExcel() {\n return axios\n .get(`/relationships/export`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportRelationshipsDataExcelTemplate() {\n return axios\n .get(`/relationships/exporttemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importRelationshipsDataExcel(relationshipsData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n relationshipsData.forEach((file) => {\n body.append(\"relationshipsData\", file);\n });\n\n return axios\n .post(`/relationships/import`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminRelationshipAPI;","import * as actionTypes from \"./adminActionTypes\";\n\nimport AdminRelationshipAPI from \"./../../../common/api/adminservice/AdminRelationshipService\";\n\nexport const addRelationshipsStart = () => {\n return {\n type: actionTypes.ADD_RELATIONSHIPS_START\n };\n};\n\nexport const addRelationshipsSuccess = (addedRelationships) => {\n return {\n type: actionTypes.ADD_RELATIONSHIPS_SUCCESS,\n addedRelationships\n };\n};\n\nexport const addRelationshipsFail = error => {\n return {\n type: actionTypes.ADD_RELATIONSHIPS_FAIL,\n error: error,\n };\n};\n\nexport const addRelationships = (relationships) => {\n return dispatch => {\n dispatch(addRelationshipsStart());\n\n return AdminRelationshipAPI.addRelationships(relationships)\n .then(res => {\n dispatch(addRelationshipsSuccess(res));\n })\n .catch(err => {\n dispatch(addRelationshipsFail(err));\n });\n };\n};\n\nexport const deleteRelationshipsStart = () => {\n return {\n type: actionTypes.DELETE_RELATIONSHIPS_START\n };\n};\n\nexport const deleteRelationshipsSuccess = (deletedRelationshipIds) => {\n return {\n type: actionTypes.DELETE_RELATIONSHIPS_SUCCESS,\n deletedRelationshipIds\n };\n};\n\nexport const deleteRelationshipsFail = error => {\n return {\n type: actionTypes.DELETE_RELATIONSHIPS_FAIL,\n error: error,\n };\n};\n\nexport const deleteRelationships = (relationshipIds) => {\n return dispatch => {\n dispatch(deleteRelationshipsStart());\n\n return AdminRelationshipAPI.deleteRelationships(relationshipIds)\n .then(res => {\n dispatch(deleteRelationshipsSuccess(relationshipIds));\n })\n .catch(err => {\n dispatch(deleteRelationshipsFail(err));\n });\n };\n};\n\nexport const exportRelationshipsDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_RELATIONSHIPS_DATA_START,\n };\n};\n\nexport const exportRelationshipsDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_RELATIONSHIPS_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportRelationshipsDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_RELATIONSHIPS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportRelationshipsDataExcel = () => {\n return (dispatch) => {\n dispatch(exportRelationshipsDataExcelStart());\n\n return AdminRelationshipAPI.exportRelationshipsDataExcel()\n .then((res) => {\n dispatch(exportRelationshipsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportRelationshipsDataExcelFail(err));\n });\n };\n};\n\nexport const exportRelationshipsDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportRelationshipsDataExcelStart());\n\n return AdminRelationshipAPI.exportRelationshipsDataExcelTemplate()\n .then((res) => {\n dispatch(exportRelationshipsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportRelationshipsDataExcelFail(err));\n });\n };\n};\n\nexport const importSkillAttributesDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_RELATIONSHIPS_DATA_START,\n };\n};\n\nexport const importSkillAttributesDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_RELATIONSHIPS_DATA_SUCCESS,\n };\n};\n\nexport const importSkillAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_RELATIONSHIPS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importSkillAttributesDataExcel = (relationshipsData) => {\n return (dispatch) => {\n dispatch(importSkillAttributesDataExcelStart());\n\n return AdminRelationshipAPI.importRelationshipsDataExcel(relationshipsData)\n .then((res) => {\n dispatch(importSkillAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importSkillAttributesDataExcelFail(err));\n });\n };\n};","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminRelationshipTypeAPI {\n static getRelationshipTypes() {\n return axios\n .get(`/relationshipTypes`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminRelationshipTypeAPI;","import * as actionTypes from \"./adminActionTypes\";\n\nimport AdminRelationshipTypeAPI from \"./../../../common/api/adminservice/AdminRelationshipTypeService\";\n\nexport const getRelationshipTypesStart = () => {\n return {\n type: actionTypes.GET_RELATIONSHIP_TYPES_START\n };\n};\n\nexport const getRelationshipTypesSuccess = (relationshipTypes) => {\n return {\n type: actionTypes.GET_RELATIONSHIP_TYPES_SUCCESS,\n relationshipTypes\n };\n};\n\nexport const getRelationshipTypesFail = error => {\n return {\n type: actionTypes.GET_RELATIONSHIP_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getRelationshipTypes = () => {\n return dispatch => {\n dispatch(getRelationshipTypesStart());\n\n return AdminRelationshipTypeAPI.getRelationshipTypes()\n .then(res => {\n dispatch(getRelationshipTypesSuccess(res));\n })\n .catch(err => {\n dispatch(getRelationshipTypesFail(err));\n });\n };\n};","import * as relationshipActions from \"../../../store/admin/actions/adminRelationshipActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass RelationshipBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n showConfirmDialog: false,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onRelationship.exportRelationshipsDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `UploadRelationshipsTemplate.xlsx`);\n }\n }\n });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ showConfirmDialog: true, showDialog: false });\n };\n\n togleDialogConfirmModal = () => {\n const showConfirmDialog = this.state.showConfirmDialog;\n this.setState({ showConfirmDialog: !showConfirmDialog, showDialog: showConfirmDialog });\n };\n\n handleConfirmPerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onRelationship.importSkillAttributesDataExcel(this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n this.excelRef.current.value = null;\n\n this.props.generateAlert(\"success\", \"Import relationships success.\");\n this.setState({ showConfirmDialog: false, showDialog: false, selectedFiles: [] });\n this.props.handleImportSuccess();\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Delete and replace relationships\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmPerformUpload();\n }}\n disabled={this.state.isImporting}\n >\n OK\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loadingExport: state.adminRelationship.loadingExport,\n exportData: state.adminRelationship.exportData,\n\n isImporting: state.adminRelationship.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onRelationship: bindActionCreators(relationshipActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(RelationshipBulkUpload);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport * as adminRelationshipActions from \"../../../store/admin/actions/adminRelationshipActions\";\nimport * as adminRelationshipTypeActions from \"../../../store/admin/actions/adminRelationshipTypeActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport RelationshipBulkUpload from \"./RelationshipBulkUpload\";\nimport { faArrowLeft, faArrowRight, faFileExcel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\n// import filterFactory from \"react-bootstrap-table2-filter\";\n// import ToolkitProvider, { Search } from \"react-bootstrap-table2-toolkit\";\n// import BootstrapTable from \"react-bootstrap-table-next\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, ButtonGroup, Col, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst rowStyle = {\n background: \"#FFFFFF\",\n fontSize: \"12px\",\n cursor: \"pointer\",\n};\n\n// const { SearchBar } = Search;\nconst FileDownload = require(\"js-file-download\");\nclass ManageRelationships extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n relationshipTypes: [],\n persons: [],\n isUpdating: false,\n mode: \"DownToTop\",\n personsSelected: [],\n availablePersons: [],\n personsAvailableSelected: [],\n assessedPersons: [],\n personsAssessedSelected: [],\n showDialogImportTs: null,\n searchProperties: [\"email\", \"firstName\", \"lastName\"],\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onRelationshipType.getRelationshipTypes().then(() => {\n this.initData();\n this.setState({\n loading: this.props.loading || this.props.relationshipTypeLoading,\n relationshipTypes: this.props.relationshipTypes.filter((it) => it.name != \"Endorser\"),\n });\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons) {\n this.setState({\n persons: this.props.persons ? this.props.persons.filter((it) => !it.inactive && !it.isCandidate).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)) : [],\n });\n }\n }\n\n initData = () => {\n const personsSelected = this.state.personsSelected;\n let personSelectedId = null;\n\n if (personsSelected && personsSelected.length > 0) {\n personSelectedId = personsSelected[0];\n }\n\n this.props.onPerson.getPersonsIncRelationships().then(() => {\n const persons = this.props.persons ? this.props.persons.filter((it) => !it.inactive && !it.isCandidate).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)) : [];\n\n if (personSelectedId) {\n if (!persons.find((it) => it.id == personSelectedId)) {\n personSelectedId = persons[0].id;\n persons[0].toggleSelected = true;\n } else {\n const person = persons.find((it) => it.id == personSelectedId);\n person.toggleSelected = true;\n }\n } else {\n personSelectedId = persons[0].id;\n persons[0].toggleSelected = true;\n }\n\n this.setState(\n {\n persons: persons,\n personsSelected: [personSelectedId],\n },\n () => {\n this.handleSelectRow(personSelectedId);\n }\n );\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n handleOnSelect = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n\n if (!updatedData.toggleSelected) {\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n updatedData.toggleSelected = true;\n\n this.handleSelectRow(row.id);\n this.setState({ persons: [...persons], personsSelected: [row.id] });\n }\n };\n\n handleAfterSearch = (searchKeyword) => {\n const { persons, searchProperties } = this.state;\n const filtered = this.filterArray(persons, searchKeyword, searchProperties);\n\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (filtered.length > 0) {\n const row = filtered[0];\n const person = persons.find((it) => it.id == row.id);\n person.toggleSelected = true;\n this.handleSelectRow(person.id);\n this.setState({ persons: [...persons], personsSelected: [person.id] });\n } else {\n this.handleSelectRow();\n this.setState({ persons: [...persons], personsSelected: [] });\n }\n };\n\n handleSelectRow = (personId) => {\n const persons = this.props.persons;\n const { mode, personsSelected, personsAvailableSelected, personsAssessedSelected } = this.state;\n\n var personSelected = null;\n\n if (personsSelected.length > 0) {\n personSelected = personsSelected[0];\n }\n\n let relationships = [];\n let availablePersons = [];\n let assessedPersons = [];\n\n const selectedPerson = persons.find((it) => it.id == personId);\n\n if (selectedPerson) {\n if (mode == \"DownToTop\") {\n relationships = selectedPerson.downRelationships;\n let relationshipsId = [];\n if (relationships && relationships.length > 0) {\n relationshipsId = relationships.map((it) => {\n return it.personAId;\n });\n }\n\n availablePersons = [...persons.filter((it) => !it.inactive && !it.isCandidate && it.id != personId && !relationshipsId.includes(it.id)).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))];\n assessedPersons = [\n ...persons\n .filter((it) => !it.inactive && !it.isCandidate && it.id != personId && relationshipsId.includes(it.id))\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n .map((it) => {\n return {\n id: relationships.find((r) => r.personAId == it.id).id,\n personId: it.id,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n relationshipType: relationships.find((r) => r.personAId == it.id).relationshipType,\n status: relationships.find((r) => r.personAId == it.id).status,\n };\n })\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n .sort((a, b) => (`${a.relationshipType == \"Team Leader\" ? 1 : a.relationshipType == \"Line Manager\" ? 2 : 3}` > `${b.relationshipType == \"Team Leader\" ? 1 : b.relationshipType == \"Line Manager\" ? 2 : 3}` ? 1 : -1)),\n ];\n } else {\n relationships = selectedPerson.upRelationships;\n const relationshipsId = relationships.map((it) => {\n return it.personBId;\n });\n\n availablePersons = [...persons.filter((it) => !it.inactive && !it.isCandidate && it.id != personId && !relationshipsId.includes(it.id)).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))];\n assessedPersons = [\n ...persons\n .filter((it) => !it.inactive && !it.isCandidate && it.id != personId && relationshipsId.includes(it.id))\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n .map((it) => {\n return {\n id: relationships.find((r) => r.personBId == it.id).id,\n personId: it.id,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n relationshipType: relationships.find((r) => r.personBId == it.id).relationshipType,\n status: relationships.find((r) => r.personBId == it.id).status,\n };\n })\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n .sort((a, b) => (`${a.relationshipType == \"Team Leader\" ? 1 : a.relationshipType == \"Line Manager\" ? 2 : 3}` > `${b.relationshipType == \"Team Leader\" ? 1 : b.relationshipType == \"Line Manager\" ? 2 : 3}` ? 1 : -1)),\n ];\n }\n\n this.setState({\n availablePersons: JSON.parse(JSON.stringify(availablePersons)),\n personsAvailableSelected: personSelected != personId ? [] : [...personsAvailableSelected],\n personsSelected: personId ? [personId] : [],\n assessedPersons: JSON.parse(JSON.stringify(assessedPersons)),\n personsAssessedSelected: personSelected != personId ? [] : [...personsAssessedSelected],\n });\n }\n };\n\n handleAfterSearchAvailable = () => {};\n\n handleOnSelectAvailable = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const { availablePersons } = this.state;\n let personsAvailableSelected = this.state.personsAvailableSelected;\n\n if (personsAvailableSelected) {\n const availablePerson = availablePersons.find((it) => it.id == row.id);\n if (personsAvailableSelected.find((it) => it == row.id)) {\n availablePerson.toggleSelected = false;\n\n const personAvailableSelected = personsAvailableSelected.find((it) => it == row.id);\n var index = personsAvailableSelected.indexOf(personAvailableSelected);\n if (index !== -1) {\n personsAvailableSelected.splice(index, 1);\n }\n } else {\n availablePerson.toggleSelected = true;\n personsAvailableSelected = [...personsAvailableSelected, row.id];\n }\n } else {\n const availablePerson = availablePersons.find((it) => it.id == row.id);\n availablePerson.toggleSelected = true;\n personsAvailableSelected = [row.id];\n }\n\n this.setState({ availablePersons: [...availablePersons], personsAvailableSelected: [...personsAvailableSelected] });\n };\n\n handleOnSelectAssessed = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const { assessedPersons } = this.state;\n let personsAssessedSelected = this.state.personsAssessedSelected;\n\n if (personsAssessedSelected) {\n const assessedPerson = assessedPersons.find((it) => it.id == row.id);\n if (personsAssessedSelected.find((it) => it == row.id)) {\n assessedPerson.toggleSelected = false;\n\n const personAssessedSelected = personsAssessedSelected.find((it) => it == row.id);\n var index = personsAssessedSelected.indexOf(personAssessedSelected);\n if (index !== -1) {\n personsAssessedSelected.splice(index, 1);\n }\n } else {\n assessedPerson.toggleSelected = true;\n personsAssessedSelected = [...personsAssessedSelected, row.id];\n }\n } else {\n const assessedPerson = assessedPersons.find((it) => it.id == row.id);\n assessedPerson.toggleSelected = true;\n personsAssessedSelected = [row.id];\n }\n\n this.setState({ assessedPersons: [...assessedPersons], personsAssessedSelected: [...personsAssessedSelected] });\n };\n\n changeMode = (mode) => {\n this.setState({ mode });\n this.initData();\n };\n\n handleAssignRelationship = (relationshipType) => {\n const persons = this.props.persons;\n const { mode, personsSelected, personsAvailableSelected } = this.state;\n let personSelectedId = null;\n\n if (personsSelected && personsSelected.length > 0) {\n personSelectedId = personsSelected[0];\n }\n\n const selectedPerson = persons.find((it) => it.id == personSelectedId);\n\n if (selectedPerson) {\n this.setState({ isUpdating: true });\n const relationships = personsAvailableSelected.map((it) => {\n return {\n relationshipTypeId: relationshipType.id,\n relationshipType: relationshipType.name,\n personAId: mode == \"DownToTop\" ? it : selectedPerson.id,\n personBId: mode == \"DownToTop\" ? selectedPerson.id : it,\n };\n });\n\n this.props.onRelationship.addRelationships(relationships).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.setState(\n {\n persons: this.props.persons ? this.props.persons.filter((it) => !it.inactive && !it.isCandidate).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)) : [],\n personsAvailableSelected: [],\n },\n () => {\n this.handleSelectRow(selectedPerson.id);\n }\n );\n\n this.generateAlert(\"success\", \"Relationships assigned.\");\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleRemoveRelationshipsClick = () => {\n const persons = this.props.persons;\n const { personsSelected, personsAssessedSelected } = this.state;\n\n let personSelectedId = null;\n\n if (personsSelected && personsSelected.length > 0) {\n personSelectedId = personsSelected[0];\n }\n\n const selectedPerson = persons.find((it) => it.id == personSelectedId);\n\n if (selectedPerson) {\n this.setState({ isUpdating: true });\n this.props.onRelationship.deleteRelationships(personsAssessedSelected).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.setState(\n {\n persons: this.props.persons ? this.props.persons.filter((it) => !it.inactive && !it.isCandidate).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)) : [],\n personsAvailableSelected: [],\n },\n () => {\n this.handleSelectRow(selectedPerson.id);\n }\n );\n\n this.generateAlert(\"success\", \"Relationships removed.\");\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportRelationships = () => {\n this.props.onRelationship.exportRelationshipsDataExcel().then(() => {\n if (!this.props.loadingExport) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportRelationships_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportRelationships = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.initData();\n };\n\n render() {\n const { mode, relationshipTypes } = this.state;\n const { config } = this.props;\n\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Relationships\");\n\n const handleOnSelect = this.handleOnSelect;\n const handleOnSelectAvailable = this.handleOnSelectAvailable;\n const handleOnSelectAssessed = this.handleOnSelectAssessed;\n\n const columns = [\n {\n id: \"firstName\",\n name: \"First\",\n selector: (row) => row.firstName,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row, index) {\n return (\n
handleOnSelect(row)}>\n {`${row.firstName} ${row.lastName}`}\n
\n {mode != \"DownToTop\" && row.position && (\n
\n {row.position}\n
\n
\n )}\n {row.email}\n
\n );\n },\n },\n ];\n\n const columnsAvailable = [\n {\n id: \"firstName\",\n name: \"First\",\n selector: (row) => row.firstName,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row, index) {\n return (\n
handleOnSelectAvailable(row)}>\n {`${row.firstName} ${row.lastName}`}\n
\n {mode == \"DownToTop\" && row.position && (\n
\n {row.position}\n
\n
\n )}\n {row.email}\n
\n );\n },\n },\n ];\n\n const columnsAssessed = [\n {\n id: \"firstName\",\n name: \"First\",\n selector: (row) => row.firstName,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row, index) {\n return (\n
handleOnSelectAssessed(row)}>\n {`${row.firstName} ${row.lastName}`}\n
\n {row.email}\n
\n Relationship Type : {row.relationshipType}\n {row.relationshipType == \"Mentor\" ? (\n \n
\n Mentor Status : {row.status ? row.status : \"Requested\"}\n
\n ) : (\n \"\"\n )}\n
\n );\n },\n },\n ];\n\n return (\n \n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n \n \n \n \n \n     \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n Import\n \n )}\n \n \n
\n \n \n

\n {this.state.mode == \"DownToTop\" ? \"Employee Name\" : \"Leadership Name\"}\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel1 });\n this.handleAfterSearch(searchKeywordLevel1);\n }}\n >\n \n \n
\n \n
\n
\n \n \n

\n Select from list :\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel2 });\n }}\n >\n \n \n
\n \n
\n
\n
\n {relationshipTypes.map((it, key) => {\n const allow =\n pageAssignment &&\n pageAssignment.operations &&\n pageAssignment.operations.find((op) => op.operation == `Assign ${it.name}` && op.allow == true) &&\n config &&\n ((it.name == \"Team Leader\" && (config.allowApprovals == 2 || config.allowApprovals == 5)) ||\n (it.name == \"Line Manager\" && (config.allowApprovals == 1 || config.allowApprovals == 2 || config.allowApprovals == 4 || config.allowApprovals == 5)) ||\n (it.name == \"Mentor\" && (config.allowApprovals == 3 || config.allowApprovals == 4 || config.allowApprovals == 5)) ||\n it.name.includes(\"WITHOUT Approval\"))\n ? true\n : false;\n if (allow) {\n return (\n this.handleAssignRelationship(it)}\n style={{\n width: \"100%\",\n marginBottom: \"10px\",\n }}\n disabled={!(this.state.personsAvailableSelected && this.state.personsAvailableSelected.length > 0) || this.state.isUpdating}\n >\n \n {`Assign ${this.state.mode == \"DownToTop\" ? \"AS\" : \"TO\"} ${it.name}`}\n \n \n \n \n \n );\n } else {\n return \"\";\n }\n })}\n \n \n

\n {this.state.mode == \"DownToTop\" ? \"Leadership Name\" : \"Employee Name\"}\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel3 });\n }}\n >\n \n \n
\n \n
\n
\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Remove Relationship\" && op.allow == true) && (\n 0) || this.state.isUpdating}\n >\n \n \n \n \n Remove Relationship\n \n \n )}\n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n isUpdating: state.adminPerson.isUpdating,\n\n relationshipTypeLoading: state.adminRelationshipType.loading,\n relationshipTypes: state.adminRelationshipType.relationshipTypes,\n\n exportData: state.adminRelationship.exportData,\n loadingExport: state.adminRelationship.loadingExport,\n\n pageAssignments: state.adminPerson.pageAssignments,\n config: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onRelationshipType: bindActionCreators(adminRelationshipTypeActions, dispatch),\n onRelationship: bindActionCreators(adminRelationshipActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageRelationships);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as personActions from \"../../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../../store/actions/skillProfileAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faSync, faSquareCheck, faSquareMinus, faFileExcel, faCheck } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { wrap } from \"module\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageSelfAssessed extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n persons: [],\n isUpdating: false,\n searchProperties: [\"email\", \"firstName\", \"lastName\", \"selfAssessedStatus\"],\n modeApprove: false,\n personsSkillProfileSelected: [],\n loadingPrint: false,\n showApproveDialog: false,\n comment: \"\",\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const routeGoBack = localStorage.getItem(\"routeGoBack\");\n localStorage.setItem(\"routeAdminFrom\", \"/admin/selfassessed\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n let repopulate = true;\n if (routeGoBack == \"TRUE\") {\n repopulate = false;\n }\n\n this.props.onAuth.authCheckState().then(() => {\n if (repopulate || !this.props.persons || (this.props.persons && this.props.persons.length == 0)) {\n this.initData();\n } else {\n let persons = this.reformPersons(this.props.persons.filter((it) => !it.inactive));\n\n if (this.state.modeApprove) {\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\";\n });\n }\n\n this.setState({\n persons: persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n loading: false,\n });\n }\n });\n }\n\n componentWillUnmount() {\n localStorage.setItem(\"routeGoBack\", \"FALSE\");\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n this.setState({ persons: this.reformPersons(this.props.persons.filter((it) => !it.inactive).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))) });\n }\n\n if (prevProps.mode !== this.props.mode && prevProps.mode) {\n this.handleRefresh();\n }\n }\n\n reformPersons = (persons) => {\n return persons.map((it) => {\n const account = it.accounts && it.accounts.length > 0 ? it.accounts.sort((a, b) => (b.createdOn > a.createdOn ? 1 : -1))[0] : null;\n\n return {\n id: it.id,\n idSkillProfile: it.id,\n companyId: it.companyId,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n completeName: `${it.firstName}${it.lastName ? ` ${it.lastName}` : \"\"}${it.email ? ` ${it.email}` : \"\"}`,\n salutation: it.salutation,\n position: it.position,\n inactive: it.inactive,\n personType: it.personType,\n accessGroup: it.accessGroup,\n allowNotifications: it.allowNotifications,\n lastActivityOn: it.lastActivityOn,\n lastActivitySystem: it.lastActivitySystem,\n createdOn: it.createdOn,\n countryCode: it.countryCode,\n country: it.country,\n location: it.location,\n selfAssessmentReason: it.selfAssessmentReason,\n encryptedId: it.encryptedId,\n team: it.team,\n usePreferredName: it.usePreferredName,\n other: it.other,\n department: it.department,\n businessUnit: it.businessUnit,\n division: it.division,\n territory: it.territory,\n costCentre: it.costCentre,\n supervisor: it.supervisor,\n validatedDate: it.validatedDate,\n isCandidate: it.isCandidate,\n isAnalyticsUser: it.isAnalyticsUser,\n leaveOn: it.leaveOn,\n isAssigned: it.isAssigned,\n isInvited: it.isInvited,\n invitedOn: it.invitedOn,\n accounts: it.accounts ? [...it.accounts] : null,\n teams: it.teams ? [...it.teams] : null,\n profilePictureUrl: it.profilePictureUrl,\n activityStatementInterval: it.activityStatementInterval,\n lastUpdatedOn: it.lastUpdatedOn,\n lastUpdatedVersion: it.lastUpdatedVersion,\n latestAssessmentId: it.latestAssessmentId,\n cartridgeId: it.cartridgeId,\n\n selfAssessedReportGenerated: it.selfAssessedReportGenerated,\n lastSelfAssessedReportGeneratedVersion: it.lastSelfAssessedReportGeneratedVersion,\n lastSelfAssessedReportGeneratedOn: it.lastSelfAssessedReportGeneratedOn,\n\n selfAssessedLastProfileVersion: it.selfAssessedLastProfileVersion,\n selfAssessedLastProfileUpdatedOn: it.selfAssessedLastProfileUpdatedOn,\n selfAssessedLastProfileApproved: it.selfAssessedLastProfileApproved,\n selfAssessedLastProfileUpdatedById: it.selfAssessedLastProfileUpdatedById ? it.selfAssessedLastProfileUpdatedById : it.id,\n selfAssessedLastProfileUpdatedBy: it.selfAssessedLastProfileUpdatedBy ? it.selfAssessedLastProfileUpdatedBy : `${it.firstName} ${it.lastName}`,\n\n selfAssessedLastApprovedById: it.selfAssessedLastProfileVersion ? it.selfAssessedLastApprovedById : null,\n selfAssessedLastApprovedBy: it.selfAssessedLastProfileVersion ? it.selfAssessedLastApprovedBy : null,\n selfAssessedLastApprovedOn: it.selfAssessedLastProfileVersion ? it.selfAssessedLastApprovedOn : null,\n selfAssessedLastApprovedVersion: it.selfAssessedLastProfileVersion ? it.selfAssessedLastApprovedVersion : null,\n\n selfAssessedStatus: it.selfAssessedLastProfileApproved\n ? \"Approved\"\n : account\n ? account.isApprovalRequested || account.isApprovalPostponed\n ? account.isApprovalPostponed\n ? account.approvalPostponedType == \"Missing Evidence\"\n ? \"Postponed pending evidence\"\n : \"Postponed pending changes\"\n : \"Requested\"\n : \"Not Requested\"\n : \"Not Requested\",\n selfAssessedLastProfileNumberOfChange: it.selfAssessedLastProfileNumberOfChange,\n isApprovalRequested: !it.selfAssessedLastProfileApproved && account ? account.isApprovalRequested : false,\n approvalRequestSentOn: account ? account.approvalRequestSentOn : null,\n\n isApprovalPostponed: !it.selfAssessedLastProfileApproved && account ? account.isApprovalPostponed : false,\n approvalPostponedOn: account && account.isApprovalPostponed ? account.approvalPostponedOn : null,\n approvalPostponedById: account && account.isApprovalPostponed ? account.approvalPostponedById : null,\n approvalPostponedBy: account && account.isApprovalPostponed ? account.approvalPostponedBy : null,\n approvalPostponedType: account && account.isApprovalPostponed ? account.approvalPostponedType : null,\n approvalPostponedComment: account && account.isApprovalPostponed ? account.approvalPostponedComment : null,\n };\n });\n };\n\n initData = () => {\n this.props.onAdminPerson.getPersonsIncSelfAssessed().then(() => {\n let persons = this.reformPersons(this.props.persons.filter((it) => !it.inactive));\n if (this.state.modeApprove) {\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\";\n });\n }\n\n this.setState({\n persons: persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)),\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n });\n });\n\n this.setState({ loading: this.props.loading });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n handleRowClickDummy = () => {};\n\n handleRowSkillProfileClick = (row) => {\n if (!this.state.loadingPrint) {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleSkillProfileSelected = !updatedData.toggleSkillProfileSelected;\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id) });\n }\n };\n\n handleSelectSkillProfileAll = () => {\n const { persons, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSkillProfileSelected && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\").length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSkillProfileSelected && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\").length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n });\n\n if (selectAll) {\n persons\n .filter((it) => it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\")\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSkillProfileSelected = true;\n }\n });\n }\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n });\n\n this.setState({ persons: [...persons], personsSkillProfileSelected: [] });\n };\n\n handleApproveProfiles = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n });\n\n this.setState({\n comment: \"\",\n modeApprove: true,\n persons: [...persons],\n personsSkillProfileSelected: persons.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n });\n };\n\n handleConfirmApprove = () => {\n const { personsSkillProfileSelected, persons } = this.state;\n\n const approvedPersons = persons.filter((it) => personsSkillProfileSelected.includes(it.id));\n const approvalRequests = approvedPersons.map((approvedPerson) => {\n return {\n personId: approvedPerson.id,\n accountId: approvedPerson.accounts && approvedPerson.accounts.length > 0 ? approvedPerson.accounts.sort((a, b) => (b.createdOn > a.createdOn ? 1 : -1))[0].id : null,\n email: approvedPerson.email,\n approvedVersion: approvedPerson.selfAssessedLastProfileVersion,\n comment: this.state.comment,\n approvedBy: localStorage.getItem(\"firstName\") + \" \" + localStorage.getItem(\"lastName\"),\n approvedOn: new Date(),\n };\n });\n\n this.setState({ isUpdating: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Approve skill profiles\", loadingPanelBody: \"Please wait ...\" });\n this.props.onAdminPerson.approveProfileRequests({ requests: approvalRequests }).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.generateAlert(\"success\", `Skill profiles approved`);\n this.setState({ modeApprove: false });\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating, showLoadingPanel: this.props.isUpdating, showApproveDialog: this.props.isUpdating });\n });\n };\n\n handleCancelApprove = () => {\n this.handleClearSelection();\n this.setState({ modeApprove: false });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportSelfAssessedProfiles = () => {\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.props.onAdminPerson.exportLatestSelfAssessedProfilesDataExcel(timezoneOffset).then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportLatestSelfAssessedProfiles_${strToday}.xlsx`);\n }\n }\n });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n togleShowApprovalModal = () => {\n const { showApproveDialog } = this.state;\n this.setState({ showApproveDialog: !showApproveDialog });\n };\n\n handleCommentChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({\n comment: value,\n });\n };\n\n renderApprovalDialog = () => {\n return (\n \n Approve Profile(s)\n \n {this.state.approveInProgress ? (\n
\n \n
\n ) : (\n
\n \n \n \n \n \n \n \n \n
\n )}\n
\n \n \n \n \n
\n );\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n openProfile = (person) => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"profileType\", \"Self Assessed\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"TRUE\");\n this.props.history.push(`/SfiaProfile/Manage?email=${person.email}`);\n };\n\n render() {\n const { persons, searchKeyword, searchProperties, modeApprove, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n let pageAssignment = null;\n\n if (pageAssignments.find((it) => it.pageName == \"Approve SelfAssessed\")) {\n pageAssignment = pageAssignments.find((it) => it.pageName == \"Approve SelfAssessed\");\n }\n\n const handleSelectSkillProfileAll = this.handleSelectSkillProfileAll;\n const handleRowSkillProfileClick = this.handleRowSkillProfileClick;\n const openProfile = this.openProfile;\n\n const onTableFilterChange = this.onTableFilterChange;\n\n const loadingPrint = this.state.loadingPrint;\n\n const filtered = this.filterArray(persons, searchKeyword, searchProperties, columnSearchKeywords);\n\n const allowApprove = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Approve\" && op.allow == true) ? true : false;\n const allowExport = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) ? true : false;\n\n const lastUpdatedSort = (rowA, rowB) => {\n let lastUpdatedA =\n (rowA.selfAssessedLastProfileUpdatedOn ? rowA.selfAssessedLastProfileUpdatedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowA.endorsementLastUpdatedVersion}` : \"\") + (rowA.selfAssessedLastProfileUpdatedBy ? rowA.selfAssessedLastProfileUpdatedBy : \"\");\n let lastUpdatedB =\n (rowB.selfAssessedLastProfileUpdatedOn ? rowB.selfAssessedLastProfileUpdatedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowB.endorsementLastUpdatedVersion}` : \"\") + (rowB.selfAssessedLastProfileUpdatedBy ? rowB.selfAssessedLastProfileUpdatedBy : \"\");\n\n if (lastUpdatedA > lastUpdatedB) {\n return 1;\n }\n\n if (lastUpdatedB > lastUpdatedA) {\n return -1;\n }\n\n return 0;\n };\n\n const lastApprovedSort = (rowA, rowB) => {\n let lastApprovedA = (rowA.selfAssessedLastApprovedOn ? rowA.selfAssessedLastApprovedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowA.selfAssessedLastApprovedVersion}` : \"\") + (rowA.selfAssessedLastApprovedBy ? rowA.selfAssessedLastApprovedBy : \"\");\n let lastApprovedB = (rowB.selfAssessedLastApprovedOn ? rowB.selfAssessedLastApprovedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") + `V${rowB.selfAssessedLastApprovedVersion}` : \"\") + (rowB.selfAssessedLastApprovedBy ? rowB.selfAssessedLastApprovedBy : \"\");\n\n if (lastApprovedA > lastApprovedB) {\n return 1;\n }\n\n if (lastApprovedB > lastApprovedA) {\n return -1;\n }\n\n return 0;\n };\n\n const postponedOnSort = (rowA, rowB) => {\n let lastApprovedA = (rowA.approvalPostponedOn ? rowA.approvalPostponedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\") + (rowA.approvalPostponedBy ? rowA.approvalPostponedBy : \"\");\n let lastApprovedB = (rowB.approvalPostponedOn ? rowB.approvalPostponedOn.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\") + (rowB.approvalPostponedBy ? rowB.approvalPostponedBy : \"\");\n\n if (lastApprovedA > lastApprovedB) {\n return 1;\n }\n\n if (lastApprovedB > lastApprovedA) {\n return -1;\n }\n\n return 0;\n };\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n \n Select\n \n
\n it.toggleSkillProfileSelected && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\").length == 0\n ? faSquare\n : filtered.filter((it) => !it.toggleSkillProfileSelected && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\").length == 0\n ? faSquareCheck\n : faSquareMinus\n }\n style={{\n cursor: \"pointer\",\n color: filtered.filter((it) => it.toggleSkillProfileSelected && it.selfAssessedStatus != \"Approved\" && it.selfAssessedStatus != \"Postponed pending evidence\" && it.selfAssessedStatus != \"Postponed pending changes\").length == 0 ? \"#8f8f9d\" : \"#007bff\",\n }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectSkillProfileAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {row.selfAssessedStatus != \"Approved\" && row.selfAssessedStatus != \"Postponed pending evidence\" && row.selfAssessedStatus != \"Postponed pending changes\" && (\n handleRowSkillProfileClick(row)} />\n )}\n
\n );\n },\n omit: !modeApprove,\n },\n {\n id: \"email\",\n name: (\n
\n Person Name (email)\n
\n it.name == \"completeName\") ? columnSearchKeywords.find((it) => it.name == \"completeName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: modeApprove ? \"29%\" : \"35%\",\n center: false,\n format: function (row, index) {\n return (\n \n {allowApprove ? (\n
openProfile(row)}>\n {`${row.firstName} ${row.lastName} (${row.email})`}\n
\n ) : (\n `${row.firstName} ${row.lastName} (${row.email})`\n )}\n
\n );\n },\n },\n {\n id: \"selfAssessedLastProfileUpdatedOn\",\n name: (\n
\n Last Updated by and date\n
\n it.name == \"selfAssessedLastProfileUpdatedBy\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedLastProfileUpdatedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedLastProfileUpdatedOn,\n sortable: true,\n sortFunction: lastUpdatedSort,\n width: \"13%\",\n center: false,\n format: function (row, index) {\n if (row.selfAssessedLastProfileUpdatedOn) {\n return (\n \n {row.selfAssessedLastProfileUpdatedBy && (\n \n {row.selfAssessedLastProfileUpdatedBy}\n
\n
\n )}\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.selfAssessedLastProfileUpdatedOn))} ${row.selfAssessedLastProfileVersion ? `(v${row.selfAssessedLastProfileVersion})` : \"\"}`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n {\n id: \"selfAssessedLastApprovedOn\",\n name: (\n
\n Last approved by and date\n
\n it.name == \"selfAssessedLastApprovedBy\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedLastApprovedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedLastApprovedOn,\n sortable: true,\n sortFunction: lastApprovedSort,\n width: \"13%\",\n center: false,\n format: function (row, index) {\n if (row.selfAssessedLastApprovedOn) {\n return (\n \n {row.selfAssessedLastApprovedBy && (\n \n {row.selfAssessedLastApprovedBy}\n
\n
\n )}\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.selfAssessedLastApprovedOn))} ${row.selfAssessedLastApprovedVersion ? `(v${row.selfAssessedLastApprovedVersion})` : \"\"}`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n {\n id: \"selfAssessedStatus\",\n name: (\n
\n SelfAssessed Status\n
\n it.name == \"selfAssessedStatus\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedStatus\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedStatus,\n sortable: true,\n width: \"13%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n return (\n \n {row.selfAssessedStatus}\n {row.selfAssessedStatus == \"Requested\" && row.approvalRequestSentOn && (\n \n
\n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.approvalRequestSentOn))}\n
\n )}\n {row.isApprovalPostponed && (row.selfAssessedStatus == \"Postponed pending evidence\" || row.selfAssessedStatus == \"Postponed pending changes\") && (\n \n {`${row.approvalPostponedBy} has postponed your approval on ${\n row.approvalPostponedOn\n ? new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.approvalPostponedOn))\n : \"\"\n } requesting ${row.approvalPostponedType} with the following comment`}\n
\n {row.approvalPostponedComment}\n
\n )}\n
\n );\n },\n },\n {\n id: \"selfAssessedLastProfileNumberOfChange\",\n name: (\n
\n Number of Skill Changes\n
\n it.name == \"selfAssessedLastProfileNumberOfChange\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedLastProfileNumberOfChange\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedLastProfileNumberOfChange,\n sortable: true,\n width: \"13%\",\n center: false,\n format: function (row, index) {\n return row.selfAssessedStatus != \"Approved\" && row.selfAssessedLastProfileNumberOfChange;\n },\n },\n {\n id: \"approvalPostponedOn\",\n name: (\n
\n Postponed by and date\n
\n it.name == \"approvalPostponedBy\") ? columnSearchKeywords.find((it) => it.name == \"approvalPostponedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.approvalPostponedOn,\n sortable: true,\n sortFunction: postponedOnSort,\n width: \"13%\",\n center: false,\n format: function (row, index) {\n if (row.approvalPostponedOn) {\n return (\n \n {row.approvalPostponedBy && (\n \n {row.approvalPostponedBy}\n
\n
\n )}\n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.approvalPostponedOn))}`}\n
\n );\n } else {\n return \"\";\n }\n },\n },\n ];\n\n return (\n \n \n {this.renderLoadingPanel()}\n {this.renderApprovalDialog()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, personsSkillProfileSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", personsSkillProfileSelected: [] });\n }}\n >\n   \n \n Refresh\n \n {allowExport && (\n \n   \n \n Export\n \n \n )}\n {allowApprove && !modeApprove && (\n \n   \n \n Approve Profiles\n \n \n )}\n {modeApprove && (\n \n   \n \n {!this.state.loadingPrint ? \"OK\" : }\n \n   \n \n Cancel\n \n \n )}\n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n personId: state.auth.personId,\n email: state.auth.email,\n loginWithTeams: state.auth.loginWithTeams,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n personsAdmin: state.adminPerson.personsAdmin,\n isUpdating: state.adminPerson.isUpdating,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageSelfAssessed));\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faCopy, faPenToSquare, faSquareCheck, faSquareMinus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst messageHubHostname = process.env.NODE_ENV === \"development\" ? process.env.REACT_APP_MESSAGE_HUB_ENDPOINT : \"/messagehub\";\n\nclass ManageProfiles extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n persons: [],\n selectedPerson: null,\n isUpdating: false,\n personsSelected: [],\n modeCopyProfiles: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n connectSignalR = () => {\n this.connection = new HubConnectionBuilder().withUrl(messageHubHostname).build();\n\n this.connection.on(`CopySelfAssessedProfileNotification`, (response) => {\n if (response.action == \"CopySelfAssessedProfile\") {\n if (response.status == \"Success\") {\n let copyProfileRequestResponse = response.data;\n this.props.onPerson.updateCopySelfProfilesAsEndorsedStatus(copyProfileRequestResponse);\n this.generateAlert(\"success\", \"Some copy profile request status updated.\");\n }\n }\n });\n\n this.connection.start().catch((err) => console.error(err.toString()));\n };\n\n disconnectSignalR = () => {\n if (this.connection) this.connection.stop();\n };\n\n componentDidMount() {\n localStorage.setItem(\"routeAdminFrom\", \"/admin/selfprofiles\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n this.props.onAuth.authCheckState().then(() => {\n this.initData();\n this.setState({ loading: this.props.loading });\n this.connectSignalR();\n });\n }\n\n componentWillUnmount() {\n this.disconnectSignalR();\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n }\n\n searchProperties = () => {\n return [\"email\", \"firstName\", \"lastName\", \"lastApprovedBy\", \"copyProfileRequestStatus\"];\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n this.setState({\n persons: this.reformPersons(\n this.props.persons\n .filter((it) => !it.inactive && it.accounts && it.accounts.filter((acc) => acc.assessmentId == this.props.assessmentId && acc.approvals && acc.approvals.length > 0).length > 0)\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n ),\n });\n }\n\n if (prevProps.mode !== this.props.mode && prevProps.mode) {\n this.handleRefresh();\n }\n }\n\n initData = () => {\n this.props.onPerson.getPersonsIncludeCopySelfProfileStatus().then(() => {\n this.setState({\n persons: this.reformPersons(\n this.props.persons\n .filter((it) => !it.inactive && it.accounts && it.accounts.filter((acc) => acc.assessmentId == this.props.assessmentId && acc.approvals && acc.approvals.length > 0).length > 0)\n .sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n ),\n });\n });\n };\n\n reformPersons = (persons) => {\n return persons.map((it) => {\n return {\n id: it.id,\n companyId: it.companyId,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n completeName: `${it.firstName}${it.lastName ? ` ${it.lastName}` : \"\"}${it.email ? ` ${it.email}` : \"\"}`,\n salutation: it.salutation ? it.salutation : \"\",\n position: it.position ? it.position : \"\",\n inactive: it.inactive,\n personType: it.personType ? it.personType : \"\",\n accessGroup: it.accessGroup,\n allowNotifications: it.allowNotifications,\n lastActivityOn: it.lastActivityOn,\n lastActivitySystem: it.lastActivitySystem,\n createdOn: it.createdOn,\n countryCode: it.countryCode ? it.countryCode : \"\",\n country: it.country ? it.country : \"\",\n location: it.location ? it.location : \"\",\n selfAssessmentReason: it.selfAssessmentReason ? it.selfAssessmentReason : \"\",\n encryptedId: it.encryptedId,\n team: it.team ? it.team : \"\",\n usePreferredName: it.usePreferredName,\n other: it.other ? it.other : \"\",\n department: it.department ? it.department : \"\",\n businessUnit: it.businessUnit ? it.businessUnit : \"\",\n division: it.division ? it.division : \"\",\n territory: it.territory ? it.territory : \"\",\n costCentre: it.costCentre ? it.costCentre : \"\",\n supervisor: it.supervisor ? it.supervisor : \"\",\n validatedDate: it.validatedDate,\n isCandidate: it.isCandidate,\n isAnalyticsUser: it.isAnalyticsUser,\n leaveOn: it.leaveOn,\n isAssigned: it.isAssigned,\n isInvited: it.isInvited,\n invitedOn: it.invitedOn,\n teams: it.teams ? [...it.teams] : null,\n profilePictureUrl: it.profilePictureUrl,\n activityStatementInterval: it.activityStatementInterval,\n lastUpdatedOn: it.lastUpdatedOn,\n lastUpdatedVersion: it.lastUpdatedVersion,\n latestAssessmentId: it.latestAssessmentId,\n cartridgeId: it.cartridgeId,\n account: it.accounts ? it.accounts.sort((b, a) => new Date(a.createdOn) - new Date(b.createdOn))[0] : null,\n lastApprovedVersion: it.selfAssessedLastApprovedVersion,\n lastApprovedOn: it.selfAssessedLastApprovedOn,\n lastApprovedBy: it.selfAssessedLastApprovedBy,\n copyProfileRequested: it.selfAssessedCopyProfileRequested,\n copyProfileRequestedOn: it.selfAssessedCopyProfileRequestedOn,\n copyProfileRequestStatus: it.selfAssessedCopyProfileRequestStatus ? it.selfAssessedCopyProfileRequestStatus : \"Not Requested\",\n };\n });\n };\n\n handleRefresh = () => {\n this.setState({ personsSelected: [] });\n this.initData();\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n toFixedIfNecessary = (value, dp) => {\n return +parseFloat(value).toFixed(dp);\n };\n\n toggleCopyProfiles = () => {\n this.handleClearSelection();\n const modeCopyProfiles = this.state.modeCopyProfiles;\n this.setState({ modeCopyProfiles: !modeCopyProfiles });\n };\n\n handleRowClick = (row) => {\n if (!row.copyProfileRequested) {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleSelected = !updatedData.toggleSelected;\n\n this.setState({ persons: [...persons], personsSelected: persons.filter((it) => it.toggleSelected).map((row) => row.id) });\n }\n };\n\n handleSelectAll = () => {\n const { persons, searchKeyword, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, this.searchProperties(), columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSelected && !it.copyProfileRequested).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSelected && !it.copyProfileRequested).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (selectAll) {\n persons.forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n if (!it.copyProfileRequested) {\n it.toggleSelected = true;\n }\n }\n });\n }\n\n this.setState({ persons: [...persons], personsSelected: persons.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ persons: [...persons] });\n };\n\n showProfile = (person) => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"TRUE\");\n localStorage.setItem(\"profileType\", \"Self Assessed\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"TRUE\");\n\n this.props.history.push(`/SfiaProfile/Manage?email=${person.email}`);\n };\n\n handleConfirmRequestCopyProfile = () => {\n const { persons, searchKeyword, modeCopyProfiles, personsSelected } = this.state;\n\n const copiedProfiles = persons\n .filter((it) => personsSelected.includes(it.id))\n .map((it) => {\n return {\n personId: it.id,\n profileType: \"Self Assessed\",\n version: it.lastApprovedVersion,\n };\n });\n\n this.setState({ isUpdating: true });\n\n this.props.onPerson.requestCopySelfProfilesAsEndorsed(copiedProfiles).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.generateAlert(\"success\", \"Copy profiles requested.\");\n this.toggleCopyProfiles();\n\n const copyProfileRequestIds = this.props.copyProfileRequests.map((it) => {\n return it.id;\n });\n\n Promise.resolve(this.props.onPerson.processCopySelfProfilesAsEndorsed(copyProfileRequestIds)).then(() => {});\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const { persons, searchKeyword, modeCopyProfiles, personsSelected, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n\n let pageAssignment = null;\n\n if (pageAssignments.find((it) => it.pageName == \"Create Endorsed from Approved\")) {\n pageAssignment = pageAssignments.find((it) => it.pageName == \"Create Endorsed from Approved\");\n }\n\n const handleRowClick = this.handleRowClick;\n const handleSelectAll = this.handleSelectAll;\n const allowCopy = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Copy Profile as Endorsed\" && op.allow == true) ? true : false;\n const filtered = this.filterArray(persons, searchKeyword, this.searchProperties(), columnSearchKeywords);\n const showProfile = this.showProfile;\n const onTableFilterChange = this.onTableFilterChange;\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n it.toggleSelected && !it.copyProfileRequested).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSelected && !it.copyProfileRequested).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSelected && !it.copyProfileRequested).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return !row.copyProfileRequested ? (\n
\n handleRowClick(row)} />\n
\n ) : (\n \"\"\n );\n },\n omit: !modeCopyProfiles,\n },\n {\n id: \"lastUpdatedOn\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: true,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return (\n
\n \n showProfile(row)} />\n \n Show Profile\n \n \n
\n );\n },\n omit: !allowCopy,\n },\n {\n id: \"email\",\n name: (\n
\n Person Name (email)\n
\n it.name == \"completeName\") ? columnSearchKeywords.find((it) => it.name == \"completeName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: modeCopyProfiles ? \"30%\" : allowCopy ? \"36%\" : \"41%\",\n wrap: true,\n format: function (row, index) {\n return modeCopyProfiles && !row.copyProfileRequested ? handleRowClick(row)}>{`${row.firstName} ${row.lastName} (${row.email})`} : {`${row.firstName} ${row.lastName} (${row.email})`};\n },\n },\n {\n id: \"lastApprovedOn\",\n name: \"Last Approved On\",\n selector: (row) => row.lastApprovedOn,\n sortable: true,\n width: \"13%\",\n wrap: true,\n format: function (row, index) {\n return modeCopyProfiles && !row.copyProfileRequested ? (\n handleRowClick(row)}>\n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(row.lastApprovedOn))}\n \n ) : (\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(row.lastApprovedOn))\n );\n },\n },\n {\n id: \"lastApprovedVersion\",\n name: (\n
\n Last Approved Version\n
\n it.name == \"lastApprovedVersion\") ? columnSearchKeywords.find((it) => it.name == \"lastApprovedVersion\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lastApprovedVersion,\n sortable: true,\n width: \"10%\",\n wrap: true,\n format: function (row, index) {\n return modeCopyProfiles && !row.copyProfileRequested ? handleRowClick(row)}>{`v${row.lastApprovedVersion}`} : `v${row.lastApprovedVersion}`;\n },\n center: true,\n },\n {\n id: \"lastApprovedBy\",\n name: (\n
\n Last Approved By\n
\n it.name == \"lastApprovedBy\") ? columnSearchKeywords.find((it) => it.name == \"lastApprovedBy\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lastApprovedBy,\n sortable: true,\n width: \"20%\",\n wrap: true,\n format: function (row, index) {\n return modeCopyProfiles && !row.copyProfileRequested ? handleRowClick(row)}>{row.lastApprovedBy} : row.lastApprovedBy;\n },\n },\n {\n id: \"copyProfileRequestStatus\",\n name: (\n
\n Copy Profile Status\n
\n it.name == \"copyProfileRequestStatus\") ? columnSearchKeywords.find((it) => it.name == \"copyProfileRequestStatus\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.copyProfileRequestStatus,\n sortable: true,\n width: \"15%\",\n wrap: true,\n format: function (row, index) {\n return modeCopyProfiles && !row.copyProfileRequested ? handleRowClick(row)}>{row.copyProfileRequestStatus} : row.copyProfileRequestStatus;\n },\n },\n ];\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, personsSkillProfileSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", personsSkillProfileSelected: [] });\n }}\n >\n   \n \n Refresh\n \n {allowCopy && (\n \n   \n \n Copy Profiles\n \n \n )}\n {allowCopy && modeCopyProfiles && (\n \n   \n \n OK\n \n   \n \n Cancel\n \n \n )}\n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n assessmentId: state.auth.assessmentId,\n error: state.auth.error,\n loginWithTeams: state.auth.loginWithTeams,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n isUpdating: state.adminPerson.isUpdating,\n copyProfileRequests: state.adminPerson.copyProfileRequests,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n config: state.config.config,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageProfiles));\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminActionLogAPI {\n static getActionLogs(startDate, endDate) {\n return axios\n .get(`/actionLogs?startDate=${startDate}&endDate=${endDate}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportActionLogsExcel(request) {\n return axios\n .post(`/actionLogs/exportlogs`, request, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminActionLogAPI;\n","import AdminActionLogAPI from \"./../../../common/api/adminservice/AdminActionLogService\";\nimport * as adminActionTypes from \"./adminActionTypes\";\n\nexport const getActionLogsStart = () => {\n return {\n type: adminActionTypes.GET_ACTION_LOGS_START,\n };\n};\n\nexport const getActionLogsSuccess = (actionLogs) => {\n return {\n type: adminActionTypes.GET_ACTION_LOGS_SUCCESS,\n actionLogs,\n };\n};\n\nexport const getActionLogsFail = (error) => {\n return {\n type: adminActionTypes.GET_ACTION_LOGS_FAIL,\n error: error,\n };\n};\n\nexport const getActionLogs = (startDate, endDate) => {\n return (dispatch) => {\n dispatch(getActionLogsStart());\n\n return AdminActionLogAPI.getActionLogs(startDate, endDate)\n .then((res) => {\n dispatch(getActionLogsSuccess(res));\n })\n .catch((err) => {\n dispatch(getActionLogsFail(err));\n });\n };\n};\n\nexport const exportActionLogsExcelStart = () => {\n return {\n type: adminActionTypes.EXPORT_ACTION_LOGS_START,\n };\n};\n\nexport const exportActionLogsExcelSuccess = (printData) => {\n return {\n type: adminActionTypes.EXPORT_ACTION_LOGS_SUCCESS,\n printData,\n };\n};\n\nexport const exportActionLogsExcelFail = (error) => {\n return {\n type: adminActionTypes.EXPORT_ACTION_LOGS_FAIL,\n error: error,\n };\n};\n\nexport const exportActionLogsExcel = (request) => {\n return (dispatch) => {\n dispatch(exportActionLogsExcelStart());\n\n return AdminActionLogAPI.exportActionLogsExcel(request)\n .then((res) => {\n dispatch(exportActionLogsExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportActionLogsExcelFail(err));\n });\n };\n};\n","import * as actionLogActions from \"../../../store/admin/actions/adminActionLogActions\";\nimport { formatDate_localeString } from \"../../../utils/stringUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faFileExcel, faMagnifyingGlass } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport Multiselect from \"multiselect-react-dropdown\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nclass ManageActionLogs extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n actionLogs: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n searchProperties: [\"type\", \"firstName\", \"lastName\", \"action\", \"email\"],\n startDate: null,\n endDate: null,\n actionTypeOptions: [\n { value: \"Query\", label: \"Query\" },\n { value: \"Command\", label: \"Command\" },\n ],\n selectedActionTypeOptions: [{ value: \"Command\", label: \"Command\" }],\n actionOptions: [],\n selectedActionOptions: [],\n };\n\n this.formatDate_localeString = formatDate_localeString.bind(this);\n }\n\n componentDidMount() {\n window.scrollTo(0, 100);\n\n var today = new Date();\n var weekAgo = this.addDays(new Date(), -7);\n\n this.setState(\n {\n startDate: weekAgo,\n endDate: today,\n },\n () => {\n this.searchData();\n }\n );\n }\n\n addDays = (date, days) => {\n date.setDate(date.getDate() + days);\n return date;\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleRefresh = () => {\n this.searchData();\n };\n\n searchData = () => {\n var { startDate, endDate } = this.state;\n const selectedTypes = this.state.selectedActionTypeOptions.map((it) => it.value);\n\n this.setState({ loading: true });\n this.props.onActionLog.getActionLogs(startDate.getFullYear() + \"-\" + this.pad2(startDate.getMonth() + 1) + \"-\" + this.pad2(startDate.getDate()), endDate.getFullYear() + \"-\" + this.pad2(endDate.getMonth() + 1) + \"-\" + this.pad2(endDate.getDate())).then(() => {\n if (!this.props.loading) {\n const actions = [\n \"SignIn\",\n \"SignOut\",\n ...new Set(\n this.props.actionLogs\n .filter((it) => it.action != \"SignIn\" && it.action != \"SignOut\")\n .sort((a, b) => (a.action > b.action ? 1 : -1))\n .map((it) => it.action)\n ),\n ];\n\n this.setState({\n actionLogs: this.props.actionLogs.filter((it) => selectedTypes.includes(it.type)),\n\n actionOptions: actions.map((it) => {\n return {\n value: it,\n label: it,\n };\n }),\n selectedActionOptions: actions.map((it) => {\n return {\n value: it,\n label: it,\n };\n }),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleDateChange = (name, value) => {\n if (name == \"startDate\") {\n this.setState({ startDate: new Date(value) });\n } else {\n this.setState({ endDate: new Date(value) });\n }\n };\n\n handleSelectType = (selectedList, selectedItem) => {\n const selectedTypes = selectedList.map((it) => it.value);\n const selectedActions = this.state.selectedActionOptions.map((it) => it.value);\n this.setState({ selectedActionTypeOptions: [...selectedList], actionLogs: [...this.props.actionLogs.filter((it) => selectedTypes.includes(it.type) && selectedActions.includes(it.action))] });\n };\n\n handleRemoveType = (selectedList, selectedItem) => {\n const selectedTypes = selectedList.map((it) => it.value);\n const selectedActions = this.state.selectedActionOptions.map((it) => it.value);\n this.setState({ selectedActionTypeOptions: [...selectedList], actionLogs: [...this.props.actionLogs.filter((it) => selectedTypes.includes(it.type) && selectedActions.includes(it.action))] });\n };\n\n handleSelectAction = (selectedList, selectedItem) => {\n const selectedTypes = this.state.selectedActionTypeOptions.map((it) => it.value);\n const selectedActions = selectedList.map((it) => it.value);\n this.setState({ selectedActionOptions: [...selectedList], actionLogs: [...this.props.actionLogs.filter((it) => selectedTypes.includes(it.type) && selectedActions.includes(it.action))] });\n };\n\n handleRemoveAction = (selectedList, selectedItem) => {\n const selectedTypes = this.state.selectedActionTypeOptions.map((it) => it.value);\n const selectedActions = selectedList.map((it) => it.value);\n this.setState({ selectedActionOptions: [...selectedList], actionLogs: [...this.props.actionLogs.filter((it) => selectedTypes.includes(it.type) && selectedActions.includes(it.action))] });\n };\n\n handleExport = () => {\n var { startDate, endDate } = this.state;\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n const selectedTypes = this.state.selectedActionTypeOptions.map((it) => it.value);\n const selectedActions = this.state.selectedActionOptions.map((it) => it.value);\n\n this.props.onActionLog\n .exportActionLogsExcel({\n timezoneOffset,\n startDate: startDate.getFullYear() + \"-\" + this.pad2(startDate.getMonth() + 1) + \"-\" + this.pad2(startDate.getDate()),\n endDate: endDate.getFullYear() + \"-\" + this.pad2(endDate.getMonth() + 1) + \"-\" + this.pad2(endDate.getDate()),\n selectedTypes,\n selectedActions,\n })\n .then(() => {\n if (!this.props.loadingPrint && !this.props.error) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportAuditLogs_${strToday}.xlsx`);\n }\n }\n });\n };\n\n render() {\n const { actionLogs, searchKeyword, searchProperties, actionTypeOptions, selectedActionTypeOptions, actionOptions, selectedActionOptions } = this.state;\n const startDate = this.state.startDate ? this.formatDate_localeString(new Date(this.state.startDate)) : null;\n const endDate = this.state.endDate ? this.formatDate_localeString(new Date(this.state.endDate)) : null;\n\n const columns = [\n {\n id: \"personId\",\n name: \"User\",\n selector: (row) => row.personId,\n sortable: true,\n width: \"18%\",\n format: function (row, index) {\n return `${row.firstName} ${row.lastName}`;\n },\n wrap: true,\n },\n {\n id: \"email\",\n name: \"Email\",\n selector: (row) => row.email,\n sortable: true,\n width: \"20%\",\n wrap: true,\n },\n {\n id: \"actionDate\",\n name: \"Date\",\n selector: (row) => row.actionDate,\n sortable: true,\n width: \"12%\",\n format: function (row, index) {\n return new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n hourCycle: \"h23\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n }).format(new Date(row.actionDate));\n },\n },\n {\n id: \"type\",\n name: \"Type\",\n selector: (row) => row.type,\n sortable: true,\n width: \"10%\",\n wrap: true,\n },\n {\n id: \"action\",\n name: \"Action\",\n selector: (row) => row.action,\n sortable: true,\n width: \"40%\",\n wrap: true,\n },\n ];\n\n return (\n \n

\n Audit Logs\n

\n
\n \n \n
\n this.handleDateChange(\"startDate\", value)} disabled={this.state.loading} className=\"form-control\" />\n
\n   to  \n
\n this.handleDateChange(\"endDate\", value)} disabled={this.state.loading} className=\"form-control\" />\n
\n \n \n \n Search\n \n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n \n
\n \n \n \n \n {/* \n \n */}\n \n \n Export\n \n \n \n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminActionLog.loading,\n error: state.adminActionLog.error,\n actionLogs: state.adminActionLog.actionLogs,\n isUpdating: state.adminActionLog.isUpdating,\n\n loadingPrint: state.adminActionLog.loadingPrint,\n printData: state.adminActionLog.printData,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionLog: bindActionCreators(actionLogActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageActionLogs);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminActionTypeAPI {\n static getActionTypes() {\n return axios\n .get(`/actiontypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createActionType(actiontype) {\n return axios\n .post(`/actiontypes`, actiontype)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateActionType(id, actiontype) {\n return axios\n .put(`/actiontypes/${id}`, actiontype)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteActionType(id) {\n return axios\n .delete(`/actiontypes/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminActionTypeAPI;\n","import AdminActionTypeAPI from \"./../../../common/api/adminservice/AdminActionTypService\";\nimport * as adminActionTypes from \"./adminActionTypes\";\n\nexport const getActionTypesStart = () => {\n return {\n type: adminActionTypes.GET_ACTIONTYPES_START,\n };\n};\n\nexport const getActionTypesSuccess = (actionTypes) => {\n return {\n type: adminActionTypes.GET_ACTIONTYPES_SUCCESS,\n actionTypes,\n };\n};\n\nexport const getActionTypesFail = (error) => {\n return {\n type: adminActionTypes.GET_ACTIONTYPES_FAIL,\n error: error,\n };\n};\n\nexport const getActionTypes = () => {\n return (dispatch) => {\n dispatch(getActionTypesStart());\n\n return AdminActionTypeAPI.getActionTypes()\n .then((res) => {\n dispatch(getActionTypesSuccess(res));\n })\n .catch((err) => {\n dispatch(getActionTypesFail(err));\n });\n };\n};\n\nexport const addActionTypeStart = () => {\n return {\n type: adminActionTypes.ADD_ACTIONTYPE_START,\n };\n};\n\nexport const addActionTypeSuccess = (addedActionType) => {\n return {\n type: adminActionTypes.ADD_ACTIONTYPE_SUCCESS,\n addedActionType,\n };\n};\n\nexport const addActionTypeFail = (error) => {\n return {\n type: adminActionTypes.ADD_ACTIONTYPE_FAIL,\n error: error,\n };\n};\n\nexport const addActionType = (actionType) => {\n return (dispatch) => {\n dispatch(addActionTypeStart());\n\n return AdminActionTypeAPI.createActionType(actionType)\n .then((res) => {\n dispatch(addActionTypeSuccess(res));\n })\n .catch((err) => {\n dispatch(addActionTypeFail(err));\n });\n };\n};\n\nexport const updateActionTypeStart = () => {\n return {\n type: adminActionTypes.UPDATE_ACTIONTYPE_START,\n };\n};\n\nexport const updateActionTypeSuccess = (updatedActionType) => {\n return {\n type: adminActionTypes.UPDATE_ACTIONTYPE_SUCCESS,\n updatedActionType,\n };\n};\n\nexport const updateActionTypeFail = (error) => {\n return {\n type: adminActionTypes.UPDATE_ACTIONTYPE_FAIL,\n error: error,\n };\n};\n\nexport const updateActionType = (id, actionType) => {\n return (dispatch) => {\n dispatch(updateActionTypeStart());\n\n return AdminActionTypeAPI.updateActionType(id, actionType)\n .then((res) => {\n dispatch(updateActionTypeSuccess(res));\n })\n .catch((err) => {\n dispatch(updateActionTypeFail(err));\n });\n };\n};\n\nexport const deleteActionTypeStart = () => {\n return {\n type: adminActionTypes.DELETE_ACTIONTYPE_START,\n };\n};\n\nexport const deleteActionTypeSuccess = (deletedActionTypeId) => {\n return {\n type: adminActionTypes.DELETE_ACTIONTYPE_SUCCESS,\n deletedActionTypeId,\n };\n};\n\nexport const deleteActionTypeFail = (error) => {\n return {\n type: adminActionTypes.DELETE_ACTIONTYPE_FAIL,\n error: error,\n };\n};\n\nexport const deleteActionType = (id) => {\n return (dispatch) => {\n dispatch(deleteActionTypeStart());\n\n return AdminActionTypeAPI.deleteActionType(id)\n .then((res) => {\n dispatch(deleteActionTypeSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteActionTypeFail(err));\n });\n };\n};\n","import * as actionTypeActions from \"../../../store/admin/actions/adminActionTypeActions\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faMinusCircle, faPlus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageActionTypes extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n actionTypes: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n editedActionTypeId: null,\n actionTypeName: \"\",\n searchProperties: [\"name\"],\n };\n }\n\n componentDidMount() {\n this.initData();\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onActionType.getActionTypes().then(() => {\n if (!this.props.loading) {\n this.setState({\n actionTypes: this.props.actionTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleAddNew = () => {\n this.setState({ updateMode: \"Add\", showUpdateDialog: true, touched: false, actionTypeName: \"\" });\n };\n\n openUpdate = (evidenceType) => {\n this.setState({ updateMode: \"Update\", showUpdateDialog: true, touched: false, actionTypeName: evidenceType.name, editedActionTypeId: evidenceType.id });\n };\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n\n this.setState({ touched: true, actionTypeName: value });\n };\n\n handleSubmit = () => {\n const { updateMode, actionTypeName, editedActionTypeId } = this.state;\n this.setState({ isUpdating: true });\n\n if (updateMode == \"Add\") {\n this.props.onActionType\n .addActionType({\n name: actionTypeName.trim(),\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n actionTypes: this.props.actionTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Action type added\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onActionType\n .updateActionType(editedActionTypeId, {\n name: actionTypeName.trim(),\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n actionTypes: this.props.actionTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Action type updated\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleUpdateDialog = () => {\n const showUpdateDialog = this.state.showUpdateDialog;\n this.setState({ showUpdateDialog: !showUpdateDialog });\n };\n\n renderUpdate = () => {\n return (\n \n {this.state.updateMode ? this.state.updateMode : \"\"} Action Types\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmit();\n }}\n disabled={this.state.isUpdating || this.state.actionTypeName == \"\"}\n >\n Save\n \n \n \n
\n );\n };\n\n handleDelete = (row) => {\n this.setState({ isUpdating: true });\n\n this.props.onActionType.deleteActionType(row.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n const actionTypes = this.props.actionTypes\n .sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n .map((it) => {\n return {\n id: it.id,\n name: it.name,\n isUsed: it.isUsed,\n lastUpdated: new Date(),\n };\n });\n this.setState({ actionTypes: [...actionTypes.filter((it) => it.id != row.id)] });\n this.props.generateAlert(\"success\", \"Action type deleted\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { actionTypes, searchKeyword, searchProperties } = this.state;\n\n const openUpdate = this.openUpdate;\n const handleDelete = this.handleDelete;\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openUpdate(row)} />\n \n Update\n \n {!row.isUsed && (\n \n    \n handleDelete(row)} />\n \n Delete\n \n \n )}\n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"name\",\n name: \"Name\",\n selector: (row) => row.name,\n sortable: true,\n width: this.props.allowEdit ? \"85%\" : \"100%\",\n },\n ];\n\n return (\n \n {this.renderUpdate()}\n \n Action Types\n \n
\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {this.props.allowEdit && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminActionType.loading,\n error: state.adminActionType.error,\n actionTypes: state.adminActionType.actionTypes,\n isUpdating: state.adminActionType.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionType: bindActionCreators(actionTypeActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageActionTypes);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminAllowedRegistrationEmailDomainAPI {\n static getAllowedRegistrationEmailDomains() {\n return axios\n .get(`/allowedRegistrationEmailDomains`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createAllowedRegistrationEmailDomain(emailDomain) {\n return axios\n .post(`/allowedRegistrationEmailDomains`, { emailDomain })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateAllowedRegistrationEmailDomain(id, emailDomain) {\n return axios\n .put(`/allowedRegistrationEmailDomains/${id}`, { emailDomain })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteAllowedRegistrationEmailDomain(id) {\n return axios\n .delete(`/allowedRegistrationEmailDomains/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminAllowedRegistrationEmailDomainAPI;\n","import AdminAllowedRegistrationEmailDomainAPI from \"./../../../common/api/adminservice/AdminAllowedRegistrationEmailDomainService\";\nimport * as adminActionTypes from \"./adminActionTypes\";\n\nexport const getAllowedRegistrationEmailDomainsStart = () => {\n return {\n type: adminActionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_START,\n };\n};\n\nexport const getAllowedRegistrationEmailDomainsSuccess = (allowedRegistrationEmailDomains) => {\n return {\n type: adminActionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_SUCCESS,\n allowedRegistrationEmailDomains,\n };\n};\n\nexport const getAllowedRegistrationEmailDomainsFail = (error) => {\n return {\n type: adminActionTypes.GET_ALLOWED_REGISTRATION_EMAIL_DOMAINS_FAIL,\n error: error,\n };\n};\n\nexport const getAllowedRegistrationEmailDomains = () => {\n return (dispatch) => {\n dispatch(getAllowedRegistrationEmailDomainsStart());\n\n return AdminAllowedRegistrationEmailDomainAPI.getAllowedRegistrationEmailDomains()\n .then((res) => {\n dispatch(getAllowedRegistrationEmailDomainsSuccess(res));\n })\n .catch((err) => {\n dispatch(getAllowedRegistrationEmailDomainsFail(err));\n });\n };\n};\n\nexport const addAllowedRegistrationEmailDomainStart = () => {\n return {\n type: adminActionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START,\n };\n};\n\nexport const addAllowedRegistrationEmailDomainSuccess = (addedAllowedRegistrationEmailDomain) => {\n return {\n type: adminActionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS,\n addedAllowedRegistrationEmailDomain,\n };\n};\n\nexport const addAllowedRegistrationEmailDomainFail = (error) => {\n return {\n type: adminActionTypes.ADD_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL,\n error: error,\n };\n};\n\nexport const addAllowedRegistrationEmailDomain = (emailDomain) => {\n return (dispatch) => {\n dispatch(addAllowedRegistrationEmailDomainStart());\n\n return AdminAllowedRegistrationEmailDomainAPI.createAllowedRegistrationEmailDomain(emailDomain)\n .then((res) => {\n dispatch(addAllowedRegistrationEmailDomainSuccess(res));\n })\n .catch((err) => {\n dispatch(addAllowedRegistrationEmailDomainFail(err));\n });\n };\n};\n\nexport const updateAllowedRegistrationEmailDomainStart = () => {\n return {\n type: adminActionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START,\n };\n};\n\nexport const updateAllowedRegistrationEmailDomainSuccess = (updatedAllowedRegistrationEmailDomain) => {\n return {\n type: adminActionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS,\n updatedAllowedRegistrationEmailDomain,\n };\n};\n\nexport const updateAllowedRegistrationEmailDomainFail = (error) => {\n return {\n type: adminActionTypes.UPDATE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL,\n error: error,\n };\n};\n\nexport const updateAllowedRegistrationEmailDomain = (id, emailDomain) => {\n return (dispatch) => {\n dispatch(updateAllowedRegistrationEmailDomainStart());\n\n return AdminAllowedRegistrationEmailDomainAPI.updateAllowedRegistrationEmailDomain(id, emailDomain)\n .then((res) => {\n dispatch(updateAllowedRegistrationEmailDomainSuccess(res));\n })\n .catch((err) => {\n dispatch(updateAllowedRegistrationEmailDomainFail(err));\n });\n };\n};\n\nexport const deleteAllowedRegistrationEmailDomainStart = () => {\n return {\n type: adminActionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_START,\n };\n};\n\nexport const deleteAllowedRegistrationEmailDomainSuccess = (deletedAllowedRegistrationEmailDomainId) => {\n return {\n type: adminActionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_SUCCESS,\n deletedAllowedRegistrationEmailDomainId,\n };\n};\n\nexport const deleteAllowedRegistrationEmailDomainFail = (error) => {\n return {\n type: adminActionTypes.DELETE_ALLOWED_REGISTRATION_EMAIL_DOMAIN_FAIL,\n error: error,\n };\n};\n\nexport const deleteAllowedRegistrationEmailDomain = (id) => {\n return (dispatch) => {\n dispatch(deleteAllowedRegistrationEmailDomainStart());\n\n return AdminAllowedRegistrationEmailDomainAPI.deleteAllowedRegistrationEmailDomain(id)\n .then((res) => {\n dispatch(deleteAllowedRegistrationEmailDomainSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteAllowedRegistrationEmailDomainFail(err));\n });\n };\n};\n","import * as allowedRegistrationEmailDomainActions from \"../../../store/admin/actions/adminAllowedRegistrationEmailDomainActions\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faMinusCircle, faPlus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageAllowedRegistrationEmailDomains extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n allowedRegistrationEmailDomains: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n editedAllowedRegistrationEmailDomainId: null,\n emailDomain: \"\",\n isValid: false,\n searchProperties: [\"emailDomain\"],\n };\n }\n\n componentDidMount() {\n //this.initData();\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onAllowedRegistrationEmailDomain.getAllowedRegistrationEmailDomains().then(() => {\n if (!this.props.loading) {\n this.setState({\n allowedRegistrationEmailDomains: this.props.allowedRegistrationEmailDomains.sort((a, b) => (`${a.emailDomain}` > `${b.emailDomain}` ? 1 : -1)),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.initData();\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleAddNew = () => {\n this.setState({ updateMode: \"Add\", showUpdateDialog: true, touched: false, emailDomain: \"\" });\n };\n\n openUpdate = (allowedEmailDomain) => {\n this.setState({ updateMode: \"Update\", showUpdateDialog: true, touched: false, emailDomain: allowedEmailDomain.emailDomain, editedAllowedRegistrationEmailDomainId: allowedEmailDomain.id });\n };\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n const pattern = /(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/;\n\n this.setState({ touched: true, emailDomain: value, isValid: pattern.test(value) });\n };\n\n handleSubmit = () => {\n const { updateMode, emailDomain, editedAllowedRegistrationEmailDomainId } = this.state;\n this.setState({ isUpdating: true });\n\n if (updateMode == \"Add\") {\n this.props.onAllowedRegistrationEmailDomain.addAllowedRegistrationEmailDomain(emailDomain.trim()).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n allowedRegistrationEmailDomains: this.props.allowedRegistrationEmailDomains.sort((a, b) => (`${a.emailDomain}` > `${b.emailDomain}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Email domain added\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onAllowedRegistrationEmailDomain.updateAllowedRegistrationEmailDomain(editedAllowedRegistrationEmailDomainId, emailDomain.trim()).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n allowedRegistrationEmailDomains: this.props.allowedRegistrationEmailDomains.sort((a, b) => (`${a.emailDomain}` > `${b.emailDomain}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Email domain updated\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleUpdateDialog = () => {\n const showUpdateDialog = this.state.showUpdateDialog;\n this.setState({ showUpdateDialog: !showUpdateDialog });\n };\n\n renderUpdate = () => {\n return (\n \n {this.state.updateMode ? this.state.updateMode : \"\"} Allowed Email Domains\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmit();\n }}\n disabled={this.state.isUpdating || this.state.emailDomain == \"\"}\n >\n Save\n \n \n \n
\n );\n };\n\n handleDelete = (row) => {\n if (window.confirm(\"Are you sure want to delete this record?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onAllowedRegistrationEmailDomain.deleteAllowedRegistrationEmailDomain(row.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n const allowedRegistrationEmailDomains = this.props.allowedRegistrationEmailDomains\n .sort((a, b) => (`${a.emailDomain}` > `${b.emailDomain}` ? 1 : -1))\n .map((it) => {\n return {\n id: it.id,\n emailDomain: it.emailDomain,\n };\n });\n this.setState({ allowedRegistrationEmailDomains: [...allowedRegistrationEmailDomains.filter((it) => it.id != row.id)] });\n this.props.generateAlert(\"success\", \"Email domain deleted\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { allowedRegistrationEmailDomains, searchKeyword, searchProperties } = this.state;\n\n const openUpdate = this.openUpdate;\n const handleDelete = this.handleDelete;\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openUpdate(row)} />\n \n Update\n \n {!row.isUsed && (\n \n    \n handleDelete(row)} />\n \n Delete\n \n \n )}\n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"emailDomain\",\n name: \"Email Domain\",\n selector: (row) => row.emailDomain,\n sortable: true,\n width: this.props.allowEdit ? \"85%\" : \"100%\",\n },\n ];\n\n return (\n \n {this.renderUpdate()}\n \n Allowed Email Domains\n \n
\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {this.props.allowEdit && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminAllowedRegistrationEmailDomain.loading,\n error: state.adminAllowedRegistrationEmailDomain.error,\n allowedRegistrationEmailDomains: state.adminAllowedRegistrationEmailDomain.allowedRegistrationEmailDomains,\n isUpdating: state.adminAllowedRegistrationEmailDomain.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAllowedRegistrationEmailDomain: bindActionCreators(allowedRegistrationEmailDomainActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageAllowedRegistrationEmailDomains);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminEvidenceTypeAPI {\n static getEvidenceTypes() {\n return axios\n .get(`/evidencetypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createEvidenceType(evidencetype) {\n return axios\n .post(`/evidencetypes`, evidencetype)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateEvidenceType(id, evidencetype) {\n return axios\n .put(`/evidencetypes/${id}`, evidencetype)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteEvidenceType(id) {\n return axios\n .delete(`/evidencetypes/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminEvidenceTypeAPI;\n","import AdminEvidenceTypeAPI from \"./../../../common/api/adminservice/AdminEvidenceTypeService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getEvidenceTypesStart = () => {\n return {\n type: actionTypes.GET_EVIDENCETYPES_START,\n };\n};\n\nexport const getEvidenceTypesSuccess = (evidenceTypes) => {\n return {\n type: actionTypes.GET_EVIDENCETYPES_SUCCESS,\n evidenceTypes,\n };\n};\n\nexport const getEvidenceTypesFail = (error) => {\n return {\n type: actionTypes.GET_EVIDENCETYPES_FAIL,\n error: error,\n };\n};\n\nexport const getEvidenceTypes = () => {\n return (dispatch) => {\n dispatch(getEvidenceTypesStart());\n\n return AdminEvidenceTypeAPI.getEvidenceTypes()\n .then((res) => {\n dispatch(getEvidenceTypesSuccess(res));\n })\n .catch((err) => {\n dispatch(getEvidenceTypesFail(err));\n });\n };\n};\n\nexport const addEvidenceTypeStart = () => {\n return {\n type: actionTypes.ADD_EVIDENCETYPE_START,\n };\n};\n\nexport const addEvidenceTypeSuccess = (addedEvidenceType) => {\n return {\n type: actionTypes.ADD_EVIDENCETYPE_SUCCESS,\n addedEvidenceType,\n };\n};\n\nexport const addEvidenceTypeFail = (error) => {\n return {\n type: actionTypes.ADD_EVIDENCETYPE_FAIL,\n error: error,\n };\n};\n\nexport const addEvidenceType = (evidenceType) => {\n return (dispatch) => {\n dispatch(addEvidenceTypeStart());\n\n return AdminEvidenceTypeAPI.createEvidenceType(evidenceType)\n .then((res) => {\n dispatch(addEvidenceTypeSuccess(res));\n })\n .catch((err) => {\n dispatch(addEvidenceTypeFail(err));\n });\n };\n};\n\nexport const updateEvidenceTypeStart = () => {\n return {\n type: actionTypes.UPDATE_EVIDENCETYPE_START,\n };\n};\n\nexport const updateEvidenceTypeSuccess = (updatedEvidenceType) => {\n return {\n type: actionTypes.UPDATE_EVIDENCETYPE_SUCCESS,\n updatedEvidenceType,\n };\n};\n\nexport const updateEvidenceTypeFail = (error) => {\n return {\n type: actionTypes.UPDATE_EVIDENCETYPE_FAIL,\n error: error,\n };\n};\n\nexport const updateEvidenceType = (id, evidenceType) => {\n return (dispatch) => {\n dispatch(updateEvidenceTypeStart());\n\n return AdminEvidenceTypeAPI.updateEvidenceType(id, evidenceType)\n .then((res) => {\n dispatch(updateEvidenceTypeSuccess(res));\n })\n .catch((err) => {\n dispatch(updateEvidenceTypeFail(err));\n });\n };\n};\n\nexport const deleteEvidenceTypeStart = () => {\n return {\n type: actionTypes.DELETE_EVIDENCETYPE_START,\n };\n};\n\nexport const deleteEvidenceTypeSuccess = (deletedEvidenceTypeId) => {\n return {\n type: actionTypes.DELETE_EVIDENCETYPE_SUCCESS,\n deletedEvidenceTypeId,\n };\n};\n\nexport const deleteEvidenceTypeFail = (error) => {\n return {\n type: actionTypes.DELETE_EVIDENCETYPE_FAIL,\n error: error,\n };\n};\n\nexport const deleteEvidenceType = (id) => {\n return (dispatch) => {\n dispatch(deleteEvidenceTypeStart());\n\n return AdminEvidenceTypeAPI.deleteEvidenceType(id)\n .then((res) => {\n dispatch(deleteEvidenceTypeSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteEvidenceTypeFail(err));\n });\n };\n};\n","import * as evidenceTypeActions from \"../../../store/admin/actions/adminEvidenceTypeActions\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faMinusCircle, faPlus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageEvidenceTypes extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n evidenceTypes: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n editedEvidenceTypeId: null,\n evidenceTypeName: \"\",\n searchProperties: [\"name\"],\n };\n }\n\n componentDidMount() {\n // this.initData();\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onEvidenceType.getEvidenceTypes().then(() => {\n if (!this.props.loading) {\n this.setState({\n evidenceTypes: this.props.evidenceTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.initData();\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleAddNew = () => {\n this.setState({ updateMode: \"Add\", showUpdateDialog: true, touched: false, evidenceTypeName: \"\" });\n };\n\n openUpdate = (evidenceType) => {\n this.setState({ updateMode: \"Update\", showUpdateDialog: true, touched: false, evidenceTypeName: evidenceType.name, editedEvidenceTypeId: evidenceType.id });\n };\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n\n this.setState({ touched: true, evidenceTypeName: value });\n };\n\n handleSubmit = () => {\n const { updateMode, evidenceTypeName, editedEvidenceTypeId } = this.state;\n this.setState({ isUpdating: true });\n\n if (updateMode == \"Add\") {\n this.props.onEvidenceType\n .addEvidenceType({\n name: evidenceTypeName.trim(),\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n evidenceTypes: this.props.evidenceTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Evidence type added\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onEvidenceType\n .updateEvidenceType(editedEvidenceTypeId, {\n name: evidenceTypeName.trim(),\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n evidenceTypes: this.props.evidenceTypes.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Evidence type updated\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleUpdateDialog = () => {\n const showUpdateDialog = this.state.showUpdateDialog;\n this.setState({ showUpdateDialog: !showUpdateDialog });\n };\n\n renderUpdate = () => {\n return (\n \n {this.state.updateMode ? this.state.updateMode : \"\"} Evidence Types\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmit();\n }}\n disabled={this.state.isUpdating || this.state.evidenceTypeName == \"\"}\n >\n Save\n \n \n \n
\n );\n };\n\n handleDelete = (row) => {\n this.setState({ isUpdating: true });\n\n this.props.onEvidenceType.deleteEvidenceType(row.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n const evidenceTypes = this.props.evidenceTypes\n .sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n .map((it) => {\n return {\n id: it.id,\n name: it.name,\n isUsed: it.isUsed,\n lastUpdated: new Date(),\n };\n });\n this.setState({ evidenceTypes: [...evidenceTypes.filter((it) => it.id != row.id)] });\n this.props.generateAlert(\"success\", \"Evidence type deleted\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { evidenceTypes, searchKeyword, searchProperties } = this.state;\n\n const openUpdate = this.openUpdate;\n const handleDelete = this.handleDelete;\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openUpdate(row)} />\n \n Update\n \n {!row.isUsed && (\n \n    \n handleDelete(row)} />\n \n Delete\n \n \n )}\n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"name\",\n name: \"Name\",\n selector: (row) => row.name,\n sortable: true,\n width: this.props.allowEdit ? \"85%\" : \"100%\",\n },\n ];\n\n return (\n \n {this.renderUpdate()}\n \n Evidence Types\n \n
\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {this.props.allowEdit && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminEvidenceType.loading,\n error: state.adminEvidenceType.error,\n evidenceTypes: state.adminEvidenceType.evidenceTypes,\n isUpdating: state.adminEvidenceType.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidenceType: bindActionCreators(evidenceTypeActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageEvidenceTypes);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminMentorPreferenceAPI {\n static getMentorPreferences() {\n return axios\n .get(`/mentorPreferences/list`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createMentorPreference(mentorPreference) {\n return axios\n .post(`/mentorPreferences`, mentorPreference)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateMentorPreference(id, mentorPreference) {\n return axios\n .put(`/mentorPreferences/${id}`, mentorPreference)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteMentorPreference(id) {\n return axios\n .delete(`/mentorPreferences/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminMentorPreferenceAPI;\n","import AdminMentorPreferenceAPI from \"./../../../common/api/adminservice/AdminMentorPreferenceService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getMentorPreferencesStart = () => {\n return {\n type: actionTypes.GET_MENTOR_PREFERENCES_START,\n };\n};\n\nexport const getMentorPreferencesSuccess = (mentorPreferences) => {\n return {\n type: actionTypes.GET_MENTOR_PREFERENCES_SUCCESS,\n mentorPreferences,\n };\n};\n\nexport const getMentorPreferencesFail = (error) => {\n return {\n type: actionTypes.GET_MENTOR_PREFERENCES_FAIL,\n error: error,\n };\n};\n\nexport const getMentorPreferences = () => {\n return (dispatch) => {\n dispatch(getMentorPreferencesStart());\n\n return AdminMentorPreferenceAPI.getMentorPreferences()\n .then((res) => {\n dispatch(getMentorPreferencesSuccess(res));\n })\n .catch((err) => {\n dispatch(getMentorPreferencesFail(err));\n });\n };\n};\n\nexport const addMentorPreferenceStart = () => {\n return {\n type: actionTypes.ADD_MENTOR_PREFERENCE_START,\n };\n};\n\nexport const addMentorPreferenceSuccess = (addedMentorPreference) => {\n return {\n type: actionTypes.ADD_MENTOR_PREFERENCE_SUCCESS,\n addedMentorPreference,\n };\n};\n\nexport const addMentorPreferenceFail = (error) => {\n return {\n type: actionTypes.ADD_MENTOR_PREFERENCE_FAIL,\n error: error,\n };\n};\n\nexport const addMentorPreference = (mentorPreference) => {\n return (dispatch) => {\n dispatch(addMentorPreferenceStart());\n\n return AdminMentorPreferenceAPI.createMentorPreference(mentorPreference)\n .then((res) => {\n dispatch(addMentorPreferenceSuccess(res));\n })\n .catch((err) => {\n dispatch(addMentorPreferenceFail(err));\n });\n };\n};\n\nexport const updateMentorPreferenceStart = () => {\n return {\n type: actionTypes.UPDATE_MENTOR_PREFERENCE_START,\n };\n};\n\nexport const updateMentorPreferenceSuccess = (updatedMentorPreference) => {\n return {\n type: actionTypes.UPDATE_MENTOR_PREFERENCE_SUCCESS,\n updatedMentorPreference,\n };\n};\n\nexport const updateMentorPreferenceFail = (error) => {\n return {\n type: actionTypes.UPDATE_MENTOR_PREFERENCE_FAIL,\n error: error,\n };\n};\n\nexport const updateMentorPreference = (id, mentorPreference) => {\n return (dispatch) => {\n dispatch(updateMentorPreferenceStart());\n\n return AdminMentorPreferenceAPI.updateMentorPreference(id, mentorPreference)\n .then((res) => {\n dispatch(updateMentorPreferenceSuccess(res));\n })\n .catch((err) => {\n dispatch(updateMentorPreferenceFail(err));\n });\n };\n};\n\nexport const deleteMentorPreferenceStart = () => {\n return {\n type: actionTypes.DELETE_MENTOR_PREFERENCE_START,\n };\n};\n\nexport const deleteMentorPreferenceSuccess = (deletedMentorPreferenceId) => {\n return {\n type: actionTypes.DELETE_MENTOR_PREFERENCE_SUCCESS,\n deletedMentorPreferenceId,\n };\n};\n\nexport const deleteMentorPreferenceFail = (error) => {\n return {\n type: actionTypes.DELETE_MENTOR_PREFERENCE_FAIL,\n error: error,\n };\n};\n\nexport const deleteMentorPreference = (id) => {\n return (dispatch) => {\n dispatch(deleteMentorPreferenceStart());\n\n return AdminMentorPreferenceAPI.deleteMentorPreference(id)\n .then((res) => {\n dispatch(deleteMentorPreferenceSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteMentorPreferenceFail(err));\n });\n };\n};\n","import * as mentorPreferenceActions from \"../../../store/admin/actions/adminMentorPreferenceActions\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faMinusCircle, faPlus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageMentorPreferences extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n mentorPreferences: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n editedMentorPrefereneId: null,\n selected: false,\n preference: \"\",\n searchProperties: [\"preference\"],\n };\n }\n\n componentDidMount() {\n // this.initData();\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onMentorPreference.getMentorPreferences().then(() => {\n if (!this.props.loading) {\n this.setState({\n mentorPreferences: this.props.mentorPreferences.sort((a, b) => (`${a.preference}` > `${b.preference}` ? 1 : -1)),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.initData();\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleAddNew = () => {\n this.setState({ updateMode: \"Add\", showUpdateDialog: true, touched: false, preference: \"\" });\n };\n\n openUpdate = (mentorPreference) => {\n this.setState({ updateMode: \"Update\", showUpdateDialog: true, touched: false, preference: mentorPreference.preference, selected: mentorPreference.selected, editedMentorPreferenceId: mentorPreference.id });\n };\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n\n this.setState({ touched: true, preference: value });\n };\n\n updateMentorPreferenceSelected = (mentorPreference) => {\n this.setState({ isUpdating: true });\n\n this.props.onMentorPreference\n .updateMentorPreference(mentorPreference.id, {\n preference: mentorPreference.preference.trim(),\n selected: !mentorPreference.selected,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n mentorPreferences: this.props.mentorPreferences.sort((a, b) => (`${a.preference}` > `${b.preference}` ? 1 : -1)),\n });\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleSubmit = () => {\n const { updateMode, preference, selected, editedMentorPreferenceId } = this.state;\n this.setState({ isUpdating: true });\n\n if (updateMode == \"Add\") {\n this.props.onMentorPreference\n .addMentorPreference({\n preference: preference.trim(),\n selected: false,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n mentorPreferences: this.props.mentorPreferences.sort((a, b) => (`${a.preference}` > `${b.preference}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Mentor preference added\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onMentorPreference\n .updateMentorPreference(editedMentorPreferenceId, {\n preference: preference.trim(),\n selected,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n mentorPreferences: this.props.mentorPreferences.sort((a, b) => (`${a.preference}` > `${b.preference}` ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Mentor preference updated\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleUpdateDialog = () => {\n const showUpdateDialog = this.state.showUpdateDialog;\n this.setState({ showUpdateDialog: !showUpdateDialog });\n };\n\n renderUpdate = () => {\n return (\n \n {this.state.updateMode ? this.state.updateMode : \"\"} Mentor Preference\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmit();\n }}\n disabled={this.state.isUpdating || this.state.preference == \"\"}\n >\n Save\n \n \n \n
\n );\n };\n\n handleDelete = (row) => {\n if (window.confirm(\"Are you sure want to delete this preference?\")) {\n this.setState({ isUpdating: true });\n this.props.onMentorPreference.deleteMentorPreference(row.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n const mentorPreferences = this.props.mentorPreferences.sort((a, b) => (`${a.preference}` > `${b.preference}` ? 1 : -1));\n this.setState({ mentorPreferences: [...mentorPreferences.filter((it) => it.id != row.id)] });\n this.props.generateAlert(\"success\", \"Mentor preference deleted\");\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n render() {\n const { mentorPreferences, searchKeyword, searchProperties } = this.state;\n\n const openUpdate = this.openUpdate;\n const handleDelete = this.handleDelete;\n const updateMentorPreferenceSelected = this.updateMentorPreferenceSelected;\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openUpdate(row)} />\n \n Update\n \n {!row.isUsed && (\n \n    \n handleDelete(row)} />\n \n Delete\n \n \n )}\n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"selected\",\n name: \"Selected\",\n selector: (row) => row.selected,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n \n \n \n \n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"preference\",\n name: \"Preference\",\n selector: (row) => row.preference,\n sortable: true,\n width: this.props.allowEdit ? \"70%\" : \"100%\",\n },\n ];\n\n return (\n \n {this.renderUpdate()}\n \n Mentor Preferences\n \n
\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {this.props.allowEdit && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminMentorPreference.loading,\n error: state.adminMentorPreference.error,\n mentorPreferences: state.adminMentorPreference.mentorPreferences,\n isUpdating: state.adminMentorPreference.isUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onMentorPreference: bindActionCreators(mentorPreferenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageMentorPreferences);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminRegistrationReasonAPI {\n static getRegistrationReasons() {\n return axios\n .get(`/registrationReasons`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createRegistrationReason(registrationReason) {\n return axios\n .post(`/registrationReasons`, registrationReason)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateRegistrationReason(id, registrationReason) {\n return axios\n .put(`/registrationReasons/${id}`, registrationReason)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteRegistrationReason(id) {\n return axios\n .delete(`/registrationReasons/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static moveRegistrationReasonUp(id) {\n return axios\n .post(`/registrationReasons/${id}/moveup`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static moveRegistrationReasonDown(id) {\n return axios\n .post(`/registrationReasons/${id}/movedown`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminRegistrationReasonAPI;\n","import AdminRegistrationReasonAPI from \"./../../../common/api/adminservice/AdminRegistrationReasonService\";\nimport * as adminActionTypes from \"./adminActionTypes\";\n\nexport const getRegistrationReasonsStart = () => {\n return {\n type: adminActionTypes.GET_REGISTRATION_REASONS_START,\n };\n};\n\nexport const getRegistrationReasonsSuccess = (registrationReasons) => {\n return {\n type: adminActionTypes.GET_REGISTRATION_REASONS_SUCCESS,\n registrationReasons,\n };\n};\n\nexport const getRegistrationReasonsFail = (error) => {\n return {\n type: adminActionTypes.GET_REGISTRATION_REASONS_FAIL,\n error: error,\n };\n};\n\nexport const getRegistrationReasons = () => {\n return (dispatch) => {\n dispatch(getRegistrationReasonsStart());\n\n return AdminRegistrationReasonAPI.getRegistrationReasons()\n .then((res) => {\n dispatch(getRegistrationReasonsSuccess(res));\n })\n .catch((err) => {\n dispatch(getRegistrationReasonsFail(err));\n });\n };\n};\n\nexport const addRegistrationReasonStart = () => {\n return {\n type: adminActionTypes.ADD_REGISTRATION_REASON_START,\n };\n};\n\nexport const addRegistrationReasonSuccess = (addedRegistrationReason) => {\n return {\n type: adminActionTypes.ADD_REGISTRATION_REASON_SUCCESS,\n addedRegistrationReason,\n };\n};\n\nexport const addRegistrationReasonFail = (error) => {\n return {\n type: adminActionTypes.ADD_REGISTRATION_REASON_FAIL,\n error: error,\n };\n};\n\nexport const addRegistrationReason = (registrationReason) => {\n return (dispatch) => {\n dispatch(addRegistrationReasonStart());\n\n return AdminRegistrationReasonAPI.createRegistrationReason(registrationReason)\n .then((res) => {\n dispatch(addRegistrationReasonSuccess(res));\n })\n .catch((err) => {\n dispatch(addRegistrationReasonFail(err));\n });\n };\n};\n\nexport const updateRegistrationReasonStart = () => {\n return {\n type: adminActionTypes.UPDATE_REGISTRATION_REASON_START,\n };\n};\n\nexport const updateRegistrationReasonSuccess = (updatedRegistrationReason) => {\n return {\n type: adminActionTypes.UPDATE_REGISTRATION_REASON_SUCCESS,\n updatedRegistrationReason,\n };\n};\n\nexport const updateRegistrationReasonFail = (error) => {\n return {\n type: adminActionTypes.UPDATE_REGISTRATION_REASON_FAIL,\n error: error,\n };\n};\n\nexport const updateRegistrationReason = (id, registrationReason) => {\n return (dispatch) => {\n dispatch(updateRegistrationReasonStart());\n\n return AdminRegistrationReasonAPI.updateRegistrationReason(id, registrationReason)\n .then((res) => {\n dispatch(updateRegistrationReasonSuccess(res));\n })\n .catch((err) => {\n dispatch(updateRegistrationReasonFail(err));\n });\n };\n};\n\nexport const deleteRegistrationReasonStart = () => {\n return {\n type: adminActionTypes.DELETE_REGISTRATION_REASON_START,\n };\n};\n\nexport const deleteRegistrationReasonSuccess = (registrationReasons) => {\n return {\n type: adminActionTypes.DELETE_REGISTRATION_REASON_SUCCESS,\n registrationReasons,\n };\n};\n\nexport const deleteRegistrationReasonFail = (error) => {\n return {\n type: adminActionTypes.DELETE_REGISTRATION_REASON_FAIL,\n error: error,\n };\n};\n\nexport const deleteRegistrationReason = (id) => {\n return (dispatch) => {\n dispatch(deleteRegistrationReasonStart());\n\n return AdminRegistrationReasonAPI.deleteRegistrationReason(id)\n .then((res) => {\n dispatch(deleteRegistrationReasonSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteRegistrationReasonFail(err));\n });\n };\n};\n\nexport const moveRegistrationReasonStart = () => {\n return {\n type: adminActionTypes.MOVE_REGISTRATION_REASON_START,\n };\n};\n\nexport const moveRegistrationReasonSuccess = (registrationReasons) => {\n return {\n type: adminActionTypes.MOVE_REGISTRATION_REASON_SUCCESS,\n registrationReasons,\n };\n};\n\nexport const moveRegistrationReasonFail = (error) => {\n return {\n type: adminActionTypes.MOVE_REGISTRATION_REASON_FAIL,\n error: error,\n };\n};\n\nexport const moveRegistrationReasonUp = (id) => {\n return (dispatch) => {\n dispatch(moveRegistrationReasonStart());\n\n return AdminRegistrationReasonAPI.moveRegistrationReasonUp(id)\n .then((res) => {\n dispatch(moveRegistrationReasonSuccess(res));\n })\n .catch((err) => {\n dispatch(moveRegistrationReasonFail(err));\n });\n };\n};\n\nexport const moveRegistrationReasonDown = (id) => {\n return (dispatch) => {\n dispatch(moveRegistrationReasonStart());\n\n return AdminRegistrationReasonAPI.moveRegistrationReasonDown(id)\n .then((res) => {\n dispatch(moveRegistrationReasonSuccess(res));\n })\n .catch((err) => {\n dispatch(moveRegistrationReasonFail(err));\n });\n };\n};\n","import * as allowedRegistrationReasonsActions from \"../../../store/admin/actions/adminRegistrationReasonActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faMinusCircle, faPlus, faSync, faArrowUp, faArrowDown } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageRegistrationReasons extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n registrationReasons: [],\n isUpdating: false,\n showDialog: false,\n showUpdateDialog: false,\n updateMode: null,\n touched: false,\n editedRegistrationReasonId: null,\n form: {\n value: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n label: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n roleSelectionMandatory: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n searchProperties: [\"value\", \"label\"],\n showLoadingPanel: false,\n };\n }\n\n componentDidMount() {\n //this.initData();\n }\n\n handleRefresh = () => {\n this.initData();\n };\n\n initData = () => {\n this.setState({ loading: true });\n this.props.onRegistrationReasons.getRegistrationReasons().then(() => {\n if (!this.props.loading) {\n this.setState({\n registrationReasons: this.props.registrationReasons.sort((a, b) => (a.order > b.order ? 1 : -1)),\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.initData();\n }\n\n if (prevProps.registrationReasons !== this.props.registrationReasons) {\n this.setState({\n registrationReasons: this.props.registrationReasons.sort((a, b) => (a.order > b.order ? 1 : -1)),\n });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog });\n };\n\n handleAddNew = () => {\n this.setState({\n updateMode: \"Add\",\n showUpdateDialog: true,\n touched: false,\n form: {\n value: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n label: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n roleSelectionMandatory: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n });\n };\n\n openUpdate = (registrationReason) => {\n this.setState({\n updateMode: \"Update\",\n showUpdateDialog: true,\n touched: false,\n form: {\n value: {\n validation: {\n required: true,\n },\n value: registrationReason.value,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n label: {\n validation: {\n required: true,\n },\n value: registrationReason.label,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleSelectionMandatory: {\n validation: {\n required: false,\n },\n value: registrationReason.roleSelectionMandatory,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: true,\n editedRegistrationReasonId: registrationReason.id,\n });\n };\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n\n let updateState = changeInput(form, name, value);\n\n this.setState({ form: updateState.form, isFormValid: updateState.valid });\n };\n\n handleSubmit = () => {\n const { updateMode, form, editedRegistrationReasonId } = this.state;\n this.setState({ isUpdating: true });\n\n if (updateMode == \"Add\") {\n this.props.onRegistrationReasons\n .addRegistrationReason({\n label: form.label.value,\n value: form.value.value,\n roleSelectionMandatory: form.roleSelectionMandatory.value,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n registrationReasons: this.props.registrationReasons.sort((a, b) => (a.order > b.order ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Registration reason added\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n } else {\n this.props.onRegistrationReasons\n .updateRegistrationReason(editedRegistrationReasonId, {\n label: form.label.value,\n value: form.value.value,\n roleSelectionMandatory: form.roleSelectionMandatory.value,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({\n registrationReasons: this.props.registrationReasons.sort((a, b) => (a.order > b.order ? 1 : -1)),\n });\n this.togleUpdateDialog();\n this.props.generateAlert(\"success\", \"Registration reason updated\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleUpdateDialog = () => {\n const showUpdateDialog = this.state.showUpdateDialog;\n this.setState({ showUpdateDialog: !showUpdateDialog });\n };\n\n renderUpdate = () => {\n const form = this.state.form;\n\n return (\n \n {this.state.updateMode ? this.state.updateMode : \"\"} Registration Reason\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmit();\n }}\n disabled={this.state.isUpdating || this.state.emailDomain == \"\"}\n >\n Save\n \n \n \n
\n );\n };\n\n handleDelete = (row) => {\n if (window.confirm(\"Are you sure want to delete this record?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onRegistrationReasons.deleteRegistrationReason(row.id).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n const registrationReasons = this.props.registrationReasons\n .sort((a, b) => (a.order > b.order ? 1 : -1))\n .map((it) => {\n return {\n id: it.id,\n value: it.value,\n label: it.label,\n order: it.order,\n };\n });\n this.setState({ registrationReasons: [...registrationReasons.filter((it) => it.id != row.id)] });\n this.props.generateAlert(\"success\", \"Registration reason deleted\");\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleMoveUp = (row) => {\n this.props.onRegistrationReasons.moveRegistrationReasonUp(row.id).then(() => {});\n };\n\n handleMoveDown = (row) => {\n this.props.onRegistrationReasons.moveRegistrationReasonDown(row.id).then(() => {});\n };\n\n handleRoleSelectionMandatory = (registrationReason) => {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: null, loadingPanelBody: \"Please wait ...\" });\n this.props.onRegistrationReasons\n .updateRegistrationReason(registrationReason.id, {\n label: registrationReason.label,\n value: registrationReason.value,\n roleSelectionMandatory: !registrationReason.roleSelectionMandatory,\n })\n .then(() => {\n this.setState({\n registrationReasons: this.props.registrationReasons.sort((a, b) => (a.order > b.order ? 1 : -1)),\n });\n\n this.setState({ showLoadingPanel: this.props.isUpdating });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader && {this.state.loadingPanelHeader}}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n render() {\n const { containerConfig } = this.props;\n const { registrationReasons, searchKeyword, searchProperties } = this.state;\n\n const openUpdate = this.openUpdate;\n const handleDelete = this.handleDelete;\n const moveUp = this.handleMoveUp;\n const moveDown = this.handleMoveDown;\n const handleRoleSelectionMandatory = this.handleRoleSelectionMandatory;\n const allowEdit = this.props.allowEdit;\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"10%\",\n center: true,\n format: function (row, index) {\n return (\n
\n openUpdate(row)} />\n \n Update\n \n {!row.isUsed && (\n \n    \n handleDelete(row)} />\n \n Delete\n \n \n )}\n
\n );\n },\n omit: !this.props.allowEdit,\n },\n {\n id: \"roleSelectionMandatory\",\n name:
Role Selection Mandatory
,\n selector: (row) => row.roleSelectionMandatory,\n sortable: false,\n width: \"15%\",\n wrap: true,\n center: true,\n format: function (row, index) {\n return (\n \n \n allowEdit && !row.roleSelectionMandatory && handleRoleSelectionMandatory(row)}\n >\n allowEdit && row.roleSelectionMandatory && handleRoleSelectionMandatory(row)}\n >\n \n \n );\n },\n omit: !containerConfig.showRoleBasedSurveyInSelfRegistration,\n },\n {\n id: \"value\",\n name: \"Value\",\n selector: (row) => row.value,\n sortable: false,\n width: this.props.allowEdit ? \"25%\" : \"30%\",\n wrap: true,\n },\n {\n id: \"label\",\n name: \"Label\",\n selector: (row) => row.label,\n sortable: false,\n width: this.props.allowEdit ? (containerConfig.showRoleBasedSurveyInSelfRegistration ? \"40%\" : \"50%\") : containerConfig.showRoleBasedSurveyInSelfRegistration ? \"50%\" : \"60%\",\n wrap: true,\n },\n {\n id: \"order\",\n name: \"\",\n selector: (row) => row.order,\n center: true,\n width: \"10%\",\n format: function (row, index) {\n return (\n
\n moveUp(row)} />\n \n Move Up\n \n    \n moveDown(row)} />\n \n Move Down\n \n
\n );\n },\n omit: !this.props.allowEdit,\n },\n ];\n\n return (\n \n {this.renderUpdate()}\n {this.renderLoadingPanel()}\n \n Registration Reasons\n \n
\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n {this.props.allowEdit && (\n \n \n Add New\n \n   \n \n )}\n \n \n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.adminRegistrationReason.loading,\n error: state.adminRegistrationReason.error,\n registrationReasons: state.adminRegistrationReason.registrationReasons,\n isUpdating: state.adminRegistrationReason.isUpdating,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onRegistrationReasons: bindActionCreators(allowedRegistrationReasonsActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageRegistrationReasons);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport { dismisAlert, generateAlert } from \"./../../../utils/alertUtils\";\nimport { models } from \"powerbi-client\";\nimport { PowerBIEmbed } from \"powerbi-client-react\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst apiHostname = process.env.REACT_APP_API_ENDPOINT;\n\nclass ShowPowerBIReport extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n showBIReport: this.props.showBIReport,\n reportId: this.props.reportId,\n embedUrl: this.props.embedUrl,\n accessToken: this.props.accessToken,\n height: 0,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n }\n\n componentDidMount() {\n this.updateWindowDimensions();\n window.addEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.showBIReport !== prevProps.showBIReport) {\n this.setState({ showBIReport: this.props.showBIReport });\n }\n\n if (this.props.reportId !== prevProps.reportId) {\n this.setState({ reportId: this.props.reportId, embedUrl: this.props.embedUrl, accessToken: this.props.accessToken });\n }\n }\n\n updateWindowDimensions() {\n this.setState({ height: window.innerHeight - 100 });\n }\n\n toggleDialogModal = () => {\n const showBIReport = this.state.showBIReport;\n this.setState({ showBIReport: !showBIReport });\n this.props.closeReport(false);\n };\n\n render() {\n return (\n \n \n Power BI Report\n \n {this.state.showBIReport && (\n \n
\n {\n this.report = embeddedReport;\n }}\n />\n
\n
\n )}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n token: state.auth.token,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ShowPowerBIReport);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport changeInput from \"../../../utils/changeInput\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../../utils/alertUtils\";\nimport ManageActionTypes from \"./ManageActionTypes\";\nimport ManageAllowedRegistrationEmailDomains from \"./ManageAllowedRegistrationEmailDomains\";\nimport ManageEvidenceTypes from \"./ManageEvidenceTypes\";\nimport ManageMentorPreferences from \"./ManageMentorPreferences\";\nimport ManageRegistrationReasons from \"./ManageRegistrationReasons\";\nimport ShowPowerBIReport from \"./ShowPowerBIReport\";\nimport { faChevronDown, faChevronRight, faRotateLeft } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { ContentState, EditorState, convertToRaw } from \"draft-js\";\nimport draftToHtml from \"draftjs-to-html\";\nimport htmlToDraft from \"html-to-draftjs\";\nimport React from \"react\";\nimport { Accordion, AccordionItem, AccordionItemButton, AccordionItemHeading, AccordionItemPanel, AccordionItemState } from \"react-accessible-accordion\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { ChromePicker } from \"react-color\";\nimport { Editor } from \"react-draft-wysiwyg\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Link } from \"react-router-dom\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, ButtonGroup, Col, Container, Form, FormGroup, Input, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst apiHostname = process.env.REACT_APP_API_ENDPOINT;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nconst defaultSelfRegistrationBody =\n \"

Apply for employment

\" +\n \"

\" +\n \"If you are interested in working for [companyname] as a Digital professional, we invite you register for a self-assessment.

\" +\n \"The assessment uses the Skills Framework for the Information Age (SFIA).Learn More.

\" +\n \"After completing the self-assessment we will provide you access to a career planner to review and maintain your skill profile.

\" +\n \"IMPORTANT: The self-assessment is NOT a test but it is very important that you are honest and take your time to study the options carefully.\" +\n \"

\";\n\nconst defaultSelfRegistrationConfirmationBody =\n \"

Great you're NOW registered.

\" +\n \"
\" +\n \"\" +\n \"NOTE: You will shortly receive your survey invitation email to the address you registered with.
\" +\n \"If you haven't received it within 5 minutes please check junk/clutter folders.
After completing your self-assessment you will:\" +\n \"
\" +\n \"
    \" +\n \"
  1. Receive an email with a report attached based on your survey answers
  2. \" +\n \"
  3. Receive an email to set up your password for access to the SkillsTX Planner where you can:
    \" +\n \"* Review and refine your Profile
    \" +\n \"* Compare your skills against sample jobs
    \" +\n \"* Create an action plan\" +\n \"
  4. \" +\n \"
\" +\n \"
\";\n\nclass ManageSettings extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n config: null,\n isUpdating: false,\n showEditor: false,\n bodyMode1: \"ShowEditor\",\n bodyMode2: \"ShowEditor\",\n optionWhoAllowApproval: [\n {\n label: \"Nobody\",\n value: \"Nobody\",\n },\n {\n label: \"Managers Only\",\n value: \"Managers Only\",\n },\n {\n label: \"Managers and Team Leaders\",\n value: \"Managers and Team Leaders\",\n },\n ],\n optionWhoAllowApprovalIncludeMentor: [\n {\n label: \"Nobody\",\n value: \"Nobody\",\n },\n {\n label: \"Managers Only\",\n value: \"Managers Only\",\n },\n {\n label: \"Managers and Team Leaders\",\n value: \"Managers and Team Leaders\",\n },\n {\n label: \"Mentors Only\",\n value: \"Mentors Only\",\n },\n {\n label: \"Managers and Mentors\",\n value: \"Managers and Mentors\",\n },\n {\n label: \"Managers, Team Leaders and Mentors\",\n value: \"Managers, Team Leaders and Mentors\",\n },\n ],\n optionSelfRegistransMarkedAsCandidate: [\n {\n label: \"Candidate\",\n value: true,\n },\n {\n label: \"Employee\",\n value: false,\n },\n ],\n optionRequirementAssignment: [\n {\n label: \"None\",\n value: \"None\",\n },\n {\n label: \"Future Only\",\n value: \"Future Only\",\n },\n {\n label: \"Current Only\",\n value: \"Current Only\",\n },\n {\n label: \"Both Current and Future\",\n value: \"Both Current and Future\",\n },\n ],\n optionDefaultActivityStatementFrequency: [\n {\n label: 14,\n value: 14,\n },\n {\n label: 30,\n value: 30,\n },\n {\n label: 60,\n value: 60,\n },\n {\n label: 90,\n value: 90,\n },\n {\n label: 365,\n value: 365,\n },\n ],\n optionReminderRepeatInterval: [\n // {\n // label: 0,\n // value: 0,\n // },\n {\n label: 1,\n value: 1,\n },\n {\n label: 2,\n value: 2,\n },\n {\n label: 3,\n value: 3,\n },\n {\n label: 4,\n value: 4,\n },\n ],\n optionReminderTotal: [\n {\n label: 0,\n value: 0,\n },\n {\n label: 1,\n value: 1,\n },\n {\n label: 2,\n value: 2,\n },\n {\n label: 3,\n value: 3,\n },\n {\n label: 4,\n value: 4,\n },\n ],\n optionJobProfileReportFormat: [\n {\n label: \"PDF\",\n value: \"PDF\",\n },\n {\n label: \"DOCX\",\n value: \"DOCX\",\n },\n ],\n optionSelfAssessedProfileReportFormat: [\n {\n label: \"PDF\",\n value: \"PDF\",\n },\n {\n label: \"DOCX\",\n value: \"DOCX\",\n },\n ],\n showEvidenceTypesDialogTs: null,\n showMentorPreferencesDialogTs: null,\n showActionTypesDialogTs: null,\n downloadPowerBiModelLoading: false,\n powerBiModelLink: null,\n powerBiModelFileName: null,\n powerBiReportId: null,\n powerBiEmbeddedUrl: null,\n powerBiEmbeddedToken: null,\n showBIReport: false,\n displayBackgroundColorPicker: false,\n displayFontColorPicker: false,\n optionBadgeProvider: [\n {\n label: \"AMPG\",\n value: \"APMG\",\n },\n {\n label: \"DSA\",\n value: \"DSA\",\n },\n ],\n optionYesOrNo: [\n {\n label: \"Yes\",\n value: true,\n },\n {\n label: \"No\",\n value: false,\n },\n ],\n accordionsExpanded: [],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n this.setState({ loading: true });\n\n this.props.onAuth.authCheckState().then(() => {\n this.props.onConfig.getAdminConfig().then(() => {\n if (this.props.config && this.props.config.powerBiModelLink && this.props.config.powerBiModelLink != \"\") {\n this.setState({ powerBiModelLink: this.props.config.powerBiModelLink, powerBiModelFileName: this.props.config.powerBiModelFileName });\n }\n\n if (this.props.config && this.props.config.powerBiEmbeddedUrl && this.props.config.powerBiEmbeddedUrl != \"\" && this.props.config.powerBiEmbeddedToken && this.props.config.powerBiEmbeddedToken != \"\") {\n this.setState({ powerBiReportId: this.props.config.powerBiReportId, powerBiEmbeddedUrl: this.props.config.powerBiEmbeddedUrl, powerBiEmbeddedToken: this.props.config.powerBiEmbeddedToken });\n }\n\n const form = this.reformFormState(this.props.config);\n this.setState({ showEditor: true, config: this.props.config, form, isFormValid: true, loading: this.props.loading || this.props.configLoading });\n });\n });\n }\n\n reformFormState = (config) => {\n const form = {\n allowSelfRegistration: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowSelfRegistration ? config.allowSelfRegistration : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n showRoleBasedSurveyInSelfRegistration: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.showRoleBasedSurveyInSelfRegistration ? config.showRoleBasedSurveyInSelfRegistration : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n selfRegistrationWording: {\n validation: {\n required: true,\n },\n value: config && config.selfRegistrationWording ? config.selfRegistrationWording : defaultSelfRegistrationBody,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n selfRegistrationConfirmationWording: {\n validation: {\n required: true,\n },\n value: config && config.selfRegistrationConfirmationWording ? config.selfRegistrationConfirmationWording : defaultSelfRegistrationConfirmationBody,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n selfRegistransMarkedAsCandidate: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.selfRegistransMarkedAsCandidate ? config.selfRegistransMarkedAsCandidate : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n restrictRegistransEmailDomain: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.restrictRegistransEmailDomain ? config.restrictRegistransEmailDomain : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n automaticUserInactivationLoginDays: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: config && config.automaticUserInactivationLoginDays ? config.automaticUserInactivationLoginDays : 0,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n assessmentId: {\n validation: {\n required: false,\n },\n value: config && config.assessmentId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n whoAllowApproval: {\n validation: {\n required: true,\n },\n value: config ? config.whoAllowApproval : \"Managers Only\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n enableApprovalRequest: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.enableApprovalRequest,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowUsersToBeForgotten: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowUsersToBeForgotten ? config.allowUsersToBeForgotten : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowUserExportSelfAssessedProfile: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowUserExportSelfAssessedProfile ? config.allowUserExportSelfAssessedProfile : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n hasCurrentJobLocked: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.hasCurrentJobLocked ? config.hasCurrentJobLocked : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n hasFutureJobLocked: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.hasFutureJobLocked ? config.hasFutureJobLocked : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n defaultActivityStatementFrequency: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: config && config.defaultActivityStatementFrequency ? config.defaultActivityStatementFrequency : 30,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n reminderRepeatInterval: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: config && config.reminderRepeatInterval ? config.reminderRepeatInterval : 2,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n reminderTotal: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: config && config.reminderTotal ? config.reminderTotal : 2,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n assessmentTutorialUrl: {\n validation: {\n required: true,\n },\n value: config && config.assessmentTutorialUrl,\n valid: config && config.assessmentTutorialUrl && config.assessmentTutorialUrl != \"\" ? true : false,\n isValidFormat: config && config.assessmentTutorialUrl && config.assessmentTutorialUrl != \"\" ? true : false,\n touched: false,\n },\n assessmentDescription: {\n validation: {\n required: true,\n },\n value: config && config.assessmentDescription,\n valid: config && config.assessmentDescription && config.assessmentDescription != \"\" ? true : false,\n isValidFormat: config && config.assessmentDescription && config.assessmentDescription != \"\" ? true : false,\n touched: false,\n },\n assessmentSurveyTargetCompletionInterval: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: config && config.assessmentSurveyTargetCompletionInterval ? config.assessmentSurveyTargetCompletionInterval : 14,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n jobProfileReportFormat: {\n validation: {\n required: true,\n },\n value: config && config.jobProfileReportFormat,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n selfAssessedProfileReportFormat: {\n validation: {\n required: true,\n },\n value: config && config.selfAssessedProfileReportFormat,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n suppressActivityNotification: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.suppressActivityNotification,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowUserSuppressActivityNotification: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowUserSuppressActivityNotification,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowCertification: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowCertification,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav1Label: {\n validation: {\n required: true,\n },\n value: config && config.nav1Label ? config.nav1Label : \"Training Portal\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav1Link: {\n validation: {\n required: true,\n },\n value: config && config.nav1Link ? config.nav1Link : \"http://licensed-skillstx.talentlms.com/\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav2Label: {\n validation: {\n required: true,\n },\n value: config && config.nav2Label ? config.nav2Label : \"Support\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav2Link: {\n validation: {\n required: true,\n },\n value: config && config.nav2Link ? config.nav2Link : \"https://skillstx.com/support-center/\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav3Label: {\n validation: {\n required: true,\n },\n value: config && config.nav3Label ? config.nav3Label : \"News\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n nav3Link: {\n validation: {\n required: true,\n },\n value: config && config.nav3Link ? config.nav3Link : \"https://skillstx.com/wisdom/\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n stepPanelBackgroundColor: {\n validation: {\n required: true,\n },\n value: config && config.stepPanelBackgroundColor ? config.stepPanelBackgroundColor : \"#2D2D2D\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n stepPanelFontColor: {\n validation: {\n required: true,\n },\n value: config && config.stepPanelFontColor ? config.stepPanelFontColor : \"#FFFFFF\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n companyName: {\n validation: {\n required: true,\n },\n value: config && config.companyName ? config.companyName : null,\n valid: config && config.companyName ? true : false,\n isValidFormat: config && config.companyName ? true : false,\n touched: false,\n },\n entityName: {\n validation: {\n required: true,\n },\n value: config && config.entityName ? config.entityName : null,\n valid: config && config.entityName ? true : false,\n isValidFormat: config && config.entityName ? true : false,\n touched: false,\n },\n enablePromoteAction: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.enablePromoteAction != null ? config.enablePromoteAction : true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n actionTargetCompletionDateIsMandatory: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.actionTargetCompletionDateIsMandatory != null ? config.actionTargetCompletionDateIsMandatory : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n badgeProvider: {\n validation: {\n required: true,\n },\n value: config && config.badgeProvider ? config.badgeProvider : \"APMG\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n enableFindMentor: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.enableFindMentor != null ? config.enableFindMentor : true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowUpdateProfileAndEvidenceFromAction: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowUpdateProfileAndEvidenceFromAction,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowSkipSelfAssessmentSurvey: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowSkipSelfAssessmentSurvey,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowShowHiddenSkills: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowShowHiddenSkills != null ? config.allowShowHiddenSkills : true,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowUserSeeTheirRelationships: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowUserSeeTheirRelationships,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowBadgesFromActions: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.allowBadgesFromActions,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n enableClickToEditLoR: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.enableClickToEditLoR,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n autoPromptEvidence: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.autoPromptEvidence,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n internalJobMarket: {\n validation: {\n required: false,\n isBool: true,\n },\n value: config && config.internalJobMarket,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n };\n\n return form;\n };\n\n changeMode = (name, value) => {\n let updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleSaveClick = () => {\n const form = this.state.form;\n const oriConfig = this.props.config;\n\n const config = {\n allowSelfRegistration: form.allowSelfRegistration.value,\n showRoleBasedSurveyInSelfRegistration: form.showRoleBasedSurveyInSelfRegistration.value,\n selfRegistransMarkedAsCandidate: form.selfRegistransMarkedAsCandidate.value,\n restrictRegistransEmailDomain: form.restrictRegistransEmailDomain.value,\n selfRegistrationWording: form.selfRegistrationWording.value,\n selfRegistrationConfirmationWording: form.selfRegistrationConfirmationWording.value,\n assessmentId: form.assessmentId.value,\n hasCurrentJobLocked: form.hasCurrentJobLocked.value,\n hasFutureJobLocked: form.hasFutureJobLocked.value,\n whoAllowApproval: form.whoAllowApproval.value,\n enableApprovalRequest: form.enableApprovalRequest.value,\n allowUsersToBeForgotten: form.allowUsersToBeForgotten.value,\n allowUserExportSelfAssessedProfile: form.allowUserExportSelfAssessedProfile.value,\n defaultActivityStatementFrequency: form.defaultActivityStatementFrequency.value,\n reminderRepeatInterval: form.reminderRepeatInterval.value,\n reminderTotal: form.reminderTotal.value,\n assessmentTutorialUrl: form.assessmentTutorialUrl.value,\n assessmentDescription: form.assessmentDescription.value,\n assessmentSurveyTargetCompletionInterval: form.assessmentSurveyTargetCompletionInterval.value,\n jobProfileReportFormat: form.jobProfileReportFormat.value,\n selfAssessedProfileReportFormat: form.selfAssessedProfileReportFormat.value,\n suppressActivityNotification: form.suppressActivityNotification.value,\n allowUserSuppressActivityNotification: form.allowUserSuppressActivityNotification.value,\n allowCertification: form.allowCertification.value,\n nav1Label: oriConfig && oriConfig.nav1Label != form.nav1Label.value && form.nav1Label.touched ? form.nav1Label.value : oriConfig.nav1Label,\n nav1Link: oriConfig && oriConfig.nav1Link != form.nav1Link.value && form.nav1Link.touched ? form.nav1Link.value : oriConfig.nav1Link,\n nav2Label: oriConfig && oriConfig.nav2Label != form.nav2Label.value && form.nav2Label.touched ? form.nav2Label.value : oriConfig.nav2Label,\n nav2Link: oriConfig && oriConfig.nav2Link != form.nav2Link.value && form.nav2Link.touched ? form.nav2Link.value : oriConfig.nav2Link,\n nav3Label: oriConfig && oriConfig.nav3Label != form.nav3Label.value && form.nav3Label.touched ? form.nav3Label.value : oriConfig.nav3Label,\n nav3Link: oriConfig && oriConfig.nav3Link != form.nav3Link.value && form.nav3Link.touched ? form.nav3Link.value : oriConfig.nav3Link,\n stepPanelBackgroundColor: form.stepPanelBackgroundColor.value,\n stepPanelFontColor: form.stepPanelFontColor.value,\n companyName: form.companyName.value,\n entityName: form.entityName.value,\n automaticUserInactivationLoginDays: form.automaticUserInactivationLoginDays.value,\n showEndorsedMatchPercentInRequirementAssign: oriConfig.showEndorsedMatchPercentInRequirementAssign,\n enablePromoteAction: form.enablePromoteAction.value,\n actionTargetCompletionDateIsMandatory: form.actionTargetCompletionDateIsMandatory.value,\n badgeProvider: form.badgeProvider.value,\n enableFindMentor: form.enableFindMentor.value,\n allowUpdateProfileAndEvidenceFromAction: form.allowUpdateProfileAndEvidenceFromAction.value,\n allowSkipSelfAssessmentSurvey: form.allowSkipSelfAssessmentSurvey.value,\n allowShowHiddenSkills: form.allowShowHiddenSkills.value,\n allowUserSeeTheirRelationships: form.allowUserSeeTheirRelationships.value,\n allowBadgesFromActions: form.allowBadgesFromActions.value,\n enableClickToEditLoR: form.enableClickToEditLoR.value,\n autoPromptEvidence: form.autoPromptEvidence.value,\n internalJobMarket: form.internalJobMarket.value,\n };\n\n this.setState({ isUpdating: true });\n\n this.props.onConfig.updateAdminConfig(config).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", \"Save configuration success.\");\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleResetClick = () => {\n this.setState({ showEditor: false });\n const form = this.reformFormState(this.props.config);\n\n setTimeout(() => {\n this.setState({ form, showEditor: true, isFormValid: true });\n }, 100);\n };\n\n changeBodyMode1 = (bodyMode1) => {\n this.setState({ bodyMode1 });\n };\n\n changeBodyMode2 = (bodyMode2) => {\n this.setState({ bodyMode2 });\n };\n\n onEditorStateChange1(editorContent) {\n let html = draftToHtml(convertToRaw(editorContent.getCurrentContent()));\n if (html.trim() == \"

\") {\n html = \"\";\n }\n\n const updateState = changeInput(this.state.form, \"selfRegistrationWording\", html);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n onEditorStateChange2(editorContent) {\n let html = draftToHtml(convertToRaw(editorContent.getCurrentContent()));\n if (html.trim() == \"

\") {\n html = \"\";\n }\n\n const updateState = changeInput(this.state.form, \"selfRegistrationConfirmationWording\", html);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n handleChange = (event) => {\n const form = this.state.form;\n const { name, value } = event.target;\n\n if (name == \"requirmentAssignment\") {\n let hasCurrentJobLocked = true;\n let hasFutureJobLocked = true;\n\n if (value == \"Current Only\" || value == \"Both Current and Future\") {\n hasCurrentJobLocked = false;\n }\n\n if (value == \"Future Only\" || value == \"Both Current and Future\") {\n hasFutureJobLocked = false;\n }\n\n form.hasCurrentJobLocked.value = hasCurrentJobLocked;\n form.hasFutureJobLocked.value = hasFutureJobLocked;\n\n this.setState({ form });\n } else {\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"whoAllowApproval\") {\n if (value == \"Nobody\") {\n updateState = changeInput(updateState.form, \"enableApprovalRequest\", false);\n }\n }\n\n // if (name == \"enableFindMentor\" && (value == false || value == \"false\")) {\n // const whoAllowApproval = updateState.form.whoAllowApproval.value;\n // if (whoAllowApproval.includes(\"Mentor\")) {\n // updateState = changeInput(updateState.form, \"whoAllowApproval\", \"Nobody\");\n // }\n // }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n isFormDirty: true,\n });\n }\n };\n\n handleChangeCheckBox = (event) => {\n const form = this.state.form;\n\n if (form.automaticUserInactivationLoginDays.value == 0) {\n form.automaticUserInactivationLoginDays.value = 90;\n\n const updateState = changeInput(this.state.form, \"automaticUserInactivationLoginDays\", 90);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n } else {\n const updateState = changeInput(this.state.form, \"automaticUserInactivationLoginDays\", 0);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n };\n\n handleInactivationUsersClick = () => {\n const config = this.props.config;\n const form = this.state.form;\n\n if (config.automaticUserInactivationLoginDays != form.automaticUserInactivationLoginDays.value) {\n if (window.confirm(\"Updated config will applied after the updated config Save, this process will still using previous config. Continue?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onConfig.executeInactivationUsersLessLogin().then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", `Success, ${this.props.numberOfPersonsPutToInactive} users has been put to inactive.`);\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n } else {\n this.setState({ isUpdating: true });\n\n this.props.onConfig.executeInactivationUsersLessLogin().then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", `Success, ${this.props.numberOfPersonsPutToInactive} users has been put to inactive.`);\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n openManageEvidenceType = () => {\n this.setState({ showEvidenceTypesDialogTs: new Date() });\n };\n\n openManageMentorPreferences = () => {\n this.setState({ showMentorPreferencesDialogTs: new Date() });\n };\n\n openManageActionType = () => {\n this.setState({ showActionTypesDialogTs: new Date() });\n };\n\n openManageActionLog = () => {\n this.props.history.push(\"/admin/settings/actionlogs\");\n };\n\n openManageAllowedEmailDomains = () => {\n this.setState({ showAllowedEmailDomainsDialogTs: new Date() });\n };\n\n openManageRegistrationReason = () => {\n this.setState({ showRegistrationReasonsDialogTs: new Date() });\n };\n\n handleDownloadPowerBI = (powerBiModelLink, powerBiModelFileName) => {\n this.setState({ downloadPowerBiModelLoading: true });\n this.props.onConfig.downloadPowerBIModel().then(() => {\n if (!this.props.loadingExport && !this.props.configError) {\n if (this.props.blobData) {\n FileDownload(this.props.blobData, powerBiModelFileName);\n }\n }\n\n this.setState({ downloadPowerBiModelLoading: this.props.loadingExport });\n });\n };\n\n handleShowPowerBIReport = (showBIReport) => {\n this.setState({ showBIReport });\n };\n\n handleOpenBackgroundColorPicker = () => {\n this.setState({ displayBackgroundColorPicker: !this.state.displayBackgroundColorPicker });\n };\n\n handleCloseBackgroundColorPicker = () => {\n this.setState({ displayBackgroundColorPicker: false });\n };\n\n handleChangeBackgroundColorComplete = (color) => {\n const form = this.state.form;\n form.stepPanelBackgroundColor.value = color.hex;\n this.setState({ form });\n };\n\n resetBackgroundColor = () => {\n const form = this.state.form;\n\n form.stepPanelBackgroundColor.value = this.props.config && this.props.config.stepPanelBackgroundColor ? this.props.config.stepPanelBackgroundColor : \"#2D2D2D\";\n\n this.setState({ form });\n };\n\n handleOpenFontColorPicker = () => {\n this.setState({ displayFontColorPicker: !this.state.displayFontColorPicker });\n };\n\n handleCloseFontColorPicker = () => {\n this.setState({ displayFontColorPicker: false });\n };\n\n handleChangeFontColorComplete = (color) => {\n const form = this.state.form;\n form.stepPanelFontColor.value = color.hex;\n this.setState({ form });\n };\n\n resetFontColor = () => {\n const form = this.state.form;\n\n form.stepPanelFontColor.value = this.props.config && this.props.config.stepPanelFontColor ? this.props.config.stepPanelFontColor : \"#FFFFFF\";\n\n this.setState({ form });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleDownloadImpactAssessmentSpreadsheets = () => {\n const config = this.props.config;\n\n if (config && config.exportSfia9MigrationImpactByEmail) {\n if (window.confirm(\"Due to the number of users and requirements in your container, the SFIA9 migration impact assessment spreadsheets will be generated in the background, and you will receive an Email with a Download link when they are completed. Proceed?\")) {\n this.props.onConfig.exportMigrationImpactAssessmentReportsToEmail({});\n this.generateAlert(\"success\", \"SFIA9 migration impact assessment spreadsheet request sent.\");\n }\n } else {\n this.props.onConfig.exportMigrationImpactAssessmentReports().then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `Sfia9MigrationImpactReport ${config && (config.companyName || config.containerName) ? (config.containerName ? `for ${config.containerName} at ` : `for ${config.companyName} at `) : \"\"}${strToday}.xlsx`);\n }\n }\n });\n }\n };\n\n render() {\n const popover = {\n position: \"absolute\",\n zIndex: \"2\",\n };\n const cover = {\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n bottom: \"0px\",\n left: \"0px\",\n };\n\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Features Settings\");\n\n const toolbar = {\n options: [\"inline\", \"list\", \"textAlign\", \"fontSize\", \"link\", \"history\", \"fontFamily\", \"colorPicker\"],\n inline: {\n inDropdown: false,\n className: undefined,\n options: [\"bold\", \"italic\", \"underline\", \"superscript\", \"subscript\"],\n },\n fontFamily: {\n options: [\"Arial\", \"Georgia\", \"Impact\", \"Tahoma\", \"Times New Roman\", \"Verdana\"],\n className: undefined,\n component: undefined,\n dropdownClassName: undefined,\n },\n };\n\n const {\n form,\n optionRequirementAssignment,\n optionWhoAllowApproval,\n optionWhoAllowApprovalIncludeMentor,\n optionDefaultActivityStatementFrequency,\n optionReminderRepeatInterval,\n optionReminderTotal,\n optionJobProfileReportFormat,\n optionSelfAssessedProfileReportFormat,\n optionSelfRegistransMarkedAsCandidate,\n optionBadgeProvider,\n optionYesOrNo,\n } = this.state;\n\n const blocksFromHtml1 = htmlToDraft(form && form.selfRegistrationWording ? form.selfRegistrationWording.value : \"\");\n const contentBlocks1 = blocksFromHtml1.contentBlocks;\n const entityMap1 = blocksFromHtml1.entityMap;\n const contentState1 = ContentState.createFromBlockArray(contentBlocks1, entityMap1);\n const selfRegistrationWordingEditorState = EditorState.createWithContent(contentState1);\n\n const blocksFromHtml2 = htmlToDraft(form && form.selfRegistrationConfirmationWording ? form.selfRegistrationConfirmationWording.value : \"\");\n const contentBlocks2 = blocksFromHtml2.contentBlocks;\n const entityMap2 = blocksFromHtml2.entityMap;\n const contentState2 = ContentState.createFromBlockArray(contentBlocks2, entityMap2);\n const selfRegistrationConfirmationWordingEditorState = EditorState.createWithContent(contentState2);\n\n return (\n \n \n op.operation == \"Edit\" && op.allow == true) ? true : false}\n >\n op.operation == \"Edit\" && op.allow == true) ? true : false}>\n op.operation == \"Edit\" && op.allow == true) ? true : false}\n >\n op.operation == \"Edit\" && op.allow == true) ? true : false}\n >\n op.operation == \"Edit\" && op.allow == true) ? true : false}\n >\n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n

\n Manage Features/Settings\n

\n
\n \n \n {this.props.config && (\n \n \n \n \n \n {({ expanded }) => (\n \n Current Status Information:\n \n )}\n \n \n \n \n {(this.props.config.accountName || this.props.config.accountNumber) && (\n \n \n \n \n \n \n \n \n \n \n )}\n \n \n ${this.props.config.licenceAllocations} with a renewal date of ${\n this.props.config.renewalDate &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(this.props.config.renewalDate))\n } and you currently have ${this.props.config.liveUsers} live users`,\n }}\n >\n \n {this.props.config.analyticSyncEnable && this.props.config.analyticSyncStatus && (\n \n ${this.props.config.analyticSyncStatus}, Last Sync Started On : ${\n this.props.config.lastAnalyticSyncStartedOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n }).format(new Date(this.props.config.lastAnalyticSyncStartedOn))\n }, Last Sync Success On : ${\n this.props.config.lastAnalyticSyncSuccessOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n }).format(new Date(this.props.config.lastAnalyticSyncSuccessOn))\n }`,\n }}\n >\n \n )}\n \n \n \n \n \n {({ expanded }) => (\n \n Organisational Information and Tenant Settings\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.openManageEvidenceType()}>\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? \"Click for edit page\" : \"Click for show list\"}\n \n \n \n \n \n \n this.openManageActionType()}>\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? \"Click for edit page\" : \"Click for show list\"}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n 0 ? true : false}\n invalid={form && form.automaticUserInactivationLoginDays.touched && !form.automaticUserInactivationLoginDays.valid}\n style={{ marginRight: \"10px\" }}\n onChange={this.handleChangeCheckBox}\n disabled={this.state.isUpdating}\n />\n \n \n \n 0 && (form.automaticUserInactivationLoginDays.value < 90 || form.automaticUserInactivationLoginDays.value > 365))\n }\n onChange={this.handleChange}\n disabled={this.state.isUpdating || (form && form.automaticUserInactivationLoginDays.value == 0)}\n min={form && form.automaticUserInactivationLoginDays.value > 0 ? 90 : 0}\n max={form && form.automaticUserInactivationLoginDays.value > 0 ? 365 : 0}\n />\n \n \n \n \n  \n \n \n {\n this.handleInactivationUsersClick();\n }}\n disabled={this.state.isUpdating || (this.props.config && this.props.config.automaticUserInactivationLoginDays == 0)}\n >\n Execute Inactivation Process\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {form && (\n \n \n \n \n \n \n \n
\n

\n 1\n

\n
\n \n \n Review and Refine (edit)\" }}\n >

\n \n
\n
\n \n \n \n \n \n
\n

\n 2\n

\n
\n \n \n Assign Current and Future Skill requirements\" }}\n >

\n \n
\n
\n \n \n \n \n \n
\n

\n 3\n

\n
\n \n \n Build your Action Plan\" }}\n >

\n \n
\n
\n \n
\n \n \n \n \n \n  \n
\n {this.state.displayBackgroundColorPicker ? (\n
\n
\n \n
\n ) : null}\n
\n this.resetBackgroundColor()}>\n Reset\n \n
\n \n \n \n \n \n
\n  \n
\n {this.state.displayFontColorPicker ? (\n
\n
\n \n
\n ) : null}\n
\n this.resetFontColor()}>\n Reset\n \n
\n \n \n \n )}\n \n \n \n \n \n {({ expanded }) => (\n \n Security and Privacy:\n \n )}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n {({ expanded }) => (\n \n Assessment (Survey) Settings:\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionReminderTotal.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionReminderRepeatInterval.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n {({ expanded }) => (\n \n Notifications:\n \n )}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n {({ expanded }) => (\n \n Collaboration:\n \n )}\n \n \n \n \n \n \n \n {optionRequirementAssignment.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionWhoAllowApprovalIncludeMentor.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n {form && form.enableFindMentor.value && (form.enableFindMentor.value === true || form.enableFindMentor.value === \"true\") && (\n \n \n \n this.openManageMentorPreferences()}>\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? \"Click for edit page\" : \"Click for show list\"}\n \n \n \n )}\n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n {this.props.config && this.props.config.showSfiaCertificationAdmin && (\n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n )}\n {this.props.config && this.props.config.showSfiaCertificationAdmin && (\n \n \n \n \n {optionBadgeProvider.map((it, key) => (\n \n ))}\n \n \n \n )}\n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n {({ expanded }) => (\n \n Reporting:\n \n )}\n \n \n \n \n \n \n \n {optionJobProfileReportFormat.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionSelfAssessedProfileReportFormat.map((it, key) => (\n \n ))}\n \n \n \n {this.props.config && (\n \n \n \n
\n
\n {this.state.powerBiModelLink && this.state.powerBiModelLink != \"\" ? (\n \n {this.state.downloadPowerBiModelLoading ? (\n \n ) : (\n this.handleDownloadPowerBI(this.state.powerBiModelLink, this.state.powerBiModelFileName)}>\n Click to download\n \n )}\n \n ) : (\n \"-\"\n )}\n
\n
\n {this.state.powerBiReportId && this.state.powerBiReportId != \"\" && this.state.powerBiEmbeddedUrl && this.state.powerBiEmbeddedUrl != \"\" && this.state.powerBiEmbeddedToken && this.state.powerBiEmbeddedToken != \"\" && (\n \n this.handleShowPowerBIReport(true)}>\n View Report\n \n \n )}\n
\n
\n \n
\n )}\n \n \n \n \n {optionDefaultActivityStatementFrequency.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n Click for show Audit Logs\n \n \n {this.props.config &&\n !this.props.config.sfia9MigrationDone &&\n !this.props.config.eeaFrameworkContainer &&\n this.props.sfiaVersion == 8 &&\n pageAssignment &&\n pageAssignment.operations.find((op) => op.operation == \"Download Impact Assessment Spreadsheets\" && op.allow == true) && (\n \n \n {\n this.handleDownloadImpactAssessmentSpreadsheets();\n }}\n disabled={this.props.loadingPrint}\n >\n Download SFIA9 Impact Assessment\n \n \n \n )}\n
\n
\n \n \n \n {({ expanded }) => (\n \n Self Registration:\n \n )}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionSelfRegistransMarkedAsCandidate.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n {form && (form.restrictRegistransEmailDomain.value == true || form.restrictRegistransEmailDomain.value == \"true\") && (\n \n \n \n this.openManageAllowedEmailDomains()}>\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? \"Click for edit page\" : \"Click for show list\"}\n \n \n \n )}\n \n \n \n this.openManageRegistrationReason()}>\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? \"Click for edit page\" : \"Click for show list\"}\n \n \n \n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n {form && form.allowSelfRegistration.value && (form.allowSelfRegistration.value == true || form.allowSelfRegistration.value == \"true\") && (\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.showEditor &&\n (this.state.bodyMode1 == \"ShowEditor\" ? (\n \n ) : (\n \n ))}\n \n \n \n )}\n {form && form.allowSelfRegistration.value && (form.allowSelfRegistration.value == true || form.allowSelfRegistration.value == \"true\") && (\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.showEditor &&\n (this.state.bodyMode2 == \"ShowEditor\" ? (\n \n ) : (\n \n ))}\n \n \n \n )}\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n {\n this.handleSaveClick();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating || (form && form.automaticUserInactivationLoginDays.value > 0 && (form.automaticUserInactivationLoginDays.value < 90 || form.automaticUserInactivationLoginDays.value > 365))}\n >\n Save\n \n    \n \n \n )}\n \n \n \n \n \n \n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n configLoading: state.config.loading,\n configError: state.config.error,\n config: state.config.config,\n isUpdating: state.config.isUpdating,\n numberOfPersonsPutToInactive: state.config.numberOfPersonsPutToInactive,\n\n loadingExport: state.config.loadingExport,\n blobData: state.config.blobData,\n pageAssignments: state.adminPerson.pageAssignments,\n\n loadingPrint: state.config.loadingPrint,\n printData: state.config.printData,\n\n sfiaVersion: state.auth.sfiaVersion,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageSettings));\n","import ErrorHandler from \"../errorResponseHandler\";\nimport Instance from \"../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminBadgeRequestAPI {\n static getBadgeRequests() {\n return axios\n .get(`/badgerequests/list`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateBadgeRequestAssesor(id, assessorId, assessorName) {\n return axios\n .post(`/badgerequests/${id}/updateAssessor`, {\n assessorId,\n assessorName,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateBadgeRequestCertificationEntries(id, badgeRequest) {\n return axios\n .post(`/badgerequests/${id}/updatecertificationentries`, badgeRequest)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitBadgeRequestCertification(id) {\n return axios\n .post(`/badgerequests/${id}/submitcertification`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitBadgeRequestCertifications(badgeRequestIds) {\n return axios\n .post(`/badgerequests/submitcertifications`, { badgeRequestIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static rejectBadgeRequestCertification(id) {\n return axios\n .post(`/badgerequests/${id}/rejectrequest`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminBadgeRequestAPI;\n","import AdminBadgeRequestAPI from \"./../../../common/api/adminservice/AdminBadgeRequestService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getBadgeRequestsStart = () => {\n return {\n type: actionTypes.GET_BADGE_REQUESTS_START,\n };\n};\n\nexport const getBadgeRequestsSuccess = (badgeRequests) => {\n return {\n type: actionTypes.GET_BADGE_REQUESTS_SUCCESS,\n badgeRequests,\n };\n};\n\nexport const getBadgeRequestsFail = (error) => {\n return {\n type: actionTypes.GET_BADGE_REQUESTS_FAIL,\n error: error,\n };\n};\n\nexport const getBadgeRequests = () => {\n return (dispatch) => {\n dispatch(getBadgeRequestsStart());\n\n return AdminBadgeRequestAPI.getBadgeRequests()\n .then((res) => {\n dispatch(getBadgeRequestsSuccess(res));\n })\n .catch((err) => {\n dispatch(getBadgeRequestsFail(err));\n });\n };\n};\n\nexport const updateBadgeRequestAssessorStart = () => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_START,\n };\n};\n\nexport const updateBadgeRequestAssessorSuccess = (badgeRequest) => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_SUCCESS,\n badgeRequest,\n };\n};\n\nexport const updateBadgeRequestAssessorFail = (error) => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_ASSESSOR_FAIL,\n error: error,\n };\n};\n\nexport const updateBadgeRequestAssessor = (id, assessorId, assessorName) => {\n return (dispatch) => {\n dispatch(updateBadgeRequestAssessorStart());\n\n return AdminBadgeRequestAPI.updateBadgeRequestAssesor(id, assessorId, assessorName)\n .then((res) => {\n if (res) {\n dispatch(updateBadgeRequestAssessorSuccess(res));\n } else {\n dispatch(updateBadgeRequestAssessorFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateBadgeRequestAssessorFail(err));\n });\n };\n};\n\nexport const updateBadgeRequestCertificationEntriesStart = () => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_START,\n };\n};\n\nexport const updateBadgeRequestCertificationEntriesSuccess = (badgeRequest) => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_SUCCESS,\n badgeRequest,\n };\n};\n\nexport const updateBadgeRequestCertificationEntriesFail = (error) => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST_CERTIFICATION_ENTRIES_FAIL,\n error: error,\n };\n};\n\nexport const updateBadgeRequestCertificationEntries = (id, badgeRequest) => {\n return (dispatch) => {\n dispatch(updateBadgeRequestCertificationEntriesStart());\n\n return AdminBadgeRequestAPI.updateBadgeRequestCertificationEntries(id, badgeRequest)\n .then((res) => {\n if (res) {\n dispatch(updateBadgeRequestCertificationEntriesSuccess(res));\n } else {\n dispatch(updateBadgeRequestCertificationEntriesFail(res));\n }\n })\n .catch((err) => {\n dispatch(updateBadgeRequestCertificationEntriesFail(err));\n });\n };\n};\n\nexport const submitBadgeRequestCertificationStart = () => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_START,\n };\n};\n\nexport const submitBadgeRequestCertificationSuccess = (badgeRequest) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_SUCCESS,\n badgeRequest,\n };\n};\n\nexport const submitBadgeRequestCertificationFail = (error) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATION_FAIL,\n error: error,\n };\n};\n\nexport const submitBadgeRequestCertification = (id) => {\n return (dispatch) => {\n dispatch(submitBadgeRequestCertificationStart());\n\n return AdminBadgeRequestAPI.submitBadgeRequestCertification(id)\n .then((res) => {\n if (res) {\n dispatch(submitBadgeRequestCertificationSuccess(res));\n } else {\n dispatch(submitBadgeRequestCertificationFail(res));\n }\n })\n .catch((err) => {\n dispatch(submitBadgeRequestCertificationFail(err));\n });\n };\n};\n\nexport const updateBadgeRequest = (badgeRequest) => {\n return {\n type: actionTypes.UPDATE_BADGE_REQUEST,\n badgeRequest,\n };\n};\n\nexport const submitBadgeRequestCertificationsStart = () => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_START,\n };\n};\n\nexport const submitBadgeRequestCertificationsSuccess = (badgeRequests) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_SUCCESS,\n badgeRequests,\n };\n};\n\nexport const submitBadgeRequestCertificationsFail = (error) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_CERTIFICATIONS_FAIL,\n error: error,\n };\n};\n\nexport const submitBadgeRequestCertifications = (badgeRequestIds) => {\n return (dispatch) => {\n dispatch(submitBadgeRequestCertificationsStart());\n\n return AdminBadgeRequestAPI.submitBadgeRequestCertifications(badgeRequestIds)\n .then((res) => {\n if (res) {\n dispatch(submitBadgeRequestCertificationsSuccess(res));\n } else {\n dispatch(submitBadgeRequestCertificationsFail(res));\n }\n })\n .catch((err) => {\n dispatch(submitBadgeRequestCertificationsFail(err));\n });\n };\n};\n\nexport const rejectBadgeRequestCertificationStart = () => {\n return {\n type: actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_START,\n };\n};\n\nexport const rejectBadgeRequestCertificationSuccess = (badgeRequestId) => {\n return {\n type: actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_SUCCESS,\n badgeRequestId,\n };\n};\n\nexport const rejectBadgeRequestCertificationFail = (error) => {\n return {\n type: actionTypes.REJECT_BADGE_REQUEST_CERTIFICATION_FAIL,\n error: error,\n };\n};\n\nexport const rejectBadgeRequestCertification = (id) => {\n return (dispatch) => {\n dispatch(rejectBadgeRequestCertificationStart());\n\n return AdminBadgeRequestAPI.rejectBadgeRequestCertification(id)\n .then((res) => {\n if (res) {\n dispatch(rejectBadgeRequestCertificationSuccess(id));\n } else {\n dispatch(rejectBadgeRequestCertificationFail(res));\n }\n })\n .catch((err) => {\n dispatch(rejectBadgeRequestCertificationFail(err));\n });\n };\n};\n","import * as adminBadgeRequestActions from \"../../../store/admin/actions/adminBadgeRequestActions\";\nimport { faCircleCheck, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Input, Popover, PopoverBody, PopoverHeader, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass BadgeRequestAssessorCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateAssessorOpen: false,\n persons: [],\n assessorName: this.props.assessorName,\n assessorId: this.props.assessorId,\n newAssessorId: this.props.assessorId,\n dirty: false,\n isUpdating: false,\n };\n }\n\n componentDidMount() {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\") && ((it.id != this.props.authPersonId && this.props.authPersonId == this.props.personId) || this.props.authPersonId != this.props.personId))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n const persons =\n this.props.persons &&\n this.props.persons\n .filter((it) => it.roles.some((it) => it.role == \"Admin\") && ((it.id != this.props.authPersonId && this.props.authPersonId == this.props.personId) || this.props.authPersonId != this.props.personId))\n .map((it) => {\n return { value: it.id, label: `${it.firstName} ${it.lastName}` };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1));\n\n this.setState({ persons: [{ label: \"None\", value: null }, ...persons] });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n togglePopover = () => {\n const popOverUpdateAssessorOpen = this.state.popOverUpdateAssessorOpen;\n const assessorId = this.state.assessorId;\n\n this.setState({ popOverUpdateAssessorOpen: !popOverUpdateAssessorOpen, dirty: false, isUpdating: false, newAssessorId: assessorId });\n };\n\n openUpdateAssignment = () => {\n const popOverUpdateAssessorOpen = this.state.popOverUpdateAssessorOpen;\n this.setState({ popOverUpdateAssessorOpen: !popOverUpdateAssessorOpen });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({ newAssessorId: value && value != \"None\" ? value : null, dirty: true });\n };\n\n handleUpdateAssessor = () => {\n const { newAssessorId, badgeRequest, persons } = this.state;\n\n let assessor = null;\n\n if (newAssessorId) {\n assessor = persons.find((it) => it.value == newAssessorId);\n }\n\n this.setState({ isUpdating: true });\n this.props.onBadgeRequest.updateBadgeRequestAssessor(this.props.badgeRequest.id, newAssessorId, assessor ? assessor.label : null).then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n if (!newAssessorId) {\n this.setState({ assessorName: null, assessorId: null });\n } else if (assessor) {\n this.setState({ assessorName: assessor.label, assessorId: assessor.value });\n }\n\n this.setState({ popOverUpdateAssessorOpen: false });\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const badgeRequest = this.props.badgeRequest;\n const { assessorName, assessorId, persons, newAssessorId } = this.state;\n\n return (\n \n
\n {this.props.allowEdit ? (\n this.openUpdateAssignment()}>\n {assessorId ? assessorName : \"None\"}\n \n ) : (\n {assessorId ? assessorName : \"\"}\n )}\n {this.props.allowEdit && (\n \n \n Update Assessor\n \n \n \n \n Update Assessor\n \n \n  \n \n \n \n \n \n \n \n \n {persons.map((person, key) => (\n \n ))}\n \n \n \n \n \n \n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.adminPerson.isUpdating,\n error: state.adminPerson.error,\n authPersonId: state.auth.personId,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onBadgeRequest: bindActionCreators(adminBadgeRequestActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BadgeRequestAssessorCell);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport * as personActions from \"../../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../../store/actions/skillProfileAction\";\nimport * as adminBadgeRequestActions from \"../../../store/admin/actions/adminBadgeRequestActions\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport BadgeRequestAssessorCell from \"./BadgeRequestAssessorCell\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faCertificate, faCircleXmark, faClipboardCheck, faDownload, faSquareCheck, faSquareMinus, faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageSfiaCredentials extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n persons: [],\n badgeRequests: [],\n isUpdating: false,\n searchProperties: [\"email\", \"firstName\", \"lastName\", \"assessorName\", \"status\"],\n modeGenerateReports: false,\n modeSubmitCertificate: false,\n personsSkillProfileSelected: [],\n personsEndorsedSelected: [],\n personsActionSelected: [],\n personsSubmitCertificateSelected: [],\n loadingPrint: false,\n filterAssignedToMe: false,\n showLoadingPanel: false,\n selectedRequestToReject: null,\n showRejectBadgeConfirmation: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const routeGoBack = localStorage.getItem(\"routeGoBack\");\n localStorage.setItem(\"routeAdminFrom\", \"/admin/sfiacredentials\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n let repopulate = true;\n if (routeGoBack == \"TRUE\") {\n repopulate = false;\n }\n\n this.props.onAuth.authCheckState().then(() => {\n const searchProperties = this.state.searchProperties;\n if (repopulate || !this.props.badgeRequests || (this.props.badgeRequests && this.props.badgeRequests.length == 0)) {\n this.initData();\n this.props.onAdminPerson.getPersons().then(() => {\n let persons = this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1));\n\n this.setState({\n persons,\n });\n });\n this.setState({ loading: this.props.loading });\n } else {\n const filterAssignedToMe = this.state.filterAssignedToMe;\n\n let badgeRequests = this.reformBadgeRequests(this.props.badgeRequests.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)));\n if (filterAssignedToMe) {\n badgeRequests = badgeRequests.filter((it) => it.assessorId == this.props.personId);\n }\n\n if (this.state.modeGenerateReports) {\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n }\n\n let persons = this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1));\n\n this.setState({\n badgeRequests: badgeRequests,\n personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.id),\n personsSubmitCertificateSelected: [],\n persons,\n loading: false,\n });\n }\n });\n }\n\n componentWillUnmount() {\n localStorage.setItem(\"routeGoBack\", \"FALSE\");\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n this.setState({ persons: this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)) });\n }\n\n if (prevProps.badgeRequests !== this.props.badgeRequests && this.props.badgeRequests) {\n this.setState({ badgeRequests: this.reformBadgeRequests(this.props.badgeRequests.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))) });\n }\n }\n\n reformBadgeRequests = (badgeRequests) => {\n return badgeRequests.map((it) => {\n return {\n id: it.id,\n personId: it.personId,\n idSkillProfile: it.id,\n idActionPlan: it.id,\n idEndorsedProfile: it.id,\n firstName: it.firstName,\n lastName: it.lastName,\n certificationSubmitted: it.certificationSubmitted,\n email: it.email,\n completeName: `${it.firstName}${it.lastName ? ` ${it.lastName}` : \"\"}${it.email ? ` ${it.email}` : \"\"}`,\n\n totalQuestions: it.totalQuestions,\n answeredQuestions: it.answeredQuestions,\n totalTimeTaken: it.totalTimeTaken,\n percentage: it.percentage,\n hasEndorseProfile: it.hasEndorseProfile,\n hasAction: it.hasAction,\n\n selfAssessedReportGenerated: it.selfAssessedReportGenerated,\n lastSelfAssessedReportGeneratedVersion: it.lastSelfAssessedReportGeneratedVersion,\n lastSelfAssessedReportGeneratedOn: it.lastSelfAssessedReportGeneratedOn,\n actionReportGenerated: it.actionReportGenerated,\n lastActionReportGeneratedVersion: it.lastActionReportGeneratedVersion,\n lastActionReportGeneratedOn: it.lastActionReportGeneratedOn,\n endorsedReportGenerated: it.endorsedReportGenerated,\n lastEndorsedReportGeneratedVersion: it.lastEndorsedReportGeneratedVersion,\n lastEndorsedReportGeneratedOn: it.lastEndorsedReportGeneratedOn,\n\n submitDate: it.submitDate,\n status: it.status ? it.status : \"\",\n assessorId: it.assessorId,\n assessorName: it.assessorName ? it.assessorName : \"\",\n assessedDate: it.assessedDate,\n };\n });\n };\n\n initData = () => {\n const filterAssignedToMe = this.state.filterAssignedToMe;\n this.props.onAdminBadgeRequest.getBadgeRequests().then(() => {\n let badgeRequests = this.reformBadgeRequests(this.props.badgeRequests.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1)));\n if (filterAssignedToMe) {\n badgeRequests = badgeRequests.filter((it) => it.assessorId == this.props.personId);\n }\n\n if (this.state.modeGenerateReports) {\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n }\n\n this.setState({\n badgeRequests: badgeRequests,\n personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.id),\n personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.id),\n personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.id),\n personsSubmitCertificateSelected: [],\n });\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n handleRowClickDummy = () => {};\n\n handleRowSkillProfileClick = (row) => {\n if (!this.state.loadingPrint) {\n const badgeRequests = this.state.badgeRequests;\n const updatedData = badgeRequests.find((it) => it.id == row.id);\n updatedData.toggleSkillProfileSelected = !updatedData.toggleSkillProfileSelected;\n\n this.setState({ badgeRequests: [...badgeRequests], personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.personId) });\n }\n };\n\n handleSelectSkillProfileAll = () => {\n const { badgeRequests, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(badgeRequests, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSkillProfileSelected && it.percentage >= 1).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSkillProfileSelected && it.percentage >= 1).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n });\n\n if (selectAll) {\n badgeRequests\n .filter((it) => it.percentage >= 1)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSkillProfileSelected = true;\n }\n });\n }\n\n this.setState({ badgeRequests: [...badgeRequests], personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.personId) });\n };\n\n handleRowEndorsedClick = (row) => {\n if (!this.state.loadingPrint) {\n const badgeRequests = this.state.badgeRequests;\n const updatedData = badgeRequests.find((it) => it.id == row.id);\n updatedData.toggleEndorsedSelected = !updatedData.toggleEndorsedSelected;\n\n this.setState({ badgeRequests: [...badgeRequests], personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.personId) });\n }\n };\n\n handleSelectEndorsedAll = () => {\n const { badgeRequests, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(badgeRequests, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n badgeRequests.forEach((it) => {\n it.toggleEndorsedSelected = false;\n });\n\n if (selectAll) {\n badgeRequests\n .filter((it) => it.hasEndorseProfile)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleEndorsedSelected = true;\n }\n });\n }\n\n this.setState({ badgeRequests: [...badgeRequests], personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.personId) });\n };\n\n handleRowActionClick = (row) => {\n if (!this.state.loadingPrint) {\n const badgeRequests = this.state.badgeRequests;\n const updatedData = badgeRequests.find((it) => it.id == row.id);\n updatedData.toggleActionSelected = !updatedData.toggleActionSelected;\n\n this.setState({ badgeRequests: [...badgeRequests], personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.personId) });\n }\n };\n\n handleSelectActionAll = () => {\n const { badgeRequests, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(badgeRequests, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleActionSelected && it.hasAction).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleActionSelected && it.hasAction).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n badgeRequests.forEach((it) => {\n it.toggleActionSelected = false;\n });\n\n if (selectAll) {\n badgeRequests\n .filter((it) => it.hasAction)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleActionSelected = true;\n }\n });\n }\n\n this.setState({ badgeRequests: [...badgeRequests], personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.personId) });\n };\n\n handleClearSelection = () => {\n const badgeRequests = this.state.badgeRequests;\n\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = false;\n it.toggleEndorsedSelected = false;\n it.toggleActionSelected = false;\n it.toggleCertificateSelected = false;\n });\n\n this.setState({ badgeRequests: [...badgeRequests], personsSkillProfileSelected: [], personsEndorsedSelected: [], personsActionSelected: [], personsSubmitCertificateSelected: [] });\n };\n\n certifyProfile = (person) => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n localStorage.setItem(\"profileType\", \"SelfAssessed\");\n localStorage.setItem(\"manageProfileByAdminPopup\", \"TRUE\");\n\n this.props.history.push(`/SfiaProfile/Certify?email=${person.email}`);\n };\n\n handleGenerateReport = () => {\n const badgeRequests = this.state.badgeRequests;\n\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n\n this.setState({\n modeGenerateReports: true,\n badgeRequests: [...badgeRequests],\n personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.personId),\n personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.personId),\n personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.personId),\n });\n };\n\n handleConfirmGenerateReport = () => {\n const { personsSkillProfileSelected, personsEndorsedSelected, personsActionSelected } = this.state;\n let personIds = [];\n\n personIds.push(...personsSkillProfileSelected);\n\n personsEndorsedSelected.forEach((it) => {\n if (!personIds.find((x) => x == it)) {\n personIds.push(it);\n }\n });\n\n personsActionSelected.forEach((it) => {\n if (!personIds.find((x) => x == it)) {\n personIds.push(it);\n }\n });\n\n this.setState({ loadingPrint: true });\n this.props.onAdminPerson\n .generateProfileReports({\n reportRequests: personIds.map((personId) => {\n return {\n personId,\n selfAssessedReport: personsSkillProfileSelected.find((it) => it == personId) ? true : false,\n endorsedReport: personsEndorsedSelected.find((it) => it == personId) ? true : false,\n actionReport: personsActionSelected.find((it) => it == personId) ? true : false,\n };\n }),\n })\n .then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `SkillsTx_Persons_Profiles.zip`);\n this.handleClearSelection();\n this.handleRefresh();\n }\n }\n\n this.setState({ loadingPrint: this.props.loadingPrint, modeGenerateReports: false });\n });\n };\n\n handleCancelGenerateReport = () => {\n this.handleClearSelection();\n this.setState({ modeGenerateReports: false });\n };\n\n handleToggleAssignedToMe = () => {\n const filterAssignedToMe = this.state.filterAssignedToMe;\n let badgeRequests = this.reformBadgeRequests(this.props.badgeRequests);\n\n if (!filterAssignedToMe == true) {\n badgeRequests = badgeRequests.filter((it) => it.assessorId == this.props.personId);\n }\n\n badgeRequests.forEach((it) => {\n it.toggleSkillProfileSelected = !it.selfAssessedReportGenerated && it.percentage >= 1;\n it.toggleEndorsedSelected = !it.endorsedReportGenerated && it.hasEndorseProfile;\n it.toggleActionSelected = !it.actionReportGenerated && it.hasAction;\n });\n\n this.setState({\n filterAssignedToMe: !filterAssignedToMe,\n badgeRequests: [...badgeRequests],\n personsSkillProfileSelected: badgeRequests.filter((it) => it.toggleSkillProfileSelected).map((row) => row.personId),\n personsEndorsedSelected: badgeRequests.filter((it) => it.toggleEndorsedSelected).map((row) => row.personId),\n personsActionSelected: badgeRequests.filter((it) => it.toggleActionSelected).map((row) => row.personId),\n });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n submitCertificateProfile = (badgeRequest) => {\n if (window.confirm(`Are you sure?`)) {\n this.setState({ isUpdating: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Submit certificate\", loadingPanelBody: \"Please wait ...\" });\n this.props.onAdminBadgeRequest.submitBadgeRequestCertification(badgeRequest.id).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Certification badges submitted.\");\n }\n }\n\n this.setState({ isUpdating: this.props.badgeRequestUpdating, showLoadingPanel: this.props.badgeRequestUpdating });\n });\n }\n };\n\n handleTogleSubmitCertificate = () => {\n const modeSubmitCertificate = this.state.modeSubmitCertificate;\n\n if (modeSubmitCertificate) {\n this.handleClearSelection();\n }\n\n this.setState({\n modeSubmitCertificate: !modeSubmitCertificate,\n });\n };\n\n handleRowSubmitCertificateClick = (row) => {\n if (!this.state.loadingPrint) {\n const badgeRequests = this.state.badgeRequests;\n const updatedData = badgeRequests.find((it) => it.id == row.id);\n updatedData.toggleCertificateSelected = !updatedData.toggleCertificateSelected;\n\n this.setState({ badgeRequests: [...badgeRequests], personsSubmitCertificateSelected: badgeRequests.filter((it) => it.toggleCertificateSelected).map((row) => row.id) });\n }\n };\n\n handleSelectSubmitCertificateAll = () => {\n const { personId } = this.props;\n const { badgeRequests, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(badgeRequests, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleCertificateSelected && it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleCertificateSelected && it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n badgeRequests.forEach((it) => {\n it.toggleCertificateSelected = false;\n });\n\n if (selectAll) {\n badgeRequests\n .filter((it) => it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId)\n .forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleCertificateSelected = true;\n }\n });\n }\n\n this.setState({ badgeRequests: [...badgeRequests], personsSubmitCertificateSelected: badgeRequests.filter((it) => it.toggleCertificateSelected).map((row) => row.id) });\n };\n\n handleConfirmSubmitCertificates = () => {\n const { personsSubmitCertificateSelected } = this.state;\n\n this.setState({ isUpdating: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Submit certificates\", loadingPanelBody: \"Please wait ...\" });\n this.props.onAdminBadgeRequest.submitBadgeRequestCertifications(personsSubmitCertificateSelected).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Certification badges submitted.\");\n this.handleTogleSubmitCertificate();\n }\n }\n\n this.setState({ isUpdating: this.props.badgeRequestUpdating, showLoadingPanel: this.props.badgeRequestUpdating });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n rejectBadgeRequest = (request) => {\n this.setState({\n selectedRequestToReject: request,\n updateBadgeRequest: false,\n showRejectBadgeConfirmation: true,\n });\n };\n\n togleRejectBadgesConfirmation = () => {\n const showRejectBadgeConfirmation = this.state.showRejectBadgeConfirmation;\n this.setState({ showRejectBadgeConfirmation: !showRejectBadgeConfirmation });\n };\n\n handleRejectBadgeRequest = () => {\n const selectedRequestToReject = this.state.selectedRequestToReject;\n this.setState({ isUpdating: true });\n this.props.onAdminBadgeRequest.rejectBadgeRequestCertification(selectedRequestToReject.id).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Badges request rejected.\");\n this.togleRejectBadgesConfirmation();\n this.props.onConfig.getContainerConfigWithoutLoading().then(() => {});\n }\n }\n\n this.setState({ isUpdating: this.props.badgeRequestUpdating });\n });\n };\n\n renderRejectBadgesConfirmation = () => {\n return (\n \n Reject badge request confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleRejectBadgeRequest();\n }}\n disabled={this.state.isUpdating}\n >\n Ok\n \n \n \n
\n );\n };\n\n render() {\n const { personId, containerConfig } = this.props;\n const { badgeRequests, persons, searchKeyword, searchProperties, modeGenerateReports, modeSubmitCertificate, filterAssignedToMe, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n let pageAssignment = null;\n\n if (pageAssignments.find((it) => it.pageName == \"Manage SFIA Credentials and Reports\")) {\n pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage SFIA Credentials and Reports\");\n }\n\n // const editProfile = this.editProfile;\n const certifyProfile = this.certifyProfile;\n const rejectBadgeRequest = this.rejectBadgeRequest;\n const submitCertificateProfile = this.submitCertificateProfile;\n const generateAlert = this.generateAlert;\n const handleSelectSkillProfileAll = this.handleSelectSkillProfileAll;\n const handleRowSkillProfileClick = this.handleRowSkillProfileClick;\n\n const handleSelectEndorsedAll = this.handleSelectEndorsedAll;\n const handleRowEndorsedClick = this.handleRowEndorsedClick;\n\n const handleSelectActionAll = this.handleSelectActionAll;\n const handleRowActionClick = this.handleRowActionClick;\n\n const handleSelectSubmitCertificateAll = this.handleSelectSubmitCertificateAll;\n const handleRowSubmitCertificateClick = this.handleRowSubmitCertificateClick;\n\n const onTableFilterChange = this.onTableFilterChange;\n const loadingPrint = this.state.loadingPrint;\n\n const selectableRows = false;\n const filtered = this.filterArray(badgeRequests, searchKeyword, searchProperties, columnSearchKeywords);\n\n // const allowEdit = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) ? true : false;\n const allowEdit = false;\n const allowApprove = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Approve\" && op.allow == true) ? true : false;\n const allowSubmitCertificate = containerConfig && containerConfig.badgeProvider == \"DSA\" && pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Approve\" && op.allow == true) ? true : false;\n const allowReject = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Reject\" && op.allow == true) ? true : false;\n const allowAssignAssessor = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Assign Assessor\" && op.allow == true) ? true : false;\n const allowGenerateReports = pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Generate Reports\" && op.allow == true) ? true : false;\n\n const lastSubmittedSort = (rowA, rowB) => {\n let lastUpdatedA = rowA.submitDate ? rowA.submitDate.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\";\n let lastUpdatedB = rowB.submitDate ? rowB.submitDate.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\";\n\n if (lastUpdatedA > lastUpdatedB) {\n return 1;\n }\n\n if (lastUpdatedB > lastUpdatedA) {\n return -1;\n }\n\n return 0;\n };\n\n const lastAssessedSort = (rowA, rowB) => {\n let lastReviewedA = rowA.assessedDate ? rowA.assessedDate.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\";\n let lastReviewedB = rowB.assessedDate ? rowB.assessedDate.toString().replaceAll(\"-\", \"\").replaceAll(\":\", \"\").replace(\"T\", \"\") : \"\";\n\n if (lastReviewedA > lastReviewedB) {\n return 1;\n }\n\n if (lastReviewedB > lastReviewedA) {\n return -1;\n }\n\n return 0;\n };\n\n const columns = [\n {\n id: \"idSkillProfile\",\n name: (\n
\n \n S\n \n \n Self-assessed\n \n
\n it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSkillProfileSelected && it.percentage >= 1).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectSkillProfileAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.percentage >= 1 && handleRowSkillProfileClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"idEndorsedProfile\",\n name: (\n
\n \n E\n \n \n Endorsed\n \n
\n it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? faSquare : filtered.filter((it) => !it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleEndorsedSelected && it.hasEndorseProfile).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectEndorsedAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.hasEndorseProfile && handleRowEndorsedClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"idActionPlan\",\n name: (\n
\n \n A\n \n \n Action Plan\n \n
\n it.toggleActionSelected && it.hasAction).length == 0 ? faSquare : filtered.filter((it) => !it.toggleActionSelected && it.hasAction).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleActionSelected && it.hasAction).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => !loadingPrint && handleSelectActionAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"3%\",\n center: true,\n format: function (row, index) {\n return
{row.hasAction && handleRowActionClick(row)} />}
;\n },\n omit: !modeGenerateReports,\n },\n {\n id: \"certificationSubmitted\",\n name: (\n
\n it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId && it.toggleCertificateSelected).length == 0\n ? faSquare\n : filtered.filter((it) => it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId && !it.toggleCertificateSelected).length == 0\n ? faSquareCheck\n : faSquareMinus\n }\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.status == \"Approved\" && it.certificationSubmitted != true && it.assessorId && personId == it.assessorId && it.toggleCertificateSelected).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectSubmitCertificateAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"5%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {row.status == \"Approved\" && row.certificationSubmitted != true && row.assessorId && personId == row.assessorId && (\n handleRowSubmitCertificateClick(row)} />\n )}\n
\n );\n },\n omit: !modeSubmitCertificate,\n },\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: true,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {/* {allowEdit && (\n \n editProfile(row)} />\n \n Edit\n \n \n )} */}\n {allowApprove && (row.status == \"Not Assessed\" || (row.status == \"Assessed\" && !row.certificationSubmitted)) && row.assessorId && personId == row.assessorId && (\n \n certifyProfile(row)} />\n \n Certify\n \n \n )}\n {allowReject && row.status != \"Approved\" && (\n \n rejectBadgeRequest(row)} />\n \n Reject\n \n \n )}\n {allowSubmitCertificate && row.status == \"Approved\" && !row.certificationSubmitted && row.assessorId && personId == row.assessorId && (\n \n submitCertificateProfile(row)} />\n \n Submit certificate\n \n \n )}\n
\n );\n },\n omit: !(allowEdit || allowApprove),\n },\n {\n id: \"email\",\n name: (\n
\n Person Name (email)\n
\n it.name == \"completeName\") ? columnSearchKeywords.find((it) => it.name == \"completeName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: allowEdit || allowApprove ? (modeGenerateReports ? \"27%\" : modeSubmitCertificate ? \"31%\" : \"36%\") : modeGenerateReports ? \"33%\" : modeSubmitCertificate ? \"37%\" : \"42%\",\n center: false,\n format: function (row, index) {\n return {`${row.firstName} ${row.lastName} (${row.email})`};\n },\n },\n {\n id: \"submitDate\",\n name: \"Request submitted\",\n selector: (row) => row.submitDate,\n sortable: true,\n sortFunction: lastSubmittedSort,\n width: \"15%\",\n center: false,\n format: function (row, index) {\n return (\n \n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.submitDate))}`}\n \n );\n },\n },\n {\n id: \"status\",\n name: (\n
\n Status\n
\n it.name == \"status\") ? columnSearchKeywords.find((it) => it.name == \"status\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.status,\n sortable: true,\n width: \"13%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n return row.status;\n },\n },\n {\n id: \"assessorName\",\n name: (\n
\n Assessor Name\n
\n it.name == \"assessorName\") ? columnSearchKeywords.find((it) => it.name == \"assessorName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.assessorName,\n sortable: true,\n width: \"15%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n let adminPersons = [...persons.filter((it) => it.roles.some((it) => it.role == \"Admin\"))];\n\n return allowAssignAssessor && row.status != \"Assessed\" && row.status != \"Approved\" ? (\n \n ) : (\n row.assessorName\n );\n //return row.badgeRequestLastAssessedBy;\n },\n },\n {\n id: \"assessedDate\",\n name: \"Last Assessed date\",\n selector: (row) => row.assessedDate,\n sortable: true,\n sortFunction: lastAssessedSort,\n width: \"15%\",\n center: false,\n wrap: true,\n format: function (row, index) {\n if (row.assessedDate) {\n return (\n \n {`${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.assessedDate))}`}\n \n );\n } else {\n return \"\";\n }\n },\n },\n ];\n\n return (\n \n {this.renderLoadingPanel()}\n {this.renderRejectBadgesConfirmation()}\n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n
\n {this.props.containerConfig && (\n \n \n {this.props.containerConfig.certificationCredit && this.props.containerConfig.certificationCredit >= 10 ? (\n {`You have ${this.props.containerConfig.certificationCredit} certify credits available`}\n ) : this.props.containerConfig.certificationCredit && this.props.containerConfig.certificationCredit > 0 ? (\n \n {`You have ONLY ${this.props.containerConfig.certificationCredit} certify credits available.`}\n
\n To purchase more credits contact certify@skillstx.com, your SkillsTX relationship manager or SkillsTX Partner\n
\n ) : (\n \n Your credits have been exhausted, no more Certify requests can be accepted but you can process the requests that are outstanding.\n
\n To purchase more credits contact certify@skillstx.com, your SkillsTX relationship manager or Skills TX Partner\n
\n )}\n \n
\n )}\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, personsSkillProfileSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", personsSkillProfileSelected: [] });\n }}\n >\n   \n \n Refresh\n \n   \n \n {filterAssignedToMe ? \"Show all\" : \"Assigned to me\"}\n \n {allowGenerateReports && (\n \n   \n \n Generate reports\n \n \n )}\n {modeGenerateReports && (\n \n   \n \n {!this.state.loadingPrint ? \"OK\" : }\n \n   \n \n Cancel\n \n \n )}\n {allowSubmitCertificate && (\n \n   \n \n Submit Certificate\n \n \n )}\n {modeSubmitCertificate && (\n \n   \n \n {!this.state.loadingPrint ? \"OK\" : }\n \n   \n \n Cancel\n \n \n )}\n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n personId: state.auth.personId,\n email: state.auth.email,\n loginWithTeams: state.auth.loginWithTeams,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n\n badgeRequestLoading: state.adminBadgeRequest.loading,\n badgeRequestError: state.adminBadgeRequest.error,\n badgeRequests: state.adminBadgeRequest.badgeRequests,\n isUpdating: state.adminBadgeRequest.isUpdating,\n\n badgeRequestUpdating: state.adminBadgeRequest.isUpdating,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onAdminBadgeRequest: bindActionCreators(adminBadgeRequestActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageSfiaCredentials));\n","import * as categoryActions from \"../../../store/actions/categoryAction\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass SkillAttributeBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onCategory.exportSkillAttributesDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `UploadAttributesTemplate.xlsx`);\n }\n }\n });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onCategory.importSkillAttributesDataExcel(this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.categoryError) {\n this.excelRef.current.value = null;\n\n this.props.generateAlert(\"success\", \"Import skill attributes success.\");\n this.togleDialogModal();\n this.props.handleImportSuccess();\n } else {\n this.props.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Skill Attributes\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n categoryError: state.category.error,\n loadingExport: state.category.loadingExport,\n exportData: state.category.exportData,\n\n isImporting: state.category.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onCategory: bindActionCreators(categoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SkillAttributeBulkUpload);\n","import * as categoryActions from \"../../../store/actions/categoryAction\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass SkillsHiddenBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFile: null,\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFile: null });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFile: event.target.files[0] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onCategory.importSkillsHiddenDataExcel(this.state.selectedFile).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.categoryError) {\n this.excelRef.current.value = null;\n\n this.props.generateAlert(\"success\", \"Import skills hidden data success.\");\n this.togleDialogModal();\n this.props.handleImportSuccess();\n } else {\n this.props.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFile } = this.state;\n\n return (\n \n \n \n Import Skills Hidden Data\n \n
\n \n \n \n \n \n \n \n \n Select File\n \n \n \n {selectedFile && (\n \n \n \n
\n {selectedFile && {selectedFile.name}}\n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={!selectedFile || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n categoryError: state.category.error,\n loadingExport: state.category.loadingExport,\n exportData: state.category.exportData,\n\n isImporting: state.category.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onCategory: bindActionCreators(categoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SkillsHiddenBulkUpload);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as categoryActions from \"../../../store/actions/categoryAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport SkillAttributeBulkUpload from \"./SkillAttributeBulkUpload\";\nimport SkillsHiddenBulkUpload from \"./SkillsHiddenBulkUpload\";\nimport { faPenToSquare, faPlus, faFileExcel, faEdit, faMinusCircle, faChevronLeft } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalHeader, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"28px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nconst manageAttributeWrapper = {\n width: \"100%\",\n maxWidth: \"100%\",\n fontSize: \"11px\",\n};\n\nclass ManageSkillAttributes extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n categories: [],\n editMode: false,\n editedCategoryId: null,\n editedCategory: null,\n editedSubCategoryId: null,\n editedSubCategory: null,\n editedSkill: null,\n editAttribute: false,\n editedAttribute: null,\n optionHidden: [\n { label: \"Yes\", value: true },\n { label: \"No\", value: false },\n ],\n skillAttributeIsUpdating: false,\n showDialogImportTs: null,\n showDialogImportSkillTs: null,\n showLoadingPanel: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.editSkillAnchor = React.createRef();\n }\n\n scroll(ref) {\n ref.current.scrollIntoView({ behavior: \"smooth\" });\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onCategory.getCategories(true, null).then(() => {\n if (!(this.props.loading || this.props.categoryLoading)) {\n this.setState({ categories: this.props.categories });\n }\n\n this.setState({ loading: this.props.loading || this.props.categoryLoading });\n });\n });\n }\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportAttributes = () => {\n this.props.onCategory.exportSkillAttributesDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportAttributes_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleExportSkillsHidden = () => {\n this.props.onCategory.exportSkillsHiddenDataExcel().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportSkillsHiddenData_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportSkillsHidden = () => {\n this.setState({ showDialogImportSkillTs: new Date() });\n };\n\n handleImportSkillsHiddenSuccess = () => {\n this.props.onCategory.getCategories(true, null).then(() => {\n if (!(this.props.loading || this.props.categoryLoading)) {\n this.setState({ categories: this.props.categories });\n }\n\n this.setState({ loading: this.props.loading || this.props.categoryLoading });\n });\n };\n\n openEditSkillAttribute = (categoryId, subCategoryId, skill) => {\n const { categories } = this.state;\n\n const category = categories.find((it) => it.id == categoryId);\n const subCategory = category ? category.subCategories.find((it) => it.id == subCategoryId) : null;\n this.setState({\n editMode: true,\n editedCategoryId: categoryId,\n editedCategory: category,\n editedSubCategoryId: subCategoryId,\n editedSubCategory: subCategory,\n editedSkill: {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n levels: [...skill.levels],\n attributes: [...skill.attributes],\n },\n });\n setTimeout(() => {\n this.scroll(this.editSkillAnchor);\n }, 200);\n };\n\n handleBackToList = () => {\n this.setState({ editMode: false });\n };\n\n handleAddNewAttribute = () => {\n this.setState({ editAttribute: true, editedAttribute: { id: null, attribute: null, link: null, isHidden: false } });\n };\n\n handleEditAttribute = (attribute) => {\n this.setState({\n editAttribute: true,\n editedAttribute: {\n id: attribute.id,\n attribute: attribute.attribute,\n link: attribute.link,\n isHidden: attribute.isHidden,\n },\n });\n };\n\n cancelUpdateAttribute = () => {\n this.setState({ editAttribute: false, editedAttribute: null });\n };\n\n handleChangeAttribute = (event) => {\n const { editedAttribute } = this.state;\n let { name, value } = event.target;\n\n if (name == \"attribute\") {\n editedAttribute.attribute = value;\n } else if (name == \"link\") {\n editedAttribute.link = value;\n } else if (name == \"isHidden\") {\n editedAttribute.isHidden = value;\n }\n\n this.setState({ editedAttribute });\n };\n\n handleSaveAttribute = () => {\n const { editedAttribute, editedCategoryId, editedSubCategoryId, editedSkill } = this.state;\n if (editedAttribute.id) {\n this.setState({ skillAttributeIsUpdating: true });\n\n this.props.onCategory\n .updateSkillAttribute(editedCategoryId, editedSubCategoryId, editedSkill.id, editedAttribute.id, {\n attribute: editedAttribute.attribute,\n link: editedAttribute.link,\n isHidden: editedAttribute.isHidden,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.categoryError) {\n this.generateAlert(\"success\", \"Update attribute success.\");\n this.setState({ editAttribute: false, editedAttribute: null });\n } else {\n this.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ skillAttributeIsUpdating: this.props.isUpdating });\n });\n } else {\n this.setState({ skillAttributeIsUpdating: true });\n\n this.props.onCategory\n .addSkillAttribute(editedCategoryId, editedSubCategoryId, editedSkill.id, {\n attribute: editedAttribute.attribute,\n link: editedAttribute.link,\n isHidden: editedAttribute.isHidden,\n })\n .then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.categoryError) {\n this.generateAlert(\"success\", \"Add attribute success.\");\n this.setState({ editAttribute: false, editedAttribute: null });\n const categories = this.props.categories;\n const category = categories.find((it) => it.id == editedCategoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == editedSubCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == editedSkill.id);\n if (skill) {\n editedSkill.attributes = [...skill.attributes];\n }\n }\n }\n this.setState({ editedSkill });\n } else {\n this.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ skillAttributeIsUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleDeleteAttribute = (attribute) => {\n const { editedCategoryId, editedSubCategoryId, editedSkill } = this.state;\n this.setState({ skillAttributeIsUpdating: true });\n\n this.props.onCategory.deleteSkillAttribute(editedCategoryId, editedSubCategoryId, editedSkill.id, attribute.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.categoryError) {\n this.generateAlert(\"success\", \"Delete attribute success.\");\n const categories = this.props.categories;\n const category = categories.find((it) => it.id == editedCategoryId);\n if (category) {\n const subCategory = category.subCategories.find((it) => it.id == editedSubCategoryId);\n if (subCategory) {\n const skill = subCategory.skills.find((it) => it.id == editedSkill.id);\n if (skill) {\n editedSkill.attributes = [...skill.attributes];\n }\n }\n }\n this.setState({ editedSkill });\n } else {\n this.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ skillAttributeIsUpdating: this.props.isUpdating });\n });\n };\n\n handleImportAttributes = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.props.onCategory.getCategories(true, null).then(() => {\n if (!(this.props.loading || this.props.categoryLoading)) {\n this.setState({ categories: this.props.categories });\n }\n\n this.setState({ loading: this.props.loading || this.props.categoryLoading });\n });\n };\n\n handleHideSkill = (categoryId, subCategoryId, skill) => {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: null, loadingPanelBody: \"Please wait ...\" });\n this.props.onCategory.updateSkillSetIsHidden(categoryId, subCategoryId, skill.id, !skill.isHidden).then(() => {\n this.setState({ showLoadingPanel: this.props.isUpdating });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader && {this.state.loadingPanelHeader}}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Skills and Attributes\");\n\n const { categories, editedCategory, editedSubCategory, editedSkill } = this.state;\n\n const handleEditAttribute = this.handleEditAttribute;\n const handleDeleteAttribute = this.handleDeleteAttribute;\n\n const columns = [\n {\n id: \"attribute\",\n name: \"Attribute\",\n selector: (row) => row.attribute,\n sortable: true,\n width: \"30%\",\n },\n {\n id: \"link\",\n name: \"Link\",\n selector: (row) => row.link,\n sortable: true,\n width: \"40%\",\n wrap: true,\n // formatter: function (value, row, index) {\n // return value;\n // },\n },\n {\n id: \"isHidden\",\n name: \"Is Hidden\",\n selector: (row) => row.isHidden,\n sortable: true,\n width: \"15%\",\n format: function (row, index) {\n return row.isHidden ? \"Yes\" : \"No\";\n },\n },\n {\n id: \"id\",\n selector: (row) => row.id,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n handleEditAttribute(row)} />\n \n Edit Attribute\n \n    \n {!(row.accountSkillAttributes && row.accountSkillAttributes.length > 0) && (\n \n handleDeleteAttribute(row)} />\n \n Delete Attribute\n \n    \n \n )}\n
\n );\n },\n },\n ];\n\n return (\n \n \n {this.renderLoadingPanel()}\n \n \n {this.state.loading ? (\n
\n \n
\n ) : !this.state.editMode ? (\n \n \n

\n Manage Skills and Attributes\n

\n
\n \n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export Skills Hidden\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n \n Import Skills Hidden\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export Attributes\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n Import Attributes\n \n )}\n \n \n \n  \n \n \n {categories.map((category, index) => {\n return (\n \n \n \n \n {category.name}\n \n \n \n \n \n \n \n {category.subCategories.map((subCategory, index) => {\n return (\n \n \n \n {subCategory.name}\n \n \n \n Skill Is Shown\n \n \n \n {subCategory.skills.map((skill, elIndex) => {\n return (\n \n \n \n \n \n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n \n \n \n )}\n \n );\n })}\n \n );\n })}\n \n \n \n \n \n );\n })}\n
\n \n \n \n {skill.name}\n \n \n \n \n {skill.skillsCode}\n op.operation == \"Edit\" && op.allow == true) ? \"1\" : \"3\"}>\n {skill &&\n skill.attributes &&\n skill.attributes.length > 0 &&\n skill.attributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((it, index) => {\n return (\n \n {index > 0 && \", \"}\n {it.attribute}\n \n );\n })}\n \n \n skill.isHidden && this.handleHideSkill(category.id, subCategory.id, skill)}\n >\n !skill.isHidden && this.handleHideSkill(category.id, subCategory.id, skill)}\n >\n \n \n \n
\n
\n
\n ) : (\n \n \n

\n Update Skill Attributes\n

\n
\n \n \n \n Back\n \n \n \n \n  \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Category{editedCategory && editedCategory.name}
Sub Category{editedSubCategory && editedSubCategory.name}
Skill{editedSkill && editedSkill.name}
Skill Code{editedSkill && editedSkill.skillsCode}
\n
\n {editedSkill && (\n \n \n \n
\n \n \n \n Add New\n \n \n \n a.attribute > b.attribute)} pagination={false}>\n
\n \n {this.state.editAttribute && (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.optionHidden.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n {\n this.handleSaveAttribute();\n }}\n disabled={!(this.state.editedAttribute && this.state.editedAttribute.attribute && this.state.editedAttribute.attribute != \"\") || this.state.skillAttributeIsUpdating}\n >\n Save\n \n   \n {\n this.cancelUpdateAttribute();\n }}\n disabled={this.state.skillAttributeIsUpdating}\n >\n Cancel\n \n \n \n \n \n
\n \n )}\n
\n
\n )}\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n authPersonId: state.auth.personId,\n\n categories: state.category.categories,\n isUpdating: state.category.isUpdating,\n categoryError: state.category.error,\n categoryLoading: state.category.loading,\n exportData: state.category.exportData,\n loadingExport: state.category.loadingExport,\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageSkillAttributes);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport changeInput from \"../../../utils/changeInput\";\nimport { ContentWrapperLg } from \"../../common/ContentWrapperLg\";\nimport { dismisAlert, generateAlert } from \"./../../../utils/alertUtils\";\nimport { faRotate, faXmark, faCircleXmark, faCopy } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, ButtonGroup, Col, Form, FormGroup, Input, Label, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst apiHostname = process.env.REACT_APP_API_ENDPOINT;\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageSSOSetting extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n config: null,\n isUpdating: false,\n formDirty: false,\n ssoIPCertificateKeyVaultFiles: null,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.ipCertFileRef = React.createRef();\n }\n\n componentDidMount() {\n this.setState({ loading: true });\n\n this.props.onAuth.authCheckState().then(() => {\n this.props.onConfig.getContainerAppSetting().then(() => {\n const form = this.prepareForm(this.props.containerAppSetting);\n this.setState({ containerAppSetting: this.props.containerAppSetting, form, isFormValid: true, loading: this.props.configLoading });\n });\n });\n }\n\n prepareForm = (containerAppSetting) => {\n if (containerAppSetting) {\n return {\n ssoSamlEnable: {\n validation: {\n required: true,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlEnable ? containerAppSetting.SsoSamlEnable : \"FALSE\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlEntityId: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? true : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlEntityId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n restrictLoginSSOOnly: {\n validation: {\n required: true,\n },\n value: containerAppSetting && containerAppSetting.RestrictLoginSsoOnly ? containerAppSetting.RestrictLoginSsoOnly : \"FALSE\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n byPassLoginPage: {\n validation: {\n required: true,\n },\n value: containerAppSetting && containerAppSetting.ByPassLoginPage ? containerAppSetting.ByPassLoginPage : \"FALSE\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlIpConfigurationOption: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? true : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlIpConfigurationOption ? containerAppSetting.SsoSamlIpConfigurationOption : \"AUTO\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlIpMetadataAddress: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? (containerAppSetting && containerAppSetting.SsoSamlIpConfigurationOption ? containerAppSetting.SsoSamlIpConfigurationOption : \"AUTO\" == \"AUTO\" ? true : false) : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlIpMetadataAddress,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlIpEntityId: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? (containerAppSetting && containerAppSetting.SsoSamlIpConfigurationOption ? containerAppSetting.SsoSamlIpConfigurationOption : \"AUTO\" == \"MANUAL\" ? true : false) : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlIpEntityId,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlIpSingleSignOnEndpoint: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? (containerAppSetting && containerAppSetting.SsoSamlIpConfigurationOption ? containerAppSetting.SsoSamlIpConfigurationOption : \"AUTO\" == \"MANUAL\" ? true : false) : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlIpSingleSignonEndpoint,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlIpCertificateKeyVaultName: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? (containerAppSetting && containerAppSetting.SsoSamlIpConfigurationOption ? containerAppSetting.SsoSamlIpConfigurationOption : \"AUTO\" == \"MANUAL\" ? true : false) : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlIpCertificateKeyVaultName,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n ssoSamlClaimEmailAddressType: {\n validation: {\n required: containerAppSetting && containerAppSetting.SsoSamlEnable == \"TRUE\" ? true : false,\n },\n value: containerAppSetting && containerAppSetting.SsoSamlClaimEmailaddressType,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n };\n } else {\n return null;\n }\n };\n\n handleIPFileSelected = (event) => {\n const files = Array.from(event.target.files);\n this.setState({ ssoIPCertificateKeyVaultFiles: files });\n };\n\n ClearIPSelectedFile = () => {\n this.ipCertFileRef.current.value = null;\n this.setState({ ssoIPCertificateKeyVaultFiles: null });\n };\n\n handleChange = (event) => {\n const { containerConfig, containerAppSetting } = this.props;\n const { name, value } = event.target;\n\n if (name == \"ssoCertificateKeyVaultPassword\") {\n this.setState({ ssoCertificateKeyVaultPassword: value });\n } else {\n let form = this.state.form;\n if (name == \"ssoSamlEnable\") {\n form.ssoSamlEntityId.validation.required = value == \"TRUE\";\n form.ssoSamlClaimEmailAddressType.validation.required = value == \"TRUE\";\n\n if (form.ssoSamlIpConfigurationOption.value == \"AUTO\") {\n form.ssoSamlIpMetadataAddress.validation.required = value == \"TRUE\";\n\n form.ssoSamlIpEntityId.validation.required = false;\n form.ssoSamlIpSingleSignOnEndpoint.validation.required = false;\n form.ssoSamlIpCertificateKeyVaultName.validation.required = false;\n } else {\n form.ssoSamlIpMetadataAddress.validation.required = false;\n\n form.ssoSamlIpEntityId.validation.required = value == \"TRUE\";\n form.ssoSamlIpSingleSignOnEndpoint.validation.required = value == \"TRUE\";\n form.ssoSamlIpCertificateKeyVaultName.validation.required = value == \"TRUE\";\n }\n }\n\n let updateState = changeInput(form, name, value);\n\n if (name == \"ssoSamlEnable\") {\n if (value == \"TRUE\") {\n updateState = changeInput(updateState.form, \"ssoSamlIpMetadataAddress\", form.ssoSamlIpMetadataAddress.value ? form.ssoSamlIpMetadataAddress.value : containerConfig ? containerConfig.defaultSsoSamlIpMetadataAddress : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpEntityId\", form.ssoSamlIpEntityId.value ? form.ssoSamlIpEntityId.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpSingleSignOnEndpoint\", form.ssoSamlIpSingleSignOnEndpoint.value ? form.ssoSamlIpSingleSignOnEndpoint.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpCertificateKeyVaultName\", form.ssoSamlIpCertificateKeyVaultName.value ? form.ssoSamlIpCertificateKeyVaultName.value : \"\");\n\n updateState = changeInput(updateState.form, \"ssoSamlEntityId\", form.ssoSamlEntityId.value ? form.ssoSamlEntityId.value : containerConfig ? `${containerConfig.defaultBaseUrl}saml` : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlClaimEmailAddressType\", form.ssoSamlClaimEmailAddressType.value ? form.ssoSamlClaimEmailAddressType.value : \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\");\n } else {\n updateState = changeInput(updateState.form, \"ssoSamlIpMetadataAddress\", form.ssoSamlIpMetadataAddress.value ? form.ssoSamlIpMetadataAddress.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpEntityId\", form.ssoSamlIpEntityId.value ? form.ssoSamlIpEntityId.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpSingleSignOnEndpoint\", form.ssoSamlIpSingleSignOnEndpoint.value ? form.ssoSamlIpSingleSignOnEndpoint.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpCertificateKeyVaultName\", form.ssoSamlIpCertificateKeyVaultName.value ? form.ssoSamlIpCertificateKeyVaultName.value : \"\");\n\n updateState = changeInput(updateState.form, \"ssoSamlEntityId\", form.ssoSamlEntityId.value ? form.ssoSamlEntityId.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlClaimEmailAddressType\", form.ssoSamlClaimEmailAddressType.value ? form.ssoSamlClaimEmailAddressType.value : \"\");\n updateState = changeInput(updateState.form, \"restrictLoginSSOOnly\", \"FALSE\");\n updateState = changeInput(updateState.form, \"byPassLoginPage\", \"FALSE\");\n }\n }\n\n if (name == \"restrictLoginSSOOnly\") {\n if (value == \"FALSE\") {\n updateState = changeInput(updateState.form, \"byPassLoginPage\", \"FALSE\");\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n formDirty: true,\n });\n }\n };\n\n changeConfigurationOption = (option) => {\n let form = this.state.form;\n form.ssoSamlIpConfigurationOption.value = option;\n\n if (form.ssoSamlIpConfigurationOption.value == \"AUTO\") {\n form.ssoSamlIpMetadataAddress.validation.required = true;\n form.ssoSamlIpEntityId.validation.required = false;\n form.ssoSamlIpSingleSignOnEndpoint.validation.required = false;\n form.ssoSamlIpCertificateKeyVaultName.validation.required = false;\n } else {\n form.ssoSamlIpMetadataAddress.validation.required = false;\n form.ssoSamlIpEntityId.validation.required = true;\n form.ssoSamlIpSingleSignOnEndpoint.validation.required = true;\n form.ssoSamlIpCertificateKeyVaultName.validation.required = true;\n }\n\n let updateState = changeInput(form, \"ssoSamlIpConfigurationOption\", option);\n\n updateState = changeInput(updateState.form, \"ssoSamlIpMetadataAddress\", form.ssoSamlIpMetadataAddress.value ? form.ssoSamlIpMetadataAddress.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpEntityId\", form.ssoSamlIpEntityId.value ? form.ssoSamlIpEntityId.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpSingleSignOnEndpoint\", form.ssoSamlIpSingleSignOnEndpoint.value ? form.ssoSamlIpSingleSignOnEndpoint.value : \"\");\n updateState = changeInput(updateState.form, \"ssoSamlIpCertificateKeyVaultName\", form.ssoSamlIpCertificateKeyVaultName.value ? form.ssoSamlIpCertificateKeyVaultName.value : \"\");\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleSubmitClick = () => {\n const { containerAppSetting, form, ssoIPCertificateKeyVaultFiles } = this.state;\n let appSetting = null;\n\n if (form.ssoSamlIpConfigurationOption.value == \"AUTO\") {\n appSetting = {\n ssoSamlEnable: form.ssoSamlEnable.value,\n ssoSamlEntityId: form.ssoSamlEntityId.value,\n restrictLoginSSOOnly: form.restrictLoginSSOOnly.value,\n byPassLoginPage: form.byPassLoginPage.value,\n ssoSamlIpConfigurationOption: form.ssoSamlIpConfigurationOption.value,\n ssoSamlClaimEmailAddressType: form.ssoSamlClaimEmailAddressType.value,\n ssoSamlIpMetadataAddress: form.ssoSamlIpMetadataAddress.value,\n };\n } else {\n appSetting = {\n ssoSamlEnable: form.ssoSamlEnable.value,\n ssoSamlEntityId: form.ssoSamlEntityId.value,\n restrictLoginSSOOnly: form.restrictLoginSSOOnly.value,\n byPassLoginPage: form.byPassLoginPage.value,\n ssoSamlClaimEmailAddressType: form.ssoSamlClaimEmailAddressType.value,\n ssoSamlIpConfigurationOption: form.ssoSamlIpConfigurationOption.value,\n\n ssoSamlIpEntityId: form.ssoSamlIpEntityId.value,\n ssoSamlIpSingleSignOnEndpoint: form.ssoSamlIpSingleSignOnEndpoint.value,\n ssoSamlIpCertificateKeyVaultName: form.ssoSamlIpCertificateKeyVaultName.value,\n ssoSamlIpCertificateFile: ssoIPCertificateKeyVaultFiles ? ssoIPCertificateKeyVaultFiles[0] : null,\n };\n }\n\n if (window.confirm(\"Update container application SSO Setting will restart the container, proceed?\")) {\n this.setState({ isUpdating: true });\n this.props.onConfig.updateContainerAppSetting(appSetting).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.configError) {\n this.generateAlert(\"success\", \"Container app SSO setting updated.\");\n } else {\n this.generateAlert(\"danger\", this.props.configError.errData.Message);\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleResetClick = () => {\n const form = this.prepareForm(this.props.containerAppSetting);\n this.setState({ containerAppSetting: this.props.containerAppSetting, form, isFormValid: true, formDirty: false });\n };\n\n render() {\n const { containerAppSetting } = this.props;\n const { form, ssoIPCertificateKeyVaultFiles } = this.state;\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n

\n Manage SSO Settings\n

\n
\n \n \n {this.props.containerAppSetting && (\n \n \n \n \n \n \n \n \n \n \n {form && form.ssoSamlEnable && form.ssoSamlEnable.value == \"TRUE\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.changeConfigurationOption(\"AUTO\")}\n disabled={this.state.isUpdating || (form && form.ssoSamlEnable && form.ssoSamlEnable.value == \"FALSE\")}\n >\n AUTO\n \n this.changeConfigurationOption(\"MANUAL\")}\n disabled={this.state.isUpdating || (form && form.ssoSamlEnable && form.ssoSamlEnable.value == \"FALSE\")}\n >\n MANUAL\n \n \n \n \n {form && form.ssoSamlIpConfigurationOption && form.ssoSamlIpConfigurationOption.value == \"AUTO\" && (\n \n \n \n \n \n \n \n \n )}\n {form && form.ssoSamlIpConfigurationOption && form.ssoSamlIpConfigurationOption.value == \"MANUAL\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n
\n \n
\n \n
\n \n \n {\n this.handleSubmitClick();\n }}\n disabled={\n !this.state.formDirty ||\n !this.state.isFormValid ||\n this.state.isUpdating ||\n (form &&\n form.ssoSamlEnable &&\n form.ssoSamlEnable.value == \"TRUE\" &&\n form.ssoSamlIpConfigurationOption.value == \"MANUAL\" &&\n (ssoIPCertificateKeyVaultFiles ||\n (containerAppSetting.SsoSamlIpCertificateKeyVaultName && containerAppSetting.SsoSamlIpCertificateKeyVaultName != form.ssoSamlIpCertificateKeyVaultName.value) ||\n (!containerAppSetting.SsoSamlIpCertificateKeyVaultName && form.ssoSamlIpCertificateKeyVaultName.value)) &&\n !ssoIPCertificateKeyVaultFiles)\n }\n >\n Update Settings\n \n    \n \n \n \n
\n )}\n \n
\n
\n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n pageAssignments: state.adminPerson.pageAssignments,\n\n configLoading: state.config.loading,\n isUpdating: state.config.isUpdating,\n configError: state.config.error,\n containerConfig: state.config.containerConfig,\n containerAppSetting: state.config.containerAppSetting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageSSOSetting);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass ActionPlanAPI {\n static getActionTypes() {\n return axios\n .get(`/actionplans/actionTypes`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getActionSkills() {\n return axios\n .get(`/actionplans/actionSkills`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getFilteredInterventions(filter) {\n return axios\n .post(`/actionplans/interventions/filter`, filter)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateHideIntervetion(id) {\n return axios\n .post(`/actionplans/interventions/${id}/hide`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateUnHideIntervetion(id) {\n return axios\n .post(`/actionplans/interventions/${id}/unhide`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getActions() {\n return axios\n .get(`/actionplans/myactions`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getManagedPeopleActions(email) {\n return axios\n .get(`/actionplans/managedPeopleActions?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createAction(action) {\n return axios\n .post(\"/actionplans/myactions\", action)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateAction(id, action) {\n return axios\n .put(`/actionplans/myactions/${id}`, action)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateHideAction(id) {\n return axios\n .post(`/actionplans/myactions/${id}/hide`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateUnHideAction(id) {\n return axios\n .post(`/actionplans/myactions/${id}/unhide`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteAction(id) {\n return axios\n .delete(`/actionplans/myactions/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static printActionReport() {\n return axios\n .get(`/actionplans/printreport`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static createManagedPeopleAction(action) {\n return axios\n .post(\"/actionplans/managedPeopleActions\", action)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateManagedPeopleAction(id, action) {\n return axios\n .put(`/actionplans/managedPeopleActions/${id}`, action)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteManagedPeopleAction(id, email) {\n return axios\n .delete(`/actionplans/managedPeopleActions/${id}?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static issueBadgeManagedPeopleAction(id, email) {\n return axios\n .post(`/actionplans/managedPeopleActions/${id}/issueBadge`, { personEmail: email })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static rejectBadgeManagedPeopleAction(id, email) {\n return axios\n .post(`/actionplans/managedPeopleActions/${id}/rejectBadge`, { personEmail: email })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static printManagedPeopleActionReport(email) {\n return axios\n .get(`/actionplans/printManagedPeopleReport?email=${email}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static sendUpdatedActionPlanNotification(email) {\n return axios\n .post(`/actionplans/sendUpdatedActionPlanNotification?email=${email}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitActionPromotion(actionId, description) {\n return axios\n .post(`/actionplans/promoteaction/${actionId}`, { description })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitProposeAction(actionId, personEmail, updateProfileEvidenceProposalSkills) {\n return axios\n .post(`/actionplans/managedPeopleActions/${actionId}/proposeupdateprofileevidence`, { personEmail, updateProfileEvidenceProposalSkills })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static acceptUpdateProfileFromActionProposal(actionId, comment, timezoneOffset) {\n return axios\n .post(`/actionplans/myactions/${actionId}/acceptproposal`, { comment, timezoneOffset })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static rejectUpdateProfileFromActionProposal(actionId, comment, timezoneOffset) {\n return axios\n .post(`/actionplans/myactions/${actionId}/rejectproposal`, { comment, timezoneOffset })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default ActionPlanAPI;\n","import ActionPlanAPI from \"./../../common/api/service/ActionPlanService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getActionTypesStart = () => {\n return {\n type: actionTypes.GET_ACTION_TYPES_START,\n };\n};\n\nexport const getActionTypesSuccess = (arrActionTypes) => {\n return {\n type: actionTypes.GET_ACTION_TYPES_SUCCESS,\n actionTypes: arrActionTypes,\n };\n};\n\nexport const getActionTypesFail = (error) => {\n return {\n type: actionTypes.GET_ACTION_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getActionTypes = () => {\n return (dispatch) => {\n dispatch(getActionTypesStart());\n\n return ActionPlanAPI.getActionTypes()\n .then((res) => {\n if (res) {\n dispatch(getActionTypesSuccess(res));\n } else {\n dispatch(getActionTypesFail(res));\n }\n })\n .catch((err) => {\n dispatch(getActionTypesFail(err));\n });\n };\n};\n\nexport const getActionSkillsStart = () => {\n return {\n type: actionTypes.GET_ACTION_SKILLS_START,\n };\n};\n\nexport const getActionSkillsSuccess = (actionSkills) => {\n return {\n type: actionTypes.GET_ACTION_SKILLS_SUCCESS,\n actionSkills: actionSkills,\n };\n};\n\nexport const getActionSkillsFail = (error) => {\n return {\n type: actionTypes.GET_ACTION_SKILLS_FAIL,\n error: error,\n };\n};\n\nexport const getActionSkills = () => {\n return (dispatch) => {\n dispatch(getActionSkillsStart());\n\n return ActionPlanAPI.getActionSkills()\n .then((res) => {\n if (res) {\n dispatch(getActionSkillsSuccess(res));\n } else {\n dispatch(getActionSkillsFail(res));\n }\n })\n .catch((err) => {\n dispatch(getActionSkillsFail(err));\n });\n };\n};\n\nexport const printMyActionReportStart = () => {\n return {\n type: actionTypes.PRINT_MY_ACTION_REPORT_START,\n };\n};\n\nexport const printMyActionReportSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_MY_ACTION_REPORT_SUCCESS,\n printData,\n };\n};\n\nexport const printMyActionReportFail = (error) => {\n return {\n type: actionTypes.PRINT_MY_ACTION_REPORT_FAIL,\n error: error,\n };\n};\n\nexport const printMyActionReport = () => {\n return (dispatch) => {\n dispatch(printMyActionReportStart());\n\n return ActionPlanAPI.printActionReport()\n .then((res) => {\n dispatch(printMyActionReportSuccess(res));\n })\n .catch((err) => {\n dispatch(printMyActionReportFail(err));\n });\n };\n};\n\nexport const printManagedPeopleActionReportStart = () => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_START,\n };\n};\n\nexport const printManagedPeopleActionReportSuccess = (printData) => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_SUCCESS,\n printData,\n };\n};\n\nexport const printManagedPeopleActionReportFail = (error) => {\n return {\n type: actionTypes.PRINT_MANAGED_PEOPLE_ACTION_REPORT_FAIL,\n error: error,\n };\n};\n\nexport const printManagedPeopleActionReport = (email) => {\n return (dispatch) => {\n dispatch(printManagedPeopleActionReportStart());\n\n return ActionPlanAPI.printManagedPeopleActionReport(email)\n .then((res) => {\n dispatch(printManagedPeopleActionReportSuccess(res));\n })\n .catch((err) => {\n dispatch(printManagedPeopleActionReportFail(err));\n });\n };\n};\n\nexport const getInterventionsStart = () => {\n return {\n type: actionTypes.GET_INTERVENTIONS_START,\n };\n};\n\nexport const getInterventionsSuccess = (interventions) => {\n return {\n type: actionTypes.GET_INTERVENTIONS_SUCCESS,\n interventions: interventions,\n };\n};\n\nexport const getInterventionsFail = (error) => {\n return {\n type: actionTypes.GET_INTERVENTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getInterventions = (filter) => {\n return (dispatch) => {\n dispatch(getInterventionsStart());\n\n return ActionPlanAPI.getFilteredInterventions(filter)\n .then((res) => {\n dispatch(getInterventionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getInterventionsFail(err));\n });\n };\n};\n\nexport const updateInterventionHiddenStart = () => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_HIDDEN_START,\n };\n};\n\nexport const updateInterventionHiddenSuccess = (intervention) => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_HIDDEN_SUCCESS,\n intervention,\n };\n};\n\nexport const updateInterventionHiddenFail = (error) => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_HIDDEN_FAIL,\n error: error,\n };\n};\n\nexport const updateHideIntervention = (id) => {\n return (dispatch) => {\n dispatch(updateInterventionHiddenStart());\n return ActionPlanAPI.updateHideIntervetion(id)\n .then((res) => {\n dispatch(updateInterventionHiddenSuccess(res));\n })\n .catch((err) => {\n dispatch(updateInterventionHiddenFail(err));\n });\n };\n};\n\nexport const updateUnHideIntervention = (id) => {\n return (dispatch) => {\n dispatch(updateInterventionHiddenStart());\n return ActionPlanAPI.updateUnHideIntervetion(id)\n .then((res) => {\n dispatch(updateInterventionHiddenSuccess(res));\n })\n .catch((err) => {\n dispatch(updateInterventionHiddenFail(err));\n });\n };\n};\n\nexport const getMyActionsStart = () => {\n return {\n type: actionTypes.GET_MY_ACTIONS_START,\n };\n};\n\nexport const getMyActionsSuccess = (actions) => {\n return {\n type: actionTypes.GET_MY_ACTIONS_SUCCESS,\n actions,\n };\n};\n\nexport const getMyActionsFail = (error) => {\n return {\n type: actionTypes.GET_MY_ACTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getMyActions = () => {\n return (dispatch) => {\n dispatch(getMyActionsStart());\n\n return ActionPlanAPI.getActions()\n .then((res) => {\n dispatch(getMyActionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getMyActionsFail(err));\n });\n };\n};\n\nexport const getManagedPeopleActionsStart = () => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_ACTIONS_START,\n };\n};\n\nexport const getManagedPeopleActionsSuccess = (actions) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_ACTIONS_SUCCESS,\n actions,\n };\n};\n\nexport const getManagedPeopleActionsFail = (error) => {\n return {\n type: actionTypes.GET_MANAGED_PEOPLE_ACTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getManagedPeopleActions = (email) => {\n return (dispatch) => {\n dispatch(getManagedPeopleActionsStart());\n\n return ActionPlanAPI.getManagedPeopleActions(email)\n .then((res) => {\n dispatch(getManagedPeopleActionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getManagedPeopleActionsFail(err));\n });\n };\n};\n\nexport const createActionStart = () => {\n return {\n type: actionTypes.CREATE_ACTION_START,\n };\n};\n\nexport const createActionSuccess = (addedAction) => {\n return {\n type: actionTypes.CREATE_ACTION_SUCCESS,\n addedAction,\n };\n};\n\nexport const createActionFail = (error) => {\n return {\n type: actionTypes.CREATE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const createAction = (action) => {\n return (dispatch) => {\n dispatch(createActionStart());\n return ActionPlanAPI.createAction(action)\n .then((res) => {\n dispatch(createActionSuccess(res));\n })\n .catch((err) => {\n dispatch(createActionFail(err));\n });\n };\n};\n\nexport const createManagedPeopleActionStart = () => {\n return {\n type: actionTypes.CREATE_MANAGED_PEOPLE_ACTION_START,\n };\n};\n\nexport const createManagedPeopleActionSuccess = (addedAction) => {\n return {\n type: actionTypes.CREATE_MANAGED_PEOPLE_ACTION_SUCCESS,\n addedAction,\n };\n};\n\nexport const createManagedPeopleActionFail = (error) => {\n return {\n type: actionTypes.CREATE_MANAGED_PEOPLE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const createManagedPeopleAction = (action) => {\n return (dispatch) => {\n dispatch(createManagedPeopleActionStart());\n return ActionPlanAPI.createManagedPeopleAction(action)\n .then((res) => {\n dispatch(createManagedPeopleActionSuccess(res));\n })\n .catch((err) => {\n dispatch(createManagedPeopleActionFail(err));\n });\n };\n};\n\nexport const updateActionStart = () => {\n return {\n type: actionTypes.UPDATE_ACTION_START,\n };\n};\n\nexport const updateActionSuccess = (addedAction) => {\n return {\n type: actionTypes.UPDATE_ACTION_SUCCESS,\n addedAction,\n };\n};\n\nexport const updateActionFail = (error) => {\n return {\n type: actionTypes.UPDATE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const updateAction = (id, action) => {\n return (dispatch) => {\n dispatch(updateActionStart());\n return ActionPlanAPI.updateAction(id, action)\n .then((res) => {\n dispatch(updateActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateActionFail(err));\n });\n };\n};\n\nexport const updateHideAction = (id) => {\n return (dispatch) => {\n dispatch(updateActionStart());\n return ActionPlanAPI.updateHideAction(id)\n .then((res) => {\n dispatch(updateActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateActionFail(err));\n });\n };\n};\n\nexport const updateUnHideAction = (id) => {\n return (dispatch) => {\n dispatch(updateActionStart());\n return ActionPlanAPI.updateUnHideAction(id)\n .then((res) => {\n dispatch(updateActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateActionFail(err));\n });\n };\n};\n\nexport const updateManagedPeopleActionStart = () => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_START,\n };\n};\n\nexport const updateManagedPeopleActionSuccess = (addedAction) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_SUCCESS,\n addedAction,\n };\n};\n\nexport const updateManagedPeopleActionFail = (error) => {\n return {\n type: actionTypes.UPDATE_MANAGED_PEOPLE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const updateManagedPeopleAction = (id, action) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleActionStart());\n return ActionPlanAPI.updateManagedPeopleAction(id, action)\n .then((res) => {\n dispatch(updateManagedPeopleActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleActionFail(err));\n });\n };\n};\n\nexport const issueBadgeManagedPeopleAction = (id, email) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleActionStart());\n return ActionPlanAPI.issueBadgeManagedPeopleAction(id, email)\n .then((res) => {\n dispatch(updateManagedPeopleActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleActionFail(err));\n });\n };\n};\n\nexport const rejectBadgeManagedPeopleAction = (id, email) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleActionStart());\n return ActionPlanAPI.rejectBadgeManagedPeopleAction(id, email)\n .then((res) => {\n dispatch(updateManagedPeopleActionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleActionFail(err));\n });\n };\n};\n\nexport const deleteActionStart = () => {\n return {\n type: actionTypes.DELETE_ACTION_START,\n };\n};\n\nexport const deleteActionSuccess = () => {\n return {\n type: actionTypes.DELETE_ACTION_SUCCESS,\n };\n};\n\nexport const deleteActionFail = (error) => {\n return {\n type: actionTypes.DELETE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const deleteAction = (id) => {\n return (dispatch) => {\n dispatch(deleteActionStart());\n return ActionPlanAPI.deleteAction(id)\n .then((res) => {\n dispatch(deleteActionSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteActionFail(err));\n });\n };\n};\n\nexport const deleteManagedPeopleActionStart = () => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_ACTION_START,\n };\n};\n\nexport const deleteManagedPeopleActionSuccess = () => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_ACTION_SUCCESS,\n };\n};\n\nexport const deleteManagedPeopleActionFail = (error) => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const deleteManagedPeopleAction = (id, email) => {\n return (dispatch) => {\n dispatch(deleteManagedPeopleActionStart());\n return ActionPlanAPI.deleteManagedPeopleAction(id, email)\n .then((res) => {\n dispatch(deleteManagedPeopleActionSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteManagedPeopleActionFail(err));\n });\n };\n};\n\nexport const sendUpdatedActionPlanNotificationStart = () => {\n return {\n type: actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_START,\n };\n};\n\nexport const sendUpdatedActionPlanNotificationSuccess = () => {\n return {\n type: actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_SUCCESS,\n };\n};\n\nexport const sendUpdatedActionPlanNotificationFail = (error) => {\n return {\n type: actionTypes.SEND_UPDATED_ACTIONPLAN_NOTIFICATION_FAIL,\n error: error,\n };\n};\n\nexport const sendUpdatedActionPlanNotification = (email) => {\n return (dispatch) => {\n dispatch(sendUpdatedActionPlanNotificationStart());\n return ActionPlanAPI.sendUpdatedActionPlanNotification(email)\n .then((res) => {\n dispatch(sendUpdatedActionPlanNotificationSuccess(res));\n })\n .catch((err) => {\n dispatch(sendUpdatedActionPlanNotificationFail(err));\n });\n };\n};\n\nexport const submitActionPromotionStart = () => {\n return {\n type: actionTypes.SUBMIT_ACTION_PROMOTION_START,\n };\n};\n\nexport const submitActionPromotionSuccess = (actionPromotion) => {\n return {\n type: actionTypes.SUBMIT_ACTION_PROMOTION_SUCCESS,\n actionPromotion,\n };\n};\n\nexport const submitActionPromotionFail = (error) => {\n return {\n type: actionTypes.SUBMIT_ACTION_PROMOTION_FAIL,\n error: error,\n };\n};\n\nexport const submitActionPromotion = (actionId, description) => {\n return (dispatch) => {\n dispatch(submitActionPromotionStart());\n return ActionPlanAPI.submitActionPromotion(actionId, description)\n .then((res) => {\n dispatch(submitActionPromotionSuccess(res));\n })\n .catch((err) => {\n dispatch(submitActionPromotionFail(err));\n });\n };\n};\n\nexport const submitProposeActionStart = () => {\n return {\n type: actionTypes.SUBMIT_PROPOSE_ACTION_START,\n };\n};\n\nexport const submitProposeActionSuccess = (proposedAction) => {\n return {\n type: actionTypes.SUBMIT_PROPOSE_ACTION_SUCCESS,\n proposedAction,\n };\n};\n\nexport const submitProposeActionFail = (error) => {\n return {\n type: actionTypes.SUBMIT_PROPOSE_ACTION_FAIL,\n error: error,\n };\n};\n\nexport const submitProposeAction = (actionId, personEmail, updateProfileEvidenceProposalSkills) => {\n return (dispatch) => {\n dispatch(submitProposeActionStart());\n return ActionPlanAPI.submitProposeAction(actionId, personEmail, updateProfileEvidenceProposalSkills)\n .then((res) => {\n dispatch(submitProposeActionSuccess(res));\n })\n .catch((err) => {\n dispatch(submitProposeActionFail(err));\n });\n };\n};\n\nexport const acceptUpdateProfileActionProposalStart = () => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START,\n };\n};\n\nexport const acceptUpdateProfileActionProposalSuccess = () => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS,\n };\n};\n\nexport const acceptUpdateProfileActionProposalFail = (error) => {\n return {\n type: actionTypes.ACCEPT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL,\n error: error,\n };\n};\n\nexport const acceptUpdateProfileActionProposal = (actionId, comment, timezoneOffset) => {\n return (dispatch) => {\n dispatch(acceptUpdateProfileActionProposalStart());\n return ActionPlanAPI.acceptUpdateProfileFromActionProposal(actionId, comment, timezoneOffset)\n .then((res) => {\n dispatch(acceptUpdateProfileActionProposalSuccess());\n })\n .catch((err) => {\n dispatch(acceptUpdateProfileActionProposalFail(err));\n });\n };\n};\n\nexport const rejectUpdateProfileActionProposalStart = () => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_START,\n };\n};\n\nexport const rejectUpdateProfileActionProposalSuccess = () => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_SUCCESS,\n };\n};\n\nexport const rejectUpdateProfileActionProposalFail = (error) => {\n return {\n type: actionTypes.REJECT_UPDATE_PROFILE_FROM_ACTION_PROPOSAL_FAIL,\n error: error,\n };\n};\n\nexport const rejectUpdateProfileActionProposal = (actionId, comment, timezoneOffset) => {\n return (dispatch) => {\n dispatch(rejectUpdateProfileActionProposalStart());\n return ActionPlanAPI.rejectUpdateProfileFromActionProposal(actionId, comment, timezoneOffset)\n .then((res) => {\n dispatch(rejectUpdateProfileActionProposalSuccess());\n })\n .catch((err) => {\n dispatch(rejectUpdateProfileActionProposalFail(err));\n });\n };\n};\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./../service/AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass AdminInterventionAPI {\n static getInterventions(selectedProviderOnly, includeInterventionJobs, showWorkspaceOwnerActionOnly) {\n return axios\n .get(`/actionplans/interventions?selectedProviderOnly=${selectedProviderOnly ? \"true\" : \"false\"}${includeInterventionJobs ? `&includeInterventionJobs=true` : \"\"}&showWorkspaceOwnerActionOnly=${showWorkspaceOwnerActionOnly ? `true` : `false`}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createIntervention(intervention) {\n return axios\n .post(`/actionplans/interventions`, intervention)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateIntervention(id, intervention) {\n return axios\n .put(`/actionplans/interventions/${id}`, intervention)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteIntervention(id) {\n return axios\n .delete(`/actionplans/interventions/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteInterventions(interventionIds) {\n return axios\n .post(`/actionplans/interventions/delete`, { interventionIds })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static exportInterventionsDataExcel(timezoneOffset) {\n return axios\n .get(`/actionplans/interventions/export?selectedProviderOnly=false&timezoneOffset=${timezoneOffset}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static exportInterventionsDataExcelTemplate() {\n return axios\n .get(`/actionplans/interventions/exporttemplate`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n console.log(\"err\", err);\n throw ErrorHandler(err);\n });\n }\n\n static importInterventionsDataExcel(interventionsData) {\n const config = {\n headers: {\n \"content-type\": \"multipart/form-data\",\n },\n };\n\n const body = new FormData();\n body.append(\"ContentDisposition\", \"attachment\");\n body.append(\"ContentType\", \"multipart/form-data\");\n\n interventionsData.forEach((file) => {\n body.append(\"interventionsData\", file);\n });\n\n return axios\n .post(`/actionplans/interventions/import`, body, config)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static assignInterventionJob(interventionId, jobId) {\n return axios\n .post(`/actionplans/interventionJobs`, {\n interventionId,\n jobId,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteInterventionJob(id) {\n return axios\n .delete(`/actionplans/interventionJobs/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static deleteInterventionJobs(interventionJobIds) {\n return axios\n .post(`/actionplans/interventionJobs/delete`, {\n interventionJobIds,\n })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getNoOfActiveActionPromotion() {\n return axios\n .get(`/actionplans/actionpromotions/activenumber`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getActiveActionPromotions() {\n return axios\n .get(`/actionplans/actionpromotions`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static updateActionPromotion(id, actionPromotion) {\n return axios\n .put(`/actionplans/actionpromotions/${id}`, actionPromotion)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static acceptActionPromotion(id) {\n return axios\n .post(`/actionplans/actionpromotions/${id}/accept`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static declineActionPromotion(id, declineReason) {\n return axios\n .post(`/actionplans/actionpromotions/${id}/decline`, { declineReason })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default AdminInterventionAPI;\n","import AdminInterventionAPI from \"./../../../common/api/adminservice/AdminInterventionService\";\nimport * as actionTypes from \"./adminActionTypes\";\n\nexport const getInterventionsStart = () => {\n return {\n type: actionTypes.GET_INTERVENTIONS_START,\n };\n};\n\nexport const getInterventionsSuccess = (interventions) => {\n return {\n type: actionTypes.GET_INTERVENTIONS_SUCCESS,\n interventions,\n };\n};\n\nexport const getInterventionsFail = (error) => {\n return {\n type: actionTypes.GET_INTERVENTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getInterventions = (selectedProviderOnly, includeInterventionJobs, showWorkspaceOwnerActionOnly) => {\n return (dispatch) => {\n dispatch(getInterventionsStart());\n\n return AdminInterventionAPI.getInterventions(selectedProviderOnly, includeInterventionJobs, showWorkspaceOwnerActionOnly)\n .then((res) => {\n dispatch(getInterventionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getInterventionsFail(err));\n });\n };\n};\n\nexport const addInterventionStart = () => {\n return {\n type: actionTypes.ADD_INTERVENTION_START,\n };\n};\n\nexport const addInterventionSuccess = (addedIntervention) => {\n return {\n type: actionTypes.ADD_INTERVENTION_SUCCESS,\n addedIntervention,\n };\n};\n\nexport const addInterventionFail = (error) => {\n return {\n type: actionTypes.ADD_INTERVENTION_FAIL,\n error: error,\n };\n};\n\nexport const addIntervention = (intervention) => {\n return (dispatch) => {\n dispatch(addInterventionStart());\n\n return AdminInterventionAPI.createIntervention(intervention)\n .then((res) => {\n dispatch(addInterventionSuccess(res));\n })\n .catch((err) => {\n dispatch(addInterventionFail(err));\n });\n };\n};\n\nexport const updateInterventionStart = () => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_START,\n };\n};\n\nexport const updateInterventionSuccess = (updatedIntervention) => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_SUCCESS,\n updatedIntervention,\n };\n};\n\nexport const updateInterventionFail = (error) => {\n return {\n type: actionTypes.UPDATE_INTERVENTION_FAIL,\n error: error,\n };\n};\n\nexport const updateIntervention = (id, intervention) => {\n return (dispatch) => {\n dispatch(updateInterventionStart());\n\n return AdminInterventionAPI.updateIntervention(id, intervention)\n .then((res) => {\n dispatch(updateInterventionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateInterventionFail(err));\n });\n };\n};\n\nexport const deleteInterventionStart = () => {\n return {\n type: actionTypes.DELETE_INTERVENTION_START,\n };\n};\n\nexport const deleteInterventionSuccess = (deletedInterventionId) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_SUCCESS,\n deletedInterventionId,\n };\n};\n\nexport const deleteInterventionFail = (error) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_FAIL,\n error: error,\n };\n};\n\nexport const deleteIntervention = (id) => {\n return (dispatch) => {\n dispatch(deleteInterventionStart());\n\n return AdminInterventionAPI.deleteIntervention(id)\n .then((res) => {\n dispatch(deleteInterventionSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteInterventionFail(err));\n });\n };\n};\n\nexport const deleteInterventionsStart = () => {\n return {\n type: actionTypes.DELETE_INTERVENTIONS_START,\n };\n};\n\nexport const deleteInterventionsSuccess = (deletedInterventionIds) => {\n return {\n type: actionTypes.DELETE_INTERVENTIONS_SUCCESS,\n deletedInterventionIds,\n };\n};\n\nexport const deleteInterventionsFail = (error) => {\n return {\n type: actionTypes.DELETE_INTERVENTIONS_FAIL,\n error: error,\n };\n};\n\nexport const deleteInterventions = (interventionIds) => {\n return (dispatch) => {\n dispatch(deleteInterventionsStart());\n\n return AdminInterventionAPI.deleteInterventions(interventionIds)\n .then((res) => {\n dispatch(deleteInterventionsSuccess(interventionIds));\n })\n .catch((err) => {\n dispatch(deleteInterventionsFail(err));\n });\n };\n};\n\nexport const exportInterventionsDataExcelStart = () => {\n return {\n type: actionTypes.EXPORT_INTERVENTIONS_DATA_START,\n };\n};\n\nexport const exportInterventionsDataExcelSuccess = (exportData) => {\n return {\n type: actionTypes.EXPORT_INTERVENTIONS_DATA_SUCCESS,\n exportData,\n };\n};\n\nexport const exportInterventionsDataExcelFail = (error) => {\n return {\n type: actionTypes.EXPORT_INTERVENTIONS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const exportInterventionsDataExcel = (timezoneOffset) => {\n return (dispatch) => {\n dispatch(exportInterventionsDataExcelStart());\n\n return AdminInterventionAPI.exportInterventionsDataExcel(timezoneOffset)\n .then((res) => {\n dispatch(exportInterventionsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportInterventionsDataExcelFail(err));\n });\n };\n};\n\nexport const exportInterventionsDataExcelTemplate = () => {\n return (dispatch) => {\n dispatch(exportInterventionsDataExcelStart());\n\n return AdminInterventionAPI.exportInterventionsDataExcelTemplate()\n .then((res) => {\n dispatch(exportInterventionsDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(exportInterventionsDataExcelFail(err));\n });\n };\n};\n\nexport const importSkillAttributesDataExcelStart = () => {\n return {\n type: actionTypes.IMPORT_INTERVENTIONS_DATA_START,\n };\n};\n\nexport const importSkillAttributesDataExcelSuccess = () => {\n return {\n type: actionTypes.IMPORT_INTERVENTIONS_DATA_SUCCESS,\n };\n};\n\nexport const importSkillAttributesDataExcelFail = (error) => {\n return {\n type: actionTypes.IMPORT_INTERVENTIONS_DATA_FAIL,\n error: error,\n };\n};\n\nexport const importSkillAttributesDataExcel = (interventionsData) => {\n return (dispatch) => {\n dispatch(importSkillAttributesDataExcelStart());\n\n return AdminInterventionAPI.importInterventionsDataExcel(interventionsData)\n .then((res) => {\n dispatch(importSkillAttributesDataExcelSuccess(res));\n })\n .catch((err) => {\n dispatch(importSkillAttributesDataExcelFail(err));\n });\n };\n};\n\nexport const assignInterventionJobStart = () => {\n return {\n type: actionTypes.ASSIGN_INTERVENTION_JOB_START,\n };\n};\n\nexport const assignInterventionJobSuccess = (addedInterventionJob) => {\n return {\n type: actionTypes.ASSIGN_INTERVENTION_JOB_SUCCESS,\n addedInterventionJob,\n };\n};\n\nexport const assignInterventionJobFail = (error) => {\n return {\n type: actionTypes.ASSIGN_INTERVENTION_JOB_FAIL,\n error: error,\n };\n};\n\nexport const assignInterventionJob = (interventionId, jobId) => {\n return (dispatch) => {\n dispatch(assignInterventionJobStart());\n\n return AdminInterventionAPI.assignInterventionJob(interventionId, jobId)\n .then((res) => {\n dispatch(assignInterventionJobSuccess(res));\n })\n .catch((err) => {\n dispatch(assignInterventionJobFail(err));\n });\n };\n};\n\nexport const deleteInterventionJobStart = () => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOB_START,\n };\n};\n\nexport const deleteInterventionJobSuccess = (deletedInterventionJobId) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOB_SUCCESS,\n deletedInterventionJobId,\n };\n};\n\nexport const deleteInterventionJobFail = (error) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOB_FAIL,\n error: error,\n };\n};\n\nexport const deleteInterventionJob = (id) => {\n return (dispatch) => {\n dispatch(deleteInterventionJobStart());\n\n return AdminInterventionAPI.deleteInterventionJob(id)\n .then((res) => {\n dispatch(deleteInterventionJobSuccess(id));\n })\n .catch((err) => {\n dispatch(deleteInterventionJobFail(err));\n });\n };\n};\n\nexport const deleteInterventionJobsStart = () => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOBS_START,\n };\n};\n\nexport const deleteInterventionJobsSuccess = (deletedInterventionJobIds) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOBS_SUCCESS,\n deletedInterventionJobIds,\n };\n};\n\nexport const deleteInterventionJobsFail = (error) => {\n return {\n type: actionTypes.DELETE_INTERVENTION_JOBS_FAIL,\n error: error,\n };\n};\n\nexport const deleteInterventionJobs = (interventionJobIds) => {\n return (dispatch) => {\n dispatch(deleteInterventionJobsStart());\n\n return AdminInterventionAPI.deleteInterventionJobs(interventionJobIds)\n .then((res) => {\n dispatch(deleteInterventionJobsSuccess(interventionJobIds));\n })\n .catch((err) => {\n dispatch(deleteInterventionJobsFail(err));\n });\n };\n};\n\nexport const getNoOfActiveActionPromotionsStart = () => {\n return {\n type: actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_START,\n };\n};\n\nexport const getNoOfActiveActionPromotionsSuccess = (numberActiveActionPromotions) => {\n return {\n type: actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_SUCCESS,\n numberActiveActionPromotions,\n };\n};\n\nexport const getNoOfActiveActionPromotionsFail = (error) => {\n return {\n type: actionTypes.GET_NO_OF_ACTIVE_ACTION_PROMOTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getNoOfActiveActionPromotions = () => {\n return (dispatch) => {\n dispatch(getNoOfActiveActionPromotionsStart());\n\n return AdminInterventionAPI.getNoOfActiveActionPromotion()\n .then((res) => {\n dispatch(getNoOfActiveActionPromotionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getNoOfActiveActionPromotionsFail(err));\n });\n };\n};\n\nexport const getActiveActionPromotionsStart = () => {\n return {\n type: actionTypes.GET_ACTION_PROMOTIONS_START,\n };\n};\n\nexport const getActiveActionPromotionsSuccess = (actionPromotions) => {\n return {\n type: actionTypes.GET_ACTION_PROMOTIONS_SUCCESS,\n actionPromotions,\n };\n};\n\nexport const getActiveActionPromotionsFail = (error) => {\n return {\n type: actionTypes.GET_ACTION_PROMOTIONS_FAIL,\n error: error,\n };\n};\n\nexport const getActionPromotions = () => {\n return (dispatch) => {\n dispatch(getActiveActionPromotionsStart());\n\n return AdminInterventionAPI.getActiveActionPromotions()\n .then((res) => {\n dispatch(getActiveActionPromotionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getActiveActionPromotionsFail(err));\n });\n };\n};\n\nexport const updateActionPromotionStart = () => {\n return {\n type: actionTypes.UPDATE_ACTION_PROMOTION_START,\n };\n};\n\nexport const updateActionPromotionSuccess = (updatedActionPromotion) => {\n return {\n type: actionTypes.UPDATE_ACTION_PROMOTION_SUCCESS,\n updatedActionPromotion,\n };\n};\n\nexport const updateActionPromotionFail = (error) => {\n return {\n type: actionTypes.UPDATE_ACTION_PROMOTION_FAIL,\n error: error,\n };\n};\n\nexport const updateActionPromotion = (id, actionPromotion) => {\n return (dispatch) => {\n dispatch(updateActionPromotionStart());\n\n return AdminInterventionAPI.updateActionPromotion(id, actionPromotion)\n .then((res) => {\n dispatch(updateActionPromotionSuccess(res));\n })\n .catch((err) => {\n dispatch(updateActionPromotionFail(err));\n });\n };\n};\n\nexport const acceptActionPromotionStart = () => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_START,\n };\n};\n\nexport const acceptActionPromotionSuccess = (updatedActionPromotion) => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_SUCCESS,\n updatedActionPromotion,\n };\n};\n\nexport const acceptActionPromotionFail = (error) => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_FAIL,\n error: error,\n };\n};\n\nexport const acceptActionPromotion = (id) => {\n return (dispatch) => {\n dispatch(acceptActionPromotionStart());\n\n return AdminInterventionAPI.acceptActionPromotion(id)\n .then((res) => {\n dispatch(acceptActionPromotionSuccess(res));\n })\n .catch((err) => {\n dispatch(acceptActionPromotionFail(err));\n });\n };\n};\n\nexport const declineActionPromotionStart = () => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_START,\n };\n};\n\nexport const declineActionPromotionSuccess = (updatedActionPromotion) => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_SUCCESS,\n updatedActionPromotion,\n };\n};\n\nexport const declineActionPromotionFail = (error) => {\n return {\n type: actionTypes.ACCEPT_ACTION_PROMOTION_FAIL,\n error: error,\n };\n};\n\nexport const declineActionPromotion = (id, declineReason) => {\n return (dispatch) => {\n dispatch(declineActionPromotionStart());\n\n return AdminInterventionAPI.declineActionPromotion(id, declineReason)\n .then((res) => {\n dispatch(declineActionPromotionSuccess(res));\n })\n .catch((err) => {\n dispatch(declineActionPromotionFail(err));\n });\n };\n};\n","import changeInput from \"../../../utils/changeInput\";\nimport { formatDate_localeString } from \"../../../utils/stringUtils\";\nimport React, { Component } from \"react\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, Col, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\n\nconst textareaStyle = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n color: \"#495057\",\n};\n\nconst textareaStyleDisable = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n background: \"#e9ecef\",\n color: \"#495057\",\n};\n\nclass ManageActionPromotionDetail extends Component {\n constructor(props) {\n super(props);\n this.state = {\n actionPromotion: this.props.actionPromotion,\n interventionLevels: [],\n interventionLorLevels: [],\n form: null,\n isFormValid: this.props.actionPromotion ? true : false,\n isUpdating: false,\n updateSuccess: false,\n editMode: false,\n reasonDecline: \"\",\n };\n\n this.formatDate_localeString = formatDate_localeString.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.actionPromotion !== this.props.actionPromotion) {\n this.setState({ actionPromotion: this.props.actionPromotion });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true, editMode: false });\n this.prepareFormState();\n }\n\n if (prevProps.updateSuccess !== this.props.updateSuccess) {\n if (this.props.updateSuccess) {\n this.setState({ editMode: false });\n }\n }\n\n if (prevProps.acceptSuccess !== this.props.acceptSuccess) {\n if (this.props.acceptSuccess) {\n this.setState({ showDialog: false, showAcceptActionPromotionConfirmationDialog: false });\n }\n }\n\n if (prevProps.declineSuccess !== this.props.declineSuccess) {\n if (this.props.declineSuccess) {\n this.setState({ showDialog: false, showDeclineActionPromotionConfirmationDialog: false });\n }\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n prepareFormState = () => {\n const actionPromotion = this.props.actionPromotion;\n\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: actionPromotion && actionPromotion.name ? actionPromotion.name : \"\",\n valid: actionPromotion && actionPromotion.name && actionPromotion.name != \"\" ? true : false,\n isValidFormat: actionPromotion && actionPromotion.name && actionPromotion.name != \"\" ? true : false,\n touched: false,\n },\n actionType: {\n validation: {\n required: true,\n },\n value: actionPromotion && actionPromotion.actionType ? actionPromotion.actionType : null,\n valid: actionPromotion && actionPromotion.actionType && actionPromotion.actionType != \"\" ? true : false,\n isValidFormat: actionPromotion && actionPromotion.actionType && actionPromotion.actionType != \"\" ? true : false,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: actionPromotion && actionPromotion.description ? actionPromotion.description : \"\",\n valid: actionPromotion ? true : false,\n isValidFormat: actionPromotion ? true : false,\n touched: false,\n },\n duration: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: actionPromotion && actionPromotion.duration ? actionPromotion.duration : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n durationHours: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: actionPromotion && actionPromotion.durationHours ? actionPromotion.durationHours : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: actionPromotion && actionPromotion.link ? actionPromotion.link : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n interventionLevels: actionPromotion && actionPromotion.levels ? [...actionPromotion.levels] : [],\n interventionLorLevels: actionPromotion && actionPromotion.lorLevels ? [...actionPromotion.lorLevels] : [],\n isFormValid: actionPromotion && ((actionPromotion.levels && actionPromotion.levels.length > 0) || (actionPromotion.lorLevels && actionPromotion.levels.lorLevels > 0)) && actionPromotion.id ? true : false,\n });\n };\n\n handleChange = (event) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n let { name, value } = event.target;\n\n if (name == \"duration\" && value && value != \"\") {\n if (value < 0) {\n value = 0;\n }\n }\n\n if (name == \"actionType\" && value && value == \"Select Type\") {\n value = \"\";\n }\n\n let updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0),\n });\n };\n\n handleDateChange = (name, value) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0),\n });\n };\n\n handleLorsCheckedChange = (lorName, lorCode, level) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n if (interventionLorLevels.find((it) => `${it.lorCode}${it.level}` == `${lorCode}${level}`)) {\n const interventionLorLevel = interventionLorLevels.find((it) => `${it.lorCode}${it.level}` == `${lorCode}${level}`);\n const index = interventionLorLevels.indexOf(interventionLorLevel);\n if (index !== -1) {\n interventionLorLevels.splice(index, 1);\n }\n } else {\n interventionLorLevels.push({\n lorName,\n lorCode,\n level,\n });\n }\n\n const updateState = changeInput(this.state.form, \"name\", this.state.form.name.value);\n this.setState({ interventionLorLevels, isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0) });\n };\n\n handleSkillsCheckedChange = (skillsName, skillsCode, level) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n if (interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${skillsCode}${level}`)) {\n const interventionLevel = interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${skillsCode}${level}`);\n const index = interventionLevels.indexOf(interventionLevel);\n if (index !== -1) {\n interventionLevels.splice(index, 1);\n }\n } else {\n interventionLevels.push({\n skillsName,\n skillsCode,\n level,\n });\n }\n\n const updateState = changeInput(this.state.form, \"name\", this.state.form.name.value);\n this.setState({ interventionLevels, isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0) });\n };\n\n handleEdit = () => {\n const editMode = this.state.editMode;\n\n this.setState({ editMode: !editMode });\n };\n\n handleCancel = () => {\n const editMode = this.state.editMode;\n\n this.setState({ editMode: !editMode });\n };\n\n handleSave = () => {\n const { form, actionPromotion, interventionLevels, interventionLorLevels } = this.state;\n\n actionPromotion.name = form.name.value;\n actionPromotion.actionType = form.actionType.value;\n actionPromotion.description = form.description.value;\n actionPromotion.duration = form.duration.value;\n actionPromotion.durationHours = form.durationHours.value;\n actionPromotion.link = form.link.value;\n actionPromotion.levels = interventionLevels;\n actionPromotion.lorLevels = interventionLorLevels;\n\n this.props.handleSaveUpdateActionPromotion(actionPromotion);\n };\n\n handleAcceptActionPromotion = () => {\n this.setState({ showDialog: false, showAcceptActionPromotionConfirmationDialog: true });\n };\n\n handleDeclineActionPromotion = () => {\n this.setState({ showDialog: false, showDeclineActionPromotionConfirmationDialog: true, reasonDecline: \"\" });\n };\n\n handleCancelAcceptActionPromotion = () => {\n this.setState({ showDialog: true, showAcceptActionPromotionConfirmationDialog: false });\n };\n\n handleConfirmAcceptActionPromotion = () => {\n const { actionPromotion } = this.state;\n\n this.props.handleAcceptActionPromotion(actionPromotion.id);\n };\n\n renderAcceptActionPromotionConfirmation = () => {\n return (\n \n Accept Action Promotion Confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmAcceptActionPromotion();\n }}\n disabled={this.state.isUpdating}\n >\n OK\n \n \n \n
\n );\n };\n\n handleChangeReasonDecline = (event) => {\n let { name, value } = event.target;\n\n this.setState({ reasonDecline: value });\n };\n\n handleCancelDeclineActionPromotion = () => {\n this.setState({ showDialog: true, showDeclineActionPromotionConfirmationDialog: false });\n };\n\n handleConfirmDeclineActionPromotion = () => {\n const { actionPromotion } = this.state;\n\n this.props.handleDeclineActionPromotion(actionPromotion.id, this.state.reasonDecline);\n };\n\n renderDeclineActionPromotionConfirmation = () => {\n return (\n \n Decline Action Promotion Confirmation\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmDeclineActionPromotion();\n }}\n disabled={this.state.reasonDecline == \"\" || this.state.isUpdating}\n >\n OK\n \n \n \n
\n );\n };\n\n render() {\n const { form, interventionLevels, interventionLorLevels, editMode } = this.state;\n\n const lors = this.props.lors\n .flatMap((lor, index) => {\n return lor.levels.flatMap((level, index) => {\n return {\n lorName: lor.name,\n lorCode: lor.lorCode,\n level: level.levelNumber,\n };\n });\n })\n .sort((a, b) => (`${a.lorCode}` > `${b.lorCode}` ? 1 : -1));\n\n const categories = this.props.categories\n .flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills.flatMap((skill, index) => {\n return skill.levels.flatMap((level, index) => {\n return {\n skillsName: skill.name,\n skillsCode: skill.skillsCode,\n level: level.level,\n };\n });\n });\n });\n })\n .sort((a, b) => (`${a.skillsCode}` > `${b.skillsCode}` ? 1 : -1));\n\n const actionTypes = [{ name: null }, ...this.props.actionTypes];\n\n return (\n \n {this.renderAcceptActionPromotionConfirmation()}\n {this.renderDeclineActionPromotionConfirmation()}\n \n Review Action\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {actionTypes.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {lors &&\n lors\n .filter((lor) => editMode || (interventionLorLevels && interventionLorLevels.find((it) => `${it.lorCode}${it.level}` == `${lor.lorCode}${lor.level}`) ? true : false))\n .map((lor, index) => {\n return (\n
\n `${it.lorCode}${it.level}` == `${lor.lorCode}${lor.level}`) ? true : false}\n label={`${lor.lorCode}${lor.level}`}\n onChange={() => this.handleLorsCheckedChange(lor.lorName, lor.lorCode, lor.level)}\n inline\n className=\"copy-skill-checkbox\"\n disabled={!editMode}\n />\n
\n );\n })}\n \n
\n \n \n \n \n \n {categories &&\n categories\n .filter((category) => editMode || (interventionLevels && interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${category.skillsCode}${category.level}`) ? true : false))\n .map((category, index) => {\n return (\n
\n `${it.skillsCode}${it.level}` == `${category.skillsCode}${category.level}`) ? true : false}\n label={`${category.skillsCode}${category.level}`}\n onChange={() => this.handleSkillsCheckedChange(category.skillsName, category.skillsCode, category.level)}\n inline\n className=\"copy-skill-checkbox\"\n disabled={!editMode}\n />\n
\n );\n })}\n \n
\n \n
\n
\n
\n \n {!editMode && (\n \n {\n this.handleEdit();\n }}\n disabled={this.state.isUpdating}\n >\n Edit\n \n {\n this.handleAcceptActionPromotion();\n }}\n disabled={this.state.isUpdating}\n >\n Accept\n \n {\n this.handleDeclineActionPromotion();\n }}\n disabled={this.state.isUpdating}\n >\n Decline\n \n \n )}\n {editMode && (\n \n {\n this.handleSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.handleCancel();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n )}\n \n
\n
\n );\n }\n}\n\nexport default ManageActionPromotionDetail;\n","import changeInput from \"../../../utils/changeInput\";\nimport { formatDate_localeString } from \"../../../utils/stringUtils\";\nimport React, { Component } from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, Col, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\n\nconst textareaStyle = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n color: \"#495057\",\n};\n\nconst textareaStyleDisable = {\n width: \"100%\",\n padding: \"10px\",\n border: \"1px solid #ced4da\",\n borderRadius: \"0.25rem\",\n background: \"#e9ecef\",\n color: \"#495057\",\n};\n\nclass ManageTrainingDetail extends Component {\n constructor(props) {\n super(props);\n this.state = {\n intervention: this.props.intervention,\n interventionLevels: [],\n interventionLorLevels: [],\n form: null,\n isFormValid: this.props.intervention ? true : false,\n isUpdating: false,\n showSpinner: false,\n updateSuccess: false,\n optionTrueFalse: [\n { value: true, label: \"True\" },\n { value: false, label: \"False\" },\n ],\n optionBadgeProvider: [\n {\n label: \"AMPG\",\n value: \"APMG\",\n },\n {\n label: \"DSA\",\n value: \"DSA\",\n },\n ],\n optionSkillTypes: [\n {\n label: \"KNOWLEDGE\",\n value: \"Knowledge\",\n },\n {\n label: \"PROFICIENCY\",\n value: \"Proficiency\",\n },\n // {\n // label: \"COMPETENCY\",\n // value: \"Competency\",\n // },\n ],\n };\n\n this.formatDate_localeString = formatDate_localeString.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.intervention !== this.props.intervention) {\n this.setState({ intervention: this.props.intervention });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating, showSpinner: this.props.isUpdating });\n }\n\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.updateSuccess !== this.props.updateSuccess) {\n if (this.props.updateSuccess) {\n this.setState({ showDialog: false });\n }\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n prepareFormState = () => {\n const intervention = this.props.intervention;\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: intervention && intervention.name ? intervention.name : \"\",\n valid: intervention && intervention.name && intervention.name != \"\" ? true : false,\n isValidFormat: intervention && intervention.name && intervention.name != \"\" ? true : false,\n touched: false,\n },\n actionType: {\n validation: {\n required: true,\n },\n value: intervention && intervention.actionType ? intervention.actionType : null,\n valid: intervention && intervention.actionType && intervention.actionType != \"\" ? true : false,\n isValidFormat: intervention && intervention.actionType && intervention.actionType != \"\" ? true : false,\n touched: false,\n },\n companyId: {\n validation: {\n required: false,\n },\n value: intervention && intervention.companyId ? intervention.companyId : null,\n valid: intervention && intervention.companyId ? true : true,\n isValidFormat: intervention && intervention.companyId ? true : true,\n touched: false,\n },\n description: {\n validation: {\n required: true,\n },\n value: intervention && intervention.description ? intervention.description : \"\",\n valid: intervention ? true : false,\n isValidFormat: intervention ? true : false,\n touched: false,\n },\n isActive: {\n validation: {\n required: false,\n isBool: true,\n },\n value: intervention && intervention.isActive ? intervention.isActive : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n duration: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: intervention && intervention.duration ? intervention.duration : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n durationHours: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: intervention && intervention.durationHours ? intervention.durationHours : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: intervention && intervention.link ? intervention.link : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n publishedOn: {\n validation: {\n required: false,\n },\n value: intervention && intervention.publishedOn,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n retireOn: {\n validation: {\n required: false,\n },\n value: intervention && intervention.retireOn,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n reviewOn: {\n validation: {\n required: false,\n },\n value: intervention && intervention.reviewOn,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n versionNumber: {\n validation: {\n required: true,\n isNumeric: true,\n },\n value: intervention && intervention.versionNumber ? intervention.versionNumber : 1,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n badgeIssuer: {\n validation: {\n required: true,\n },\n value: intervention && intervention.badgeIssuer ? intervention.badgeIssuer : this.props.containerConfig && this.props.containerConfig.badgeProvider && this.props.containerConfig.badgeProvider != null ? this.props.containerConfig.badgeProvider : \"APMG\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n preLoadToNewUser: {\n validation: {\n required: true,\n },\n value: intervention && intervention.preLoadToNewUser ? intervention.preLoadToNewUser : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n targetCompletionDays: {\n validation: {\n required: true,\n },\n value: intervention && intervention.targetCompletionDays ? intervention.targetCompletionDays : 0,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n createdAsInactive: {\n validation: {\n required: true,\n },\n value: intervention && intervention.createdAsInactive ? intervention.createdAsInactive : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n interventionLevels: intervention && intervention.levels ? [...intervention.levels] : [],\n interventionLorLevels: intervention && intervention.lorLevels ? [...intervention.lorLevels] : [],\n isFormValid: intervention && ((intervention.levels && intervention.levels.length > 0) || (intervention.lorLevels && intervention.levels.lorLevels > 0)) && intervention.id ? true : false,\n });\n };\n\n handleChange = (event) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n let interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n let { name, value } = event.target;\n\n if (name == \"duration\" && value && value != \"\") {\n if (value < 0) {\n value = 0;\n }\n }\n\n if (name == \"versionNumber\" && value && value != \"\") {\n if (value < 1) {\n value = 1;\n }\n }\n\n if (name == \"actionType\" && value && value == \"Select Type\") {\n value = \"\";\n }\n\n if (name == \"companyId\" && value && value == \"Select Provider\") {\n value = \"\";\n }\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"actionType\") {\n if (value == \"Accredited Badge Issuing Action\") {\n interventionLevels.map((interventionLevel) => {\n interventionLevel.skillType = \"Proficient\";\n });\n } else {\n interventionLevels.map((interventionLevel) => {\n interventionLevel.skillType = null;\n });\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0),\n });\n };\n\n handleDateChange = (name, value) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0),\n });\n };\n\n handleLorsCheckedChange = (lorName, lorCode, level) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n if (interventionLorLevels.find((it) => `${it.lorCode}${it.level}` == `${lorCode}${level}`)) {\n const interventionLorLevel = interventionLorLevels.find((it) => `${it.lorCode}${it.level}` == `${lorCode}${level}`);\n const index = interventionLorLevels.indexOf(interventionLorLevel);\n if (index !== -1) {\n interventionLorLevels.splice(index, 1);\n }\n } else {\n interventionLorLevels.push({\n lorName,\n lorCode,\n level,\n });\n }\n\n const updateState = changeInput(this.state.form, \"name\", this.state.form.name.value);\n this.setState({ interventionLorLevels, isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0) });\n };\n\n handleSkillsCheckedChange = (skillsName, skillsCode, level, skillType) => {\n const interventionLorLevels = this.state.interventionLorLevels ? this.state.interventionLorLevels : [];\n const interventionLevels = this.state.interventionLevels ? this.state.interventionLevels : [];\n\n console.log(\"skillType\", skillType);\n\n if (interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${skillsCode}${level}`)) {\n const interventionLevel = interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${skillsCode}${level}`);\n const index = interventionLevels.indexOf(interventionLevel);\n if (index !== -1) {\n interventionLevels.splice(index, 1);\n }\n } else {\n interventionLevels.push({\n skillsName,\n skillsCode,\n level,\n skillType,\n });\n }\n\n const updateState = changeInput(this.state.form, \"name\", this.state.form.name.value);\n this.setState({ interventionLevels, isFormValid: updateState.valid && (interventionLorLevels.length > 0 || interventionLevels.length > 0) });\n };\n\n handleSave = (applyNow) => {\n const { form, intervention, interventionLevels, interventionLorLevels } = this.state;\n\n intervention.name = form.name.value;\n intervention.actionType = form.actionType.value;\n intervention.companyId = form.companyId.value;\n intervention.description = form.description.value;\n intervention.duration = form.duration.value;\n intervention.durationHours = form.durationHours.value;\n intervention.link = form.link.value;\n intervention.publishedOn = form.publishedOn.value;\n intervention.retireOn = form.retireOn.value;\n intervention.reviewOn = form.reviewOn.value;\n intervention.versionNumber = form.versionNumber.value;\n intervention.isActive = form.isActive.value;\n intervention.levels = interventionLevels;\n intervention.lorLevels = interventionLorLevels;\n intervention.badgeIssuer = form.badgeIssuer.value;\n\n intervention.preLoadToNewUser = form.preLoadToNewUser.value;\n intervention.targetCompletionDays = form.targetCompletionDays.value;\n\n if (intervention.id) {\n if (intervention.createdAsInactive) {\n intervention.createdAsInactive = form.isActive.value == false || form.isActive.value == \"false\";\n } else {\n intervention.createdAsInactive = false;\n }\n } else {\n intervention.createdAsInactive = form.isActive.value == false || form.isActive.value == \"false\";\n }\n\n intervention.applyPreLoadActionNow = applyNow;\n\n if (applyNow) {\n this.setState({ showSpinner: true });\n } else {\n this.setState({ showSpinner: false });\n }\n\n if (intervention.id) {\n this.props.handleSaveUpdateIntervention(intervention);\n } else {\n this.props.handleSaveAddIntervention(intervention);\n }\n };\n\n render() {\n const intervention = this.props.intervention;\n const { form, interventionLevels, interventionLorLevels, optionTrueFalse, optionBadgeProvider, optionSkillTypes } = this.state;\n\n const lors = this.props.lors\n .flatMap((lor, index) => {\n return lor.levels.flatMap((level, index) => {\n return {\n lorName: lor.name,\n lorCode: lor.lorCode,\n level: level.levelNumber,\n };\n });\n })\n .sort((a, b) => (`${a.lorCode}` > `${b.lorCode}` ? 1 : -1));\n\n const categories = this.props.categories\n .flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills.flatMap((skill, index) => {\n return skill.levels.flatMap((level, index) => {\n return {\n skillsName: skill.name,\n skillsCode: skill.skillsCode,\n level: level.level,\n };\n });\n });\n });\n })\n .sort((a, b) => (`${a.skillsCode}` > `${b.skillsCode}` ? 1 : -1));\n\n const actionTypes = [{ name: null }, ...this.props.actionTypes];\n const providers = [{ id: null, name: \"Select Provider\" }, ...this.props.providers];\n\n const publishedOn = form && form.publishedOn && form.publishedOn.value ? this.formatDate_localeString(new Date(form.publishedOn.value)) : null;\n const retireOn = form && form.retireOn && form.retireOn.value ? this.formatDate_localeString(new Date(form.retireOn.value)) : null;\n const reviewOn = form && form.reviewOn && form.reviewOn.value ? this.formatDate_localeString(new Date(form.reviewOn.value)) : null;\n\n return (\n \n \n Training Detail\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {actionTypes.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionTrueFalse.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionTrueFalse.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n this.handleDateChange(\"publishedOn\", value)}\n disabled={this.state.isUpdating}\n className=\"form-control\"\n isClearable={!this.state.isUpdating}\n placeholderText=\"Publish On\"\n />\n \n \n \n \n \n \n \n this.handleDateChange(\"retireOn\", value)}\n disabled={this.state.isUpdating}\n className=\"form-control\"\n isClearable={!this.state.isUpdating}\n placeholderText=\"Retire On\"\n />\n \n \n \n \n \n \n \n this.handleDateChange(\"reviewOn\", value)}\n disabled={this.state.isUpdating}\n className=\"form-control\"\n isClearable={!this.state.isUpdating}\n placeholderText=\"Review On\"\n />\n \n \n \n {form && form.actionType.value && form.actionType.value == \"Accredited Badge Issuing Action\" && (\n \n \n \n \n \n {optionBadgeProvider.map((it, key) => (\n \n ))}\n \n \n \n \n )}\n \n \n \n \n {lors &&\n lors.map((lor, index) => {\n return (\n
\n `${it.lorCode}${it.level}` == `${lor.lorCode}${lor.level}`) ? true : false}\n label={`${lor.lorCode}${lor.level}`}\n onChange={() => this.handleLorsCheckedChange(lor.lorName, lor.lorCode, lor.level)}\n inline\n className=\"copy-skill-checkbox\"\n disabled={this.state.isUpdating}\n />\n
\n );\n })}\n \n
\n \n {form && form.actionType.value && form.actionType.value == \"Accredited Badge Issuing Action\" ? (\n \n {optionSkillTypes.map((optionSkillType, index) => {\n return (\n \n \n \n \n \n {categories &&\n categories.map((category, index) => {\n return (\n
\n `${it.skillsCode}${it.level}` == `${category.skillsCode}${category.level}` && it.skillType == optionSkillType.value) ? true : false}\n label={`${category.skillsCode}${category.level}`}\n onChange={() => this.handleSkillsCheckedChange(category.skillsName, category.skillsCode, category.level, optionSkillType.value)}\n disabled={this.state.isUpdating || (interventionLevels ? interventionLevels.find((it) => `${it.skillsCode}${it.level}` == `${category.skillsCode}${category.level}` && it.skillType != optionSkillType.value) : false)}\n inline\n className=\"copy-skill-checkbox\"\n />\n
\n );\n })}\n \n
\n \n
\n );\n })}\n
\n ) : (\n \n \n \n \n {categories &&\n categories.map((category, index) => {\n return (\n
\n `${it.skillsCode}${it.level}` == `${category.skillsCode}${category.level}`) ? true : false}\n label={`${category.skillsCode}${category.level}`}\n onChange={() => this.handleSkillsCheckedChange(category.skillsName, category.skillsCode, category.level, null)}\n inline\n className=\"copy-skill-checkbox\"\n disabled={this.state.isUpdating}\n />\n
\n );\n })}\n \n
\n \n )}\n
\n
\n
\n \n \n {intervention &&\n form &&\n (!intervention.id || (intervention.id && form.createdAsInactive.value == true)) &&\n form.preLoadToNewUser.value &&\n (form.preLoadToNewUser.value == true || form.preLoadToNewUser.value == \"true\") &&\n form.isActive.value &&\n (form.isActive.value == true || form.isActive.value == \"true\") && (\n {\n this.handleSave(true);\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n {this.state.showSpinner && (\n \n {\" \"}\n \n )}\n Save and Apply Now\n \n )}\n {\n this.handleSave(false);\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nexport default ManageTrainingDetail;\n","import * as interventionActions from \"../../../store/admin/actions/adminInterventionActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass TrainingBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onIntervention.exportInterventionsDataExcelTemplate().then(() => {\n if (!this.props.loadingExport && !this.props.categoryError) {\n if (this.props.exportData) {\n FileDownload(this.props.exportData, `UploadActionListTemplate.xlsx`);\n }\n }\n });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onIntervention.importSkillAttributesDataExcel(this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.categoryError) {\n this.excelRef.current.value = null;\n\n this.props.generateAlert(\"success\", \"Import actions success.\");\n this.togleDialogModal();\n this.props.handleImportSuccess();\n } else {\n this.props.generateAlert(\"danger\", this.props.categoryError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import Action List\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n Process Upload\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n categoryError: state.adminIntervention.error,\n loadingExport: state.adminIntervention.loadingExport,\n exportData: state.adminIntervention.exportData,\n\n isImporting: state.adminIntervention.isImporting,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onIntervention: bindActionCreators(interventionActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TrainingBulkUpload);\n","import * as actionPlanActions from \"../../../store/actions/actionPlanAction\";\nimport * as authActions from \"../../../store/actions/authAction\";\nimport * as categoryActions from \"../../../store/actions/categoryAction\";\nimport * as companyActions from \"../../../store/actions/companyAction\";\nimport * as lorActions from \"../../../store/actions/lorAction\";\nimport * as interventionActions from \"../../../store/admin/actions/adminInterventionActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ManageActionPromotionDetail from \"./ManageActionPromotionDetail\";\nimport ManageTrainingDetail from \"./ManageTrainingDetail\";\nimport TrainingBulkUpload from \"./TrainingBulkUpload\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faPenToSquare, faTrash, faFileExcel, faMinusCircle, faPlus, faSync, faSquareMinus, faSquareCheck, faInfoCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageActionPromotions extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n actionPromotions: [],\n isUpdating: false,\n showDialogInterventionDetailTs: null,\n providers: [],\n actionTypes: [],\n searchProperties: [\"promoterName\", \"promoterEmail\", \"name\", \"description\", \"actionType\", \"lorLevelsString\", \"levelsString\", \"link\"],\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onActionPlan.getActionTypes().then(() => {\n this.setState({\n actionTypes: this.props.actionTypes,\n });\n });\n\n Promise.all([this.props.onCompany.getProviderCompanies(), this.props.onCategory.getCategories(), this.props.onLor.getLors()]).then(() => {\n if (!this.props.loading && !this.props.categoryLoading && !this.props.companyLoading && !this.props.lorLoading) {\n this.setState({ providers: this.props.providers, lors: this.props.lors, categories: this.props.categories });\n this.initData();\n }\n\n this.setState({\n loading: this.props.loading || this.props.categoryLoading || this.props.companyLoading || this.props.lorLoading,\n });\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.actionPromotions !== this.props.actionPromotions) {\n this.setState({\n actionPromotions: this.prepareDatas(this.props.actionPromotions.filter((it) => it.status == \"Active\")), //.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n });\n }\n }\n\n initData = () => {\n this.props.onIntervention.getActionPromotions().then(() => {\n if (!this.props.interventionLoading) {\n this.setState({\n actionPromotions: this.prepareDatas(this.props.actionPromotions.filter((it) => it.status == \"Active\")), //.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n });\n }\n\n this.setState({ loading: this.props.loading || this.props.interventionLoading });\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n prepareDatas = (actionPromotions) => {\n return actionPromotions.map((actionPromotion) => {\n return {\n id: actionPromotion.id,\n promoterId: actionPromotion.promoterId,\n promoterName: actionPromotion.promoterName,\n promoterEmail: actionPromotion.promoterEmail,\n actionType: actionPromotion.actionType,\n name: actionPromotion.name,\n link: actionPromotion.link,\n duration: actionPromotion.duration,\n durationHours: actionPromotion.durationHours,\n description: actionPromotion.description,\n status: actionPromotion.status,\n versionNumber: actionPromotion.versionNumber,\n levelsString: actionPromotion.levels\n .sort((a, b) => `${a.skillsCode}${a.level}` > `${b.skillsCode}${b.level}`)\n .map((level) => {\n return `${level.skillsCode}${level.level}`;\n })\n .join(\", \"),\n levels: actionPromotion.levels,\n lorLevelsString: actionPromotion.lorLevels\n .sort((a, b) => `${a.lorCode}${a.level}` > `${b.lorCode}${b.level}`)\n .map((level) => {\n return `${level.lorCode}${level.level}`;\n })\n .join(\", \"),\n lorLevels: actionPromotion.lorLevels,\n };\n });\n };\n\n openActionPromotionDetail = (actionPromotion) => {\n this.setState({ selectedActionPromotion: actionPromotion, showDialogInterventionDetailTs: new Date() });\n };\n\n handleAddNew = () => {\n this.setState({\n selectedIntervention: {\n id: null,\n },\n showDialogInterventionDetailTs: new Date(),\n });\n };\n\n handleSaveUpdateActionPromotion = (actionPromotion) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onIntervention.updateActionPromotion(actionPromotion.id, actionPromotion).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Update action promotion success.\");\n this.setState({ updateSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleAcceptActionPromotion = (actionPromotionId) => {\n this.setState({ isUpdating: true, acceptSuccess: false });\n this.props.onIntervention.acceptActionPromotion(actionPromotionId).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Action promotion accepted.\");\n this.setState({ acceptSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleDeclineActionPromotion = (actionPromotionId, declineReason) => {\n this.setState({ isUpdating: true, declineSuccess: false });\n this.props.onIntervention.declineActionPromotion(actionPromotionId, declineReason).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Action promotion declined.\");\n this.setState({ declineSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleSaveAddIntervention = (intervention) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onIntervention.addIntervention(intervention).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Create training success.\");\n this.setState({ updateSuccess: true });\n this.handleRefresh();\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleAfterSearch = () => {\n this.setState({ selectedInterventions: [] });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleReturnToList = () => {\n this.props.history.push(\"/admin/trainings\");\n };\n\n render() {\n const { actionPromotions, searchKeyword, searchProperties } = this.state;\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Action List\");\n\n const openInterventionDetail = this.openActionPromotionDetail;\n const handleDeleteIntervention = this.handleDeleteIntervention;\n\n const filtered = this.filterArray(actionPromotions, searchKeyword, searchProperties);\n\n const columns = [\n {\n id: \"id\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"7%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n openInterventionDetail(row)} />\n \n Review Action\n \n    \n \n )}\n
\n );\n },\n },\n {\n id: \"promoterName\",\n name: \"Promoter Name\",\n selector: (row) => row.promoterName,\n sortable: true,\n wrap: true,\n width: \"10%\",\n },\n {\n id: \"promoterEmail\",\n name: \"Promoter Email\",\n selector: (row) => row.promoterEmail,\n sortable: true,\n width: \"14%\",\n wrap: true,\n format: function (row, index) {\n return {row.promoterEmail};\n },\n },\n {\n id: \"actionType\",\n name: \"Action Type\",\n selector: (row) => row.actionType,\n sortable: true,\n width: \"8%\",\n wrap: true,\n },\n {\n id: \"name\",\n name: \"Action Name\",\n selector: (row) => row.name,\n sortable: true,\n width: \"10%\",\n wrap: true,\n },\n {\n id: \"description\",\n name: \"Action Description\",\n selector: (row) => row.description,\n sortable: true,\n width: \"13%\",\n wrap: true,\n },\n {\n id: \"lorLevelsString\",\n name: \"Lor(s) Addressed\",\n selector: (row) => row.lorLevelsString,\n sortable: true,\n width: \"9%\",\n format: function (row, index) {\n return row.lorLevelsString;\n },\n wrap: true,\n },\n {\n id: \"levelsString\",\n name: \"Skill(s) Addressed\",\n selector: (row) => row.levelsString,\n sortable: true,\n width: \"9%\",\n format: function (row, index) {\n return row.levelsString;\n },\n wrap: true,\n },\n {\n id: \"link\",\n name: \"Website\",\n selector: (row) => row.link,\n sortable: true,\n width: \"8%\",\n wrap: true,\n },\n {\n id: \"duration\",\n name: \"Duration (days)\",\n selector: (row) => row.duration,\n sortable: false,\n center: true,\n width: \"6%\",\n },\n {\n id: \"durationHours\",\n name: \"Duration (hours)\",\n selector: (row) => row.durationHours,\n sortable: false,\n center: true,\n width: \"6%\",\n },\n ];\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n \n \n Return to list\n \n \n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n interventionLoading: state.adminIntervention.loading,\n interventionError: state.adminIntervention.error,\n actionPromotions: state.adminIntervention.actionPromotions,\n isUpdating: state.adminIntervention.isUpdating,\n actionTypes: state.actionPlan.actionTypes,\n\n companyLoading: state.company.loading,\n companyError: state.company.error,\n providers: state.company.providers,\n\n categories: state.category.categories,\n categoryLoading: state.category.loading,\n\n lorLoading: state.lor.loading,\n lors: state.lor.lors,\n\n exportData: state.adminIntervention.exportData,\n loadingExport: state.adminIntervention.loadingExport,\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onIntervention: bindActionCreators(interventionActions, dispatch),\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageActionPromotions));\n","import changeInput from \"../../../utils/changeInput\";\nimport React, { Component } from \"react\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\n\nclass ManageProviderDetail extends Component {\n constructor(props) {\n super(props);\n this.state = {\n provider: this.props.provider,\n form: null,\n isFormValid: this.props.provider ? true : false,\n isUpdating: false,\n optionSelected: [\n {\n label: \"No\",\n value: \"No\",\n },\n {\n label: \"Yes\",\n value: \"Yes\",\n },\n {\n label: \"Preferred\",\n value: \"Preferred\",\n },\n ],\n updateSuccess: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.provider !== this.props.provider) {\n this.setState({ provider: this.props.provider });\n }\n\n if (prevProps.isUpdating !== this.props.isUpdating) {\n this.setState({ isUpdating: this.props.isUpdating });\n }\n\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n\n if (prevProps.updateSuccess !== this.props.updateSuccess) {\n if (this.props.updateSuccess) {\n this.setState({ showDialog: false });\n }\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n prepareFormState = () => {\n this.setState({\n form: {\n name: {\n validation: {\n required: true,\n },\n value: this.props.provider && this.props.provider.name ? this.props.provider.name : \"\",\n valid: this.props.provider ? true : false,\n isValidFormat: this.props.provider ? true : false,\n touched: false,\n },\n website: {\n validation: {\n required: false,\n },\n value: this.props.provider && this.props.provider.website ? this.props.provider.website : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: false,\n },\n value: this.props.provider && this.props.provider.country ? this.props.provider.country : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isSelected: {\n validation: {\n required: false,\n isBool: true,\n },\n value: this.props.provider && this.props.provider.isSelected ? this.props.provider.isSelected : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isPreferred: {\n validation: {\n required: false,\n isBool: true,\n },\n value: this.props.provider && this.props.provider.isPreferred ? this.props.provider.isPreferred : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: this.props.provider && this.props.provider.id ? true : false,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n if (name == \"selected\") {\n let isSelected = false;\n let isPreferred = false;\n\n if (value == \"Preferred\") {\n isSelected = true;\n isPreferred = true;\n } else if (value == \"Yes\") {\n isSelected = true;\n }\n\n let updateState = changeInput(this.state.form, \"isSelected\", isSelected);\n updateState = changeInput(updateState.form, \"isPreferred\", isPreferred);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n } else {\n let updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n };\n\n handleSave = () => {\n const { form, provider } = this.state;\n\n provider.name = form.name.value;\n provider.website = form.website.value;\n provider.country = form.country.value;\n provider.isSelected = form.isSelected.value;\n provider.isPreferred = form.isPreferred.value;\n\n if (provider.id) {\n this.props.handleSaveUpdateProvider(provider);\n } else {\n this.props.handleSaveAddProvider(provider);\n }\n };\n\n render() {\n const { form, optionSelected } = this.state;\n\n return (\n \n \n Training Provider Detail\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {optionSelected.map((it, key) => (\n \n ))}\n \n \n \n \n \n
\n
\n \n \n {\n this.handleSave();\n }}\n disabled={!this.state.isFormValid || this.state.isUpdating}\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nexport default ManageProviderDetail;\n","import * as companyActions from \"../../../store/actions/companyAction\";\nimport { faCircleCheck, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Input, Popover, PopoverBody, PopoverHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ProviderSelectCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateOpen: false,\n provider: this.props.provider,\n newIsSelected: this.props.provider.isSelected,\n newIsPreferred: this.props.provider.isPreferred,\n dirty: false,\n inProgress: false,\n optionSelected: [\n {\n label: \"No\",\n value: \"No\",\n },\n {\n label: \"Yes\",\n value: \"Yes\",\n },\n {\n label: \"Preferred\",\n value: \"Preferred\",\n },\n ],\n };\n }\n\n componentDidMount() {}\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n togglePopover = () => {\n const { provider, popOverUpdateOpen } = this.state;\n\n this.setState({ popOverUpdateOpen: !popOverUpdateOpen, dirty: false, inProgress: false, newIsSelected: provider.isSelected, newIsPreferred: provider.isPreferred });\n };\n\n openUpdate = () => {\n const popOverUpdateOpen = this.state.popOverUpdateOpen;\n this.setState({ popOverUpdateOpen: !popOverUpdateOpen });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n let isSelected = false;\n let isPreferred = false;\n\n if (value == \"Preferred\") {\n isSelected = true;\n isPreferred = true;\n } else if (value == \"Yes\") {\n isSelected = true;\n }\n\n this.setState({\n newIsSelected: isSelected,\n newIsPreferred: isPreferred,\n dirty: true,\n });\n };\n\n handleUpdateSelected = () => {\n const { provider, newIsSelected, newIsPreferred } = this.state;\n\n provider.isSelected = newIsSelected;\n provider.isPreferred = newIsPreferred;\n\n this.setState({ inProgress: true });\n this.props.onCompany.updateCompanyProviderSelection(provider.id, provider).then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n this.setState({ popOverUpdateOpen: false });\n }\n\n this.setState({ inProgress: this.props.isUpdating });\n });\n };\n\n render() {\n const { provider, newIsSelected, newIsPreferred, optionSelected } = this.state;\n\n return (\n \n {this.props.allowEdit ? (\n \n this.openUpdate()}>\n {provider && (provider.isPreferred ? \"Preferred\" : provider.isSelected ? \"Yes\" : \"No\")}\n \n \n \n \n Is Selected Training Provider\n \n \n  \n \n \n \n \n \n \n \n \n {optionSelected.map((it, key) => (\n \n ))}\n \n \n \n \n \n \n ) : (\n {provider && (provider.isPreferred ? \"Preferred\" : provider.isSelected ? \"Yes\" : \"No\")}\n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.company.isUpdating,\n error: state.company.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onCompany: bindActionCreators(companyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProviderSelectCell);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as companyActions from \"../../../store/actions/companyAction\";\nimport * as countryActions from \"../../../store/actions/countryAction\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ManageProviderDetail from \"./ManageProviderDetail\";\nimport ProviderSelectCell from \"./ProviderSelectCell\";\nimport { faPenToSquare, faSync, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageProviders extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n providers: [],\n isUpdating: false,\n selectedProvider: null,\n showDialogProviderDetailTs: null,\n countries: [],\n searchProperties: [\"name\", \"website\", \"country\"],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onCountry.getCountries().then(() => {\n let countries = [\n {\n label: \"Select Country\",\n value: \"\",\n },\n ];\n if (this.props.countries) {\n countries.push(...this.props.countries.map((country) => ({ label: country.name, value: country.name })));\n }\n\n this.setState({ countries });\n });\n\n this.initData();\n this.setState({ loading: this.props.loading });\n });\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.providers !== this.props.providers) {\n this.setState({ providers: this.reformProviders(this.props.providers.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))) });\n }\n }\n\n reformProviders = (providers) => {\n return providers.map((it) => {\n return {\n id: it.id,\n name: it.name,\n website: it.website,\n address: it.address,\n country: it.country,\n companyType: it.companyType,\n providerCompanyId: it.providerCompanyId,\n providerCompany: it.providerCompany,\n isSelected: it.isSelected,\n isPreferred: it.isPreferred,\n selected: it.isPreferred ? \"Preferred\" : it.isSelected ? \"Yes\" : \"No\",\n };\n });\n };\n\n initData = () => {\n this.props.onCompany.getProviderCompanies().then(() => {\n if (!this.props.companyLoading) {\n this.setState({ providers: this.reformProviders(this.props.providers) });\n }\n\n this.setState({ loading: this.props.loading || this.props.companyLoading });\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n openProviderDetail = (provider) => {\n this.setState({ selectedProvider: provider, showDialogProviderDetailTs: new Date() });\n };\n\n handleAddNew = () => {\n this.setState({\n selectedProvider: {\n id: null,\n companyType: \"Provider\",\n name: null,\n website: null,\n isSelected: false,\n isPreferred: false,\n },\n showDialogProviderDetailTs: new Date(),\n });\n };\n\n handleSaveUpdateProvider = (provider) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onCompany.updateCompany(provider.id, provider).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Update training provider success.\");\n this.setState({ updateSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleSaveAddProvider = (provider) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onCompany.createCompany(provider).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.companyError) {\n this.generateAlert(\"success\", \"Create training provider success.\");\n this.setState({ updateSuccess: true });\n this.handleRefresh();\n } else {\n this.generateAlert(\"danger\", this.props.companyError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const { providers, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Select Training Providers\");\n\n const openProviderDetail = this.openProviderDetail;\n const onTableFilterChange = this.onTableFilterChange;\n\n const columns = [\n {\n id: \"id\",\n name: \"#\",\n selector: (row) => row.id,\n sortable: false,\n width: \"10%\",\n format: function (row, index) {\n return (\n
\n openProviderDetail(row)} />\n \n Update Provider\n \n
\n );\n },\n omit: true,\n },\n {\n id: \"name\",\n name: (\n
\n Name\n
\n it.name == \"name\") ? columnSearchKeywords.find((it) => it.name == \"name\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.name,\n sortable: true,\n width: \"30%\",\n },\n {\n id: \"website\",\n name: (\n
\n Website\n
\n it.name == \"website\") ? columnSearchKeywords.find((it) => it.name == \"website\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.website,\n sortable: true,\n width: \"40%\",\n },\n {\n id: \"country\",\n name: (\n
\n Country\n
\n it.name == \"country\") ? columnSearchKeywords.find((it) => it.name == \"country\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.country,\n sortable: true,\n width: \"20%\",\n },\n {\n id: \"isSelected\",\n name: (\n
\n Selected\n
\n it.name == \"selected\") ? columnSearchKeywords.find((it) => it.name == \"selected\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isSelected,\n sortable: false,\n width: \"10%\",\n format: function (row, index) {\n return op.operation == \"Edit\" && op.allow == true) ? true : false}>;\n },\n },\n ];\n\n const selectRow = {\n mode: \"checkbox\",\n clickToSelect: true,\n selected: this.state.personsSelected,\n onSelect: this.handleOnSelect,\n onSelectAll: this.handleOnSelectAll,\n hideSelectColumn: true,\n };\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n
\n \n \n {\n this.setState({ searchKeyword });\n }}\n >\n \n \n {\n this.setState({ searchKeyword: \"\" });\n }}\n >\n   \n \n Refresh\n \n   \n \n Add New\n \n   \n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n companyLoading: state.company.loading,\n companyError: state.company.error,\n providers: state.company.providers,\n isUpdating: state.company.isUpdating,\n\n countries: state.country.countries,\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onCountry: bindActionCreators(countryActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageProviders);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as interventionActions from \"../../../store/admin/actions/adminInterventionActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport { faPenToSquare, faTrash, faCheck, faArrowRight, faEnvelope, faFileExcel, faInfoCircle, faMinusCircle, faPlus, faSync, faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"18px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nclass ManageTrainingJobs extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n interventions: [],\n isUpdating: false,\n selectedIntervention: null,\n selectedInterventions: [],\n jobs: [],\n optionJobs: [],\n assignedJobs: [],\n assignedJobsSelected: [],\n selectedJobId: null,\n searchProperties: [\"name\", \"companyName\", \"lorLevelsString\", \"levelsString\"],\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.props.onJob.getJobs().then(() => {\n if (!this.props.jobsLoading) {\n this.setState({\n jobs: this.props.jobs,\n });\n\n this.initData();\n }\n\n this.setState({\n loading: this.props.loading || this.props.jobsLoading,\n });\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.interventions !== this.props.interventions) {\n this.setState({ interventions: this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.company.name} ${a.name}` > `${b.company.name} ${b.name}` ? 1 : -1)) });\n }\n }\n\n initData = () => {\n const selectedInterventions = this.state.selectedInterventions;\n let selectedInterventionId = null;\n\n if (selectedInterventions && selectedInterventions.length > 0) {\n selectedInterventionId = selectedInterventions[0];\n }\n\n this.props.onIntervention.getInterventions(true, true, false).then(() => {\n if (!this.props.interventionLoading) {\n const interventions = this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.company.name} ${a.name}` > `${b.company.name} ${b.name}` ? 1 : -1));\n if (selectedInterventionId) {\n if (!interventions.find((it) => it.id == selectedInterventionId)) {\n if (interventions[0]) {\n selectedInterventionId = interventions[0].id;\n interventions[0].toggleSelected = true;\n }\n } else {\n const intervention = interventions.find((it) => it.id == selectedInterventionId);\n intervention.toggleSelected = true;\n }\n } else {\n if (interventions[0]) {\n selectedInterventionId = interventions[0].id;\n interventions[0].toggleSelected = true;\n }\n }\n\n this.setState(\n {\n interventions,\n selectedInterventions: [selectedInterventionId],\n },\n () => {\n this.handleSelectRow(selectedInterventionId);\n }\n );\n }\n\n this.setState({ loading: this.props.loading || this.props.interventionLoading });\n });\n };\n\n handleRefresh = () => {\n this.initData();\n };\n\n prepareInterventions = (interventions) => {\n return interventions.map((intervention) => {\n return {\n id: intervention.id,\n companyId: intervention.companyId,\n company: intervention.company,\n companyName: intervention.company.name,\n actionType: intervention.actionType,\n name: intervention.name,\n link: intervention.link,\n duration: intervention.duration,\n description: intervention.description,\n sfiaVersion: intervention.sfiaVersion,\n versionNumber: intervention.versionNumber,\n levelsString: intervention.levels\n .sort((a, b) => `${a.skillsCode}${a.level}` > `${b.skillsCode}${b.level}`)\n .map((level) => {\n return `${level.skillsCode}${level.level}`;\n })\n .join(\", \"),\n levels: intervention.levels,\n lorLevelsString: intervention.lorLevels\n .sort((a, b) => `${a.lorCode}${a.level}` > `${b.lorCode}${b.level}`)\n .map((level) => {\n return `${level.lorCode}${level.level}`;\n })\n .join(\", \"),\n lorLevels: intervention.lorLevels,\n };\n });\n };\n\n handleAfterSearch = (searchKeyword) => {\n const { interventions, searchProperties } = this.state;\n const filtered = this.filterArray(interventions, searchKeyword, searchProperties);\n\n interventions.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (filtered.length > 0) {\n const row = filtered[0];\n const intervention = interventions.find((it) => it.id == row.id);\n intervention.toggleSelected = true;\n this.handleSelectRow(intervention.id);\n this.setState({ interventions: [...interventions], selectedInterventions: [intervention.id] });\n } else {\n this.handleSelectRow();\n this.setState({ interventions: [...interventions], selectedInterventions: [] });\n }\n };\n\n handleOnSelect = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const interventions = this.state.interventions;\n const updatedData = interventions.find((it) => it.id == row.id);\n\n if (!updatedData.toggleSelected) {\n interventions.forEach((it) => {\n it.toggleSelected = false;\n });\n\n updatedData.toggleSelected = true;\n\n this.handleSelectRow(row.id);\n this.setState({ interventions: [...interventions], selectedInterventions: [row.id] });\n }\n };\n\n handleSelectRow = (interventionId) => {\n const interventions = this.props.interventions;\n const jobs = this.props.jobs;\n const { selectedInterventions, assignedJobsSelected } = this.state;\n\n let selectedIntervention = null;\n\n if (selectedInterventions.length > 0) {\n selectedIntervention = selectedInterventions[0];\n }\n\n selectedIntervention = interventions.find((it) => it.id == interventionId);\n\n if (selectedIntervention) {\n let assignedJobIds = [];\n if (selectedIntervention.jobs && selectedIntervention.jobs.length > 0) {\n assignedJobIds = [\n ...selectedIntervention.jobs.map((job) => {\n return job.jobId;\n }),\n ];\n }\n const optionJobs = [\n {\n value: null,\n label: \"Select Requirement\",\n },\n ...jobs\n .filter((it) => !assignedJobIds.includes(it.id))\n .map((job) => {\n return {\n value: job.id,\n label: job.name,\n };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1)),\n ];\n\n this.setState({\n selectedInterventions: interventionId ? [interventionId] : [],\n selectedInterventionId: interventionId,\n selectedIntervention,\n optionJobs,\n assignedJobs: selectedIntervention ? selectedIntervention.jobs : [],\n assignedJobsSelected: selectedIntervention != interventionId ? [] : [...assignedJobsSelected],\n });\n } else {\n const optionJobs = [\n {\n value: null,\n label: \"Select Requirement\",\n },\n ...jobs\n .map((job) => {\n return {\n value: job.id,\n label: job.name,\n };\n })\n .sort((a, b) => (`${a.label}` > `${b.label}` ? 1 : -1)),\n ];\n\n this.setState({\n selectedInterventions: interventionId ? [interventionId] : [],\n selectedInterventionId: interventionId,\n selectedIntervention,\n optionJobs,\n assignedJobs: selectedIntervention ? selectedIntervention.jobs : [],\n assignedJobsSelected: selectedIntervention != interventionId ? [] : [...assignedJobsSelected],\n });\n }\n };\n\n handleOnSelectAssignedJob = (row) => {\n if (this.state.isUpdating) {\n return false;\n }\n\n const { assignedJobs } = this.state;\n let assignedJobsSelected = this.state.assignedJobsSelected;\n\n if (assignedJobsSelected) {\n const assignedJob = assignedJobs.find((it) => it.id == row.id);\n if (assignedJobsSelected.find((it) => it == row.id)) {\n assignedJob.toggleSelected = false;\n\n const assignedJobSelected = assignedJobsSelected.find((it) => it == row.id);\n var index = assignedJobsSelected.indexOf(assignedJobSelected);\n if (index !== -1) {\n assignedJobsSelected.splice(index, 1);\n }\n } else {\n assignedJob.toggleSelected = true;\n assignedJobsSelected = [...assignedJobsSelected, row.id];\n }\n } else {\n const assignedJob = assignedJobs.find((it) => it.id == row.id);\n assignedJob.toggleSelected = true;\n assignedJobsSelected = [row.id];\n }\n\n this.setState({ assignedJobs: [...assignedJobs], assignedJobsSelected: [...assignedJobsSelected] });\n };\n\n handleChangeAssignJob = (event) => {\n let { name, value } = event.target;\n\n if (value == \"Select Requirement\") {\n this.setState({ selectedJobId: null });\n } else {\n this.setState({ selectedJobId: value });\n }\n };\n\n handleRemoveInterventionJobsClick = () => {\n const { selectedIntervention, assignedJobsSelected, selectedInterventionId } = this.state;\n this.setState({ isUpdating: true });\n\n this.props.onIntervention.deleteInterventionJobs(assignedJobsSelected).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n const interventions = this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.company.name} ${a.name}` > `${b.company.name} ${b.name}` ? 1 : -1));\n if (selectedInterventionId) {\n if (!interventions.find((it) => it.id == selectedInterventionId)) {\n if (interventions[0]) {\n selectedInterventionId = interventions[0].id;\n interventions[0].toggleSelected = true;\n }\n } else {\n const intervention = interventions.find((it) => it.id == selectedInterventionId);\n intervention.toggleSelected = true;\n }\n }\n\n this.setState(\n {\n selectedJobId: null,\n interventions,\n },\n () => {\n this.handleSelectRow(null);\n setTimeout(() => {\n this.handleSelectRow(selectedIntervention.id);\n }, 200);\n }\n );\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleAssignJobClick = () => {\n const { selectedIntervention, optionJobs, selectedInterventionId } = this.state;\n let selectedJobId = this.state.selectedJobId;\n this.setState({ isUpdating: true });\n\n this.props.onIntervention.assignInterventionJob(selectedIntervention.id, selectedJobId).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n const optionJob = optionJobs.find((it) => it.value == selectedJobId);\n if (optionJob) {\n const index = optionJobs.indexOf(optionJob);\n if (index !== -1) {\n const nextOption = optionJobs[index + 1];\n if (nextOption) {\n selectedJobId = nextOption.value;\n } else {\n selectedJobId = null;\n }\n } else {\n selectedJobId = null;\n }\n } else {\n selectedJobId = null;\n }\n\n const interventions = this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.company.name} ${a.name}` > `${b.company.name} ${b.name}` ? 1 : -1));\n if (selectedInterventionId) {\n if (!interventions.find((it) => it.id == selectedInterventionId)) {\n if (interventions[0]) {\n selectedInterventionId = interventions[0].id;\n interventions[0].toggleSelected = true;\n }\n } else {\n const intervention = interventions.find((it) => it.id == selectedInterventionId);\n intervention.toggleSelected = true;\n }\n }\n\n this.setState(\n {\n selectedJobId,\n interventions,\n },\n () => {\n this.handleSelectRow(null);\n setTimeout(() => {\n this.handleSelectRow(selectedIntervention.id);\n }, 200);\n }\n );\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Assign Action Requirements\");\n\n const handleOnSelect = this.handleOnSelect;\n const handleOnSelectAssignedJob = this.handleOnSelectAssignedJob;\n\n const columns = [\n {\n id: \"name\",\n name: \"Name\",\n selector: (row) => row.name,\n sortable: false,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n wrap: true,\n format: function (row, index) {\n return (\n
handleOnSelect(row)}>\n {row.company.name}\n
\n {row.name}\n {row.lorLevelsString || row.levelsString ?
: \"\"}\n {row.lorLevelsString}\n {row.lorLevelsString && row.levelsString ? \", \" : \"\"}\n {row.levelsString}\n
\n );\n },\n },\n ];\n\n const columnsJobs = [\n {\n id: \"jobName\",\n name: \"Job Name\",\n selector: (row) => row.jobName,\n sortable: false,\n wrap: true,\n width: \"100%\",\n style: { cursor: \"pointer\" },\n format: function (row, index) {\n return (\n
handleOnSelectAssignedJob(row)}>\n {row.jobName}\n
\n );\n },\n },\n ];\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n

\n Action List\n

\n
\n \n \n {\n this.setState({ searchKeywordLevel1 });\n this.handleAfterSearch(searchKeywordLevel1);\n }}\n >\n \n \n
\n \n
\n
\n \n \n

\n Assigned Requirements\n

\n
\n
\n \n
\n
\n
\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) && (\n \n 0) || this.state.isUpdating}\n >\n \n \n \n \n Remove\n \n \n \n \n  \n \n \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Add\" && op.allow == true) && (\n \n \n \n \n {this.state.optionJobs.map((it, key) => (\n \n ))}\n \n \n \n \n \n Add\n \n \n \n \n \n \n )}\n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n interventionLoading: state.adminIntervention.loading,\n interventionError: state.adminIntervention.error,\n interventions: state.adminIntervention.interventions,\n isUpdating: state.adminIntervention.isUpdating,\n\n jobsLoading: state.job.loading,\n jobsError: state.job.error,\n jobs: state.job.jobs,\n pageAssignments: state.adminPerson.pageAssignments,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onIntervention: bindActionCreators(interventionActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageTrainingJobs);\n","import * as actionPlanActions from \"../../../store/actions/actionPlanAction\";\nimport * as authActions from \"../../../store/actions/authAction\";\nimport * as categoryActions from \"../../../store/actions/categoryAction\";\nimport * as companyActions from \"../../../store/actions/companyAction\";\nimport * as lorActions from \"../../../store/actions/lorAction\";\nimport * as interventionActions from \"../../../store/admin/actions/adminInterventionActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ManageTrainingDetail from \"./ManageTrainingDetail\";\nimport TrainingBulkUpload from \"./TrainingBulkUpload\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faPenToSquare, faTrash, faFileExcel, faMinusCircle, faPlus, faSync, faSquareMinus, faSquareCheck } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { Button, Col, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst rowStyle = {\n fontSize: \"12px\",\n};\n\nclass ManageTrainings extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n interventions: [],\n isUpdating: false,\n selectedInterventions: [],\n selectedIntervention: null,\n showDialogInterventionDetailTs: null,\n providers: [],\n actionTypes: [],\n searchProperties: [\"name\", \"actionType\", \"lorLevelsString\", \"levelsString\", \"link\"],\n numberActiveActionPromotions: null,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const { containerConfig, pageAssignments } = this.props;\n const pageAssignment = pageAssignments ? pageAssignments.find((it) => it.pageName == \"Manage Action List\") : null;\n\n this.props.onAuth.authCheckState().then(() => {\n this.props.onActionPlan.getActionTypes().then(() => {\n let actionTypes = [...this.props.actionTypes];\n\n if (containerConfig && containerConfig.allowBadgesFromActions && pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Manage Badge Actions\" && op.allow == true)) {\n actionTypes = [\n {\n id: \"Accredited Badge Issuing Action\",\n name: \"Accredited Badge Issuing Action\",\n },\n ...actionTypes,\n ];\n }\n\n this.setState({\n actionTypes: [...actionTypes],\n });\n });\n\n this.props.onIntervention.getNoOfActiveActionPromotions().then(() => {\n this.setState({\n numberActiveActionPromotions: this.props.numberActiveActionPromotions,\n });\n });\n\n Promise.all([this.props.onCompany.getProviderCompanies(), this.props.onCategory.getCategories(), this.props.onLor.getLors()]).then(() => {\n if (!this.props.loading && !this.props.categoryLoading && !this.props.companyLoading && !this.props.lorLoading) {\n this.setState({ providers: this.props.providers, lors: this.props.lors, categories: this.props.categories });\n this.initData();\n }\n\n this.setState({\n loading: this.props.loading || this.props.categoryLoading || this.props.companyLoading || this.props.lorLoading,\n });\n });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.interventions !== this.props.interventions) {\n //this.setState({ providers: this.props.providers.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) });\n this.setState({ interventions: this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) });\n }\n }\n\n initData = () => {\n this.props.onIntervention.getInterventions(false, false, true).then(() => {\n if (!this.props.interventionLoading) {\n this.setState({ interventions: this.prepareInterventions(this.props.interventions).sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) });\n }\n\n this.setState({ loading: this.props.loading || this.props.interventionLoading });\n });\n };\n\n handleRefresh = () => {\n this.props.onIntervention.getNoOfActiveActionPromotions().then(() => {\n this.setState({\n numberActiveActionPromotions: this.props.numberActiveActionPromotions,\n });\n });\n\n this.initData();\n };\n\n prepareInterventions = (interventions) => {\n return interventions.map((intervention) => {\n return {\n id: intervention.id,\n companyId: intervention.companyId,\n company: intervention.company,\n actionType: intervention.actionType,\n name: intervention.name,\n link: intervention.link,\n duration: intervention.duration,\n durationHours: intervention.durationHours,\n description: intervention.description,\n isActive: intervention.isActive,\n active: intervention.isActive ? \"True\" : \"False\",\n isValidated: intervention.isValidated,\n publishedOn: intervention.publishedOn,\n reviewOn: intervention.reviewOn,\n retireOn: intervention.retireOn,\n sfiaVersion: intervention.sfiaVersion,\n versionNumber: intervention.versionNumber,\n levelsString: intervention.levels\n .sort((a, b) => `${a.skillsCode}${a.level}` > `${b.skillsCode}${b.level}`)\n .map((level) => {\n return `${level.skillsCode}${level.level}`;\n })\n .join(\", \"),\n levels: intervention.levels,\n lorLevelsString: intervention.lorLevels\n .sort((a, b) => `${a.lorCode}${a.level}` > `${b.lorCode}${b.level}`)\n .map((level) => {\n return `${level.lorCode}${level.level}`;\n })\n .join(\", \"),\n lorLevels: intervention.lorLevels,\n badgeIssuer: intervention.badgeIssuer,\n inUse: intervention.inUse,\n preLoadToNewUser: intervention.preLoadToNewUser,\n preLoadToNewUserString: intervention.preLoadToNewUser ? \"True\" : \"False\",\n targetCompletionDays: intervention.targetCompletionDays,\n createdAsInactive: intervention.createdAsInactive,\n };\n });\n };\n\n openInterventionDetail = (intervention) => {\n this.setState({ selectedIntervention: intervention, showDialogInterventionDetailTs: new Date() });\n };\n\n handleAddNew = () => {\n this.setState({\n selectedIntervention: {\n id: null,\n },\n showDialogInterventionDetailTs: new Date(),\n });\n };\n\n handleSaveUpdateIntervention = (intervention) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onIntervention.updateIntervention(intervention.id, intervention).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Update training success.\");\n this.setState({ updateSuccess: true });\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleSaveAddIntervention = (intervention) => {\n this.setState({ isUpdating: true, updateSuccess: false });\n this.props.onIntervention.addIntervention(intervention).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Create training success.\");\n this.setState({ updateSuccess: true });\n this.handleRefresh();\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n handleRowClick = (row) => {\n const interventions = this.state.interventions;\n const updatedData = interventions.find((it) => it.id == row.id);\n if (!updatedData.inUse) {\n updatedData.toggleSelected = !updatedData.toggleSelected;\n }\n\n this.setState({ interventions: [...interventions], selectedInterventions: interventions.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleSelectAll = () => {\n const { interventions, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(interventions, searchKeyword, searchProperties, columnSearchKeywords);\n\n if (filtered.filter((it) => !it.inUse && it.toggleSelected).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.inUse && !it.toggleSelected).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n interventions.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (selectAll) {\n interventions.forEach((it) => {\n if (!it.inUse) {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSelected = true;\n }\n }\n });\n }\n\n this.setState({ interventions: [...interventions], selectedInterventions: interventions.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const interventions = this.state.interventions;\n\n interventions.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ interventions: [...interventions] });\n };\n\n handleDeleteIntervention = (intervention) => {\n if (window.confirm(\"Are you sure want to delete this action?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onIntervention.deleteIntervention(intervention.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.generateAlert(\"success\", \"Delete action success.\");\n this.handleRefresh();\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleDeleteInterventions = () => {\n if (window.confirm(\"Are you sure want to delete selected actions?\")) {\n this.setState({ isUpdating: true });\n\n this.props.onIntervention.deleteInterventions(this.state.selectedInterventions).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.interventionError) {\n this.setState({ selectedInterventions: [] });\n this.generateAlert(\"success\", \"Delete actions success.\");\n this.handleRefresh();\n } else {\n this.generateAlert(\"danger\", this.props.interventionError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n handleAfterSearch = () => {\n this.setState({ selectedInterventions: [] });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportInterventions = () => {\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n this.props.onIntervention.exportInterventionsDataExcel(timezoneOffset).then(() => {\n if (!this.props.loadingExport && !this.props.companyError) {\n if (this.props.exportData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.exportData, `ExportActions_${strToday}.xlsx`);\n }\n }\n });\n };\n\n handleImportInterventions = () => {\n this.setState({ showDialogImportTs: new Date() });\n };\n\n handleImportSuccess = () => {\n this.handleRefresh();\n };\n\n handleManageActionPromotions = () => {\n this.props.history.push(\"/admin/actionpromotions\");\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n render() {\n const { interventions, searchKeyword, searchProperties, columnSearchKeywords } = this.state;\n const pageAssignments = this.props.pageAssignments;\n const pageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Action List\");\n\n const openInterventionDetail = this.openInterventionDetail;\n const handleDeleteIntervention = this.handleDeleteIntervention;\n const handleRowClick = this.handleRowClick;\n const handleSelectAll = this.handleSelectAll;\n const onTableFilterChange = this.onTableFilterChange;\n\n const filtered = this.filterArray(interventions, searchKeyword, searchProperties, columnSearchKeywords);\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n !it.inUse && it.toggleSelected).length == 0 ? faSquare : filtered.filter((it) => !it.inUse && !it.toggleSelected).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSelected).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"5%\",\n center: true,\n format: function (row, index) {\n return (\n !row.inUse && (\n
\n handleRowClick(row)} />\n
\n )\n );\n },\n omit: pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) ? false : true,\n },\n {\n id: \"action\",\n name: \"Action\",\n selector: (row) => row.id,\n sortable: false,\n width: \"6%\",\n center: true,\n format: function (row, index) {\n return (\n
\n {row.inUse ? (\n \"In Use\"\n ) : (\n \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) && (\n \n openInterventionDetail(row)} />\n \n Update Action\n \n    \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) && (\n \n handleDeleteIntervention(row)} />\n \n Delete Action\n \n \n )}\n \n )}\n
\n );\n },\n omit: pageAssignment && pageAssignment.operations && (pageAssignment.operations.find((op) => op.operation == \"Edit\" && op.allow == true) || pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true)) ? false : true,\n },\n {\n id: \"name\",\n name: (\n
\n Name\n
\n it.name == \"name\") ? columnSearchKeywords.find((it) => it.name == \"name\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.name,\n sortable: true,\n wrap: true,\n width: \"13%\",\n },\n {\n id: \"actionType\",\n name: (\n
\n Type\n
\n it.name == \"actionType\") ? columnSearchKeywords.find((it) => it.name == \"actionType\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.actionType,\n sortable: true,\n width: \"8%\",\n wrap: true,\n },\n {\n id: \"lorLevelsString\",\n name: (\n
\n Lor\n
\n it.name == \"lorLevelsString\") ? columnSearchKeywords.find((it) => it.name == \"lorLevelsString\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.lorLevelsString,\n sortable: true,\n width: \"10%\",\n format: function (row, index) {\n return row.lorLevelsString;\n },\n wrap: true,\n },\n {\n id: \"levelsString\",\n name: (\n
\n Skills\n
\n it.name == \"levelsString\") ? columnSearchKeywords.find((it) => it.name == \"levelsString\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.levelsString,\n sortable: true,\n width: \"10%\",\n format: function (row, index) {\n return row.levelsString;\n },\n wrap: true,\n },\n {\n id: \"isActive\",\n name: (\n
\n Active\n
\n it.name == \"active\") ? columnSearchKeywords.find((it) => it.name == \"active\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isActive,\n sortable: true,\n width: \"6%\",\n format: function (row, index) {\n return row.isActive ? \"True\" : \"False\";\n },\n center: true,\n },\n {\n id: \"duration\",\n name: (\n
\n Duration (days)\n
\n it.name == \"duration\") ? columnSearchKeywords.find((it) => it.name == \"duration\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.duration,\n sortable: false,\n center: true,\n width: \"6%\",\n },\n {\n id: \"durationHours\",\n name: (\n
\n Duration (hours)\n
\n it.name == \"durationHours\") ? columnSearchKeywords.find((it) => it.name == \"durationHours\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.durationHours,\n sortable: false,\n center: true,\n width: \"6%\",\n },\n {\n id: \"preLoadToNewUser\",\n name: (\n
\n Pre Load To New User\n
\n it.name == \"preLoadToNewUserString\") ? columnSearchKeywords.find((it) => it.name == \"preLoadToNewUserString\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.preLoadToNewUser,\n sortable: true,\n width: \"6%\",\n format: function (row, index) {\n return row.preLoadToNewUser ? \"True\" : \"False\";\n },\n center: true,\n },\n {\n id: \"link\",\n name: (\n
\n Website\n
\n it.name == \"link\") ? columnSearchKeywords.find((it) => it.name == \"link\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.link,\n sortable: true,\n width: \"11%\",\n wrap: true,\n },\n {\n id: \"versionNumber\",\n name: (\n
\n Version\n
\n it.name == \"versionNumber\") ? columnSearchKeywords.find((it) => it.name == \"versionNumber\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.versionNumber,\n sortable: false,\n width: \"6%\",\n center: true,\n },\n {\n id: \"sfiaVersion\",\n name: (\n
\n Sfia Version\n
\n it.name == \"sfiaVersion\") ? columnSearchKeywords.find((it) => it.name == \"sfiaVersion\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.sfiaVersion,\n sortable: false,\n center: true,\n width: \"6%\",\n },\n ];\n\n return (\n \n \n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, selectedInterventions: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", selectedInterventions: [] });\n }}\n >\n   \n \n Refresh\n \n   \n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Add\" && op.allow == true) && (\n \n \n Add New\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Delete\" && op.allow == true) && (\n \n \n Delete Selected\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Export\" && op.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Import\" && op.allow == true) && (\n \n \n Import\n \n   \n \n )}\n {this.props.containerConfig && this.props.containerConfig.enablePromoteAction == true && pageAssignment && pageAssignment.operations && pageAssignment.operations.find((op) => op.operation == \"Manage Action Promotions\" && op.allow == true) && (\n \n 0)}\n >\n {this.props.numberActiveActionPromotions && this.props.numberActiveActionPromotions > 0 ? `Promotion Requests (${this.props.numberActiveActionPromotions})` : \"Promotion Requests\"}\n \n \n )}\n \n \n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n interventionLoading: state.adminIntervention.loading,\n interventionError: state.adminIntervention.error,\n interventions: state.adminIntervention.interventions,\n isUpdating: state.adminIntervention.isUpdating,\n actionTypes: state.actionPlan.actionTypes,\n\n numberActiveActionPromotions: state.adminIntervention.numberActiveActionPromotions,\n\n companyLoading: state.company.loading,\n companyError: state.company.error,\n providers: state.company.providers,\n\n categories: state.category.categories,\n categoryLoading: state.category.loading,\n\n lorLoading: state.lor.loading,\n lors: state.lor.lors,\n\n exportData: state.adminIntervention.exportData,\n loadingExport: state.adminIntervention.loadingExport,\n pageAssignments: state.adminPerson.pageAssignments,\n\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onIntervention: bindActionCreators(interventionActions, dispatch),\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(ManageTrainings));\n","import * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nclass GenerateUserProfileReports extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n person: null,\n boolSkillProfile: false,\n boolActionPlan: false,\n boolEndorsedProfile: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n\n if (prevProps.person !== this.props.person && this.props.person) {\n this.setState({ person: this.props.person, boolSkillProfile: false, boolActionPlan: false, boolEndorsedProfile: false });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleChangeCheckBox = (option) => {\n const { boolSkillProfile, boolActionPlan, boolEndorsedProfile } = this.state;\n\n if (option == \"boolSkillProfile\") {\n this.setState({ boolSkillProfile: !boolSkillProfile });\n }\n\n if (option == \"boolActionPlan\") {\n this.setState({ boolActionPlan: !boolActionPlan });\n }\n\n if (option == \"boolEndorsedProfile\") {\n this.setState({ boolEndorsedProfile: !boolEndorsedProfile });\n }\n };\n\n handlePerformGenerateReports = () => {\n const { boolSkillProfile, boolActionPlan, boolEndorsedProfile, person } = this.state;\n\n this.setState({ loadingPrint: true });\n this.props.onPerson.generatePersonProfileReports(person.id, boolSkillProfile, boolActionPlan, boolEndorsedProfile).then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `${person.firstName}${person.lastName}_SkillsTx_Person_Profiles.zip`);\n this.setState({ boolSkillProfile: false, boolActionPlan: false, boolEndorsedProfile: false, showDialog: false });\n }\n }\n\n this.setState({ loadingPrint: this.props.loadingPrint });\n });\n };\n\n render() {\n const { boolSkillProfile, boolActionPlan, boolEndorsedProfile, person } = this.state;\n\n return (\n \n \n Generate profile reports\n \n
\n \n \n \n \n this.handleChangeCheckBox(\"boolSkillProfile\")} />\n \n \n \n {person && person.hasAction && (\n \n \n this.handleChangeCheckBox(\"boolActionPlan\")} />\n \n \n \n )}\n {person && person.hasEndorseProfile && (\n \n \n this.handleChangeCheckBox(\"boolEndorsedProfile\")} />\n \n \n \n )}\n \n \n
\n
\n \n {\n this.handlePerformGenerateReports();\n }}\n disabled={!(boolSkillProfile || boolActionPlan || boolEndorsedProfile) || this.state.loadingPrint}\n >\n Generate Reports\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GenerateUserProfileReports);\n","import * as countryActions from \"../../../store/actions/countryAction\";\nimport * as jobActions from \"../../../store/actions/jobAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UserAddNew extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n showDialog: false,\n isUpdating: false,\n countries: [],\n jobs: [],\n optionYesOrNo: [\n {\n label: \"Yes\",\n value: true,\n },\n {\n label: \"No\",\n value: false,\n },\n ],\n form: {\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n usePreferredName: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n preferredName: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n position: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n team: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n other: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skipSelfAssessmentSurvey: {\n validation: {\n required: false,\n isBool: true,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurveyId: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurvey: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isCandidate: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isContractor: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isMentorIneligible: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n fte: {\n validation: {\n isUserFte: true,\n required: true,\n },\n value: \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n };\n }\n\n componentDidMount() {\n Promise.all([this.props.onJob.getJobs(), this.props.onCountry.getCountries()]).then(() => {\n let countries = [\n {\n label: \"Select Country\",\n value: \"\",\n },\n ];\n if (this.props.countries) {\n countries.push(...this.props.countries.map((country) => ({ label: country.name, value: country.name })));\n }\n\n let jobs = [\n {\n label: \"Select Role\",\n value: \"\",\n },\n ];\n if (this.props.jobs) {\n jobs.push(\n ...this.props.jobs\n .filter((it) => it.inActive != true && it.reference && !it.isSample)\n .sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1))\n .map((job) => ({ label: job.name, value: job.id }))\n );\n }\n this.setState({ countries, jobs });\n this.setState({ loading: this.props.countryLoading || this.props.jobsLoading });\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({\n showDialog: !showDialog,\n form: {\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n email: {\n validation: {\n required: true,\n isEmail: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n usePreferredName: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n preferredName: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n position: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n team: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n country: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n location: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n other: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n skipSelfAssessmentSurvey: {\n validation: {\n required: false,\n isBool: true,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurveyId: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n roleBasedSurvey: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isCandidate: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isContractor: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n isMentorIneligible: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n fte: {\n validation: {\n isUserFte: true,\n required: true,\n },\n value: \"1.0\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n });\n };\n\n handleChange = (event) => {\n const { jobs } = this.state;\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"roleBasedSurveyId\") {\n const job = jobs.find((it) => it.value == value);\n if (job) {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", job.label);\n } else {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", \"\");\n }\n } else if (name == \"skipSelfAssessmentSurvey\" && value == \"true\") {\n updateState = changeInput(updateState.form, \"roleBasedSurvey\", null);\n updateState = changeInput(updateState.form, \"roleBasedSurveyId\", \"\");\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeCheckBox = (event) => {\n const { name, checked } = event.target;\n\n let updateState = changeInput(this.state.form, name, checked);\n\n if (name == \"isContractor\" && checked) {\n updateState = changeInput(updateState.form, \"isCandidate\", false);\n } else if (name == \"isCandidate\" && checked) {\n updateState = changeInput(updateState.form, \"isContractor\", false);\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n const person = {\n firstName: form.firstName.value,\n lastName: form.lastName.value,\n email: form.email.value,\n usePreferredName: form.usePreferredName.value,\n salutation: form.preferredName.value,\n position: form.position.value,\n team: form.team.value,\n country: form.country.value,\n countryCode: form.country.value,\n location: form.location.value,\n other: form.other.value,\n skipSelfAssessmentSurvey: form.skipSelfAssessmentSurvey.value,\n roleBasedSurveyId: form.roleBasedSurveyId.value && form.roleBasedSurveyId.value != \"\" ? form.roleBasedSurveyId.value : null,\n roleBasedSurvey: form.roleBasedSurvey.value && form.roleBasedSurvey.value != \"\" ? form.roleBasedSurvey.value : null,\n isCandidate: form.isCandidate.value,\n isContractor: form.isContractor.value,\n isMentorIneligible: form.isMentorIneligible.value,\n fte: form.fte.value,\n };\n\n this.setState({ isUpdating: true });\n\n this.props.onPerson.addPerson(person).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.props.generateAlert(\"success\", \"Add person success.\");\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { form, countries, jobs, optionYesOrNo } = this.state;\n\n return (\n \n \n Add New Person\n \n
\n \n \n \n \n \n \n {form.email.value != \"\" && !form.email.isValidFormat && Incorrect email format}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.config && this.props.config.allowSkipSelfAssessmentSurvey && (\n \n \n \n \n {optionYesOrNo.map((it, key) => (\n \n ))}\n \n \n \n )}\n \n \n \n \n \n   \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.loading ? (\n \n ) : (\n \n {countries.map((country, key) => (\n \n ))}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {this.state.loading ? (\n \n ) : (\n \n {jobs.map((job, key) => (\n \n ))}\n \n )}\n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n {\n this.handlePerformSave();\n }}\n disabled={!this.state.isFormValid || this.state.loading || (form && form.fte && (form.fte.value == \"0\" || form.fte.value == \"0.0\" || form.fte.value == 0))}\n >\n Save\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n isUpdating: state.adminPerson.isUpdating,\n countries: state.country.countries,\n countryLoading: state.country.loading,\n jobsLoading: state.job.loading,\n jobs: state.job.jobs,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onCountry: bindActionCreators(countryActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserAddNew);\n","import * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass UserBulkUpload extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n importOption: \"InsertUpdate\",\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleDownloadTemplate = () => {\n this.props.onPerson.exportPersonsDataExcelTemplate().then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `UploadIndividualsTemplate.xlsx`);\n }\n }\n });\n };\n\n handleChangeOption = (event) => {\n const { name, value } = event.target;\n this.setState({ importOption: value });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onPerson.importPersonsDataExcel(this.state.importOption, this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.personsError) {\n if (this.props.message) {\n this.props.generateAlert(\"success\", this.props.message);\n } else {\n this.props.generateAlert(\"success\", \"Import individuals successful.\");\n }\n this.excelRef.current.value = null;\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message, true);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import individuals details\n \n
\n \n \n \n \n \n \n \n \n Download Bulk Template\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n {this.state.isImporting ? (\n \n Process Upload\n \n ) : (\n \"Process Upload\"\n )}\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n isImporting: state.adminPerson.isImporting,\n message: state.adminPerson.message,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserBulkUpload);\n","import * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, ListGroup, ListGroupItem, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nclass UserBulkUploadProfiles extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n importOption: \"InsertUpdate\",\n selectedFiles: [],\n isImporting: false,\n importMessage: null,\n };\n\n this.excelRef = React.createRef();\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n this.excelRef.current.value = null;\n this.setState({ showDialog: !showDialog, selectedFiles: [] });\n };\n\n handleSelectFiles = () => {\n this.excelRef.current.click();\n };\n\n handleSelectExcels = (event) => {\n const selectedFiles = this.state.selectedFiles;\n\n if (event.target.files && event.target.files.length > 0) {\n this.setState({ selectedFiles: [...selectedFiles, ...event.target.files] });\n }\n };\n\n handlePerformUpload = () => {\n this.setState({ isImporting: true });\n this.props.onPerson.importPersonsProfiles(this.state.selectedFiles).then(() => {\n if (!this.props.isImporting) {\n if (!this.props.personsError) {\n if (this.props.message) {\n this.props.generateAlert(\"success\", this.props.message);\n } else {\n this.props.generateAlert(\"success\", \"Import profiles successful.\");\n }\n this.excelRef.current.value = null;\n this.togleDialogModal();\n } else {\n this.props.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isImporting: this.props.isImporting });\n });\n };\n\n render() {\n const { selectedFiles } = this.state;\n\n return (\n \n \n \n Import profiles\n \n
\n \n \n \n \n \n \n \n \n Select Files\n \n \n \n {selectedFiles.length > 0 && (\n \n \n \n
\n \n {selectedFiles.map((it, key) => {\n return (\n \n {it.name}\n \n );\n })}\n \n \n
\n )}\n \n
\n
\n
\n \n {\n this.handlePerformUpload();\n }}\n disabled={selectedFiles.length == 0 || this.state.isImporting}\n >\n {this.state.isImporting ? (\n \n Process Upload\n \n ) : (\n \"Process Upload\"\n )}\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n personsError: state.adminPerson.error,\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n isImporting: state.adminPerson.isImporting,\n message: state.adminPerson.message,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserBulkUploadProfiles);\n","import * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { faCircleCheck, faCancel } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, CustomInput, Popover, PopoverBody, PopoverHeader, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UserRoleCell extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n popOverUpdateRoleOpen: false,\n roleSelection: [],\n roles: this.props.roles,\n dirty: false,\n inProgress: false,\n };\n }\n\n componentDidMount() {\n const roles = this.props.roles;\n let roleSelection = [];\n\n if (roles && roles.length > 0) {\n roleSelection = [...roles];\n } else {\n roleSelection.push({ role: \"User\" });\n }\n this.setState({ roleSelection });\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.roles !== this.props.roles) {\n this.setState({ roles: this.props.roles });\n }\n\n if (prevProps.resetPasswordSent !== this.props.resetPasswordSent && this.props.resetPasswordSent) {\n this.props.generateAlert(\"success\", \"Reset password request sent\");\n }\n }\n\n togglePopover = () => {\n const popOverUpdateRoleOpen = this.state.popOverUpdateRoleOpen;\n\n this.setState({ popOverUpdateRoleOpen: !popOverUpdateRoleOpen, dirty: false, inProgress: false });\n };\n\n openUpdateRoles = () => {\n const popOverUpdateRoleOpen = this.state.popOverUpdateRoleOpen;\n\n const roles = this.props.roles;\n let roleSelection = [];\n\n if (roles && roles.length > 0) {\n roleSelection = [...roles];\n } else {\n roleSelection.push({ role: \"User\" });\n }\n\n this.setState({ popOverUpdateRoleOpen: !popOverUpdateRoleOpen, roleSelection });\n };\n\n handleRoleCheckedChange = (role) => {\n let roleSelection = this.state.roleSelection;\n\n if (roleSelection.find((it) => it.role == role)) {\n var objRole = roleSelection.find((it) => it.role == role);\n var index = roleSelection.indexOf(objRole);\n roleSelection.splice(index, 1);\n } else {\n roleSelection.push({\n role,\n });\n }\n\n this.setState({ roleSelection, dirty: true });\n };\n\n handleUpdateRoles = () => {\n const roleSelection = this.state.roleSelection;\n this.setState({ inProgress: true });\n this.props.onPerson\n .updatePersonRoles(\n this.props.person.id,\n roleSelection.map((it) => {\n return it.role;\n })\n )\n .then(() => {\n if (!this.props.isUpdating && !this.props.error) {\n this.props.personRolesUpdated(this.props.person.id, this.props.updatedRoles);\n this.setState({ popOverUpdateRoleOpen: false });\n }\n\n if (roleSelection.find((it) => it.role == \"Admin\") && (!this.props.person.havePassword || this.props.person.havePassword == false) && (!this.props.person.resetPasswordRequested || this.props.person.resetPasswordRequested == false)) {\n if (window.confirm(\"Do you want to send reset password email to this new admin user?\")) {\n this.props.onPerson.resetPersonPassword(this.props.person.id).then(() => {});\n }\n }\n\n this.setState({ inProgress: this.props.isUpdating });\n });\n };\n\n render() {\n const person = this.props.person;\n const roles = this.state.roles;\n const roleSelection = this.state.roleSelection;\n\n const strRoles = roles\n .sort((a, b) => ((a.role == \"Admin\" ? 2 : 1) > (b.role == \"Admin\" ? 2 : 1) ? 1 : -1))\n .map((it) => {\n return it.role;\n });\n\n return (\n \n {this.props.allowEdit ? (\n \n this.openUpdateRoles()}>\n {strRoles.length > 0 ? strRoles.join(\", \") : \"User\"}\n \n \n Update Person Roles\n \n \n \n \n Update roles\n \n 0 && this.state.dirty ? \"btn-primary\" : \"btn-secondary\"}\n disabled={!this.state.dirty || this.state.inProgress || this.state.roleSelection.length == 0}\n onClick={this.handleUpdateRoles}\n >\n \n \n  \n \n \n \n \n \n \n \n it.role == \"User\") ? true : false}\n label=\"User\"\n onChange={() => this.handleRoleCheckedChange(\"User\")}\n disabled={this.state.inProgress}\n />\n \n \n it.role == \"Admin\") ? true : false}\n label=\"Admin\"\n onChange={() => this.handleRoleCheckedChange(\"Admin\")}\n disabled={this.state.inProgress}\n />\n \n \n \n \n \n ) : (\n
{strRoles.length > 0 ? strRoles.join(\", \") : \"User\"}
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isUpdating: state.adminPerson.roleUpdating,\n error: state.adminPerson.error,\n updatedRoles: state.adminPerson.updatedRoles,\n resetPasswordSent: state.adminPerson.resetPasswordSent,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserRoleCell);\n","import * as configActions from \"../../../store/actions/configAction\";\nimport changeInput from \"../../../utils/changeInput\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UserUpdatePersonMiscellaneousConfig extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n isUpdating: false,\n form: {\n personMiscellaneous1Enable: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous1Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: \"Miscellaneous 1\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous2Enable: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous2Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: \"Miscellaneous 2\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous3Enable: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous3Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: \"Miscellaneous 3\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous4Enable: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous4Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: \"Miscellaneous 4\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous5Enable: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous5Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: \"Miscellaneous 5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: true,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n this.prepareFormState();\n }\n }\n\n prepareFormState = () => {\n const config = this.props.config;\n if (config) {\n this.setState({\n form: {\n personMiscellaneous1Enable: {\n validation: {\n required: false,\n },\n value: config ? config.personMiscellaneous1Enable : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous1Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: config && config.personMiscellaneous1Caption ? config.personMiscellaneous1Caption : \"Miscellaneous 1\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous2Enable: {\n validation: {\n required: false,\n },\n value: config ? config.personMiscellaneous2Enable : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous2Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: config && config.personMiscellaneous2Caption ? config.personMiscellaneous2Caption : \"Miscellaneous 2\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous3Enable: {\n validation: {\n required: false,\n },\n value: config ? config.personMiscellaneous3Enable : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous3Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: config && config.personMiscellaneous3Caption ? config.personMiscellaneous3Caption : \"Miscellaneous 3\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous4Enable: {\n validation: {\n required: false,\n },\n value: config ? config.personMiscellaneous4Enable : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous4Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: config && config.personMiscellaneous4Caption ? config.personMiscellaneous4Caption : \"Miscellaneous 4\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous5Enable: {\n validation: {\n required: false,\n },\n value: config ? config.personMiscellaneous5Enable : false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n personMiscellaneous5Caption: {\n validation: {\n required: true,\n minLength: 1,\n },\n value: config && config.personMiscellaneous5Caption ? config.personMiscellaneous5Caption : \"Miscellaneous 5\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: true,\n });\n }\n };\n\n togleDialogModal = () => {\n const showDialog = this.state.showDialog;\n\n this.setState({\n showDialog: !showDialog,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeCheckBox = (event) => {\n const { name, checked } = event.target;\n\n const updateState = changeInput(this.state.form, name, checked);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handlePerformSave = () => {\n const form = this.state.form;\n\n const config = {\n personMiscellaneous1Enable: form.personMiscellaneous1Enable.value,\n personMiscellaneous1Caption: form.personMiscellaneous1Caption.value,\n personMiscellaneous2Enable: form.personMiscellaneous2Enable.value,\n personMiscellaneous2Caption: form.personMiscellaneous2Caption.value,\n personMiscellaneous3Enable: form.personMiscellaneous3Enable.value,\n personMiscellaneous3Caption: form.personMiscellaneous3Caption.value,\n personMiscellaneous4Enable: form.personMiscellaneous4Enable.value,\n personMiscellaneous4Caption: form.personMiscellaneous4Caption.value,\n personMiscellaneous5Enable: form.personMiscellaneous5Enable.value,\n personMiscellaneous5Caption: form.personMiscellaneous5Caption.value,\n };\n\n this.setState({ isUpdating: true });\n this.props.onConfig.updateAdminPersonMiscellaneousConfig(config).then(() => {\n if (!this.props.isUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Update additional columns setting success\");\n this.togleDialogModal();\n }\n }\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n render() {\n const { form } = this.state;\n const defaultColumnNames = [\n \"personid\",\n \"fullname\",\n \"email\",\n \"preferredname\",\n \"position\",\n \"countrycode\",\n \"country\",\n \"location\",\n \"team\",\n \"other\",\n \"department\",\n \"businessunit\",\n \"division\",\n \"territory\",\n \"costcentre\",\n \"supervisorname\",\n \"iscandidate\",\n \"hasaction\",\n \"createdon\",\n \"lastupdatedon\",\n \"dayssincelastupdate\",\n \"activitystatus\",\n \"lastondemandactivitystatementsenton\",\n \"selfassessmentreason\",\n \"surveyrating\",\n \"surveycomment\",\n \"activitystatementinterval\",\n \"leaveon\",\n \"seniority\",\n \"employmentcontract\",\n \"timeincurrentrole\",\n \"timeinorganisation\",\n \"recentorcurrentrole\",\n \"experienceselection\",\n \"isapprovalrequested\",\n \"approvalrequestsenton\",\n \"issurveycomplete\",\n \"hasendorsedprofile\",\n \"totalquestions\",\n \"answeredquestions\",\n \"totaltimetaken\",\n \"completedsurveypercent\",\n \"inactive\",\n \"notes\",\n \"latestprofileversion\",\n \"latestprofilestatus\",\n \"latestversionisapproved\",\n \"latestversionapproveddate\",\n \"latestversionapprovalcomment\",\n \"previousversionisapproved\",\n \"previousversionapproveddate\",\n \"previousversionapprovalcomment\",\n \"currentrequirementassigned\",\n \"futurerequirementassigned\",\n \"datamodellastupdated\",\n \"datamodellastsync\",\n ];\n\n return (\n \n \n Additional Columns Setting\n \n
\n \n \n \n \n \n
\n \n \n
\n {form.personMiscellaneous1Caption.touched && form.personMiscellaneous1Enable.value == true && form.personMiscellaneous1Caption.value && defaultColumnNames.includes(form.personMiscellaneous1Caption.value.toLowerCase()) && (\n
Column name not available
\n )}\n \n
\n \n \n \n
\n \n \n
\n {form.personMiscellaneous1Caption.touched && form.personMiscellaneous2Enable.value == true && form.personMiscellaneous2Caption.value && defaultColumnNames.includes(form.personMiscellaneous2Caption.value.toLowerCase()) && (\n
Column name not available
\n )}\n \n
\n \n \n \n
\n \n \n
\n {form.personMiscellaneous1Caption.touched && form.personMiscellaneous3Enable.value == true && form.personMiscellaneous3Caption.value && defaultColumnNames.includes(form.personMiscellaneous3Caption.value.toLowerCase()) && (\n
Column name not available
\n )}\n \n
\n \n \n \n
\n \n \n
\n {form.personMiscellaneous4Caption.touched && form.personMiscellaneous4Enable.value == true && form.personMiscellaneous4Caption.value && defaultColumnNames.includes(form.personMiscellaneous4Caption.value.toLowerCase()) && (\n
Column name not available
\n )}\n \n
\n \n \n \n
\n \n \n
\n {form.personMiscellaneous5Caption.touched && form.personMiscellaneous5Enable.value == true && form.personMiscellaneous5Caption.value && defaultColumnNames.includes(form.personMiscellaneous5Caption.value.toLowerCase()) && (\n
Column name not available
\n )}\n \n
\n \n
\n
\n
\n \n \n {\n this.handlePerformSave();\n }}\n disabled={\n !this.state.isFormValid ||\n this.state.isUpdating ||\n (form && form.personMiscellaneous1Enable.value == true && form.personMiscellaneous1Caption.value && defaultColumnNames.includes(form.personMiscellaneous1Caption.value.toLowerCase())) ||\n (form && form.personMiscellaneous2Enable.value == true && form.personMiscellaneous2Caption.value && defaultColumnNames.includes(form.personMiscellaneous2Caption.value.toLowerCase())) ||\n (form && form.personMiscellaneous3Enable.value == true && form.personMiscellaneous3Caption.value && defaultColumnNames.includes(form.personMiscellaneous3Caption.value.toLowerCase())) ||\n (form && form.personMiscellaneous4Enable.value == true && form.personMiscellaneous4Caption.value && defaultColumnNames.includes(form.personMiscellaneous4Caption.value.toLowerCase())) ||\n (form && form.personMiscellaneous5Enable.value == true && form.personMiscellaneous5Caption.value && defaultColumnNames.includes(form.personMiscellaneous5Caption.value.toLowerCase()))\n }\n >\n Save\n \n {\n this.togleDialogModal();\n }}\n disabled={this.state.isUpdating}\n >\n Cancel\n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n error: state.config.error,\n isUpdating: state.config.isUpdating,\n config: state.config.config,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserUpdatePersonMiscellaneousConfig);\n","import * as authActions from \"../../../store/actions/authAction\";\nimport * as configActions from \"../../../store/actions/configAction\";\nimport * as adminPersonActions from \"../../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../../utils/alertUtils\";\nimport { filterArray } from \"../../../utils/filterUtils\";\nimport { contentTranslator } from \"../../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../../common/SkillsTxTable\";\nimport { SkillsTxTableClearSearch } from \"../../common/SkillsTxTableClearSearch\";\nimport { SkillsTxTableSearchBar } from \"../../common/SkillsTxTableSearchBar\";\nimport ColumnDisplaySetting from \"../ColumnDisplaySetting\";\nimport GenerateUserProfileReports from \"./GenerateUserProfileReports\";\nimport UserAddNew from \"./UserAddNew\";\nimport UserBulkUpload from \"./UserBulkUpload\";\nimport UserBulkUploadProfiles from \"./UserBulkUploadProfiles\";\nimport UserDetail from \"./UserDetail\";\nimport UserRoleCell from \"./UserRoleCell\";\nimport UserUpdatePersonMiscellaneousConfig from \"./UserUpdatePersonMiscellaneousConfig\";\nimport { faSquare } from \"@fortawesome/free-regular-svg-icons\";\nimport { faCheck, faCog, faEnvelope, faFileExcel, faInfoCircle, faMinusCircle, faPlus, faPrint, faSquareCheck, faSquareMinus, faSync, faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass ManageUser extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: true,\n alerts: [],\n stickyAlert: false,\n persons: [],\n selectedPerson: null,\n showDialogTs: null,\n showDialogNewUserTs: null,\n showDialogUserDetailTs: null,\n showDialogUserReportTs: null,\n showDialogUpdatePersonMiscellaneousConfigTs: null,\n isUpdating: false,\n showDeletePersonFirstConfirmationDialog: false,\n showDeletePersonSecondConfirmationDialog: false,\n deletedPerson: null,\n assignMode: false,\n inviteMode: false,\n unassignMode: false,\n exportProfileMode: false,\n personsSelected: [],\n showAssignInviteConfirmationDialog: false,\n showContinueToInviteDialog: false,\n checkShowInvited: false,\n showColumnSettings: false,\n };\n\n this.filterArray = filterArray.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.props.onAuth.authCheckState().then(() => {\n this.initData();\n this.setState({ loading: this.props.loading });\n });\n }\n\n searchProperties = () => {\n const pageName = this.props.mode == \"ManageUser\" ? \"Manage Users\" : this.props.mode == \"AssignSurvey\" ? \"Assign Participants\" : \"Track Participant Progress\";\n return this.props.columnDisplaySettings ? this.props.columnDisplaySettings.filter((it) => it.pageName == pageName && it.visible == true && it.searchable == true).map((it) => it.columnName) : [];\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.persons !== this.props.persons && this.props.persons) {\n this.setState({ persons: this.reformPersons(this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))) });\n }\n\n if (prevProps.mode !== this.props.mode && prevProps.mode) {\n this.handleChangeMode();\n }\n }\n\n reformPersons = (persons) => {\n return persons.map((it) => {\n return {\n id: it.id,\n companyId: it.companyId,\n firstName: it.firstName,\n lastName: it.lastName,\n email: it.email,\n salutation: it.salutation ? it.salutation : \"\",\n position: it.position ? it.position : \"\",\n inactive: it.inactive,\n active: it.inactive ? \"Inactive\" : \"Active\",\n personType: it.personType ? it.personType : \"\",\n accessGroup: it.accessGroup,\n allowNotifications: it.allowNotifications,\n lastActivityOn: it.lastActivityOn,\n lastActivitySystem: it.lastActivitySystem,\n createdOn: it.createdOn,\n countryCode: it.countryCode ? it.countryCode : \"\",\n country: it.country ? it.country : \"\",\n location: it.location ? it.location : \"\",\n selfAssessmentReason: it.selfAssessmentReason ? it.selfAssessmentReason : \"\",\n encryptedId: it.encryptedId,\n team: it.team ? it.team : \"\",\n usePreferredName: it.usePreferredName,\n other: it.other ? it.other : \"\",\n department: it.department ? it.department : \"\",\n businessUnit: it.businessUnit ? it.businessUnit : \"\",\n division: it.division ? it.division : \"\",\n territory: it.territory ? it.territory : \"\",\n costCentre: it.costCentre ? it.costCentre : \"\",\n supervisor: it.supervisor ? it.supervisor : \"\",\n validatedDate: it.validatedDate,\n isCandidate: it.isCandidate,\n strCandidate: it.isCandidate ? \"TRUE\" : \"\",\n isContractor: it.isContractor,\n strContractor: it.isContractor ? \"TRUE\" : \"\",\n isMentorIneligible: it.isMentorIneligible,\n strMentorIneligible: it.isMentorIneligible ? \"TRUE\" : \"\",\n isAnalyticsUser: it.isAnalyticsUser,\n leaveOn: it.leaveOn,\n isAssigned: it.isAssigned,\n strAssigned: it.isAssigned ? \"TRUE\" : \"FALSE\",\n isInvited: it.isInvited,\n strInvited: it.isInvited ? \"TRUE\" : \"FALSE\",\n invitedOn: it.invitedOn,\n accounts: it.accounts ? [...it.accounts] : null,\n teams: it.teams ? [...it.teams] : null,\n profilePictureUrl: it.profilePictureUrl,\n activityStatementInterval: it.activityStatementInterval,\n lastUpdatedOn: it.lastUpdatedOn,\n lastUpdatedVersion: it.lastUpdatedVersion,\n latestAssessmentId: it.latestAssessmentId,\n cartridgeId: it.cartridgeId,\n hasOutstandingAction: it.hasOutstandingAction,\n roles: it.roles ? [...it.roles] : null,\n strRoles:\n it.roles && it.roles.length > 0\n ? it.roles\n .sort((a, b) => ((a.role == \"Admin\" ? 2 : 1) > (b.role == \"Admin\" ? 2 : 1) ? 1 : -1))\n .map((it) => {\n return it.role;\n })\n .join(\", \")\n : \"User\",\n groups: it.groups ? [...it.groups] : null,\n totalQuestions: it.totalQuestions,\n answeredQuestions: it.answeredQuestions,\n totalTimeTaken: it.totalTimeTaken,\n percentage: it.percentage,\n percentageHundred: it.percentage ? it.percentage * 100 : 0,\n progress: it.totalQuestions ? `${it.answeredQuestions} / ${it.totalQuestions}` : \"0 / 0\",\n hasEndorseProfile: it.hasEndorseProfile,\n hasAction: it.hasAction,\n latestInvitationEmailReminderNumber: it.latestInvitationEmailReminderNumber,\n latestInvitationEmailReminderSentOn: it.latestInvitationEmailReminderSentOn,\n resetPasswordRequested: it.resetPasswordRequested,\n upRelationships: it.upRelationships,\n downRelationships: it.downRelationships,\n havePassword: it.havePassword,\n invitationEmailMessageId: it.invitationEmailMessageId,\n invitationEmailMessageStatus: it.invitationEmailMessageStatus,\n invitationEmailMessageReason: it.invitationEmailMessageReason,\n messageSent:\n it.invitationEmailMessageId && it.isInvited\n ? it.invitationEmailMessageStatus == \"delivered\"\n ? \"TRUE\"\n : it.invitationEmailMessageStatus == \"drop\" || it.invitationEmailMessageStatus == \"dropped\" || it.invitationEmailMessageStatus == \"bounce\" || it.invitationEmailMessageStatus == \"deferred\"\n ? \"FALSE\"\n : \"\"\n : \"\",\n invitedSentOn:\n it.invitationEmailMessageId && it.isInvited\n ? it.invitationEmailMessageStatus == \"delivered\"\n ? it.invitedOn\n : it.invitationEmailMessageStatus == \"drop\" || it.invitationEmailMessageStatus == \"dropped\" || it.invitationEmailMessageStatus == \"bounce\" || it.invitationEmailMessageStatus == \"deferred\"\n ? null\n : null\n : null,\n surveyStarted: it.accounts && it.accounts.length > 0 ? (it.accounts.find((it) => it.roleId) ? \"TRUE\" : \"FALSE\") : \"FALSE\",\n endorsedProfileCreated: it.endorsedProfileCreated,\n endorsed: it.endorsedProfileCreated ? \"TRUE\" : \"FALSE\",\n miscellaneous1: it.miscellaneous1,\n miscellaneous2: it.miscellaneous2,\n miscellaneous3: it.miscellaneous3,\n miscellaneous4: it.miscellaneous4,\n miscellaneous5: it.miscellaneous5,\n selfAssessedLastProfileVersion: it.selfAssessedLastProfileVersion,\n selfAssessedLastProfileUpdatedOn: it.selfAssessedLastProfileUpdatedOn,\n selfAssessedLastProfileApproved: it.selfAssessedLastProfileVersion ? (it.selfAssessedLastProfileApproved ? \"TRUE\" : \"FALSE\") : \"\",\n endorsementLastUpdatedVersion: it.endorsementLastUpdatedVersion,\n endorsementLastUpdated: it.endorsementLastUpdated,\n endorsementLatestStatus: it.endorsementLatestStatus,\n skipSelfAssessmentSurvey: it.skipSelfAssessmentSurvey,\n strSkipSelfAssessmentSurvey: it.skipSelfAssessmentSurvey ? \"TRUE\" : \"\",\n roleBasedSurveyId: it.roleBasedSurveyId,\n roleBasedSurvey: it.roleBasedSurvey,\n fte: it.fte,\n adminRoleName: it.adminRoleName,\n };\n });\n };\n\n initData = () => {\n this.props.onConfig.getAdminConfig().then(() => {});\n\n this.props.onPerson.getPersons().then(() => {\n this.setState({\n persons: this.reformPersons(\n this.props.mode == \"TrackProgress\"\n ? this.props.persons.filter((it) => !it.inactive && it.isAssigned && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n : this.props.mode == \"AssignSurvey\"\n ? this.props.persons.filter((it) => !it.inactive && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n : this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n ),\n });\n });\n };\n\n handleRefresh = () => {\n this.setState({ assignMode: false, inviteMode: false, unassignMode: false, exportProfileMode: false, personsSelected: [] });\n this.initData();\n };\n\n handleChangeMode = () => {\n this.setState({ assignMode: false, inviteMode: false, unassignMode: false, exportProfileMode: false, personsSelected: [] });\n\n this.setState({\n persons: this.reformPersons(\n this.props.mode == \"TrackProgress\"\n ? this.props.persons.filter((it) => !it.inactive && it.isAssigned && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n : this.props.mode == \"AssignSurvey\"\n ? this.props.persons.filter((it) => !it.inactive && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n : this.props.persons.sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))\n ),\n });\n };\n\n openPersonDetail = (person) => {\n this.setState({ showDialogUserDetailTs: new Date(), selectedPerson: person });\n };\n\n openUpdatePersonMiscellaneousConfigDialog = () => {\n this.setState({ showDialogUpdatePersonMiscellaneousConfigTs: new Date() });\n };\n\n openGeneratePersonReport = (person) => {\n this.setState({ showDialogUserReportTs: new Date(), selectedPerson: person });\n };\n\n personRolesUpdated = (personId, roles) => {\n const persons = this.state.persons;\n\n this.setState({ persons: [...persons] });\n };\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n handleExportIndividuals = () => {\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n if (this.props.mode == \"ManageUser\") {\n this.props.onPerson.exportPersonsDataExcel(timezoneOffset).then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `ExportIndividuals_${strToday}.xlsx`);\n }\n }\n });\n } else if (this.props.mode == \"TrackProgress\") {\n this.props.onPerson.exportPersonsAssessmentProgressDataExcel(timezoneOffset).then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `PaticipantAssessmentProgress_${strToday}.xlsx`);\n }\n }\n });\n }\n };\n\n handleImportIndividuals = () => {\n this.setState({ showDialogTs: new Date() });\n };\n\n handleAddNew = () => {\n this.setState({ showDialogNewUserTs: new Date() });\n };\n\n handleDeletePerson = (person) => {\n this.setState({ deletedPerson: person, showDeletePersonFirstConfirmationDialog: true });\n };\n\n handleConfirmDeletePersonFirstConfirmation = () => {\n this.setState({ showDeletePersonFirstConfirmationDialog: false, showDeletePersonSecondConfirmationDialog: true });\n };\n\n togleDeletePersonFirstConfirmationModal = () => {\n const showDeletePersonFirstConfirmationDialog = this.state.showDeletePersonFirstConfirmationDialog;\n this.setState({ showDeletePersonFirstConfirmationDialog: !showDeletePersonFirstConfirmationDialog });\n };\n\n renderDeletePersonFirstConfirmation = () => {\n return (\n \n Delete Person Confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmDeletePersonFirstConfirmation();\n }}\n >\n OK\n \n \n \n
\n );\n };\n\n handleConfirmDeletePersonSecondConfirmation = () => {\n const person = this.state.deletedPerson;\n if (person) {\n this.setState({ isUpdating: true });\n\n this.props.onPerson.deletePerson(person.id).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.generateAlert(\"success\", \"Delete person success.\");\n this.handleRefresh();\n this.setState({ showDeletePersonSecondConfirmationDialog: false });\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n }\n };\n\n togleDeletePersonSecondConfirmationModal = () => {\n const showDeletePersonSecondConfirmationDialog = this.state.showDeletePersonSecondConfirmationDialog;\n this.setState({ showDeletePersonSecondConfirmationDialog: !showDeletePersonSecondConfirmationDialog });\n };\n\n renderDeletePersonSecondConfirmation = () => {\n return (\n \n Delete Person Confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmDeletePersonSecondConfirmation();\n }}\n disabled={this.state.isUpdating}\n >\n OK\n \n \n \n
\n );\n };\n\n toFixedIfNecessary = (value, dp) => {\n return +parseFloat(value).toFixed(dp);\n };\n\n handleFilterAssign = () => {\n const persons = this.reformPersons(this.props.persons);\n\n this.setState({\n assignMode: true,\n unassignMode: false,\n inviteMode: false,\n persons: [...persons.filter((it) => !it.isAssigned && !it.endorsedProfileCreated && !it.inactive && (!it.roles || (it.roles && it.roles.length == 0) || (it.roles && it.roles.some((it) => it.role == \"User\"))))],\n });\n };\n\n handleFilterUnAssign = () => {\n const persons = this.reformPersons(this.props.persons);\n\n this.setState({\n unassignMode: true,\n assignMode: false,\n inviteMode: false,\n persons: [...persons.filter((it) => it.isAssigned && !it.inactive && it.accounts && !it.accounts.some((it) => it.roleId) && (!it.roles || (it.roles && it.roles.length == 0) || (it.roles && it.roles.some((it) => it.role == \"User\"))))],\n });\n };\n\n handleFilterInvite = () => {\n const persons = this.reformPersons(this.props.persons);\n const checkShowInvited = this.state.checkShowInvited;\n\n this.setState({\n assignMode: false,\n unassignMode: false,\n inviteMode: true,\n persons: [...persons.filter((it) => (!it.isInvited || checkShowInvited) && it.isAssigned && !it.inactive && (!it.roles || (it.roles && it.roles.length == 0) || (it.roles && it.roles.some((it) => it.role == \"User\"))))],\n personsSelected: [],\n });\n };\n\n handleCancelAssignInvite = () => {\n const persons = this.reformPersons(this.props.persons);\n\n this.setState({\n assignMode: false,\n unassignMode: false,\n inviteMode: false,\n persons: [...persons.filter((it) => !it.inactive && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))],\n personsSelected: [],\n });\n };\n\n handleProcessAssignInvite = () => {\n this.setState({ showAssignInviteConfirmationDialog: true });\n };\n\n handleRowClick = (row) => {\n const persons = this.state.persons;\n const updatedData = persons.find((it) => it.id == row.id);\n updatedData.toggleSelected = !updatedData.toggleSelected;\n\n this.setState({ persons: [...persons], personsSelected: persons.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleSelectAll = () => {\n const { persons, searchKeyword, columnSearchKeywords } = this.state;\n let selectAll = false;\n\n const filtered = this.filterArray(persons, searchKeyword, this.searchProperties(), columnSearchKeywords);\n\n if (filtered.filter((it) => it.toggleSelected).length == 0) {\n selectAll = true;\n } else if (filtered.filter((it) => !it.toggleSelected).length == 0) {\n selectAll = false;\n } else {\n selectAll = true;\n }\n\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n if (selectAll) {\n persons.forEach((it) => {\n if (filtered.find((f) => f.id == it.id)) {\n it.toggleSelected = true;\n }\n });\n }\n\n this.setState({ persons: [...persons], personsSelected: persons.filter((it) => it.toggleSelected).map((row) => row.id) });\n };\n\n handleClearSelection = () => {\n const persons = this.state.persons;\n\n persons.forEach((it) => {\n it.toggleSelected = false;\n });\n\n this.setState({ persons: [...persons] });\n };\n\n togleAssignInviteConfirmationDialog = () => {\n const showAssignInviteConfirmationDialog = this.state.showAssignInviteConfirmationDialog;\n this.setState({ showAssignInviteConfirmationDialog: !showAssignInviteConfirmationDialog });\n };\n\n handleConfirmAssignInvite = () => {\n const { assignMode, inviteMode, unassignMode, personsSelected } = this.state;\n this.setState({ isUpdating: true });\n\n Promise.all([assignMode ? this.props.onPerson.assignPersons(personsSelected) : unassignMode ? this.props.onPerson.unassignPersons(personsSelected) : this.props.onPerson.invitePersons(personsSelected)]).then(() => {\n if (!this.props.isUpdating) {\n if (!this.props.personsError) {\n this.setState({ showAssignInviteConfirmationDialog: false });\n if (assignMode) {\n this.setState({ showContinueToInviteDialog: true });\n } else {\n if (inviteMode) {\n this.generateAlert(\"success\", `Invitations sent successfully.`);\n } else {\n this.generateAlert(\"success\", `${inviteMode ? \"Invite\" : \"Un-Assign\"} persons success.`);\n }\n\n this.setState({\n persons: [...this.reformPersons(this.props.persons)],\n assignMode: false,\n inviteMode: false,\n unassignMode: false,\n personsSelected: [],\n });\n }\n\n if (this.props.mode == \"AssignSurvey\" && (assignMode || unassignMode)) {\n this.props.onConfig.getAdminConfig().then(() => {});\n }\n } else {\n this.generateAlert(\"danger\", this.props.personsError.errData.Message);\n }\n }\n\n this.setState({ isUpdating: this.props.isUpdating });\n });\n };\n\n renderAssignInviteConfirmationDialog = () => {\n const { assignMode, unassignMode, inviteMode } = this.state;\n\n return (\n \n {`${assignMode ? \"Assign\" : unassignMode ? \"Un-Assign\" : \"Invite\"} Participants Confirmation`}\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmAssignInvite();\n }}\n disabled={this.state.isUpdating}\n >\n OK\n \n \n \n
\n );\n };\n\n togleContinueToInviteDialog = () => {\n const showContinueToInviteDialog = this.state.showContinueToInviteDialog;\n this.setState({ showContinueToInviteDialog: !showContinueToInviteDialog });\n };\n\n closeContinueToInviteDialog = () => {\n this.setState({\n persons: this.reformPersons(this.props.persons),\n assignMode: false,\n inviteMode: false,\n unassignMode: false,\n personsSelected: [],\n showContinueToInviteDialog: false,\n });\n };\n\n handleContinueToInvite = () => {\n const personsSelected = this.state.personsSelected;\n const persons = this.reformPersons(this.props.persons).filter((it) => !it.isInvited && it.isAssigned && !it.inactive && (!it.roles || (it.roles && it.roles.length == 0) || (it.roles && it.roles.some((it) => it.role == \"User\"))));\n\n if (personsSelected) {\n personsSelected.forEach((it) => {\n const personSelected = persons.find((p) => p.id == it);\n if (personSelected) {\n personSelected.toggleSelected = true;\n }\n });\n }\n\n this.setState({\n persons: [...persons],\n assignMode: false,\n inviteMode: true,\n unassignMode: false,\n showContinueToInviteDialog: false,\n });\n };\n\n renderContinueToInviteDialog = () => {\n return (\n \n Continue to invite participants\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleContinueToInvite();\n }}\n >\n Yes\n \n \n \n
\n );\n };\n\n handleShowAllInviteChanged = () => {\n const checkShowInvited = this.state.checkShowInvited;\n this.setState({ checkShowInvited: !checkShowInvited }, () => {\n this.handleFilterInvite();\n });\n };\n\n showMessageReason = (reason) => {\n alert(reason);\n };\n\n handleShowColumnSettings = () => {\n const showColumnSettings = this.state.showColumnSettings;\n\n this.setState({ showColumnSettings: !showColumnSettings });\n };\n\n onTableFilterChange = (e, searchType) => {\n let columnSearchKeywords = this.state.columnSearchKeywords;\n if (!columnSearchKeywords) {\n columnSearchKeywords = [];\n }\n\n if (columnSearchKeywords.find((it) => it.name == e.target.name)) {\n let columnSearchKeyword = columnSearchKeywords.find((it) => it.name == e.target.name);\n columnSearchKeyword.value = e.target.value;\n } else {\n columnSearchKeywords.push({\n name: e.target.name,\n value: e.target.value,\n searchType,\n });\n }\n\n this.setState({ columnSearchKeywords });\n };\n\n handleExportProfiles = () => {\n this.setState({\n exportProfileMode: true,\n personsSelected: [],\n persons: this.reformPersons(this.props.persons.filter((it) => it.percentage == 1 && !it.inactive && it.isAssigned && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n };\n\n handleProcessExportProfiles = () => {\n const personsSelected = this.state.personsSelected;\n\n this.setState({ isUpdating: true });\n\n this.props.onPerson.exportPersonsProfiles(personsSelected).then(() => {\n if (!this.props.loadingPrint && !this.props.personsError) {\n if (this.props.printData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.printData, `PersonProfiles_${strToday}.json`);\n }\n\n this.setState({\n exportProfileMode: false,\n personsSelected: [],\n persons: this.reformPersons(this.props.persons.filter((it) => !it.inactive && it.isAssigned && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n }\n\n this.setState({ isUpdating: this.props.loadingPrint });\n });\n };\n\n handleCancelExportProfiles = () => {\n this.setState({\n exportProfileMode: false,\n personsSelected: [],\n persons: this.reformPersons(this.props.persons.filter((it) => !it.inactive && it.isAssigned && it.roles.some((r) => r.role == \"User\")).sort((a, b) => (`${a.firstName} ${a.lastName}` > `${b.firstName} ${b.lastName}` ? 1 : -1))),\n });\n };\n\n handleImportProfiles = () => {\n this.setState({ showDialogImportProfileTs: new Date() });\n };\n\n handleUpdatePersonAdminRoleName = (personId, updatedAdminRoleName) => {\n const { persons } = this.state;\n const person = persons.find((it) => it.id == personId);\n if (person) {\n person.adminRoleName = updatedAdminRoleName;\n\n this.setState({ persons: [...persons], selectedPerson: person });\n }\n };\n\n render() {\n const { persons, searchKeyword, columnSearchKeywords } = this.state;\n const { config } = this.props;\n\n const pageAssignments = this.props.pageAssignments;\n let manageUserPageAssignment = null;\n let assignUserPageAssignment = null;\n let trackProgressPageAssignment = null;\n\n if (pageAssignments.find((it) => it.pageName == \"Manage Users\")) {\n manageUserPageAssignment = pageAssignments.find((it) => it.pageName == \"Manage Users\");\n }\n\n if (pageAssignments.find((it) => it.pageName == \"Assign Participants\")) {\n assignUserPageAssignment = pageAssignments.find((it) => it.pageName == \"Assign Participants\");\n }\n\n if (pageAssignments.find((it) => it.pageName == \"Track Participant Progress\")) {\n trackProgressPageAssignment = pageAssignments.find((it) => it.pageName == \"Track Participant Progress\");\n }\n\n let allowSetAdminRole = false;\n if (manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Set Admin Role\" && it.allow == true)) {\n allowSetAdminRole = true;\n }\n\n const mode = this.props.mode;\n const openPersonDetail = this.openPersonDetail;\n const openGeneratePersonReport = this.openGeneratePersonReport;\n const personRolesUpdated = this.personRolesUpdated;\n const handleDeletePerson = this.handleDeletePerson;\n const toFixedIfNecessary = this.toFixedIfNecessary;\n const generateAlert = this.generateAlert;\n const showMessageReason = this.showMessageReason;\n const onTableFilterChange = this.onTableFilterChange;\n\n const handleRowClick = this.handleRowClick;\n const handleSelectAll = this.handleSelectAll;\n\n const selectableRows = (mode == \"AssignSurvey\" && (this.state.assignMode || this.state.unassignMode || this.state.inviteMode)) || this.state.exportProfileMode ? true : false;\n const filtered = this.filterArray(persons, searchKeyword, this.searchProperties(), columnSearchKeywords);\n\n const surveyStartedSort = (rowA, rowB) => {\n let startedA = \"FALSE\";\n let startedB = \"FALSE\";\n\n if (rowA.accounts && rowA.accounts.length > 0) {\n const account = rowA.accounts.sort((b, a) => new Date(a.createdOn) - new Date(b.createdOn))[0];\n if (account.roleId) {\n startedA = \"TRUE\";\n }\n }\n\n if (rowB.accounts && rowB.accounts.length > 0) {\n const account = rowB.accounts.sort((b, a) => new Date(a.createdOn) - new Date(b.createdOn))[0];\n if (account.roleId) {\n startedB = \"TRUE\";\n }\n }\n\n if (startedA > startedB) {\n return 1;\n }\n\n if (startedB > startedA) {\n return -1;\n }\n\n return 0;\n };\n\n const invitedDateSort = (rowA, rowB) => {\n if (new Date(rowA.invitedOn) > new Date(rowB.invitedOn)) {\n return 1;\n }\n\n if (new Date(rowB.invitedOn) > new Date(rowA.invitedOn)) {\n return -1;\n }\n\n return 0;\n };\n\n const invitedSentDateSort = (rowA, rowB) => {\n if (new Date(rowA.invitedSentOn) > new Date(rowB.invitedSentOn)) {\n return 1;\n }\n\n if (new Date(rowB.invitedSentOn) > new Date(rowA.invitedSentOn)) {\n return -1;\n }\n\n return 0;\n };\n\n const selfAssessedLastProfileUpdatedOnSort = (rowA, rowB) => {\n if (new Date(rowA.selfAssessedLastProfileUpdatedOn) > new Date(rowB.selfAssessedLastProfileUpdatedOn)) {\n return 1;\n }\n\n if (new Date(rowB.selfAssessedLastProfileUpdatedOn) > new Date(rowA.selfAssessedLastProfileUpdatedOn)) {\n return -1;\n }\n\n return 0;\n };\n\n const endorsementLastUpdatedSort = (rowA, rowB) => {\n if (new Date(rowA.endorsementLastUpdated) > new Date(rowB.endorsementLastUpdated)) {\n return 1;\n }\n\n if (new Date(rowB.endorsementLastUpdated) > new Date(rowA.endorsementLastUpdated)) {\n return -1;\n }\n\n return 0;\n };\n\n const leaveOnSort = (rowA, rowB) => {\n if (new Date(rowA.leaveOn) > new Date(rowB.leaveOn)) {\n return 1;\n }\n\n if (new Date(rowB.leaveOn) > new Date(rowA.leaveOn)) {\n return -1;\n }\n\n return 0;\n };\n\n const candidateSort = (rowA, rowB) => {\n let candidateA = rowA.isCandidate ? \"TRUE\" : \"FALSE\";\n let candidateB = rowB.isCandidate ? \"TRUE\" : \"FALSE\";\n\n if (candidateA > candidateB) {\n return 1;\n }\n\n if (candidateB > candidateA) {\n return -1;\n }\n\n return 0;\n };\n\n const contractorSort = (rowA, rowB) => {\n let contractorA = rowA.isContractor ? \"TRUE\" : \"FALSE\";\n let contractorB = rowB.isContractor ? \"TRUE\" : \"FALSE\";\n\n if (contractorA > contractorB) {\n return 1;\n }\n\n if (contractorB > contractorA) {\n return -1;\n }\n\n return 0;\n };\n\n const mentorIneligibleSort = (rowA, rowB) => {\n let mentorIneligibleA = rowA.isMentorIneligible ? \"TRUE\" : \"FALSE\";\n let mentorIneligibleB = rowB.isMentorIneligible ? \"TRUE\" : \"FALSE\";\n\n if (mentorIneligibleA > mentorIneligibleB) {\n return 1;\n }\n\n if (mentorIneligibleB > mentorIneligibleA) {\n return -1;\n }\n\n return 0;\n };\n\n const endorsedProfileCreatedSort = (rowA, rowB) => {\n let startedA = \"FALSE\";\n let startedB = \"FALSE\";\n\n if (rowA.endorsedProfileCreated) {\n startedA = \"TRUE\";\n }\n\n if (rowB.endorsedProfileCreated) {\n startedB = \"TRUE\";\n }\n\n if (startedA > startedB) {\n return 1;\n }\n\n if (startedB > startedA) {\n return -1;\n }\n\n return 0;\n };\n\n const endorsementLatestStatusSort = (rowA, rowB) => {\n let statusA = rowA.endorsementLatestStatus ? rowA.endorsementLatestStatus : rowA.endorsementLastUpdatedVersion ? \"1\" : \"\";\n let statusB = rowB.endorsementLatestStatus ? rowB.endorsementLatestStatus : rowB.endorsementLastUpdatedVersion ? \"1\" : \"\";\n\n if (statusA > statusB) {\n return 1;\n }\n\n if (statusB > statusA) {\n return -1;\n }\n\n return 0;\n };\n\n const pageName = this.props.mode == \"ManageUser\" ? \"Manage Users\" : this.props.mode == \"AssignSurvey\" ? \"Assign Participants\" : \"Track Participant Progress\";\n const columnDisplaySettings = this.props.columnDisplaySettings ? this.props.columnDisplaySettings.filter((it) => it.pageName == pageName) : [];\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n it.toggleSelected).length == 0 ? faSquare : filtered.filter((it) => !it.toggleSelected).length == 0 ? faSquareCheck : faSquareMinus}\n style={{ cursor: \"pointer\", color: filtered.filter((it) => it.toggleSelected).length == 0 ? \"#8f8f9d\" : \"#007bff\" }}\n size=\"lg\"\n onClick={() => handleSelectAll()}\n />\n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"80px\",\n center: true,\n format: function (row, index) {\n return (\n
\n handleRowClick(row)} />\n
\n );\n },\n omit: !selectableRows,\n },\n {\n id: \"lastUpdatedOn\",\n name: \"Action\",\n selector: (row) => row.lastUpdatedOn,\n sortable: false,\n width: \"100px\",\n center: true,\n format: function (row, index) {\n return (\n
\n openPersonDetail(row)} />\n \n Person Detail\n \n {row.inactive && manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Delete\" && it.allow == true) && (\n \n    \n handleDeletePerson(row)} />\n \n Delete Person\n \n \n )}\n {row.percentage >= 1 && (\n \n    \n openGeneratePersonReport(row)} />\n \n Generate profile reports\n \n \n )}\n
\n );\n },\n omit: mode != \"ManageUser\",\n },\n {\n id: \"inactive\",\n name: (\n
\n Active\n
\n it.name == \"active\") ? columnSearchKeywords.find((it) => it.name == \"active\").value : \"\"} onChange={(e) => onTableFilterChange(e, \"startsWith\")} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.inactive,\n sortable: true,\n width: \"90px\",\n format: function (row, index) {\n return row.inactive ? \"Inactive\" : \"Active\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"inactive\") ? !columnDisplaySettings.find((it) => it.columnName == \"inactive\").visible : true,\n },\n {\n id: \"email\",\n name: (\n
\n Email Address\n
\n it.name == \"email\") ? columnSearchKeywords.find((it) => it.name == \"email\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.email,\n sortable: true,\n width: \"250px\",\n wrap: true,\n format: function (row, index) {\n const value = row.email;\n return mode == \"AssignSurvey\" || mode == \"TrackProgress\" ? (\n selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n )\n ) : (\n \n openPersonDetail(row)}>\n {value}\n \n \n Person Detail\n \n \n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"email\") ? !columnDisplaySettings.find((it) => it.columnName == \"email\").visible : true,\n },\n {\n id: \"firstName\",\n name: (\n
\n First\n
\n it.name == \"firstName\") ? columnSearchKeywords.find((it) => it.name == \"firstName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.firstName,\n sortable: true,\n width: \"150px\",\n format: function (row, index) {\n const value = row.firstName;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"firstName\") ? !columnDisplaySettings.find((it) => it.columnName == \"firstName\").visible : true,\n },\n {\n id: \"lastName\",\n name: (\n
\n Last\n
\n it.name == \"lastName\") ? columnSearchKeywords.find((it) => it.name == \"lastName\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.lastName,\n sortable: true,\n width: \"150px\",\n format: function (row, index) {\n const value = row.lastName;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"lastName\") ? !columnDisplaySettings.find((it) => it.columnName == \"lastName\").visible : true,\n },\n {\n id: \"salutation\",\n name: (\n
\n Preferred\n
\n it.name == \"salutation\") ? columnSearchKeywords.find((it) => it.name == \"salutation\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.salutation,\n sortable: true,\n width: \"200px\",\n wrap: true,\n format: function (row, index) {\n const value = row.salutation;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"salutation\") ? !columnDisplaySettings.find((it) => it.columnName == \"salutation\").visible : true,\n },\n {\n id: \"position\",\n name: (\n
\n Position\n
\n it.name == \"position\") ? columnSearchKeywords.find((it) => it.name == \"position\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.position,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"position\") ? !columnDisplaySettings.find((it) => it.columnName == \"position\").visible : true,\n },\n {\n id: \"team\",\n name: (\n
\n Team\n
\n it.name == \"team\") ? columnSearchKeywords.find((it) => it.name == \"team\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.team,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"team\") ? !columnDisplaySettings.find((it) => it.columnName == \"team\").visible : true,\n },\n {\n id: \"strRoles\",\n name: (\n
\n Roles\n
\n it.name == \"strRoles\") ? columnSearchKeywords.find((it) => it.name == \"strRoles\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.strRoles,\n sortable: true,\n width: \"100px\",\n format: function (row, index) {\n return (\n \n \n \n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"strRoles\") ? !columnDisplaySettings.find((it) => it.columnName == \"strRoles\").visible : true,\n },\n {\n id: \"totalQuestions\",\n name: (\n
\n Progress\n
\n it.name == \"progress\") ? columnSearchKeywords.find((it) => it.name == \"progress\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.totalQuestions,\n sortable: true,\n width: \"120px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.totalQuestions ? `${row.answeredQuestions} / ${row.totalQuestions}` : \"0 / 0\"}\n \n ) : row.totalQuestions ? (\n `${row.answeredQuestions} / ${row.totalQuestions}`\n ) : (\n \"0 / 0\"\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"totalQuestions\") ? !columnDisplaySettings.find((it) => it.columnName == \"totalQuestions\").visible : true,\n },\n {\n id: \"answeredQuestions\",\n name: (\n
\n %\n
\n it.name == \"percentageHundred\") ? columnSearchKeywords.find((it) => it.name == \"percentageHundred\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.percentage,\n sortable: true,\n width: \"80px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.percentage ? `${toFixedIfNecessary(row.percentage * 100, 2)}%` : \"0%\"}\n \n ) : row.percentage ? (\n `${toFixedIfNecessary(row.percentage * 100, 2)}%`\n ) : (\n \"0%\"\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"answeredQuestions\") ? !columnDisplaySettings.find((it) => it.columnName == \"answeredQuestions\").visible : true,\n },\n {\n id: \"totalTimeTaken\",\n name: \"Time taken (mins)\",\n selector: (row) => row.totalTimeTaken,\n sortable: true,\n width: \"100px\",\n format: function (row, index) {\n //return toFixedIfNecessary(row.totalTimeTaken / 60, 2);\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {toFixedIfNecessary(row.totalTimeTaken / 60, 2)}\n \n ) : (\n toFixedIfNecessary(row.totalTimeTaken / 60, 2)\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"totalTimeTaken\") ? !columnDisplaySettings.find((it) => it.columnName == \"totalTimeTaken\").visible : true,\n },\n {\n id: \"isAssigned\",\n name: (\n
\n Assigned\n
\n it.name == \"strAssigned\") ? columnSearchKeywords.find((it) => it.name == \"strAssigned\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isAssigned,\n sortable: true,\n width: \"110px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {row.isAssigned ? \"TRUE\" : \"FALSE\"}\n \n ) : (\n {row.isAssigned ? \"TRUE\" : \"FALSE\"}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"assigned\") ? !columnDisplaySettings.find((it) => it.columnName == \"assigned\").visible : true,\n },\n {\n id: \"isInvited\",\n name: (\n
\n Invited\n
\n it.name == \"strInvited\") ? columnSearchKeywords.find((it) => it.name == \"strInvited\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isInvited,\n sortable: true,\n width: \"110px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {row.isInvited ? \"TRUE\" : \"FALSE\"}\n \n ) : (\n {row.isInvited ? \"TRUE\" : \"FALSE\"}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"invited\") ? !columnDisplaySettings.find((it) => it.columnName == \"invited\").visible : true,\n },\n {\n id: \"messageSent\",\n name: (\n
\n Sent\n
\n it.name == \"messageSent\") ? columnSearchKeywords.find((it) => it.name == \"messageSent\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.messageSent,\n sortable: true,\n width: \"110px\",\n format: function (row, index) {\n return row.invitationEmailMessageId && row.isInvited ? (\n row.invitationEmailMessageStatus == \"delivered\" ? (\n \"TRUE\"\n ) : row.invitationEmailMessageStatus == \"dropped\" || row.invitationEmailMessageStatus == \"drop\" || row.invitationEmailMessageStatus == \"deferred\" || row.invitationEmailMessageStatus == \"bounce\" ? (\n showMessageReason(row.invitationEmailMessageReason)}>\n FALSE\n \n ) : (\n \"\"\n )\n ) : (\n \"\"\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"sent\") ? !columnDisplaySettings.find((it) => it.columnName == \"sent\").visible : true,\n },\n {\n id: \"validatedDate\",\n name: (\n
\n Survey Started\n
\n it.name == \"surveyStarted\") ? columnSearchKeywords.find((it) => it.name == \"surveyStarted\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.validatedDate,\n sortable: true,\n sortFunction: surveyStartedSort,\n width: \"110px\",\n format: function (row, index) {\n let started = false;\n if (row.accounts && row.accounts.length > 0) {\n const account = row.accounts.sort((b, a) => new Date(a.createdOn) - new Date(b.createdOn))[0];\n if (account.roleId) {\n started = true;\n }\n }\n\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {started ? \"TRUE\" : \"FALSE\"}\n \n ) : (\n {started ? \"TRUE\" : \"FALSE\"}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"surveyStarted\") ? !columnDisplaySettings.find((it) => it.columnName == \"surveyStarted\").visible : true,\n },\n {\n id: \"invitedSentOn\",\n name: \"Invited Date\",\n selector: (row) => row.invitedSentOn,\n sortable: true,\n width: \"100px\",\n sortFunction: invitedSentDateSort,\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.invitedSentOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.invitedSentOn))}\n \n ) : (\n row.invitedSentOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.invitedSentOn))\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"invitedSentDate\") ? !columnDisplaySettings.find((it) => it.columnName == \"invitedSentDate\").visible : true,\n },\n {\n id: \"endorsedProfileCreated\",\n name: (\n
\n Endorsed\n
\n it.name == \"endorsed\") ? columnSearchKeywords.find((it) => it.name == \"endorsed\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.endorsedProfileCreated,\n sortable: true,\n sortFunction: endorsedProfileCreatedSort,\n width: \"110px\",\n format: function (row, index) {\n let started = row.endorsedProfileCreated;\n\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {started ? \"TRUE\" : \"FALSE\"}\n \n ) : (\n {started ? \"TRUE\" : \"FALSE\"}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"endorsed\") ? !columnDisplaySettings.find((it) => it.columnName == \"endorsed\").visible : true,\n },\n {\n id: \"invitedOn\",\n name: \"Invited Date\",\n selector: (row) => row.invitedOn,\n sortable: true,\n width: \"100px\",\n sortFunction: invitedDateSort,\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.invitedOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.invitedOn))}\n \n ) : (\n row.invitedOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.invitedOn))\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"invitedDate\") ? !columnDisplaySettings.find((it) => it.columnName == \"invitedDate\").visible : true,\n },\n {\n id: \"isCandidate\",\n name: (\n
\n Candidate\n
\n it.name == \"strCandidate\") ? columnSearchKeywords.find((it) => it.name == \"strCandidate\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.isCandidate,\n sortable: true,\n sortFunction: candidateSort,\n width: \"120px\",\n format: function (row, index) {\n return row.isCandidate ? \"TRUE\" : \"\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"candidate\") ? !columnDisplaySettings.find((it) => it.columnName == \"candidate\").visible : true,\n },\n {\n id: \"isContractor\",\n name: (\n
\n Contractor\n
\n it.name == \"strContractor\") ? columnSearchKeywords.find((it) => it.name == \"strContractor\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.isContractor,\n sortable: true,\n sortFunction: contractorSort,\n width: \"120px\",\n format: function (row, index) {\n return row.isContractor ? \"TRUE\" : \"\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"contractor\") ? !columnDisplaySettings.find((it) => it.columnName == \"contractor\").visible : true,\n },\n {\n id: \"isMentorIneligible\",\n name: (\n
\n Mentor Ineligible\n
\n it.name == \"strMentorIneligible\") ? columnSearchKeywords.find((it) => it.name == \"strMentorIneligible\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.isMentorIneligible,\n sortable: true,\n sortFunction: mentorIneligibleSort,\n width: \"120px\",\n format: function (row, index) {\n return row.isMentorIneligible ? \"TRUE\" : \"\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"mentorIneligible\") ? !columnDisplaySettings.find((it) => it.columnName == \"mentorIneligible\").visible : true,\n },\n {\n id: \"selfAssessedLastProfileVersion\",\n name: (\n
\n SelfAssessed Version\n
\n it.name == \"selfAssessedLastProfileVersion\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedLastProfileVersion\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedLastProfileVersion,\n sortable: true,\n width: \"120px\",\n omit: columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileVersion\") ? !columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileVersion\").visible : true,\n },\n {\n id: \"selfAssessedLastProfileUpdatedOn\",\n name: \"SelfAssessed Last Updated\",\n selector: (row) => row.selfAssessedLastProfileUpdatedOn,\n sortable: true,\n width: \"120px\",\n sortFunction: selfAssessedLastProfileUpdatedOnSort,\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.selfAssessedLastProfileUpdatedOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.selfAssessedLastProfileUpdatedOn))}\n \n ) : (\n row.selfAssessedLastProfileUpdatedOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.selfAssessedLastProfileUpdatedOn))\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileUpdatedOn\") ? !columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileUpdatedOn\").visible : true,\n },\n {\n id: \"selfAssessedLastProfileApproved\",\n name: (\n
\n SelfAssessed Approved\n
\n it.name == \"selfAssessedLastProfileApproved\") ? columnSearchKeywords.find((it) => it.name == \"selfAssessedLastProfileApproved\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.selfAssessedLastProfileApproved,\n sortable: true,\n width: \"120px\",\n format: function (row, index) {\n let approved = row.selfAssessedLastProfileApproved;\n\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {approved}\n \n ) : (\n {approved}\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileApproved\") ? !columnDisplaySettings.find((it) => it.columnName == \"selfAssessedLastProfileApproved\").visible : true,\n },\n {\n id: \"endorsementLastUpdatedVersion\",\n name: (\n
\n Endorsed Version\n
\n it.name == \"endorsementLastUpdatedVersion\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLastUpdatedVersion\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLastUpdatedVersion,\n sortable: true,\n width: \"120px\",\n omit: columnDisplaySettings.find((it) => it.columnName == \"endorsementLastUpdatedVersion\") ? !columnDisplaySettings.find((it) => it.columnName == \"endorsementLastUpdatedVersion\").visible : true,\n },\n {\n id: \"endorsementLastUpdated\",\n name: \"Endorsed Last Updated\",\n selector: (row) => row.endorsementLastUpdated,\n sortable: true,\n width: \"120px\",\n sortFunction: endorsementLastUpdatedSort,\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.endorsementLastUpdated &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.endorsementLastUpdated))}\n \n ) : (\n row.endorsementLastUpdated &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.endorsementLastUpdated))\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"endorsementLastUpdated\") ? !columnDisplaySettings.find((it) => it.columnName == \"endorsementLastUpdated\").visible : true,\n },\n {\n id: \"endorsementLatestStatus\",\n name: (\n
\n Endorsed Status\n
\n it.name == \"endorsementLatestStatus\") ? columnSearchKeywords.find((it) => it.name == \"endorsementLatestStatus\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.endorsementLatestStatus,\n sortable: true,\n sortFunction: endorsementLatestStatusSort,\n width: \"150px\",\n format: function (row, index) {\n return row.endorsementLatestStatus;\n },\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"endorsementLatestStatus\") ? !columnDisplaySettings.find((it) => it.columnName == \"endorsementLatestStatus\").visible : true,\n },\n {\n id: \"location\",\n name: (\n
\n Location\n
\n it.name == \"location\") ? columnSearchKeywords.find((it) => it.name == \"location\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.location,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"location\") ? !columnDisplaySettings.find((it) => it.columnName == \"location\").visible : true,\n },\n {\n id: \"country\",\n name: (\n
\n Country\n
\n it.name == \"country\") ? columnSearchKeywords.find((it) => it.name == \"country\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.country,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"country\") ? !columnDisplaySettings.find((it) => it.columnName == \"country\").visible : true,\n },\n {\n id: \"other\",\n name: (\n
\n Other\n
\n it.name == \"other\") ? columnSearchKeywords.find((it) => it.name == \"other\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.other,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"other\") ? !columnDisplaySettings.find((it) => it.columnName == \"other\").visible : true,\n },\n {\n id: \"leaveOn\",\n name: \"LeaveOn\",\n selector: (row) => row.leaveOn,\n sortable: true,\n width: \"120px\",\n sortFunction: leaveOnSort,\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ cursor: \"default\" }}>\n {row.leaveOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.leaveOn))}\n \n ) : (\n row.leaveOn &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.leaveOn))\n );\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"leaveOn\") ? !columnDisplaySettings.find((it) => it.columnName == \"leaveOn\").visible : true,\n },\n {\n id: \"department\",\n name: (\n
\n Department\n
\n it.name == \"department\") ? columnSearchKeywords.find((it) => it.name == \"department\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.department,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"department\") ? !columnDisplaySettings.find((it) => it.columnName == \"department\").visible : true,\n },\n {\n id: \"businessUnit\",\n name: (\n
\n Business Unit\n
\n it.name == \"businessUnit\") ? columnSearchKeywords.find((it) => it.name == \"businessUnit\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.businessUnit,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"businessUnit\") ? !columnDisplaySettings.find((it) => it.columnName == \"businessUnit\").visible : true,\n },\n {\n id: \"division\",\n name: (\n
\n Division\n
\n it.name == \"division\") ? columnSearchKeywords.find((it) => it.name == \"division\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.division,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"division\") ? !columnDisplaySettings.find((it) => it.columnName == \"division\").visible : true,\n },\n {\n id: \"territory\",\n name: (\n
\n Territory\n
\n it.name == \"territory\") ? columnSearchKeywords.find((it) => it.name == \"territory\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.territory,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"territory\") ? !columnDisplaySettings.find((it) => it.columnName == \"territory\").visible : true,\n },\n {\n id: \"costCentre\",\n name: (\n
\n Cost Centre\n
\n it.name == \"costCentre\") ? columnSearchKeywords.find((it) => it.name == \"costCentre\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.costCentre,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"costCentre\") ? !columnDisplaySettings.find((it) => it.columnName == \"costCentre\").visible : true,\n },\n {\n id: \"supervisor\",\n name: (\n
\n Supervisor\n
\n it.name == \"supervisor\") ? columnSearchKeywords.find((it) => it.name == \"supervisor\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.supervisor,\n sortable: true,\n width: \"150px\",\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"supervisor\") ? !columnDisplaySettings.find((it) => it.columnName == \"supervisor\").visible : true,\n },\n {\n id: \"skipSelfAssessmentSurvey\",\n name: (\n
\n Skip Survey\n
\n it.name == \"strSkipSelfAssessmentSurvey\") ? columnSearchKeywords.find((it) => it.name == \"strSkipSelfAssessmentSurvey\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.skipSelfAssessmentSurvey,\n sortable: true,\n width: \"110px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {row.skipSelfAssessmentSurvey ? \"TRUE\" : \"FALSE\"}\n \n ) : (\n {row.skipSelfAssessmentSurvey ? \"TRUE\" : \"FALSE\"}\n );\n },\n omit: !(config && config.allowSkipSelfAssessmentSurvey) || (columnDisplaySettings.find((it) => it.columnName == \"skipSelfAssessmentSurvey\") ? !columnDisplaySettings.find((it) => it.columnName == \"skipSelfAssessmentSurvey\").visible : true),\n },\n {\n id: \"roleBasedSurveyId\",\n name: (\n
\n Role Based Survey\n
\n it.name == \"roleBasedSurvey\") ? columnSearchKeywords.find((it) => it.name == \"roleBasedSurvey\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.roleBasedSurveyId,\n sortable: true,\n width: \"150px\",\n format: function (row, index) {\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {row.roleBasedSurvey}\n \n ) : (\n {row.roleBasedSurvey}\n );\n },\n wrap: true,\n omit: columnDisplaySettings.find((it) => it.columnName == \"roleBasedSurvey\") ? !columnDisplaySettings.find((it) => it.columnName == \"roleBasedSurvey\").visible : true,\n },\n {\n id: \"fte\",\n name: (\n
\n Fte\n
\n it.name == \"fte\") ? columnSearchKeywords.find((it) => it.name == \"fte\").value : \"\"} onChange={(e) => onTableFilterChange(e)} style={{ width: \"100%\" }} />\n
\n ),\n selector: (row) => row.fte,\n sortable: true,\n width: \"110px\",\n format: function (row, index) {\n return row.fte ? (row.fte % 1 != 0 ? Math.round(row.fte * 100) / 100 : row.fte.toFixed(1)) : \"1.0\";\n },\n omit: columnDisplaySettings.find((it) => it.columnName == \"fte\") ? !columnDisplaySettings.find((it) => it.columnName == \"fte\").visible : true,\n },\n {\n id: \"miscellaneous1\",\n name: (\n
\n {config && config.personMiscellaneous1Enable ? config.personMiscellaneous1Caption : \"Miscellaneous 1\"}\n
\n it.name == \"miscellaneous1\") ? columnSearchKeywords.find((it) => it.name == \"miscellaneous1\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.miscellaneous1,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n const value = row.miscellaneous1;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: config && config.personMiscellaneous1Enable ? (columnDisplaySettings.find((it) => it.columnName == \"miscellaneous1\") ? !columnDisplaySettings.find((it) => it.columnName == \"miscellaneous1\").visible : true) : true,\n },\n {\n id: \"miscellaneous2\",\n name: (\n
\n {config && config.personMiscellaneous2Enable ? config.personMiscellaneous2Caption : \"Miscellaneous 2\"}\n
\n it.name == \"miscellaneous2\") ? columnSearchKeywords.find((it) => it.name == \"miscellaneous2\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.miscellaneous2,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n const value = row.miscellaneous2;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: config && config.personMiscellaneous2Enable ? (columnDisplaySettings.find((it) => it.columnName == \"miscellaneous2\") ? !columnDisplaySettings.find((it) => it.columnName == \"miscellaneous2\").visible : true) : true,\n },\n {\n id: \"miscellaneous3\",\n name: (\n
\n {config && config.personMiscellaneous3Enable ? config.personMiscellaneous3Caption : \"Miscellaneous 3\"}\n
\n it.name == \"miscellaneous3\") ? columnSearchKeywords.find((it) => it.name == \"miscellaneous3\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.miscellaneous3,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n const value = row.miscellaneous3;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: config && config.personMiscellaneous3Enable ? (columnDisplaySettings.find((it) => it.columnName == \"miscellaneous3\") ? !columnDisplaySettings.find((it) => it.columnName == \"miscellaneous3\").visible : true) : true,\n },\n {\n id: \"miscellaneous4\",\n name: (\n
\n {config && config.personMiscellaneous4Enable ? config.personMiscellaneous4Caption : \"Miscellaneous 4\"}\n
\n it.name == \"miscellaneous4\") ? columnSearchKeywords.find((it) => it.name == \"miscellaneous4\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.miscellaneous4,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n const value = row.miscellaneous4;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: config && config.personMiscellaneous4Enable ? (columnDisplaySettings.find((it) => it.columnName == \"miscellaneous4\") ? !columnDisplaySettings.find((it) => it.columnName == \"miscellaneous4\").visible : true) : true,\n },\n {\n id: \"miscellaneous5\",\n name: (\n
\n {config && config.personMiscellaneous5Enable ? config.personMiscellaneous5Caption : \"Miscellaneous 5\"}\n
\n it.name == \"miscellaneous5\") ? columnSearchKeywords.find((it) => it.name == \"miscellaneous5\").value : \"\"}\n onChange={(e) => onTableFilterChange(e)}\n style={{ width: \"100%\" }}\n />\n
\n ),\n selector: (row) => row.miscellaneous5,\n sortable: true,\n width: \"150px\",\n wrap: true,\n format: function (row, index) {\n const value = row.miscellaneous5;\n return selectableRows ? (\n handleRowClick(row)} style={{ wordBreak: \"break-word\", cursor: \"default\" }}>\n {value}\n \n ) : (\n {value}\n );\n },\n omit: config && config.personMiscellaneous5Enable ? (columnDisplaySettings.find((it) => it.columnName == \"miscellaneous5\") ? !columnDisplaySettings.find((it) => it.columnName == \"miscellaneous5\").visible : true) : true,\n },\n ];\n\n return (\n \n \n {this.renderDeletePersonFirstConfirmation()}\n {this.renderDeletePersonSecondConfirmation()}\n {this.renderAssignInviteConfirmationDialog()}\n {this.renderContinueToInviteDialog()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n \n \n \n \n it.operation == \"Edit\" && it.allow == true) ? true : false}\n allowUpdateAccess={manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Update Access Permission\" && it.allow == true) ? true : false}\n allowSetAdminRole={manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Set Admin Role\" && it.allow == true) ? true : false}\n handleUpdatePersonAdminRoleName={this.handleUpdatePersonAdminRoleName}\n >\n \n {this.props.mode == \"AssignSurvey\" ? (\n \n {this.props.config && (\n \n \n ${this.props.config.licenceAllocations} with a renewal date of ${\n this.props.config.renewalDate &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(this.props.config.renewalDate))\n } and you currently have ${this.props.config.liveUsers} live users`,\n }}\n >\n \n \n \n \n \n )}\n \n ) : (\n \"\"\n )}\n
\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword, personsSelected: [] });\n }}\n >\n \n \n {\n this.handleClearSelection();\n this.setState({ searchKeyword: \"\", personsSelected: [] });\n }}\n >\n   \n \n Refresh\n \n   \n {mode == \"ManageUser\" && (\n \n {manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Add\" && it.allow == true) && (\n \n \n Add New\n \n   \n \n )}\n {manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {manageUserPageAssignment && manageUserPageAssignment.operations.find((it) => it.operation == \"Import\" && it.allow == true) && (\n \n \n Import\n \n   \n \n )}\n \n )}\n {mode == \"AssignSurvey\" && (\n \n {!(this.state.assignMode || this.state.unassignMode || this.state.inviteMode) && (\n \n {assignUserPageAssignment && assignUserPageAssignment.operations.find((it) => it.operation == \"Assign Participants\" && it.allow == true) && (\n \n \n Assign\n \n   \n \n )}\n {assignUserPageAssignment && assignUserPageAssignment.operations.find((it) => it.operation == \"Invite Participants\" && it.allow == true) && (\n \n \n Invite\n \n   \n \n )}\n {assignUserPageAssignment && assignUserPageAssignment.operations.find((it) => it.operation == \"Un-Assign Participants\" && it.allow == true) && (\n \n \n Un-Assign\n \n   \n \n )}\n \n )}\n {(this.state.assignMode || this.state.unassignMode || this.state.inviteMode) && (\n \n \n {`Process ${this.state.assignMode ? \"Assign\" : this.state.unassignMode ? \"Un-Assign\" : \"Invite\"}`}\n \n   \n \n Cancel\n \n   \n {this.state.inviteMode && (\n \n {\" \"}\n \n   \n \n )}\n \n )}\n \n )}\n {mode == \"TrackProgress\" && (\n \n {trackProgressPageAssignment && trackProgressPageAssignment.operations.find((it) => it.operation == \"Export\" && it.allow == true) && (\n \n \n Export\n \n   \n \n )}\n {trackProgressPageAssignment && trackProgressPageAssignment.operations.find((it) => it.operation == \"Export Person Profiles\" && it.allow == true) && (\n \n \n Export Person Profiles\n \n   \n {this.state.exportProfileMode && (\n \n \n Process\n \n   \n \n Cancel\n \n   \n \n )}\n \n )}\n {trackProgressPageAssignment && trackProgressPageAssignment.operations.find((it) => it.operation == \"Import Persons and Profiles\" && it.allow == true) && (\n \n \n Import Person Profiles\n \n   \n \n )}\n \n )}\n \n \n Columns\n \n   \n \n {this.props.config && (\n \n \n Additional Columns\n \n   \n \n )}\n \n \n
\n {this.state.showColumnSettings && (\n
\n \n
\n )}\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n\n personsLoading: state.adminPerson.loading,\n personsError: state.adminPerson.error,\n persons: state.adminPerson.persons,\n isUpdating: state.adminPerson.isUpdating,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n\n pageAssignments: state.adminPerson.pageAssignments,\n columnDisplaySettings: state.adminPerson.columnDisplaySettings,\n config: state.config.config,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(adminPersonActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageUser);\n","import * as authActions from \"../../store/actions/authAction\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport NavAdmin from \"../common/NavAdmin\";\nimport NavSecondary from \"../common/NavSecondary\";\nimport { contentTranslator } from \"./../../utils/translatorUtils\";\nimport Admin403Page from \"./Admin403Page\";\nimport AdminBranding from \"./AdminBranding\";\nimport Analytics from \"./Analytics\";\nimport ManageEmailTemplates from \"./ManageEmailTemplates\";\nimport ManageReportTemplates from \"./ManageReportTemplates\";\nimport ManageContent from \"./contents/ManageContent\";\nimport ManageEndorsement from \"./endorsements/ManageEndorsement\";\nimport ManageExtraFramework from \"./extraFramework/ManageExtraFramework\";\nimport ManageJobAssignment from \"./jobAssignment/ManageJobAssignment\";\nimport ManageJob from \"./jobs/ManageJob\";\nimport ManageJobCreate from \"./jobs/ManageJobCreate\";\nimport ManageJobFamily from \"./jobs/ManageJobFamily\";\nimport ManageJobProfile from \"./jobs/ManageJobProfile\";\nimport ManageLor from \"./lor/ManageLor\";\nimport ManageRelationships from \"./relationships/ManageRelationships\";\nimport ManageSelfAssessed from \"./selfAssessed/ManageSelfAssessed\";\nimport ManageProfiles from \"./selfProfiles/ManageProfiles\";\nimport ManageActionLogs from \"./settings/ManageActionLogs\";\nimport ManageSettings from \"./settings/ManageSettings\";\nimport ManageSfiaCredentials from \"./sfiaCredentials/ManageSfiaCredentials\";\nimport ManageSkillAttributes from \"./skillAttributes/ManageSkillAttributes\";\nimport ManageSSOSetting from \"./ssoSetting/ManageSSOSetting\";\nimport ManageActionPromotions from \"./trainings/ManageActionPromotions\";\nimport ManageProviders from \"./trainings/ManageProviders\";\nimport ManageTrainingJobs from \"./trainings/ManageTrainingJobs\";\nimport ManageTrainings from \"./trainings/ManageTrainings\";\nimport ManageUser from \"./users/ManageUser\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Route, Switch } from \"react-router\";\nimport { Col, Container, Modal, ModalBody, Row, Table } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass AdminHome extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n error: null,\n loading: false,\n showFloatingLegend: false,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n localStorage.setItem(\"manageProfileByAdminPopup\", \"FALSE\");\n\n Promise.resolve(this.props.onAuth.myPeopleClearManagedRelationship()).then(() => {});\n }\n\n updateAdminFloatingLegendStatus = (showFloatingLegend) => {\n this.setState({ showFloatingLegend });\n };\n\n renderRotateNotification = () => {\n return (\n this.closeRotateModal()}>\n \n
\n \n
\n PLEASE ROTATE YOUR DEVICE\n
\n (OR CLICK TO CONTINUE)\n
\n
\n
\n );\n };\n\n logoUpdated = () => {\n this.props.logoUpdated();\n };\n\n favIconUpdated = () => {\n this.props.favIconUpdated();\n };\n\n render() {\n const pageAssignments = this.props.pageAssignments;\n\n return (\n \n {this.renderRotateNotification()}\n \n \n \n \n \n \n \n \n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Users\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Participants\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Track Participant Progress\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Analytics\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Approve SelfAssessed\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Relationships\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true) && it.operations.find((it) => it.operation == \"Add\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Requirement Families\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Endorsements and Reports\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Endorsements and Reports\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Create Endorsed from Approved\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {this.props.containerConfig &&\n this.props.containerConfig.showSfiaCertificationAdmin == true &&\n pageAssignments &&\n pageAssignments.find((it) => it.pageName == \"Manage SFIA Credentials and Reports\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Skills and Attributes\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Select Training Providers\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Action List\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {this.props.containerConfig &&\n this.props.containerConfig.enablePromoteAction == true &&\n pageAssignments &&\n pageAssignments.find((it) => it.pageName == \"Manage Action List\" && it.operations.find((it) => it.operation == \"Manage Action Promotions\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Assign Action Requirements\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Features Settings\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Features Settings\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Features Settings\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Email Templates\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Report Templates\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Upload Company Logo\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Page Labels\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && } />}\n {this.props.containerConfig && this.props.containerConfig.showExtraFrameworkAdmin == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage Extra Frameworks\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == false && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage LoR\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {this.props.containerConfig && this.props.containerConfig.eeaFrameworkContainer == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage LoR Category\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n {this.props.containerConfig && this.props.containerConfig.allowManageSSOSetting == true && pageAssignments && pageAssignments.find((it) => it.pageName == \"Manage SSO Setting\" && it.operations.find((it) => it.operation == \"Open\" && it.allow == true)) && (\n } />\n )}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Skills Profile Key\n \n Not Selected\n \n Required\n \n Desirable\n
\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n error: state.auth.error,\n contentTranslations: state.content.contentTranslations,\n pageAssignments: state.adminPerson.pageAssignments,\n language: state.language.language,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AdminHome);\n","import { dismisAlert, generateAlert } from \"../../../src/utils/alertUtils\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport Select from \"react-select\";\nimport { Button, Col, Container, Form, FormGroup, Input, Label, Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"22px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst subHeaderStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"14px\",\n};\n\nclass MySetting extends React.Component {\n static displayName = MySetting.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: false,\n contentLoading: true,\n updateProfile: false,\n alerts: [],\n notificationEnabledOptions: [\n {\n value: true,\n label: \"Yes\",\n },\n {\n value: false,\n label: \"No\",\n },\n ],\n form: {\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n preferredName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n position: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowNotifications: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n activityStatementInterval: {\n validation: {\n required: false,\n },\n value: 30,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n forgetMeProgress: false,\n downloadPersonalDataProgress: false,\n downloadPersonProfileProgress: false,\n activityStatementIntervalOptions: [\n {\n value: 14,\n label: 14,\n },\n {\n value: 30,\n label: 30,\n },\n {\n value: 60,\n label: 60,\n },\n {\n value: 90,\n label: 90,\n },\n {\n value: 365,\n label: 365,\n },\n ],\n updateActivityStatementInterval: false,\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.setState({ loading: true });\n\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaProfile-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: false });\n this.initData();\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: false });\n this.initData();\n });\n }\n }\n\n initData() {\n if (!this.props.currAssessment) {\n this.props.onConfig.getCurrAssessment().then(() => {});\n }\n\n this.setState({ loading: true });\n const { form } = this.state;\n\n this.props.onPerson.getPersonMyProfile().then(() => {\n if (!this.props.loading && this.props.person) {\n const person = this.props.person;\n\n form.firstName.value = person.firstName;\n form.firstName.valid = true;\n form.firstName.isValidFormat = true;\n\n form.lastName.value = person.lastName;\n form.lastName.valid = true;\n form.lastName.isValidFormat = true;\n\n form.preferredName.value = person.salutation;\n form.preferredName.valid = true;\n form.preferredName.isValidFormat = true;\n\n form.allowNotifications.value = person.allowNotifications;\n form.allowNotifications.valid = true;\n form.allowNotifications.isValidFormat = true;\n\n form.position.value = person.position;\n form.position.valid = true;\n form.position.isValidFormat = true;\n\n if (person.activityStatementInterval) {\n form.activityStatementInterval.value = person.activityStatementInterval;\n }\n\n this.setState({ form, isFormValid: true });\n }\n this.setState({ loading: this.props.loading });\n });\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleAllowNotificationChange = (value) => {\n const { form } = this.state;\n form.allowNotifications.value = value;\n\n this.setState({\n form,\n });\n };\n\n handleActivityStatementIntervalChange = (value) => {\n console.log(\"value\", value);\n const { form } = this.state;\n form.activityStatementInterval.value = value;\n\n this.setState({\n form,\n });\n };\n\n handleSubmitUpdate = () => {\n const { form } = this.state;\n\n const person = {\n firstName: this.state.form.firstName.value,\n lastName: this.state.form.lastName.value,\n salutation: this.state.form.preferredName.value,\n allowNotifications: this.state.form.allowNotifications.value,\n position: this.state.form.position.value,\n accountId: null,\n };\n\n this.setState({ updateProfile: true, showLoadingPanel: true, loadingPanelHeader: \"Update profile\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.updatePersonMyProfile(person).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Profile updated\");\n }\n }\n this.setState({ updateProfile: this.props.updating, showLoadingPanel: this.props.updating });\n });\n };\n\n handleSubmitUpdateActivityStatementInterval = () => {\n const { form } = this.state;\n\n this.setState({ updateProfile: true, showLoadingPanel: true, loadingPanelHeader: \"Update activity statement interval\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.updatePersonActivityStatementInterval(form.activityStatementInterval.value).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Activity statement interval updated\");\n }\n }\n this.setState({ updateProfile: this.props.updating, showLoadingPanel: this.props.updating });\n });\n };\n\n handleForgetMe = () => {\n if (window.confirm(this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SettingsGDPRConfirmation\", \"This action will completely ERASE your identity within the system. It CANNOT be recovered once erased. Are you SURE?\"))) {\n this.setState({ forgetMeProgress: true, showLoadingPanel: true, loadingPanelHeader: \"Forget Me\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.forgetMe().then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.onAuth.authLogoutIntended().then(() => {\n this.props.history.push(\"/\");\n });\n }\n }\n });\n }\n };\n\n handleDownloadPersonalData = () => {\n this.setState({ downloadPersonalDataProgress: true, showLoadingPanel: true, loadingPanelHeader: \"Download Personal Data\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onSkillProfile.generatePersonalDataExcel().then(() => {\n if (!this.props.loadingPrint && !this.props.skillProfileError) {\n if (this.props.printData) {\n let firstName = localStorage.getItem(\"firstName\");\n let lastName = localStorage.getItem(\"lastName\");\n\n FileDownload(this.props.printData, firstName && lastName ? `${firstName}${lastName}.xlsx` : \"PersonalData.xlsx\");\n }\n }\n\n this.setState({ downloadPersonalDataProgress: this.props.loadingPrint, showLoadingPanel: this.props.loadingPrint });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n render() {\n const { form } = this.state;\n\n return (\n \n \n {this.renderLoadingPanel()}\n \n

\n \n

\n

\n \n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.currAssessment && this.props.currAssessment.suppressActivityNotification == false && this.props.currAssessment.allowUserSuppressActivityNotification == true && (\n \n \n \n it.value == form.activityStatementInterval.value)} onChange={(value) => this.handleActivityStatementIntervalChange(value.value)} options={this.state.activityStatementIntervalOptions} />\n \n \n \n \n \n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n updating: state.person.updating,\n person: state.person.person,\n\n loadingExport: state.person.loadingExport,\n exportData: state.person.exportData,\n\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n\n loadingPrint: state.skillProfile.loadingPrint,\n printData: state.skillProfile.printData,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n currAssessment: state.config.currAssessment,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MySetting);\n","import React from \"react\";\nimport { Redirect, Route } from \"react-router-dom\";\n\nconst LoggedInRoute = ({ component: Component, isAuthenticated, authMode, connectSignalR, language, setCurrentLanguage, boolLoginFail, boolLoginMembee, containerConfig, redirectUrl, isLogout, ...rest }) => (\n {\n let authModes = authMode.split(\",\").map((item) => item.trim().toLowerCase());\n\n if (!isAuthenticated) {\n if (props.location.pathname == \"/\") {\n if (containerConfig && containerConfig.allowSelfRegistration && !redirectUrl) {\n return ;\n } else {\n return ;\n }\n } else {\n return ;\n }\n } else {\n if (redirectUrl && !isLogout) {\n localStorage.setItem(\"redirectUrl\", \"\");\n localStorage.setItem(\"isLogout\", \"FALSE\");\n return ;\n } else {\n if (authModes && authModes.includes(\"survey\")) {\n return ;\n } else if (authModes.includes(\"planner\")) {\n return ;\n } else {\n return ;\n }\n }\n }\n }}\n />\n);\n\nexport default LoggedInRoute;\n","import { ContentWrapper } from '../common/ContentWrapper';\nimport { Layout } from '../Layout';\nimport React from 'react';\n\nclass How extends React.Component {\n static displayName = How.name;\n\n componentDidMount() {\n console.log('how');\n }\n\n render() {\n console.log('how');\n return (\n \n \n
HOW
\n
\n
\n );\n }\n}\n\nexport default How;","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\n\nclass StepProfile extends Component {\n static displayName = StepProfile.name;\n\n constructor(props) {\n super(props);\n this.state = {\n name: this.props.name,\n stepData: this.props.stepData,\n currentStep: null,\n };\n }\n\n step1Clicked = () => {\n const currentStep = 1;\n this.setState({ currentStep });\n this.props.step1Clicked();\n };\n\n step2Clicked = () => {\n const currentStep = 2;\n this.setState({ currentStep });\n this.props.step2Clicked();\n };\n\n step3Clicked = () => {\n const currentStep = 3;\n this.setState({ currentStep });\n this.props.step3Clicked();\n };\n\n render() {\n const { stepData, currentStep } = this.state;\n\n const stepPanelBackgroundColor = this.props.containerConfig && this.props.containerConfig.stepPanelBackgroundColor ? this.props.containerConfig.stepPanelBackgroundColor : \"#2D2D2D\";\n const stepPanelFontColor = this.props.containerConfig && this.props.containerConfig.stepPanelFontColor ? this.props.containerConfig.stepPanelFontColor : \"#FFFFFF\";\n\n return !this.props.containerConfig ? (\n
\n \n
\n ) : (\n \n \n \n \n \n \n
= 1 ? \" stepCircleDark-active\" : \"\")} style={{ cursor: \"pointer\", border: `1px solid ${stepPanelFontColor}` }} onClick={this.step1Clicked}>\n

\n 1\n

\n
\n \n \n \n

\n \n \n
\n
\n \n \n \n \n \n
= 2 ? \" stepCircleDark-active\" : \"\")} style={{ cursor: \"pointer\", border: `1px solid ${stepPanelFontColor}` }} onClick={this.step2Clicked}>\n

\n 2\n

\n
\n \n \n \n

\n \n \n
\n
\n \n \n \n \n \n
= 3 ? \" stepCircleDark-active\" : \"\")} style={{ cursor: \"pointer\", border: `1px solid ${stepPanelFontColor}` }} onClick={this.step3Clicked}>\n

\n 3\n

\n
\n \n \n \n

\n \n \n
\n
\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n containerConfig: state.config.containerConfig,\n loading: state.config.loading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StepProfile);\n","import { Table, Typography, Empty, Checkbox } from \"antd\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n
\n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .font-i {\n color: #000;\n }\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n\n .circle {\n border-radius: 10px;\n width: 10px;\n height: 10px;\n }\n\n .ml-10 {\n margin-left: 10px;\n }\n\n .pd-10 {\n padding: 10px;\n }\n\n .flex {\n display: flex;\n }\n\n .font-sm {\n font-size: small;\n }\n\n .item-center {\n align-items: center;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n width: 125px;\n }\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n \n {title}\n \n);\n\nconst createCenteredCheckboxColumnHeader = (func, stateCheckbox) => (\n <>\n func(e, true, undefined)}\n />\n \n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n {text ?? \"-\"}\n ), // Centering the text\n});\n\nconst createCenteredCheckboxColumn = (\n dataIndex,\n func,\n stateCheckbox,\n selectable\n) => {\n const onRender = (text, record) => {\n const findCheck = stateCheckbox.list.find(\n (item) => item.key === record.key\n );\n\n return (\n \n func(e, false, record)}\n />\n \n );\n };\n return {\n title: selectable\n ? createCenteredCheckboxColumnHeader(func, stateCheckbox)\n : null, // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n render: (text, record) => onRender(text, record),\n };\n};\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (nameHeader, func, stateCheckbox, selectable) => {\n const tempColum = [\n createCenteredCheckboxColumn(\"select\", func, stateCheckbox, selectable),\n createCenteredTextColumn(nameHeader, \"name\", sortByText),\n ];\n return tempColum;\n};\n\nconst MentorTable = (props) => {\n const {\n refData = [],\n values = [],\n pageSize = constantData.pageSize,\n nameHeader = \"\",\n nameSelect = \"\",\n selectable = false,\n onChange = undefined,\n } = props;\n\n const [stateCheckbox, setStateCheckbox] = useImmer({\n indeterminate: false,\n isChecked: false,\n list: [],\n });\n /**\n * Handles change events from a checkbox input, updating the component state accordingly.\n *\n * @param {Object} e - the event object.\n * @param {boolean} isHeader - flag indicating whether the checkbox is a header checkbox.\n * @param {Object} record - an object representing additional data, used here to match against list items.\n */\n const onCheckboxChanged = (e, isHeader, record) => {\n // Create a deep copy of the 'stage' object to ensure immutability.\n // Direct mutation of the state is avoided to ensure reliable UI updates.\n const newStage = JSON.parse(JSON.stringify(stateCheckbox));\n\n if (isHeader) {\n // If the changed checkbox is the header checkbox, we'll update all list items' 'isChecked' property\n // and set the header's 'isChecked' property to match the new state.\n newStage.list.forEach((item) => {\n item.isChecked = e.target.checked;\n });\n newStage.isChecked = e.target.checked;\n // 'indeterminate' is set to false because the header checkbox has explicit true/false state.\n newStage.indeterminate = false;\n } else {\n // If the changed checkbox is not the header, we find the matching item in the list by key\n // and update its 'isChecked' property.\n const find = newStage.list.find((item) => item.key === record.key);\n if (find) {\n find.isChecked = e.target.checked;\n }\n\n // Check the checkbox state of all list items to determine the collective checkbox state.\n const allChecked = newStage.list.every((item) => item.isChecked);\n const noneChecked = newStage.list.every((item) => !item.isChecked);\n\n // Update the 'isChecked' property of the header checkbox based on whether all list items are checked.\n newStage.isChecked = allChecked;\n // The 'indeterminate' property is true when not all and not none of the list items are checked,\n // otherwise, it's false.\n newStage.indeterminate = !allChecked && !noneChecked;\n }\n setStateCheckbox((draft) => {\n // Update the original state with the modified values from the new state.\n draft.list = newStage.list;\n draft.isChecked = newStage.isChecked;\n draft.indeterminate = newStage.indeterminate;\n });\n\n if (onChange != undefined) {\n onChange(newStage.list);\n }\n };\n\n // useMemo will recompute the memoized value (`tableData`) only when one of the dependencies\n // in the dependency array changes. This optimization helps avoid expensive calculations on\n // every render when the relevant data hasn't changed.\n\n const tableData = useMemo(() => {\n // Early return when content is not loaded; avoids processing empty or undefined data.\n if (!refData?.length) return { dataSource: [], columns: [] };\n\n // Call `transformDataSource` to process the raw data into the desired structure/format\n // for use by the table. This might include converting dates to a specific format,\n // reshaping objects, adding additional fields, etc.\n const dataSource = transformDataSource(refData);\n\n // Retrieve column definitions, which could depend on various factors such as user role,\n // specific permissions, feature flags, etc. This function is also responsible for\n // integrating interactive elements like checkboxes into the columns, setting up the\n // appropriate handlers, and defining how they interact with the component's state.\n const columns = getColumnDefinitions(\n nameHeader, // The name to display in the header column\n onCheckboxChanged, // Handler function for checkbox state changes\n stateCheckbox, // Current state of the checkboxes\n selectable // Current state of the selectable\n );\n\n // The useMemo hook returns an object containing the processed `dataSource` and `columns`,\n // ready for consumption by a table component (e.g., in a setup).\n return { dataSource, columns };\n\n // Dependency array: the memoized value will only recompute if `data`, `stateCheckbox`, or\n // are computationally expensive or if the data volume is large.\n }, [refData, stateCheckbox]);\n\n // This useEffect is responsible for handling the side-effect when the content is not yet loaded.\n // It updates the state by marking the content as loaded and sets the initial expanded subcategories.\n useEffect(() => {\n // Generate an array of expanded subcategories from the data\n const tempList = transformDataSource(refData).map((item) => ({\n ...item,\n isChecked: item[nameSelect],\n }));\n\n // Check the checkbox state of all list items to determine the collective checkbox state.\n const allChecked = tempList.every((item) => item.isChecked);\n const noneChecked = tempList.every((item) => !item.isChecked);\n\n // Update the 'isChecked' property of the header checkbox based on whether all list items are checked.\n const tempIsChecked = allChecked;\n // The 'indeterminate' property is true when not all and not none of the list items are checked,\n // otherwise, it's false.\n const tempIndeterminate = !allChecked && !noneChecked;\n\n // Update the listExpand state by appending the new expanded subcategories.\n // We use a functional update to safely access and update the previous state.\n setStateCheckbox((draft) => {\n // Update the original state with the modified values from the new state.\n if (values.length > 0) {\n draft.list = values;\n } else {\n draft.list = tempList;\n }\n draft.isChecked = tempIsChecked;\n draft.indeterminate = tempIndeterminate;\n });\n }, [refData]); // The effect depends on the data and the refData flag.\n\n // Create a copy of the listExpand array\n\n return (\n \n {refData.length > 0 ? (\n // Render the professional table\n \n \n \n ) : (\n } />\n )}\n \n );\n};\n\nexport default MentorTable;\n","import { ExclamationCircleOutlined } from \"@ant-design/icons\";\nimport { Button, Row, Col } from \"antd\";\nimport React, { useCallback, useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nconst ContainerConfirm = styled.div`\n padding: 5px;\n width: max-content;\n .btn-success {\n border-color: mediumseagreen;\n background: mediumseagreen;\n }\n\n .justify-content-right {\n justify-content: right;\n }\n`;\n\n// Wrapping the component with React.memo to prevent unnecessary re-renders.\n// This is useful when the parent component renders often but props for ConfirmModal don't change.\nconst ConfirmModal = ({\n open,\n onOk,\n onCancel,\n msg,\n okText,\n cancelText,\n titleText = null,\n isCancel = true,\n titleNode = null,\n questionText = null,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n // Using useCallback to memoize the handler functions.\n // This ensures that the same function reference is used across re-renders\n // unless the dependencies (onOk, onCancel) change.\n const handleOk = useCallback(\n (e) => {\n onOk?.(e); // Optional chaining ensures that onOk is called only if it's provided.\n // Removed setIsOpen as we are now directly using the 'open' prop for controlling visibility.\n setIsOpen(false);\n },\n [onOk] // Dependency array for useCallback.\n );\n\n const handleCancel = useCallback(\n (e) => {\n onCancel?.(e); // Similar to handleOk, using optional chaining for onCancel.\n // Removed setIsOpen for the same reason as above.\n setIsOpen(false);\n },\n [onCancel] // Dependency array for useCallback.\n );\n\n const TitleRender = () => titleNode;\n\n useEffect(() => {\n setIsOpen(open);\n }, [open]);\n\n // Return null to render nothing if the modal is not open.\n // This is an early return pattern, a common optimization in React for conditional rendering\n if (!isOpen) return null;\n\n return (\n // ContainerConfirm is a wrapper component, likely styled, for the modal content.\n \n {/* Row is a layout component, probably from a UI library, for arranging items in a row.\n The 'gutter' prop likely adds spacing between the columns in the row. */}\n \n {/* Col is a layout component for a column within a row. */}\n \n {/* ExclamationCircleOutlined is an icon component, styled with inline CSS.\n It is likely used here to draw attention to the modal's content. */}\n \n \n {/* Another column, this time for text content. It's aligned to the left and has a fixed width. */}\n \n {titleText && (\n

\n {titleText}\n

\n )}\n {titleNode && }\n {/* Span elements for text. The first span contains informational text. */}\n {(msg != undefined || msg != \"\") && {msg} }\n\n {/* The second span is bold, emphasizing the action's consequence or confirmation. */}\n {questionText ?? \"Do you want to proceed ?\"}\n \n \n {/* Another Row for action buttons, with increased gutter spacing and additional styling for centering and top margin. */}\n \n {/* Button component for the 'OK' action, styled as a primary and success button, with a right margin.\n 'handleOk' is a function that will be called when this button is clicked. */}\n \n {isCancel && (\n <>\n {/* Another Button for the 'Cancel' action, styled as a primary and danger button.\n 'handleCancel' is a function that will be called when this button is clicked. */}\n \n \n )}\n \n \n );\n};\n\nexport default ConfirmModal;\n","import PersonService from \"../../../../../common/api/service/PersonService\";\nimport MentorTable from \"../../table/mentor\";\nimport ConfirmModal from \"../confirm\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Spin, notification, Row, Col, Alert } from \"antd\";\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst ContainerCenter = styled.div`\n text-align: -webkit-center;\n`;\n\nconst MentorPreferencesModal = ({\n data,\n showDialog,\n updatePersonMentorPreference, contentTranslations, contentTranslator,\n}) => {\n const [state, setState] = useImmer({\n showDialog: false,\n dataValue: [],\n isShowConfirm: false,\n isLoading: false,\n rawData: [],\n isEdit: false,\n contentTranslations: contentTranslations\n });\n\n const setDefaultData = () => {\n setState((draft) => {\n draft.showDialog = true;\n draft.dataValue = [];\n draft.isShowConfirm = false;\n draft.isEdit = false;\n draft.isLoading = true;\n draft.rawData = [];\n });\n };\n\n const onToggleDialogModal = () => {\n const showDialog = state.showDialog;\n setState((draft) => {\n draft.showDialog = !showDialog;\n draft.isLoading = false;\n });\n };\n\n const onSaveClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = true;\n });\n });\n\n const onOkClicked = useCallback(async (e) => {\n setState((draft) => {\n draft.isLoading = true;\n draft.isShowConfirm = false;\n });\n try {\n const listUpdate = state.dataValue.map((item) => {\n return {\n id: item.id,\n mentorPreferenceId: item.mentorPreferenceId,\n selected: item.isChecked ?? false,\n };\n });\n await PersonService.updatePersonMyMentorPreferences(listUpdate);\n updatePersonMentorPreference();\n setDefaultData();\n onToggleDialogModal();\n notification[\"success\"]({\n message: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanMentorPreferencesSuccessTitle\", \"Success\"),\n description: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanMentorPreferencesSuccessDescription\", \"Mentor preferences is updated\"),\n });\n } catch (error) {\n // Optionally, you can set an error state to display an error message to users.\n setState((draft) => {\n draft.isLoading = false;\n });\n notification[\"error\"]({\n message: \"error\",\n description: error?.errData?.title,\n });\n }\n });\n\n const onCancelClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = false;\n });\n });\n\n const onValueChanged = useCallback((val) => {\n setState((draft) => {\n if (!draft.isEdit) {\n draft.isEdit = true;\n }\n draft.dataValue = val ?? [];\n });\n });\n\n const isValid = useMemo(\n () =>\n state.isEdit\n ? !state.dataValue.some((item) => item.isChecked === true)\n : !state.rawData.some((item) => item.selected === true),\n [state.dataValue, state.rawData]\n );\n\n useEffect(() => {\n if (showDialog) {\n setDefaultData();\n setState((draft) => {\n draft.rawData = data.map((item) => {\n return {\n id: item.id,\n selected: item.selected,\n mentorPreferenceId: item.mentorPreferenceId,\n name: item.preference,\n };\n });\n draft.isLoading = false;\n });\n }\n }, [showDialog]);\n\n if (state.showDialog === false) return null;\n\n // ... rest of the logic and JSX\n return (\n {\n setDefaultData();\n onToggleDialogModal();\n }\n : null\n }\n width={state.isShowConfirm ? \"fit-content\" : \"60%\"}\n style={{ borderRadius: \"20px\" }}\n footer={null}\n >\n \n {state.isShowConfirm == false &&\n state.isLoading == false &&\n state.rawData.length > 0 && (\n \n \n {isValid && (\n \n )}\n \n \n \n {contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanMentorPreferencesConfirmButtonSave\", \"Save\")}\n \n \n \n )}\n \n \n \n\n {state.isShowConfirm == false && (\n \n )}\n \n \n );\n};\nexport default MentorPreferencesModal;\n","import { Table, Typography, Empty, Checkbox, Tag, Row } from \"antd\";\nimport React, { useEffect, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n rangeColors: [\n {\n color: \"green\",\n label: \"80 - 100\",\n isMatch: (val) => val >= 80,\n },\n {\n color: \"cyan\",\n label: \"60 - 79\",\n isMatch: (val) => val >= 60,\n },\n {\n color: \"gold\",\n label: \"40 - 59\",\n isMatch: (val) => val >= 40,\n },\n {\n color: \"orange\",\n label: \"20 - 39\",\n isMatch: (val) => val >= 20,\n },\n {\n color: \"volcano\",\n label: \"1 - 19\",\n isMatch: (val) => val >= 0,\n },\n {\n color: \"red\",\n label: \"0\",\n isMatch: (val) => val === 0,\n },\n ],\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .font-i {\n color: #000;\n }\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n\n .circle {\n border-radius: 10px;\n width: 10px;\n height: 10px;\n }\n\n .ml-10 {\n margin-left: 10px;\n }\n\n .pd-10 {\n padding: 10px;\n }\n\n .flex {\n display: flex;\n }\n\n .font-sm {\n font-size: small;\n }\n\n .item-center {\n align-items: center;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n width: 125px;\n }\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n \n {title}\n \n);\n\nconst createCenteredCheckboxColumnHeader = (func, stateCheckbox) => (\n <>\n func(e, true, undefined)}\n />\n \n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredArrayColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text?.join(\", \") ?? \"-\"}\n \n ), // Centering the text\n});\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredArrayTagColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text?.length > 0\n ? text.map((item, index) => (\n \n {item}\n \n ))\n : \"-\"}\n \n ), // Centering the text\n});\n\nconst createCenteredNumberColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false,\n isCenter = true\n) => {\n const getColor = (val) =>\n constantData.rangeColors.find((item) => item.isMatch(val))?.color;\n\n return {\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text !== undefined && text !== null ? (\n {text}%\n ) : (\n \"-\"\n )}\n \n ), // Centering the text\n };\n};\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n {text ?? \"-\"}\n ), // Centering the text\n});\n\nconst createCenteredCheckboxColumn = (\n dataIndex,\n func,\n stateCheckbox,\n selectable\n) => {\n const onRender = (text, record) => {\n const findCheck = stateCheckbox.list.find(\n (item) => item.key === record.key\n );\n\n return (\n \n func(e, false, record)}\n />\n \n );\n };\n return {\n title: selectable\n ? createCenteredCheckboxColumnHeader(func, stateCheckbox)\n : null, // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n render: (text, record) => onRender(text, record),\n };\n};\n\n// Utility function to compare text values array\nconst sortByTextArray = (a, b) => {\n // Determine the minimum length between the two current arrays\n const minLength = Math.min(a.length, b.length);\n\n // Iterate over the elements up to the minimum length\n for (let i = 0; i < minLength; i++) {\n // Only proceed to string conversion and comparison if elements are different\n // This saves performance by avoiding unnecessary operations\n if (a[i] !== b[i]) {\n // Convert current elements to strings and make them lowercase\n // for case-insensitive comparison\n const elemA = a[i].toString().toLowerCase();\n const elemB = b[i].toString().toLowerCase();\n\n // Compare the elements and determine their order\n if (elemA < elemB) return -1; // b comes before a\n if (elemA > elemB) return 1; // b comes after a\n }\n }\n\n // If all compared elements are equal, then compare array lengths\n // The shorter array comes first\n return a.length - b.length;\n};\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to compare number values\nconst sortByNumber = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (func, stateCheckbox, selectable, contentTranslations, contentTranslator) => {\n const tempColum = [\n createCenteredCheckboxColumn(\"select\", func, stateCheckbox, selectable),\n createCenteredTextColumn(contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorTableName\", \"Name\"), \"name\", sortByText),\n createCenteredTextColumn(contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorTableEmail\", \"Email\"), \"email\", sortByText),\n // createCenteredTextColumn(\"Relationship\", \"currentRelationship\", sortByText),\n createCenteredNumberColumn(contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorTableMatch\", \"Match %\"), \"matchedSkillPercent\", sortByNumber),\n createCenteredArrayTagColumn(contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorTableSkills\", \"Skills\"), \"skills\", sortByTextArray),\n createCenteredArrayColumn(contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorTablePreferences\", \"Preferences\"), \"preferences\", sortByTextArray),\n ];\n return tempColum;\n};\n\nconst PossibleMentorTable = (props) => {\n const {\n refData = [],\n values = [],\n pageSize = constantData.pageSize,\n nameSelect = \"\",\n selectable = false,\n onChange = undefined,\n contentTranslations,\n contentTranslator\n } = props;\n\n const [stateCheckbox, setStateCheckbox] = useImmer({\n indeterminate: false,\n isChecked: false,\n list: [],\n });\n /**\n * Handles change events from a checkbox input, updating the component state accordingly.\n *\n * @param {Object} e - the event object.\n * @param {boolean} isHeader - flag indicating whether the checkbox is a header checkbox.\n * @param {Object} record - an object representing additional data, used here to match against list items.\n */\n const onCheckboxChanged = (e, isHeader, record) => {\n // Create a deep copy of the 'stage' object to ensure immutability.\n // Direct mutation of the state is avoided to ensure reliable UI updates.\n const newStage = JSON.parse(JSON.stringify(stateCheckbox));\n\n if (isHeader) {\n // If the changed checkbox is the header checkbox, we'll update all list items' 'isChecked' property\n // and set the header's 'isChecked' property to match the new state.\n newStage.list.forEach((item) => {\n item.isChecked = e.target.checked;\n });\n newStage.isChecked = e.target.checked;\n // 'indeterminate' is set to false because the header checkbox has explicit true/false state.\n newStage.indeterminate = false;\n } else {\n // If the changed checkbox is not the header, we find the matching item in the list by key\n // and update its 'isChecked' property.\n const find = newStage.list.find((item) => item.key === record.key);\n if (find) {\n find.isChecked = e.target.checked;\n }\n\n // Check the checkbox state of all list items to determine the collective checkbox state.\n const allChecked = newStage.list.every((item) => item.isChecked);\n const noneChecked = newStage.list.every((item) => !item.isChecked);\n\n // Update the 'isChecked' property of the header checkbox based on whether all list items are checked.\n newStage.isChecked = allChecked;\n // The 'indeterminate' property is true when not all and not none of the list items are checked,\n // otherwise, it's false.\n newStage.indeterminate = !allChecked && !noneChecked;\n }\n setStateCheckbox((draft) => {\n // Update the original state with the modified values from the new state.\n draft.list = newStage.list;\n draft.isChecked = newStage.isChecked;\n draft.indeterminate = newStage.indeterminate;\n });\n\n if (onChange != undefined) {\n onChange(newStage.list);\n }\n };\n\n // useMemo will recompute the memoized value (`tableData`) only when one of the dependencies\n // in the dependency array changes. This optimization helps avoid expensive calculations on\n // every render when the relevant data hasn't changed.\n\n const tableData = useMemo(() => {\n // Early return when content is not loaded; avoids processing empty or undefined data.\n if (!refData?.length) return { dataSource: [], columns: [] };\n\n // Call `transformDataSource` to process the raw data into the desired structure/format\n // for use by the table. This might include converting dates to a specific format,\n // reshaping objects, adding additional fields, etc.\n const dataSource = transformDataSource(refData);\n\n // Retrieve column definitions, which could depend on various factors such as user role,\n // specific permissions, feature flags, etc. This function is also responsible for\n // integrating interactive elements like checkboxes into the columns, setting up the\n // appropriate handlers, and defining how they interact with the component's state.\n const columns = getColumnDefinitions(\n onCheckboxChanged, // Handler function for checkbox state changes\n stateCheckbox, // Current state of the checkboxes\n selectable, // Current state of the selectable\n contentTranslations,\n contentTranslator\n );\n\n // The useMemo hook returns an object containing the processed `dataSource` and `columns`,\n // ready for consumption by a table component (e.g., in a
setup).\n return { dataSource, columns };\n\n // Dependency array: the memoized value will only recompute if `data`, `stateCheckbox`, or\n // are computationally expensive or if the data volume is large.\n }, [refData, stateCheckbox]);\n\n // This useEffect is responsible for handling the side-effect when the content is not yet loaded.\n // It updates the state by marking the content as loaded and sets the initial expanded subcategories.\n useEffect(() => {\n // Generate an array of expanded subcategories from the data\n const tempList = transformDataSource(refData).map((item) => ({\n ...item,\n isChecked: item[nameSelect],\n }));\n\n // Check the checkbox state of all list items to determine the collective checkbox state.\n const allChecked = tempList.every((item) => item.isChecked);\n const noneChecked = tempList.every((item) => !item.isChecked);\n\n // Update the 'isChecked' property of the header checkbox based on whether all list items are checked.\n const tempIsChecked = allChecked;\n // The 'indeterminate' property is true when not all and not none of the list items are checked,\n // otherwise, it's false.\n const tempIndeterminate = !allChecked && !noneChecked;\n\n // Update the listExpand state by appending the new expanded subcategories.\n // We use a functional update to safely access and update the previous state.\n setStateCheckbox((draft) => {\n // Update the original state with the modified values from the new state.\n if (values.length > 0) {\n draft.list = values;\n } else {\n draft.list = tempList;\n }\n draft.isChecked = tempIsChecked;\n draft.indeterminate = tempIndeterminate;\n });\n }, [refData]); // The effect depends on the data and the refData flag.\n\n // Create a copy of the listExpand array\n\n return (\n // Container for the entire table component\n \n {refData.length > 0 ? (\n // Conditionally render the table or a 'No Data' message based on the length of the 'data' array\n // If 'data' has elements, render the table and associated components\n
\n {/* Wrapper for styling and layout of the table */}\n \n \n {tableData.dataSource.length > 0 && (\n \n {constantData.rangeColors.map((item, index) => {\n return (\n
\n {contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorRange\", \"Range\")}:\n \n {item.label}\n \n
\n );\n })}\n
\n )}\n
\n
\n ) : (\n } />\n )}\n
\n );\n};\n\nexport default PossibleMentorTable;\n","import PersonService from \"../../../../../common/api/service/PersonService\";\nimport PossibleMentorTable from \"../../table/possiblementor\";\nimport ConfirmModal from \"../confirm\";\nimport { ApiOutlined } from \"@ant-design/icons\";\nimport {\n Button,\n Modal,\n Row,\n Spin,\n notification,\n Switch,\n Alert,\n Col,\n Tooltip,\n} from \"antd\";\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst ContainerCenter = styled.div`\n text-align: -webkit-center;\n`;\n\nconst PossibleMentorModal = ({ showDialog, profileType, jobType, contentTranslations, contentTranslator }) => {\n const [state, setState] = useImmer({\n showDialog: false,\n dataValue: [],\n rawData: [],\n isShowConfirm: false,\n isLoading: false,\n isIgnore: false,\n profileType,\n jobType,\n contentTranslations: contentTranslations\n });\n\n const setDefaultData = () => {\n setState((draft) => {\n draft.showDialog = true;\n draft.dataValue = [];\n draft.isShowConfirm = false;\n draft.isLoading = true;\n draft.rawData = [];\n draft.isIgnore = false;\n });\n };\n\n const toFixedIfNecessary = (value, dp) => {\n return +parseFloat(value).toFixed(dp);\n };\n\n const processDataAsync = async () => {\n try {\n const dataSearchMentors = await PersonService.getSearchMentors(\n state.isIgnore,\n jobType,\n profileType\n );\n\n dataSearchMentors.map((item) => {\n item.matchedSkillPercent = item.matchedSkillPercent ? toFixedIfNecessary(item.matchedSkillPercent * 100, 2) : item.matchedSkillPercent\n })\n\n setState((draft) => {\n draft.dataValue = [];\n draft.rawData = dataSearchMentors.map((item) => {\n return {\n ...item,\n name: `${item.firstName} ${item.lastName}`,\n };\n });\n });\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n // Optionally, you can set an error state to display an error message to users.\n }\n };\n\n const onToggleDialogModal = () => {\n const showDialog = state.showDialog;\n setState((draft) => {\n draft.showDialog = !showDialog;\n draft.isLoading = false;\n });\n };\n\n const onConnectClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = true;\n });\n });\n\n const onOkClicked = useCallback(async (e) => {\n setState((draft) => {\n draft.isLoading = true;\n draft.isShowConfirm = false;\n });\n try {\n const listUpdate = {\n mentorIds: state.dataValue\n .filter((item) => item.isChecked === true)\n .map((item) => item.personId),\n };\n const results = await PersonService.updateConnectMentors(jobType, profileType, listUpdate);\n if (results.length > 0) {\n await processDataAsync();\n notification[\"success\"]({\n message: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorConnectSuccessTitle\", \"Success\"),\n description: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorConnectSuccessDescription\", \"Connect mentor is updated\"),\n });\n } else {\n notification[\"error\"]({\n message: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorConnectFailTitle\", \"Not connected properly\"),\n description: contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorConnectFailDescription\", \"The mentor connection was not found.\"),\n });\n }\n } catch (error) {\n // Optionally, you can set an error state to display an error message to users.\n notification[\"error\"]({\n message: \"error\",\n description: error?.errData?.title,\n });\n } finally {\n setState((draft) => {\n draft.isLoading = false;\n });\n }\n });\n\n const onCancelClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = false;\n });\n });\n\n const onValueChanged = useCallback((val) => {\n setState((draft) => {\n draft.dataValue = val ?? [];\n });\n });\n\n const onIgnoreChanged = useCallback((val) => {\n setState((draft) => {\n draft.isIgnore = val;\n });\n });\n\n const connectValid = useMemo(() => {\n if (state.dataValue.length > 0) {\n const filter = state.dataValue.filter((item) => item.isChecked === true);\n return {\n isEmpty: filter.length < 1,\n isLimit: filter.length > 3,\n };\n }\n return {\n isEmpty: true,\n isLimit: false,\n };\n }, [state.dataValue]);\n\n useEffect(() => {\n if (showDialog) {\n setState((draft) => {\n draft.isLoading = true;\n });\n\n processDataAsync().then(() => {\n setState((draft) => {\n draft.isLoading = false;\n });\n });\n }\n }, [state.isIgnore]);\n\n useEffect(() => {\n if (showDialog) {\n setDefaultData();\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n processDataAsync().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setState((draft) => {\n draft.isLoading = false;\n });\n }\n });\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }\n }, [showDialog]);\n\n if (state.showDialog === false) return null;\n\n // ... rest of the logic and JSX\n return (\n {\n setDefaultData();\n onToggleDialogModal();\n }}\n width={state.isShowConfirm ? \"fit-content\" : \"60%\"}\n style={{ borderRadius: \"20px\" }}\n footer={null}\n >\n \n {state.isShowConfirm == false && (\n <>\n \n \n {state.rawData.length > 0 && (\n \n {contentTranslator(contentTranslations, \"SfiaPlan\", \"SfiaPlanFindMentorDialogButtonConnect\", \"Connect\")}\n \n )}\n \n \n \n \n \n \n \n \n \n \n {state.rawData.length > 0 && \n \n }\n \n {!state.isIgnore && \n \n \n IMPORTANT : Mentors skills will be matched against the Skill Gaps you currently have displayed. For example, self-assessed profile and current requirement.\"),\n }}\n >\n \n }\n type={\"warning\"}\n />\n \n } \n \n \n )}\n \n \n \n\n {state.isShowConfirm == false && (\n \n )}\n \n \n );\n};\nexport default PossibleMentorModal;\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass OpenAIAPI {\n static createThread() {\n return axios\n .post(\"/openai/threads\")\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createThreadMessage(threadId, message) {\n return axios\n .post(`/openai/threads/${threadId}/messages`, { message })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createThreadRun(threadId) {\n return axios\n .post(`/openai/threads/${threadId}/runs`, { })\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getThreadRun(threadId, runId) {\n return axios\n .get(`/openai/threads/${threadId}/runs/${runId}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getThreadRunMessages(threadId, runId) {\n return axios\n .get(`/openai/threads/${threadId}/runs/${runId}/messages`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default OpenAIAPI;\n","import OpenAIAPI from \"../common/api/service/OpenAIService\";\nimport \"./../chatbot.css\";\nimport { faCircleXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useState } from \"react\";\nimport { Spinner } from \"reactstrap\";\n\nconst ChatbotOpenAi = () => {\n const [input, setInput] = useState(\"\");\n const [messages, setMessages] = useState([]);\n const [openChatBot, setOpenChatBot] = useState(false);\n const [threadCreated, setThreadCreated] = useState(false);\n const [thread, setThread] = useState(null);\n const [run, setRun] = useState(null);\n const [runCompleted, setRunCompleted] = useState(true);\n const [pollingIntervalId, setPollingIntervalId] = useState(null);\n const [question1Closed, setQuestion1Closed] = useState(false);\n const [question2Closed, setQuestion2Closed] = useState(false);\n const [question3Closed, setQuestion3Closed] = useState(false);\n const [defaultQuestion, setDefaultQuestion] = useState(null);\n\n const handleOpenChatBot = async () => {\n setOpenChatBot(!openChatBot);\n if (!threadCreated) {\n const thread = await OpenAIAPI.createThread();\n if (thread) {\n setThreadCreated(true);\n setThread(thread);\n\n setMessages((prevMessages) => [...prevMessages, { text: \"Hello! How can I assist you today?\", user: false }]);\n }\n }\n };\n\n useEffect(() => {\n if (thread && defaultQuestion) {\n handleSubmitDefaultQuestion(defaultQuestion);\n }\n }, [thread, defaultQuestion]);\n\n const handleOpenQuestion = async (message) => {\n setOpenChatBot(!openChatBot);\n if (!threadCreated) {\n const thread = await OpenAIAPI.createThread();\n if (thread) {\n setThreadCreated(true);\n setThread(thread);\n setDefaultQuestion(message);\n }\n }\n };\n\n const handleSubmitDefaultQuestion = async (message) => {\n setDefaultQuestion(null);\n const userMessage = { text: message, user: true, loadingMessage: false };\n setInput(\"\");\n\n setMessages((prevMessages) => [...prevMessages, userMessage]);\n const aiMessage = { text: \"...\", user: false, loadingMessage: true };\n setMessages((prevMessages) => [...prevMessages, aiMessage]);\n\n setRunCompleted(false);\n await OpenAIAPI.createThreadMessage(thread.id, message);\n const threadRun = await OpenAIAPI.createThreadRun(thread.id);\n if (threadRun) {\n setRun(threadRun);\n // Start polling after creation\n startPolling(threadRun.id);\n }\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n if (!input.trim()) return;\n\n const userMessage = { text: input, user: true, loadingMessage: false };\n setInput(\"\");\n\n setMessages((prevMessages) => [...prevMessages, userMessage]);\n const aiMessage = { text: \"...\", user: false, loadingMessage: true };\n setMessages((prevMessages) => [...prevMessages, aiMessage]);\n\n setRunCompleted(false);\n await OpenAIAPI.createThreadMessage(thread.id, input);\n const threadRun = await OpenAIAPI.createThreadRun(thread.id);\n if (threadRun) {\n setRun(threadRun);\n // Start polling after creation\n startPolling(threadRun.id);\n }\n };\n\n useEffect(() => {\n // Clean up polling on unmount\n return () => {\n if (pollingIntervalId) clearInterval(pollingIntervalId);\n };\n }, [pollingIntervalId]);\n\n useEffect(() => {\n if (!run || run.status === \"completed\") return;\n startPolling(run.id);\n }, [run]);\n\n const startPolling = (runId) => {\n if (!thread) return;\n\n const intervalId = setInterval(async () => {\n try {\n const updatedRun = await OpenAIAPI.getThreadRun(thread.id, runId);\n console.log(\"run status\", updatedRun.status, new Date());\n setRun(updatedRun);\n\n if ([\"cancelled\", \"failed\", \"completed\", \"expired\"].includes(updatedRun.status)) {\n setRunCompleted(true);\n clearInterval(intervalId);\n setPollingIntervalId(null);\n\n fetchMessages();\n }\n } catch (error) {\n clearInterval(intervalId);\n setPollingIntervalId(null);\n }\n }, 1000);\n\n setPollingIntervalId(intervalId);\n };\n\n const fetchMessages = async () => {\n if (!thread || !run) return;\n\n try {\n const runMessages = await OpenAIAPI.getThreadRunMessages(thread.id, run.id);\n\n runMessages.forEach((runMessage) => {\n if (!messages.find((it) => it.id == runMessage.id)) {\n if (runMessage.content.find((it) => it.type == \"text\")) {\n //console.log(\"runMessage\", runMessage);\n const newAiMessage = { id: runMessage.id, text: runMessage.content.filter((it) => it.type == \"text\")[0].text.cleaned_value, user: false };\n if (messages.find((it) => it.loadingMessage)) {\n setMessages((prevMessages) => [...prevMessages.slice(0, -1), newAiMessage]);\n } else {\n setMessages((prevMessages) => [...prevMessages, newAiMessage]);\n }\n } else {\n setMessages((prevMessages) => [...prevMessages.slice(0, -1)]);\n }\n }\n });\n } catch (error) {\n console.log(\"error\", error);\n }\n };\n\n return (\n \n
\n
\n
\n setQuestion1Closed(true)} />\n
\n
handleOpenQuestion(\"How can SkillsTX help in my IT career?\")}>\n How can SkillsTX help in my IT career?\n
\n
\n
\n
\n setQuestion2Closed(true)} />\n
\n
handleOpenQuestion(\"Can you suggest a career path in software development?\")}>\n Can you suggest a career path in software development?\n
\n
\n
\n
\n setQuestion3Closed(true)} />\n
\n
handleOpenQuestion(\"What SFIA8 skills should I develop for cybersecurity?\")}>\n What SFIA8 skills should I develop for cybersecurity?\n
\n
\n
\n \n
\n
\n setOpenChatBot(!openChatBot)} />\n
\n
\n {messages.map((message, index) => (\n \"),\n }}\n >\n {/* {message.text} */}\n
\n ))}\n
\n {!threadCreated || !runCompleted ? (\n
\n \n
\n ) : (\n
\n setInput(e.target.value)} placeholder=\"Type your message...\" disabled={!threadCreated || !runCompleted} />\n \n \n )}\n \n
\n );\n};\nexport default ChatbotOpenAi;\n","import * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-add-action.css\";\nimport { faEye, faEyeSlash, faFilter, faInfoCircle, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport Combobox from \"react-widgets/Combobox\";\nimport { Button, ButtonGroup, Col, Container, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nvar _ = require(\"lodash\");\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst wrapperStyle = {\n borderRadius: \"10px\",\n width: \"700px\",\n background: \"#F5F5F5\",\n paddingLeft: \"63px\",\n paddingRight: \"63px\",\n paddingTop: \"35px\",\n paddingBottom: \"35px\",\n};\n\nconst btnGroupStyle = {\n height: \"52px\",\n width: \"252px\",\n fontSize: \"14px\",\n};\nclass FormAddAction extends React.Component {\n static displayName = FormAddAction.name;\n\n constructor(props) {\n super(props);\n this.state = {\n addMode: \"Custom\",\n firstName: \"\",\n lastName: \"\",\n actionType: \"\",\n description: \"\",\n targetDate: \"\",\n duration: \"\",\n website: \"\",\n otherSkills: \"\",\n optionsActionTypes: this.props.optionsActionTypes,\n optionsActionSkills: this.props.optionsActionSkills,\n selectedOtherSkill: null,\n form: {\n name: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n actionType: {\n validation: {\n required: true,\n },\n value: this.props.optionsActionTypes && this.props.optionsActionTypes.length > 0 && this.props.optionsActionTypes[0].name,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n description: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n target: {\n validation: {\n required: this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false,\n isDateTime: true,\n },\n value: null,\n valid: !(this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false),\n isValidFormat: true,\n touched: false,\n },\n duration: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n durationHours: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n website: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n formListed: {\n description: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n target: {\n validation: {\n required: this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false,\n isDateTime: true,\n },\n value: null,\n valid: !(this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false),\n isValidFormat: true,\n touched: false,\n },\n },\n selectedSkills: [],\n pickedOtherSkills: [],\n selectedOtherSkills: [],\n isFormValid: false,\n isFormListedValid: false,\n actionPlanUpdating: false,\n alerts: [],\n interventionsFilterGapsOnly: true,\n interventionsFilter: {\n companyId: null,\n skill: null,\n gaps: [],\n jobId: null,\n },\n interventionsLoaded: false,\n interventions: [],\n jobs: [],\n selectedIntervention: null,\n loading: false,\n showInterventionDetail: false,\n shownIntervention: null,\n showFilter: false,\n providers: this.props.providers,\n selectedProviderId: null,\n selectedInterventionSkill: null,\n showHiddenInterventions: false,\n noSkillConfirmationPass: false,\n showActionNoSkillConfirmationDialog: false,\n };\n this.handleSkillCheckedChange = this.handleSkillCheckedChange.bind(this);\n this.handleOtherSkillCheckedChange = this.handleOtherSkillCheckedChange.bind(this);\n this.handleChangeOtherSkill = this.handleChangeOtherSkill.bind(this);\n this.handleAddOtherSkill = this.handleAddOtherSkill.bind(this);\n\n this.handleGetInterventions = this.handleGetInterventions.bind(this);\n this.handleShowInterventionDetail = this.handleShowInterventionDetail.bind(this);\n this.handleSelectIntervention = this.handleSelectIntervention.bind(this);\n this.togleInterventionDetailModal = this.togleInterventionDetailModal.bind(this);\n this.submitFormListed = this.submitFormListed.bind(this);\n this.handleTogleShowFilter = this.handleTogleShowFilter.bind(this);\n this.interventionFormPanel = this.interventionFormPanel.bind(this);\n this.handleChangeGapsFilterSelection = this.handleChangeGapsFilterSelection.bind(this);\n this.handleChangeProviderSelection = this.handleChangeProviderSelection.bind(this);\n this.handleChangeSkillInterventionSelection = this.handleChangeSkillInterventionSelection.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n const selectedDefaultSkill = this.props.selectedDefaultSkill;\n const selectedDefaultSkills = this.props.selectedDefaultSkills;\n\n const { interventionsFilter } = this.state;\n const { lorProfiles, skillProfiles, jobLorProfiles, jobSkillProfiles, lors, categories, showHiddenSkills } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n let gaps = [];\n\n const showUnActionedOnly = true;\n\n if (selectedDefaultSkill) {\n gaps.push({\n skillsCode: selectedDefaultSkill.skillCode,\n level: selectedDefaultSkill.skillLevel,\n });\n } else if (selectedDefaultSkills) {\n gaps.push(\n ...selectedDefaultSkills.map((it) => {\n return {\n skillsCode: it.skillCode,\n level: it.skillLevel,\n };\n })\n );\n } else {\n if (showUnActionedOnly) {\n gaps.push(\n ...jobLorProfiles\n .filter((it) => !it.actioned && (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))))\n .map((it) => {\n if (!lorProfiles.find((prof) => prof.lorCode == it.lorCode) || (lorProfiles.find((prof) => prof.lorCode == it.lorCode) && it.level > lorProfiles.find((prof) => prof.lorCode == it.lorCode).level)) {\n return {\n skillsCode: it.lorCode,\n level: it.level,\n };\n }\n })\n .filter((it) => it)\n );\n\n gaps.push(\n ...jobSkillProfiles\n .filter((it) => !it.actioned && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(it.skillCode))))\n .map((it) => {\n if (!skillProfiles.find((prof) => prof.skillCode == it.skillCode && prof.level == it.level) || skillProfiles.find((prof) => prof.skillCode == it.skillCode && prof.level == it.level && prof.numericVal < 1)) {\n return {\n skillsCode: it.skillCode,\n level: it.level,\n };\n }\n })\n .filter((it) => it)\n );\n } else {\n gaps.push(\n ...[\n ...jobLorProfiles\n .filter((it) => showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode)))\n .map((it) => {\n return {\n skillsCode: it.lorCode,\n level: it.level,\n };\n }),\n ...jobSkillProfiles\n .filter((it) => showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(it.skillCode)))\n .map((it) => {\n return {\n skillsCode: it.skillCode,\n level: it.level,\n };\n }),\n ]\n );\n }\n }\n\n interventionsFilter.gaps = gaps;\n this.setState({ interventionsFilter });\n\n if (selectedDefaultSkill) {\n const selectedSkills = this.state.selectedSkills;\n this.setState({ selectedSkills: [...selectedSkills, selectedDefaultSkill] });\n } else if (selectedDefaultSkills) {\n const selectedSkills = this.state.selectedSkills;\n this.setState({ selectedSkills: [...selectedSkills, ...selectedDefaultSkills] });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills && this.props.showHiddenSkills == false) {\n const { lors, categories } = this.props;\n const { selectedSkills } = this.state;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n this.setState({ selectedSkills: [...selectedSkills.filter((it) => (it.skillType == \"Skill\" && availableSkillCodes.includes(it.skillCode)) || (it.skillType == \"Lor\" && availableLorCodes.includes(it.skillCode)))] });\n }\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeDate(name, value) {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n submitForm = () => {\n const { selectedSkills, selectedOtherSkills, noSkillConfirmationPass } = this.state;\n\n if (selectedSkills && selectedSkills.length == 0 && selectedOtherSkills && selectedOtherSkills.length == 0 && noSkillConfirmationPass == false) {\n this.setState({ showActionNoSkillConfirmationDialog: true });\n } else {\n const actionRequest = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n actionType: this.state.form.actionType.value,\n name: this.state.form.name.value,\n description: this.state.form.description.value,\n status: \"ToDo\",\n targetCompletionOn: this.state.form.target.value,\n duration: this.state.form.duration.value,\n durationHours: this.state.form.durationHours.value,\n link: this.state.form.website.value,\n skills: [...selectedSkills, ...selectedOtherSkills].map((skill) => {\n return {\n name: skill.skillName,\n code: skill.skillCode,\n level: skill.skillLevel,\n type: skill.skillType,\n };\n }),\n };\n\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.createManagedPeopleAction(actionRequest) : this.props.onActionPlan.createAction(actionRequest)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.props.handleActionPlanAdded(this.props.addedAction);\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n };\n\n handleActionClick = (addMode) => {\n const { form } = this.state;\n\n this.setState(\n {\n addMode,\n form,\n selectedIntervention: null,\n },\n () => {\n if (addMode == \"Listed\" && !this.state.interventionsLoaded) {\n this.handleGetJobsWithAction();\n this.handleGetInterventions();\n }\n }\n );\n };\n\n handleSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedSkills = this.state.selectedSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills.splice(index, 1);\n }\n\n this.setState({ selectedSkills });\n } else {\n this.setState({ selectedSkills: [...selectedSkills, selectedSkill] });\n }\n }\n\n handleOtherSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedOtherSkills = this.state.selectedOtherSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n const index = selectedOtherSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedOtherSkills.splice(index, 1);\n }\n\n this.setState({ selectedOtherSkills });\n } else {\n this.setState({ selectedOtherSkills: [...selectedOtherSkills, selectedSkill] });\n }\n }\n\n // handleChangeOtherSkill = (event) => {\n // this.setState({ selectedOtherSkill: event.target.value })\n // }\n\n handleChangeOtherSkill = (skill) => {\n if (skill) {\n this.setState({ selectedOtherSkill: `${skill.skillCode}-${skill.skillLevel}` });\n }\n };\n\n handleAddOtherSkill() {\n const selectedOtherSkill = this.state.selectedOtherSkill;\n let { optionsActionSkills, pickedOtherSkills, selectedOtherSkills } = this.state;\n\n if (selectedOtherSkill && selectedOtherSkill !== \"\") {\n let optionsActionSkill = optionsActionSkills.find((it) => it.skills.some((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill));\n if (optionsActionSkill) {\n let skill = optionsActionSkill.skills.find((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill);\n if (skill) {\n skill.selected = true;\n\n pickedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n\n selectedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n }\n\n this.setState({ optionsActionSkills, selectedOtherSkill: \"\", pickedOtherSkills, selectedOtherSkills });\n }\n }\n }\n\n handleGetJobsWithAction = () => {\n this.setState({ loading: true });\n this.props.onJob.getJobsWithAction().then(() => {\n if (!this.props.jobLoading && !this.props.jobError) {\n let currentJob = null;\n let futureJob = null;\n\n if (this.props.optionsJob && this.props.optionsJob.length > 0) {\n currentJob = this.props.optionsJob.find((it) => it.type == \"Current\");\n futureJob = this.props.optionsJob.find((it) => it.type == \"Future\");\n }\n\n const jobs = this.props.jobs.map((job) => {\n return {\n value: job.id,\n label: job.name,\n priority: currentJob && currentJob.id == job.id ? 1 : futureJob && futureJob.id == job.id ? 2 : 3,\n };\n });\n\n this.setState({\n jobs: [\n {\n value: \"\",\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaActionPredefinedFilterRequirementPlaceholder\", \"=== All Requirements ===\"),\n },\n ...jobs.sort((a, b) => (`${a.priority}${a.label}` > `${b.priority}${b.label}` ? 1 : -1)),\n ],\n });\n } else {\n console.log(\"this.props.jobError\", this.props.jobError);\n }\n\n this.setState({ loading: this.props.jobLoading });\n });\n };\n\n handleGetInterventions() {\n this.setState({ loading: true });\n\n const { interventionsFilterGapsOnly, interventionsFilter } = this.state;\n const gaps = interventionsFilterGapsOnly === true || interventionsFilterGapsOnly === \"true\" ? interventionsFilter.gaps : [];\n\n this.props.onActionPlan\n .getInterventions({\n companyId: interventionsFilter.companyId,\n skill: interventionsFilter.skill,\n gaps,\n jobId: interventionsFilter.jobId,\n })\n .then(() => {\n if (!this.props.interventionsLoading && !this.props.interventionsError) {\n this.setState({ interventions: this.props.interventions });\n } else {\n console.log(\"this.props.interventionsError\", this.props.interventionsError);\n }\n\n this.setState({ interventionsLoaded: true, loading: this.props.interventionsLoading });\n });\n }\n\n handleShowInterventionDetail(intervention) {\n this.setState({ showInterventionDetail: true, shownIntervention: intervention });\n }\n\n togleInterventionDetailModal() {\n const showInterventionDetail = this.state.showInterventionDetail;\n this.setState({ showInterventionDetail: !showInterventionDetail });\n }\n\n handleFormListedChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.formListed, name, value);\n\n this.setState({\n formListed: updateState.form,\n isFormListedValid: updateState.valid,\n });\n };\n\n handleFormListedChangeDate(name, value) {\n const updateState = changeInput(this.state.formListed, name, value);\n\n this.setState({\n formListed: updateState.form,\n isFormListedValid: updateState.valid,\n });\n }\n\n handleSelectIntervention(intervention) {\n this.setState({ selectedIntervention: intervention });\n }\n\n submitFormListed() {\n const { selectedIntervention } = this.state;\n\n const actionRequest = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n actionType: selectedIntervention.actionType,\n name: selectedIntervention.name,\n description: this.state.formListed.description.value,\n status: \"ToDo\",\n targetCompletionOn: this.state.formListed.target.value,\n duration: selectedIntervention.duration,\n durationHours: selectedIntervention.durationHours,\n link: selectedIntervention.link,\n interventionId: selectedIntervention.id,\n interventionName: selectedIntervention.name,\n interventionDescription: selectedIntervention.description,\n interventionProviderName: selectedIntervention.company.name,\n interventionIsValidated: selectedIntervention.isValidated,\n skills: [\n ...selectedIntervention.lorLevels.map((level) => {\n return {\n name: level.lorName,\n code: level.lorCode,\n level: level.level,\n type: \"Lor\",\n };\n }),\n ...selectedIntervention.levels.map((level) => {\n return {\n name: level.skillsName,\n code: level.skillsCode,\n level: level.level,\n type: \"Skill\",\n };\n }),\n ],\n };\n\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.createManagedPeopleAction(actionRequest) : this.props.onActionPlan.createAction(actionRequest)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.props.handleActionPlanAdded(this.props.addedAction);\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n\n modalInterventionDetail() {\n const { showInterventionDetail, shownIntervention } = this.state;\n\n return (\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n handleTogleShowFilter() {\n this.setState({ showFilter: !this.state.showFilter });\n }\n\n interventionFormPanel() {\n const { providers, optionsActionSkills, jobs } = this.state;\n const { lors, categories, showHiddenSkills } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n const spreadedActionSkills = [].concat.apply(\n [],\n optionsActionSkills\n .filter((it) => it.skills.some((skill) => !skill.selected && !skill.actioned))\n .map((it, groupIndex) => {\n return it.skills\n .filter((skill) => !skill.selected && !skill.actioned && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(skill.skillCode))))\n .map((skill) => {\n return {\n groupIndex,\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLabel: skill.skillLabel,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n };\n });\n })\n );\n\n let spreadedProviders = [{ id: \"\", name: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaActionPredefinedFilterProviderPlaceholder\", \"=== All Providers ===\"), isPreferred: false }];\n\n if (providers) {\n spreadedProviders = [\n { id: \"\", name: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaActionPredefinedFilterProviderPlaceholder\", \"=== All Providers ===\"), isPreferred: false },\n ...providers\n .sort((a, b) => b.isPreferred - a.isPreferred)\n .map((provider) => {\n return {\n id: provider.id,\n name: provider.name + (provider.isPreferred ? ` (${this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanPreferred\", \"preferred\")})` : \"\"),\n isPreferred: provider.isPreferred,\n };\n }),\n ];\n }\n\n return (\n \n \n \n \n \n this.handleChangeGapsFilterSelection({\n target: {\n value: value.value,\n },\n })\n }\n data={[\n { value: true, label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanPredefinedFilterGapsOnly\", \"Gaps Only\") },\n { value: false, label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanPredefinedFilterGapsShowAll\", \"Show All\") },\n ]}\n textField=\"label\"\n dataKey=\"value\"\n defaultValue={{ value: true, label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanPredefinedFilterGapsOnly\", \"Gaps Only\") }}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n \n this.handleChangeProviderSelection({\n target: {\n value: value.id,\n },\n })\n }\n textField=\"name\"\n dataKey=\"id\"\n defaultValue={spreadedProviders[0]}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n a.groupIndex - b.groupIndex)}\n onChange={(value) => {\n value == \"\" &&\n this.handleChangeSkillInterventionSelection({\n target: {\n value: \"\",\n },\n });\n }}\n onSelect={(value) =>\n this.handleChangeSkillInterventionSelection({\n target: {\n value: value.skillCode + value.skillLevel,\n },\n })\n }\n textField=\"skillLabel\"\n groupBy=\"skillName\"\n filter=\"contains\"\n placeholder={this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaActionPredefinedFilterSkillPlaceholder\", \"=== Select Skill ===\")}\n autoSelectMatches={true}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n {jobs && jobs.length > 0 && (\n \n \n \n \n this.handleChangeJobSelection({\n target: {\n value: value.value,\n },\n })\n }\n textField=\"label\"\n dataKey=\"value\"\n defaultValue={jobs[0]}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n )}\n \n \n \n {\" \"}\n \n \n \n \n );\n }\n\n handleChangeGapsFilterSelection = (event) => {\n this.setState(\n {\n interventionsFilterGapsOnly: event.target.value,\n },\n () => {\n this.handleGetInterventions();\n }\n );\n };\n\n handleChangeProviderSelection = (event) => {\n const interventionsFilter = this.state.interventionsFilter;\n const selectedProviderId = event.target.value;\n\n if (selectedProviderId && selectedProviderId != \"\") {\n interventionsFilter.companyId = selectedProviderId;\n } else {\n interventionsFilter.companyId = null;\n }\n\n this.setState(\n {\n selectedProviderId,\n interventionsFilter,\n },\n () => {\n this.handleGetInterventions();\n }\n );\n };\n\n handleChangeSkillInterventionSelection = (event) => {\n const skillCodeLevel = event.target.value;\n const { optionsActionSkills, interventionsFilter } = this.state;\n let selectedInterventionSkill;\n\n if (skillCodeLevel != \"\") {\n const optionsActionSkill = optionsActionSkills.find((it) => it.skills.some((skill) => skill.skillCode + skill.skillLevel == skillCodeLevel || \"(LoR)-\" + skill.skillCode + skill.skillLevel == skillCodeLevel));\n\n if (optionsActionSkill) {\n const skill = optionsActionSkill.skills.find((skill) => skill.skillCode + skill.skillLevel == skillCodeLevel || \"(LoR)-\" + skill.skillCode + skill.skillLevel == skillCodeLevel);\n if (skill) {\n selectedInterventionSkill = skill.skillCode + skill.skillLevel;\n interventionsFilter.skill = {\n skillsCode: skill.skillCode,\n level: skill.skillLevel,\n };\n } else {\n interventionsFilter.skill = null;\n }\n } else {\n interventionsFilter.skill = null;\n }\n } else {\n interventionsFilter.skill = null;\n }\n\n this.setState(\n {\n selectedInterventionSkill,\n interventionsFilter,\n },\n () => {\n this.handleGetInterventions();\n }\n );\n };\n\n handleChangeJobSelection = (event) => {\n const interventionsFilter = this.state.interventionsFilter;\n const selectedJobId = event.target.value;\n\n if (selectedJobId && selectedJobId != \"\") {\n interventionsFilter.jobId = selectedJobId;\n } else {\n interventionsFilter.jobId = null;\n }\n\n this.setState(\n {\n selectedJobId,\n interventionsFilter,\n },\n () => {\n this.handleGetInterventions();\n }\n );\n };\n\n handleUpdateShowHiddenInterventionFilter = () => {\n const showHiddenInterventions = this.state.showHiddenInterventions;\n this.setState({ showHiddenInterventions: !showHiddenInterventions });\n };\n\n handleUpdateHiddenIntervention = (id, hidden) => {\n const interventions = this.state.interventions;\n\n Promise.resolve(hidden ? this.props.onActionPlan.updateHideIntervention(id) : this.props.onActionPlan.updateUnHideIntervention(id)).then(() => {\n const intervention = interventions.find((it) => it.id == id);\n if (intervention) {\n intervention.hidden = hidden;\n }\n\n this.setState({ interventions: [...interventions] });\n });\n };\n\n handleConfirmActionNoSkillConfirmation = () => {\n this.setState(\n {\n noSkillConfirmationPass: true,\n showActionNoSkillConfirmationDialog: false,\n },\n () => {\n this.submitForm();\n }\n );\n };\n\n toggleActionNoSkillConfirmationDialog = () => {\n const { showActionNoSkillConfirmationDialog } = this.state;\n\n this.setState({ showActionNoSkillConfirmationDialog: !showActionNoSkillConfirmationDialog });\n };\n\n renderActionNoSkillConfirmationDialog = () => {\n const { showActionNoSkillConfirmationDialog } = this.state;\n\n return (\n \n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleConfirmActionNoSkillConfirmation();\n }}\n >\n \n \n \n \n \n );\n };\n\n render() {\n const { optionsActionTypes, optionsActionSkills, selectedSkills, pickedOtherSkills, selectedOtherSkills, form, formListed, interventions, showHiddenInterventions } = this.state;\n const { jobLorProfiles, jobSkillProfiles, lors, categories, showHiddenSkills } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n const spreadedActionSkills = [].concat.apply(\n [],\n optionsActionSkills\n .filter((it) => it.skills.some((skill) => !skill.selected && !skill.actioned))\n .map((it, groupIndex) => {\n return it.skills\n .filter((skill) => !skill.selected && !skill.actioned && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(skill.skillCode))))\n .map((skill) => {\n return {\n groupIndex,\n skillName: skill.skillType == \"Lor\" ? this.contentTranslator(this.props.contentTranslations, \"Lors\", skill.skillName, skill.skillName) : this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.skillName, skill.skillName),\n skillCode: skill.skillCode,\n skillLabel:\n skill.skillType == \"Lor\"\n ? `${this.contentTranslator(this.props.contentTranslations, \"Lors\", skill.skillName, skill.skillName)} ${skill.skillLevel}`\n : `${this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.skillName, skill.skillName)} ${skill.skillLevel}`,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n };\n });\n })\n );\n\n const spreadedInterventions = interventions.map((intervention) => {\n return {\n id: intervention.id,\n group: `${intervention.companyId}${intervention.actionType}${intervention.name}${intervention.link ? intervention.link : \"\"}${intervention.duration ? intervention.duration : \"0\"}`,\n companyId: intervention.companyId,\n company: intervention.company,\n actionType: intervention.actionType,\n name: intervention.name,\n link: intervention.link,\n duration: intervention.duration,\n durationHours: intervention.durationHours,\n description: intervention.description,\n isActive: intervention.isActive,\n isValidated: intervention.isValidated,\n publishedOn: intervention.publishedOn,\n reviewOn: intervention.reviewOn,\n retireOn: intervention.retireOn,\n sfiaVersion: intervention.sfiaVersion,\n versionNumber: intervention.versionNumber,\n levelsString: intervention.levels\n .sort((a, b) => (`${a.skillsCode}${a.level}` > `${b.skillsCode}${b.level}` ? 1 : -1))\n .map((level) => {\n return `${level.skillsCode}${level.level}`;\n })\n .join(\", \"),\n levels: intervention.levels,\n lorLevelsString: intervention.lorLevels\n .sort((a, b) => (`${a.lorCode}${a.level}` > `${b.lorCode}${b.level}` ? 1 : -1))\n .map((level) => {\n return `${level.lorCode}${level.level}`;\n })\n .join(\", \"),\n lorLevels: intervention.lorLevels,\n hidden: intervention.hidden,\n };\n });\n\n const groupdSpreadedInterventions = _.groupBy(spreadedInterventions, function (item) {\n return item.group;\n });\n\n const resultInterventions = [];\n\n Object.keys(groupdSpreadedInterventions).forEach((key) => {\n //console.log(key, groupdSpreadedInterventions[key]);\n resultInterventions.push(groupdSpreadedInterventions[key][0]);\n });\n\n const selectedDefaultSkill = this.props.selectedDefaultSkill;\n let oddIndex = 0;\n\n return (\n \n {this.modalInterventionDetail()}\n {this.renderActionNoSkillConfirmationDialog()}\n \n {this.state.actionPlanUpdating ? (\n
\n \n
\n ) : (\n \n \n
\n \n this.handleActionClick(\"Listed\")}\n className={\"btn \" + (this.state.addMode === \"Listed\" ? \"btn-primary btnPrimary-Style\" : \"btn-light btnSecondary-Style\")}\n >\n \n \n \n \n \n this.handleActionClick(\"Custom\")}\n className={\"btn \" + (this.state.addMode === \"Custom\" ? \"btn-primary btnPrimary-Style\" : \"btn-light btnSecondary-Style\")}\n >\n \n \n \n \n \n \n \n \n {this.state.addMode === \"Listed\" ? (\n \n \n \n this.handleTogleShowFilter()}>\n \n \n \n \n {this.state.showFilter && this.interventionFormPanel()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n
\n {resultInterventions.map((intervention, index) => {\n if (showHiddenInterventions || (!showHiddenInterventions && !intervention.hidden)) {\n oddIndex++;\n }\n const odd = oddIndex % 2 == 1;\n return (\n \n
\n \n
\n this.handleShowInterventionDetail(intervention)}>\n {intervention.company.name} - {intervention.name}\n \n \n \n \n \n {intervention.lorLevels.map((level, levellIndex) => `${levellIndex > 0 ? \", \" : \"\"}${level.lorCode}${level.level}`)}\n {intervention.lorLevels && intervention.lorLevels.length ? \", \" : \"\"}\n {intervention.levels.map((level, levellIndex) => `${levellIndex > 0 ? \", \" : \"\"}${level.skillsCode}${level.level}`)}\n \n \n \n \n \n \n \n this.handleShowInterventionDetail(intervention)}>\n \n \n   \n this.handleUpdateHiddenIntervention(intervention.id, !intervention.hidden)}>\n {intervention.hidden ? : }\n \n \n \n \n \n {intervention.hidden ? : }\n \n \n \n {intervention.link ? (\n \n \n {intervention.link && (\n \n {intervention.link}\n \n )}\n \n \n {intervention.duration ? (\n {this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanInterventionDuration\", \"{s1} days\"), intervention.duration)}\n ) : (\n \"\"\n )}\n {intervention.durationHours ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanInterventionDurationHours\", \"{s1} hours\"), intervention.durationHours) : \"\"}\n \n \n ) : (\n (intervention.duration || intervention.durationHours) && (\n \n \n \n \n {intervention.duration ? (\n {this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanInterventionDuration\", \"{s1} days\"), intervention.duration)}\n ) : (\n \"\"\n )}\n {intervention.durationHours ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanInterventionDurationHours\", \"{s1} hours\"), intervention.durationHours) : \"\"}\n \n \n \n )\n )}\n \n \n );\n })}\n \n )}\n
\n \n \n \n \n \n \n \n \n \n this.handleFormListedChangeDate(\"target\", value)} className=\"form-control\" isClearable />\n {formListed && formListed.target.touched && !formListed.target.valid && Target date is mandatory}\n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n
\n \n
\n \n \n \n \n \n \n \n \n \n this.handleChange({\n target: {\n name: \"actionType\",\n value: value.name,\n },\n })\n }\n onChange={() => {}}\n textField=\"name\"\n dataKey=\"name\"\n defaultValue={optionsActionTypes[0]}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n this.handleChangeDate(\"target\", value)} className=\"form-control\" isClearable />\n {form && form.target.touched && !form.target.valid && Target date is mandatory}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n a.groupIndex - b.groupIndex)}\n onSelect={(value) => this.handleChangeOtherSkill(value)}\n onChange={() => {}}\n textField=\"skillLabel\"\n groupBy=\"skillName\"\n filter=\"contains\"\n placeholder=\"Select skill\"\n autoSelectMatches={true}\n value={spreadedActionSkills.find((value) => value.skillCode + \"-\" + value.skillLevel == this.state.selectedOtherSkill)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {jobLorProfiles &&\n jobLorProfiles\n .filter((it) => availableLorCodes.includes(it.lorCode) && (!it.actioned || (selectedDefaultSkill ? selectedDefaultSkill.skillCode == it.lorCode && selectedDefaultSkill.skillLevel == it.level : false)))\n .sort((a, b) => (`${a.lorCode}${a.level}` > `${b.lorCode}${b.level}` ? 1 : -1))\n .map((jobLorProfile, index) => {\n const lor = lors.find((it) => it.lorCode == jobLorProfile.lorCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == jobLorProfile.level) : null;\n\n return (\n \n
\n it.skillCode == jobLorProfile.lorCode && it.skillLevel == jobLorProfile.level)}\n label={`${jobLorProfile.lorCode}${jobLorProfile.level} - ${this.contentTranslator(this.props.contentTranslations, \"Lors\", jobLorProfile.lor, jobLorProfile.lor)} ${jobLorProfile.level}`}\n onChange={() => this.handleSkillCheckedChange(jobLorProfile.lor, jobLorProfile.lorCode, jobLorProfile.level, \"Lor\")}\n inline\n />\n
\n \n {lorLevel && }\n \n
\n );\n })}\n {jobLorProfiles && jobLorProfiles.find((it) => availableLorCodes.includes(it.lorCode) && (!it.actioned || (selectedDefaultSkill ? selectedDefaultSkill.skillCode == it.lorCode && selectedDefaultSkill.skillLevel == it.level : false))) && (\n
 
\n )}\n {jobSkillProfiles &&\n jobSkillProfiles\n .filter((it) => availableSkillCodes.includes(it.skillCode) && (!it.actioned || (selectedDefaultSkill ? selectedDefaultSkill.skillCode == it.skillCode && selectedDefaultSkill.skillLevel == it.level : false)))\n .sort((a, b) => (`${a.skillCode}${a.level}` > `${b.skillCode}${b.level}` ? 1 : -1))\n .map((jobSkillProfile, index) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == jobSkillProfile.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${jobSkillProfile.skillCode} ${jobSkillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n it.skillCode == jobSkillProfile.skillCode && it.skillLevel == jobSkillProfile.level)}\n label={`${jobSkillProfile.skillCode}${jobSkillProfile.level} - ${this.contentTranslator(this.props.contentTranslations, \"Skills\", jobSkillProfile.skill, jobSkillProfile.skill)} ${jobSkillProfile.level}`}\n onChange={() => this.handleSkillCheckedChange(jobSkillProfile.skill, jobSkillProfile.skillCode, jobSkillProfile.level, \"Skill\")}\n inline\n />\n
\n \n
\n );\n })}\n
\n
\n \n \n {pickedOtherSkills && pickedOtherSkills.length > 0 && (\n \n \n \n \n
\n {pickedOtherSkills.map((pickedOtherSkill, index) => {\n let tooltipDescription = \"\";\n\n if (pickedOtherSkill.skillType == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == pickedOtherSkill.skillName && it.skillsCode == pickedOtherSkill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == pickedOtherSkill.skillName && it.skillsCode == pickedOtherSkill.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == pickedOtherSkill.skillName && it.skillsCode == pickedOtherSkill.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == pickedOtherSkill.skillLevel);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${pickedOtherSkill.skillCode} ${pickedOtherSkill.skillLevel} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == pickedOtherSkill.skillCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == pickedOtherSkill.skillLevel) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n it.skillCode == pickedOtherSkill.skillCode && it.skillLevel == pickedOtherSkill.skillLevel)}\n label={`${pickedOtherSkill.skillCode}${pickedOtherSkill.skillLevel} - ${\n pickedOtherSkill.skillType == \"Skill\"\n ? this.contentTranslator(this.props.contentTranslations, \"Skills\", pickedOtherSkill.skillName, pickedOtherSkill.skillName)\n : this.contentTranslator(this.props.contentTranslations, \"Lors\", pickedOtherSkill.skillName, pickedOtherSkill.skillName)\n } ${pickedOtherSkill.skillLevel}`}\n onChange={() => this.handleOtherSkillCheckedChange(pickedOtherSkill.skillName, pickedOtherSkill.skillCode, pickedOtherSkill.skillLevel, pickedOtherSkill.skillType)}\n inline\n />\n
\n \n
\n );\n })}\n
\n
\n \n \n )}\n \n \n \n \n \n \n \n )}\n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n actionPlanUpdating: state.actionPlan.actionPlanUpdating,\n actionPlanUpdatingError: state.actionPlan.actionPlanUpdatingError,\n addedAction: state.actionPlan.addedAction,\n interventionsLoading: state.actionPlan.loading,\n interventionsError: state.actionPlan.error,\n interventions: state.actionPlan.interventions,\n\n lors: state.lor.lors,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n\n jobLoading: state.job.loading,\n jobError: state.job.error,\n jobs: state.job.jobs,\n\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FormAddAction);\n","import ContentTranslator from \"../translator/ContentTranslator\";\nimport FormAddAction from \"./FormAddAction\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\n\nconst buttonActionPrimaryStyle = {\n height: \"32px\",\n width: \"80px\",\n};\n\nclass ActionPlanResponsibilityBody extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showActionForm: false,\n // lor: this.props.lor,\n };\n\n this.initData = this.initData.bind(this);\n this.handleAddActionClick = this.handleAddActionClick.bind(this);\n this.handleActionfinish = this.handleActionfinish.bind(this);\n this.handleActionPlanAdded = this.handleActionPlanAdded.bind(this);\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills) {\n this.setState({ showActionForm: false });\n }\n }\n\n initData() {}\n\n handleAddActionClick = () => {\n this.setState({\n showActionForm: !this.state.showActionForm,\n });\n };\n\n handleActionfinish = () => {\n this.setState({\n showActionForm: false,\n });\n };\n\n handleActionPlanAdded(addedActionPlans) {\n this.setState({\n showActionForm: false,\n });\n\n this.props.handleActionPlanAdded(addedActionPlans);\n }\n\n render() {\n const { lor, action, skillProfile, jobLorProfiles, currentJob, futureJob, selectedJob } = this.props;\n\n const currentJobLorProfile = currentJob && jobLorProfiles.find((it) => it.lor === lor.name && it.jobId == currentJob.jobId);\n const futureJobLorProfile = futureJob && jobLorProfiles.find((it) => it.lor === lor.name && it.jobId == futureJob.jobId);\n\n const selectedJobLorProfile = selectedJob && jobLorProfiles.find((it) => it.lor === lor.name && it.jobId == selectedJob.id);\n\n let notMandatory = false;\n let selectedDefaultSkill = null;\n\n if ((skillProfile && selectedJobLorProfile && skillProfile.level >= selectedJobLorProfile.numericVal) || (skillProfile && !selectedJobLorProfile)) {\n notMandatory = true;\n } else {\n notMandatory = false;\n\n if (selectedJobLorProfile) {\n selectedDefaultSkill = {\n skillName: selectedJobLorProfile.lor,\n skillCode: selectedJobLorProfile.lorCode,\n skillLevel: selectedJobLorProfile.level,\n skillType: \"Lor\",\n };\n }\n }\n\n return (\n \n {((selectedJobLorProfile && skillProfile && skillProfile.level < selectedJobLorProfile.numericVal) || this.props.showAll) && (\n \n \n \n \n \n \n \n )}\n {this.state.showActionForm && (\n \n \n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = () => {\n return {};\n};\n\nconst mapDispatchToProps = () => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ActionPlanResponsibilityBody);\n","import * as lorActions from \"../../store/actions/lorAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport ActionPlanResponsibilityBody from \"./TableActionPlanResponsibilityBody\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst lorOrders = [\n { lor: \"Autonomy\", order: 1 },\n { lor: \"Influence\", order: 2 },\n { lor: \"Complexity\", order: 3 },\n { lor: \"Business Skills\", order: 4 },\n { lor: \"Knowledge\", order: 5 },\n { lor: \"Responsibility and Autonomy\", order: 1 },\n { lor: \"Complexity and Scope\", order: 2 },\n { lor: \"Skills\", order: 3 },\n];\n\nclass ActionPlanResponsibility extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showActionForm: false,\n };\n\n this.initData = this.initData.bind(this);\n }\n\n componentDidMount() {\n this.initData();\n }\n\n initData() {}\n\n TableBodyResponsibility = (category) => {\n const { lors, actions, jobGaps, lorProfiles, skillProfiles, jobLorProfiles, jobSkillProfiles } = this.props;\n\n if (lors) {\n lors.forEach((lor) => {\n const lorOrder = lorOrders.find((it) => it.lor == lor.name);\n if (lorOrder) {\n lor.order = lorOrder.order;\n } else {\n lor.order = 999;\n }\n });\n }\n\n if (this.state.loading) {\n return (\n \n \n \n );\n } else {\n const mainRows = lors\n .filter((it) => (it.category ? it.category : \"Generic Attributes\") == (category ? category : \"Generic Attributes\"))\n //.sort((a, b) => (`${a.sequence}${a.order}${a.name}` > `${b.sequence}${b.order}${b.name}` ? 1 : -1))\n .sort((a, b) => {\n if (a.sequence > b.sequence) {\n return 1;\n }\n if (a.sequence < b.sequence) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n if (a.order < b.order) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n })\n .map((lor, index) => {\n const lorHidden = lor.isHidden && !this.props.showHiddenSkills;\n const lorProfile = lorProfiles.find((x) => x.lor === lor.name);\n const action = actions.find((action) => action.skills.some((skill) => skill.code == lor.lorCode));\n\n return (\n \n );\n });\n\n return mainRows;\n }\n };\n\n render() {\n const { lors, lorProfiles, jobLorProfiles, selectedJob } = this.props;\n\n const lorCategories = [];\n\n if (lors.find((it) => !it.category)) {\n lorCategories.push({\n category: \"Generic Attributes\",\n categoryColor: \"#69849c\",\n lorColor: \"#ecf0f5\",\n lors: lors.find((it) => !it.category) ? [...lors.filter((it) => !it.category)] : [],\n });\n }\n\n lors.filter((it) => it.category).forEach((lor) => {\n if (!lorCategories.find((it) => it.category == lor.category)) {\n lorCategories.push({\n category: lor.category,\n categoryColor: lor.categoryColor,\n lorColor: lor.lorColor,\n lors: lors.find((it) => it.category == lor.category) ? [...lors.filter((it) => it.category == lor.category)] : [],\n });\n }\n });\n\n let showLors = false;\n\n lors.map((lor) => {\n const lorProfile = lorProfiles.find((x) => x.lor === lor.name);\n const selectedJobLorProfile = selectedJob && jobLorProfiles.find((it) => it.lor === lor.name && it.jobId == selectedJob.id);\n\n if ((selectedJobLorProfile && lorProfile && lorProfile.numericVal < selectedJobLorProfile.numericVal) || this.props.showAll) {\n showLors = true;\n }\n });\n\n return (\n \n {showLors &&\n lorCategories.map((lorCategory, index) => {\n let showCategoryLors = false;\n\n lors.filter((it) => (it.category ? it.category : \"Generic Attributes\") == (lorCategory.category ? lorCategory.category : \"Generic Attributes\")).map((lor) => {\n const lorProfile = lorProfiles.find((x) => x.lor === lor.name);\n const selectedJobLorProfile = selectedJob && jobLorProfiles.find((it) => it.lor === lor.name && it.jobId == selectedJob.id);\n\n if (showCategoryLors == false && ((selectedJobLorProfile && lorProfile && lorProfile.numericVal < selectedJobLorProfile.numericVal) || this.props.showAll)) {\n showCategoryLors = !lor.isHidden || (lor.isHidden && this.props.showHiddenSkills);\n }\n });\n\n return (\n \n {showCategoryLors && (\n \n \n \n \n \n \n \n \n \n \n {this.TableBodyResponsibility(lorCategory.category)}\n \n \n \n \n \n \n )}\n \n );\n })}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n lors: state.lor.lors,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ActionPlanResponsibility);\n","import { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport FormAddAction from \"./FormAddAction\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { UncontrolledTooltip } from \"reactstrap\";\n\nconst buttonActionPrimaryStyle = {\n height: \"32px\",\n width: \"80px\",\n};\n\nclass TableBodyActionPlan extends React.Component {\n static display = TableBodyActionPlan.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n loading: false,\n showPopup: false,\n showActionForm: false,\n };\n\n this.handleAddActionClick = this.handleAddActionClick.bind(this);\n this.handleActionfinish = this.handleActionfinish.bind(this);\n this.handleActionPlanAdded = this.handleActionPlanAdded.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills) {\n this.setState({ showActionForm: false });\n }\n }\n\n handleAddActionClick = () => {\n this.setState({\n showActionForm: !this.state.showActionForm,\n });\n };\n\n handleActionfinish = () => {\n this.setState({\n showActionForm: false,\n });\n };\n\n togleDescriptionModal() {\n const showPopup = this.state.showPopup;\n this.setState({ showPopup: !showPopup });\n }\n\n handleActionPlanAdded(addedActionPlans) {\n this.setState({\n showActionForm: false,\n });\n\n this.props.handleActionPlanAdded(addedActionPlans);\n }\n\n render() {\n const { showAll, levelIndex, skill, level } = this.props;\n const selectedDefaultSkill = {\n skillName: skill.name,\n skillCode: skill.skillsCode,\n skillLevel: level.level,\n skillType: \"Skill\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n {this.state.showActionForm && (\n \n \n \n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableBodyActionPlan);\n","import ContentTranslator from \"../translator/ContentTranslator\";\nimport TableBodyActionPlan from \"./TableBodyActionPlan\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\n\nconst tableBodyStyle = {\n fontSize: 11,\n fontFamily: \"IBMPlexSans\",\n};\n\nclass ActionPlanSkillProfiles extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n skillLevelDescriptionShow: false,\n poppedUpLevel: null,\n };\n\n this.openSkillLevelDescriptionModal = this.openSkillLevelDescriptionModal.bind(this);\n this.togleSkillLevelDescriptionModal = this.togleSkillLevelDescriptionModal.bind(this);\n }\n\n componentDidMount() {}\n\n renderSkillCategories(categories) {\n const categoriesRows = categories.map((category, index) => {\n return {this.renderSkillSubCategories(category)};\n });\n\n return categoriesRows;\n }\n\n renderSkillSubCategories(category) {\n const content = category.subCategories.map((subCategory, subIndex) => {\n const shownLevel = subCategory.skills.filter((skill) => skill.levels.some((level) => level.show));\n let subCatSkillProfilesCodeShown = subCategory.skills.filter((skill) => skill.levels.some((level) => level.show)).map((skill) => skill.skillsCode);\n const checkedSubCatSkills = this.props.showAll ? subCategory.skills : subCategory.skills.filter((it) => subCatSkillProfilesCodeShown.includes(it.skillsCode));\n const subCategoryHidden = !checkedSubCatSkills.some((skill) => !skill.isHidden) && !this.props.showHiddenSkills;\n\n return (\n (shownLevel.length > 0 || this.props.showAll) && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.renderSkills(subCategory)}\n \n \n \n \n \n \n )\n );\n });\n\n return content;\n }\n\n renderSkills(subCategory) {\n return (\n \n {subCategory.skills.map((skill, skillIndex) => {\n const skillHidden = skill.isHidden && !this.props.showHiddenSkills;\n\n return (\n \n {skill.levels.map((level, levelIndex) => {\n return (\n (level.show || this.props.showAll) && (\n \n )\n );\n })}\n \n );\n })}\n \n );\n }\n\n openSkillLevelDescriptionModal(level) {\n this.setState({ poppedUpLevel: level, skillLevelDescriptionShow: true });\n }\n\n togleSkillLevelDescriptionModal() {\n const skillLevelDescriptionShow = this.state.skillLevelDescriptionShow;\n this.setState({ skillLevelDescriptionShow: !skillLevelDescriptionShow });\n }\n\n render() {\n const { poppedUpLevel } = this.state;\n return (\n \n \n {poppedUpLevel && `${poppedUpLevel.skillsCode}-${poppedUpLevel.level}`}\n {poppedUpLevel &&
}
\n
\n {this.state.loading ? (\n \n
\n \n \n \n \n \n \n \n \n ) : (\n this.renderSkillCategories(this.props.categories)\n )}\n \n );\n }\n}\n\nconst mapStateToProps = () => {\n return {};\n};\n\nconst mapDispatchToProps = () => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ActionPlanSkillProfiles);\n","import ActionPlanResponsibility from \"./TableActionPlanResponsibility\";\nimport ActionPlanSkillProfiles from \"./TableActionPlanSkillProfiles\";\nimport React, { Component } from \"react\";\nimport { Container, Spinner, Table } from \"reactstrap\";\n\nexport class TableActionPlan extends Component {\n static displayName = TableActionPlan.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n showTable: false,\n categories: this.props.categories,\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n jobLorProfiles: this.props.jobLorProfiles,\n jobSkillProfiles: this.props.jobSkillProfiles,\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n optionsActionSkills: this.props.optionsActionSkills,\n };\n }\n\n componentDidMount() {\n this.processJobGapData();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.loadingAction !== this.props.loadingAction || prevProps.loadingProfile !== this.props.loadingProfile || prevProps.selectedJob !== this.props.selectedJob || prevProps.actions !== this.props.actions) {\n this.processJobGapData();\n }\n }\n\n handleActionClick = (value) => {\n this.setState({\n showTable: value,\n });\n };\n\n processJobGapData = () => {\n if (!this.props.loadingAction && !this.props.loadingProfile) {\n const { actions, jobLorProfiles, jobSkillProfiles, lorProfiles, skillProfiles, selectedJob } = this.props;\n let { categories, extraFrameworkCapabilities } = this.state;\n\n categories = categories.map((category) => {\n return {\n id: category.id,\n name: category.name,\n isExtraFramework: category.isExtraFramework,\n description: category.description,\n colour: category.colour,\n sfiaVersion: category.sfiaVersion,\n subCategories: category.subCategories.map((subCategory) => {\n return {\n id: subCategory.id,\n name: subCategory.name,\n description: subCategory.description,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n skills: subCategory.skills.map((skill) => {\n let skillNameShown = false;\n\n return {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n isHidden: skill.isHidden,\n levels: skill.levels.map((level) => {\n const skillProfile = skillProfiles.find((x) => x.skillCode == skill.skillsCode && x.level == level.level);\n const jobSkillProfile = jobSkillProfiles.find((x) => x.jobId == selectedJob.id && x.skillCode == skill.skillsCode && x.level == level.level);\n\n if (jobSkillProfile && skillProfile) {\n if (skillProfile.numericVal == 1 || skillProfile.stringVal == \"M\") {\n jobSkillProfile.actioned = true;\n }\n }\n\n const action = actions.find((actions) => actions.skills.some((it) => it.code == skill.skillsCode && it.level == level.level));\n\n level = {\n skillNameShown: false,\n show: false,\n id: level.id,\n level: level.level,\n description: level.description,\n skillProfile: skillProfile,\n jobSkillProfile: jobSkillProfile,\n action: action,\n };\n\n if (!skillNameShown) {\n if (!category.isExtraFramework == true) {\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile) || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n } else {\n const topExtraFrameworkCapability = [...extraFrameworkCapabilities].sort((a, b) => b.weight - a.weight)[0];\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < topExtraFrameworkCapability.weight) || (!level.skillProfile && level.jobSkillProfile) || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n }\n }\n\n if (!category.isExtraFramework == true) {\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile)) {\n level.show = true;\n }\n } else {\n const topExtraFrameworkCapability = [...extraFrameworkCapabilities].sort((a, b) => b.weight - a.weight)[0];\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < topExtraFrameworkCapability.weight) || (!level.skillProfile && level.jobSkillProfile)) {\n level.show = true;\n }\n }\n\n return level;\n }),\n };\n }),\n };\n }),\n };\n });\n\n jobLorProfiles.map((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level));\n\n if (lorProfile || plan) {\n jobLorProfile.actioned = true;\n }\n });\n\n jobSkillProfiles.map((jobSkillProfile) => {\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level));\n if (plan) {\n jobSkillProfile.actioned = true;\n }\n });\n\n let optionsActionSkills = this.props.optionsActionSkills;\n optionsActionSkills.forEach((actionSkill) => {\n actionSkill.skills.forEach((skill) => {\n if (\n actions.filter((x) => x.skills.some((y) => y.code == skill.skillCode && y.level == skill.skillLevel)).length > 0 ||\n jobLorProfiles.filter((it) => it.lorCode == skill.skillCode && it.level == skill.skillLevel).length > 0 ||\n jobSkillProfiles.filter((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel).length > 0\n ) {\n skill.actioned = true;\n }\n });\n });\n\n this.props.returnOptionActionSkills(optionsActionSkills);\n\n this.setState({\n categories,\n jobLorProfiles,\n jobSkillProfiles,\n lorProfiles,\n skillProfiles,\n optionsActionSkills,\n });\n }\n };\n\n render() {\n return (\n \n {this.props.loadingProfile ? (\n
\n \n
\n ) : (\n \n
\n \n {skillProfile ? skillProfile.level : 0}{currentJobLorProfile && currentJobLorProfile.numericVal}{futureJobLorProfile && futureJobLorProfile.numericVal}\n {!this.state.showActionForm ? (\n \n \n \n ) : (\n \n )}\n
\n
\n \n
\n
\n
\n \n
\n
\n {lorCategory.category == \"Generic Attributes\" ? : lorCategory.category}\n \n \n \n \n \n \n \n \n
{(showAll ? levelIndex === 0 : level.skillNameShown) && `${this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.name, skill.name)} (${skill.skillsCode})`}\n {`${skill.skillsCode}${level.level} - `}\n \n this.props.openSkillLevelDescriptionModal({\n skillsCode: skill.skillsCode,\n level: level.level,\n description: this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skill.skillsCode} ${level.level} Description`, level.description),\n })\n }\n >\n \n \n \n \n \n {level.jobSkillProfile ? (\n level.skillProfile && level.skillProfile.stringVal == \"M\" ? (\n \"\"\n ) : level.action ? (\n \n ) : level.skillProfile && level.skillProfile.stringVal == \"P\" ? (\n \n ) : level.skillProfile && level.skillProfile.stringVal == \"NA\" ? (\n \n ) : level.jobSkillProfile ? (\n \n ) : (\n \"\"\n )\n ) : (\n \"\"\n )}\n \n \n
\n \n {level.jobSkillProfile ? (\n level.jobSkillProfile.stringVal == \"M\" ? (\n \n ) : (\n \n )\n ) : (\n \"\"\n )}\n \n
\n {!this.state.showActionForm ? (\n \n ) : (\n \n )}\n
\n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n \n \n
\n \n )}\n \n );\n }\n}\n","import MentorPreferenceModal from \"../../components/trienpont/components/modals/mentorpreferences\";\nimport PossibleMentorModal from \"../../components/trienpont/components/modals/possiblementor\";\nimport * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport * as personAction from \"../../store/actions/personAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ChatbotOpenAi from \"../ChatbotOpenAi\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport FormAddAction from \"./FormAddAction\";\nimport { TableActionPlan } from \"./TableActionPlan\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport Select from \"react-select\";\nimport { Col, Container, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"32px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst ddHeaderStyle = {\n fontsize: \"14px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nclass ManageActionPlan extends React.Component {\n static displayNama = ManageActionPlan.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n showActionForm: false,\n showAll: false,\n showHiddenSkills: false,\n allowUpdate: true,\n returnedOptionsActionSkills: this.props.optionsActionSkills,\n showMentorPreferenceDialog: false,\n isBtnMentorPreference: false,\n showPossibleMentorDialog: false,\n };\n this.handleAddActionClick = this.handleAddActionClick.bind(this);\n this.handleActionfinish = this.handleActionfinish.bind(this);\n this.handleActionPlanAdded = this.handleActionPlanAdded.bind(this);\n this.myManageActionWrapper = React.createRef();\n this.contentTranslator = contentTranslator.bind(this);\n this.updatePersonMentorPreference = this.updatePersonMentorPreference.bind(this);\n this.updatePersonMentorPreference();\n }\n\n componentDidMount() {\n // relationship for allow\n const listRelationshipType = [\"Line Manager\", \"Mentor\"];\n\n if (!this.props.managedPeople || (this.props.managedPeople && listRelationshipType.some((item) => item.toLocaleLowerCase().trim() === this.props.managedPeople.relationshipType?.toLocaleLowerCase().trim()))) {\n this.setState({ allowUpdate: true });\n } else {\n this.setState({ allowUpdate: false });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.stepActionClicked !== this.props.stepActionClicked) {\n if (this.props.stepActionClicked) {\n this.scroll(this.myManageActionWrapper);\n }\n }\n\n if (prevProps.proposeActionStarted !== this.props.proposeActionStarted && this.props.proposeActionStarted == true) {\n this.setState({ showHiddenSkills: false });\n }\n }\n\n updatePersonMentorPreference() {\n this.props.onPerson.getPersonMentorPreference().then(() => {\n this.setState({\n isBtnMentorPreference: this.props.mentorPreference.some((item) => item.selected),\n });\n });\n }\n\n handleChageShowAll = () => {\n this.setState({\n showAll: !this.state.showAll,\n });\n };\n\n handleChageShowHiddenSkills = () => {\n const showHiddenSkills = this.state.showHiddenSkills;\n this.setState({\n showHiddenSkills: !showHiddenSkills,\n showActionForm: false,\n });\n\n this.props.handleChageShowHiddenSkills(!showHiddenSkills);\n };\n\n handleChangeProfile = (event) => {\n this.props.handleChangeProfileType(event.value);\n };\n\n handleChangeJob = (event) => {\n this.props.handleChangeJob(event);\n };\n\n handleAddActionClick = () => {\n this.setState({\n showActionForm: !this.state.showActionForm,\n });\n };\n\n handleActionfinish = () => {\n this.setState({\n showActionForm: false,\n });\n };\n\n handleActionPlanAdded(addedAction) {\n this.setState({\n showActionForm: false,\n });\n\n this.props.handleActionPlanAdded(addedAction);\n }\n\n handleOpenMentorPreference = () => {\n this.setState({ showMentorPreferenceDialog: new Date() });\n };\n\n handleOpenPossibleMentor = () => {\n this.setState({ showPossibleMentorDialog: new Date() });\n };\n\n handlePrintReport = () => {\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.printManagedPeopleActionReport(this.props.managedPeople.personB.email) : this.props.onActionPlan.printMyActionReport()).then(() => {\n if (!this.props.loadingPrint && !this.props.error) {\n if (this.props.printData) {\n const firstName = this.props.managedPeople ? this.props.managedPeople.personB.firstName : localStorage.getItem(\"firstName\");\n const lastName = this.props.managedPeople ? this.props.managedPeople.personB.lastName : localStorage.getItem(\"lastName\");\n\n let reportFormat = \"PDF\";\n if (this.props.selfAssessedProfileReportFormat) {\n reportFormat = this.props.selfAssessedProfileReportFormat;\n }\n\n FileDownload(this.props.printData, firstName && lastName ? `${firstName}${lastName}_SkillsTx_ActionPlan.${reportFormat == \"PDF\" ? \"pdf\" : \"docx\"}` : 'SkillsTx_ActionPlan.${reportFormat == \"PDF\" ? \"pdf\" : \"docx\"}');\n }\n }\n });\n };\n\n scroll(ref) {\n ref.current.scrollIntoView({ behavior: \"smooth\" });\n }\n\n returnOptionActionSkills = (optionsActionSkills) => {\n this.setState({ returnedOptionsActionSkills: optionsActionSkills });\n };\n\n renderMentorPreference = () => {\n return (\n \n );\n };\n\n renderPossibleMentor = () => {\n return (\n \n );\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const { optionsJob, optionsProfile, selectedOptionProfile, selectedJob, currAssessment, containerConfig } = this.props;\n const isFindMentor = currAssessment?.enableFindMentor ?? false;\n return (\n \n

\n {this.props.managedPeople\n ? `${this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanManageAccountForTitle\", \"Manage Action Plan for\")} ${this.props.managedPeople.personB.firstName} ${this.props.managedPeople.personB.lastName}`\n : this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanManageAccountTitle\", \"Manage Your Action Plan\")}\n

\n {this.renderMentorPreference()}\n {this.renderPossibleMentor()}\n {containerConfig && containerConfig.enableAIChatBot && }\n \n \n \n \n \n \n

\n \n

\n option.label === selectedJob.label)} onChange={this.handleChangeJob} options={optionsJob} />\n \n
\n
\n \n \n {isFindMentor && !isAdmin && (\n <>\n \n \n \n \n \n \n \n \n \n )}\n {this.props.containerConfig && this.props.containerConfig.allowShowHiddenSkills && (\n \n )}\n \n \n {this.state.showAll ? (\n \n ) : (\n \n )}\n \n {this.state.allowUpdate &&\n (!this.state.showActionForm ? (\n \n \n \n \n \n \n ) : (\n \n ))}\n {this.props.actions && this.props.actions.length > 0 && (\n \n \n \n \n \n \n )}\n \n
\n
\n {this.state.showActionForm && (\n
\n
\n \n \n \n \n \n \n \n
\n
\n )}\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loadingPrint: state.actionPlan.loadingPrint,\n printData: state.actionPlan.printData,\n error: state.actionPlan.error,\n\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n\n mentorPreference: state.person.mentorPreference,\n\n contentTranslations: state.content.contentTranslations,\n\n currAssessment: state.config.currAssessment,\n containerConfig: state.config.containerConfig,\n\n jobProfileReportFormat: state.auth.jobProfileReportFormat,\n selfAssessedProfileReportFormat: state.auth.selfAssessedProfileReportFormat,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onPerson: bindActionCreators(personAction, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageActionPlan);\n","import * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-edit-action.css\";\nimport { faArrowDown, faArrowUp, faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport Combobox from \"react-widgets/Combobox\";\nimport { Alert, Button, ButtonGroup, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { Col, Container, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nvar _ = require(\"lodash\");\n\nconst filterOutLoROnProposeAction = false;\n\nclass Todo extends React.Component {\n static displayName = Todo.name;\n\n constructor(props) {\n super(props);\n this.state = {\n optionsStatus: [\n { label: \"Todo\", value: \"ToDo\" },\n { label: \"In Progress\", value: \"InProgress\" },\n { label: \"Done\", value: \"Done - self verified\" },\n ],\n optionsActionTypes: this.props.optionsActionTypes,\n optionsActionSkills: this.props.optionsActionSkills,\n optionProposeCapabilities: [{ name: \"Knowledge\" }, { name: \"Proficient\" }, { name: \"Competent\" }],\n showActionPlanDetail: false,\n poppedUpAction: null,\n showActionPlanEdit: false,\n editedAction: null,\n form: {\n id: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n status: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n actionType: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n name: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n targetCompletionOn: {\n validation: {\n required: this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false,\n isDateTime: true,\n },\n value: null,\n valid: !(this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false),\n isValidFormat: true,\n touched: false,\n },\n description: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n duration: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n durationHours: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n proposeCapability: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n selectedSkills: [],\n pickedOtherSkills: [],\n selectedOtherSkill: \"\",\n selectedOtherSkills: [],\n actionPlanUpdating: false,\n selectedSortOption: \"targetCompletionOn\",\n selectedSortOptionDirection: \"asc\",\n optionSorts: [\n {\n label: \"Target Completion Date\",\n field: \"targetCompletionOn\",\n selected: true,\n },\n {\n label: \"Status\",\n field: \"status\",\n },\n {\n label: \"Type\",\n field: \"actionType\",\n },\n ],\n showDone: false,\n showHidden: false,\n showPopUpAsPromoteAction: false,\n showActionPromotionConfirmationDialog: false,\n proposeActionMode: false,\n showPopUpAsProposeAction: false,\n showPopUpAsViewProposedAction: false,\n showProposeActionConfirmationDialog: false,\n viewProposedActionMode: false,\n showIssueBadgeConfirmationDialog: false,\n showRejectBadgeConfirmationDialog: false,\n };\n\n this.openActionPlanDetailModal = this.openActionPlanDetailModal.bind(this);\n this.togleActionPlanDetailModal = this.togleActionPlanDetailModal.bind(this);\n\n this.openActionPlanEditModal = this.openActionPlanEditModal.bind(this);\n this.togleActionPlanEditModal = this.togleActionPlanEditModal.bind(this);\n\n this.handleSkillCheckedChange = this.handleSkillCheckedChange.bind(this);\n this.handleChangeOtherSkill = this.handleChangeOtherSkill.bind(this);\n this.handleAddOtherSkill = this.handleAddOtherSkill.bind(this);\n this.handleOtherSkillCheckedChange = this.handleOtherSkillCheckedChange.bind(this);\n this.handleSubmitEdit = this.handleSubmitEdit.bind(this);\n this.handleSubmitDelete = this.handleSubmitDelete.bind(this);\n\n this.handleChangeSortOption = this.handleChangeSortOption.bind(this);\n this.handleChangeSortDirection = this.handleChangeSortDirection.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n this.processJobGapData();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.loadingAction !== this.props.loadingAction || prevProps.loadingProfile !== this.props.loadingProfile || prevProps.selectedJob !== this.props.selectedJob || prevProps.actions !== this.props.actions) {\n this.processJobGapData();\n }\n\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills) {\n this.setState({ showActionPlanEdit: false });\n }\n }\n\n processJobGapData = () => {\n if (!this.props.loadingAction && !this.props.loadingProfile) {\n const { actions, jobLorProfiles, jobSkillProfiles, lorProfiles, skillProfiles, selectedJob, showHiddenSkills } = this.props;\n let { categories } = this.props;\n\n categories = categories.map((category) => {\n return {\n id: category.id,\n name: category.name,\n description: category.description,\n colour: category.colour,\n sfiaVersion: category.sfiaVersion,\n subCategories: category.subCategories.map((subCategory) => {\n return {\n id: subCategory.id,\n name: subCategory.name,\n description: subCategory.description,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n skills: subCategory.skills.map((skill) => {\n let skillNameShown = false;\n\n return {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n levels: skill.levels.map((level) => {\n const skillProfile = skillProfiles.find((x) => x.skillCode == skill.skillsCode && x.level == level.level);\n const jobSkillProfile = jobSkillProfiles.find((x) => x.jobId == selectedJob.id && x.skillCode == skill.skillsCode && x.level == level.level);\n\n if (jobSkillProfile && skillProfile) {\n if (skillProfile.numericVal == 1 || skillProfile.stringVal == \"M\") {\n jobSkillProfile.actioned = true;\n }\n }\n\n const action = actions.find((actions) => actions.skills.some((it) => it.code == skill.skillsCode && it.level == level.level));\n\n level = {\n skillNameShown: false,\n show: false,\n id: level.id,\n level: level.level,\n description: level.description,\n skillProfile: skillProfile,\n jobSkillProfile: jobSkillProfile,\n action: action,\n };\n\n if (!skillNameShown) {\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile) || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n }\n\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile)) {\n level.show = true;\n }\n\n return level;\n }),\n };\n }),\n };\n }),\n };\n });\n\n jobLorProfiles.map((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level));\n\n if (lorProfile || plan) {\n jobLorProfile.actioned = true;\n }\n });\n\n jobSkillProfiles.map((jobSkillProfile) => {\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level));\n if (plan) {\n jobSkillProfile.actioned = true;\n }\n });\n\n let optionsActionSkills = this.props.optionsActionSkills;\n optionsActionSkills.forEach((actionSkill) => {\n actionSkill.skills.forEach((skill) => {\n if (\n actions.filter((x) => x.skills.some((y) => y.code == skill.skillCode && y.level == skill.skillLevel)).length > 0 ||\n jobLorProfiles.filter((it) => it.lorCode == skill.skillCode && it.level == skill.skillLevel).length > 0 ||\n jobSkillProfiles.filter((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel).length > 0\n ) {\n skill.actioned = true;\n }\n });\n });\n\n this.setState({\n optionsActionSkills,\n });\n }\n };\n\n openActionPlanEditModal(action, promoteAction, proposeAction, viewProposedAction) {\n let form = this.state.form;\n\n form.id.value = action.id;\n form.id.valid = true;\n form.id.isValidFormat = true;\n\n form.status.value = action.status;\n form.status.valid = true;\n form.status.isValidFormat = true;\n\n form.actionType.value = action.actionType;\n form.actionType.valid = true;\n form.actionType.isValidFormat = true;\n\n form.name.value = action.name;\n form.name.valid = true;\n form.name.isValidFormat = true;\n\n form.targetCompletionOn.value = action.targetCompletionOn;\n form.targetCompletionOn.valid = form.targetCompletionOn.validation.required ? (action.targetCompletionOn ? true : false) : true;\n form.targetCompletionOn.isValidFormat = form.targetCompletionOn.validation.required ? (action.targetCompletionOn ? true : false) : true;\n\n form.description.value = action.description;\n form.link.value = action.link;\n form.duration.value = action.duration;\n form.durationHours.value = action.durationHours;\n\n let proposeCapability = null;\n if (viewProposedAction && action && action.updateProfileEvidenceProposalSkills && action.updateProfileEvidenceProposalSkills.length > 0) {\n proposeCapability = action.updateProfileEvidenceProposalSkills[0].capability;\n }\n\n form.proposeCapability.value = proposeCapability;\n form.proposeCapability.valid = !proposeAction;\n form.proposeCapability.isValidFormat = !proposeAction;\n\n this.setState({\n editedAction: action,\n showActionPlanEdit: true,\n form,\n isFormValid: form.targetCompletionOn.valid && !proposeAction,\n selectedSkills: action.skills.map((skill) => {\n return {\n id: skill.id,\n skillName: skill.name,\n skillCode: skill.code,\n skillLevel: skill.level,\n skillType: skill.type,\n };\n }),\n pickedOtherSkills: [],\n selectedOtherSkills: [],\n showPopUpAsPromoteAction: promoteAction,\n showPopUpAsProposeAction: proposeAction,\n showPopUpAsViewProposedAction: viewProposedAction,\n });\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeDate(name, value) {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n togleActionPlanEditModal() {\n const showActionPlanEdit = this.state.showActionPlanEdit;\n this.setState({ showActionPlanEdit: !showActionPlanEdit });\n }\n\n openActionPlanDetailModal(action) {\n this.setState({ poppedUpAction: action, showActionPlanDetail: true });\n }\n\n togleActionPlanDetailModal() {\n const showActionPlanDetail = this.state.showActionPlanDetail;\n this.setState({ showActionPlanDetail: !showActionPlanDetail });\n }\n\n modalActionPlanDetail() {\n const { poppedUpAction } = this.state;\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n this.togleActionPlanDetailModal();\n this.openActionPlanEditModal(poppedUpAction, false, false, false);\n }}\n >\n \n \n \n \n
\n );\n }\n\n handleSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedSkills = this.state.selectedSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n\n if (unSelectedSkill.id) {\n if (unSelectedSkill.removed) {\n unSelectedSkill.removed = false;\n } else {\n unSelectedSkill.removed = true;\n }\n\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills[index].removed = unSelectedSkill.removed;\n }\n\n this.setState({ selectedSkills });\n } else {\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills.splice(index, 1);\n }\n\n this.setState({ selectedSkills });\n }\n } else {\n this.setState({ selectedSkills: [...selectedSkills, selectedSkill] });\n }\n }\n\n handleChangeOtherSkill = (event) => {\n this.setState({ selectedOtherSkill: event.target.value });\n };\n\n handleAddOtherSkill() {\n const selectedOtherSkill = this.state.selectedOtherSkill;\n let { optionsActionSkills, pickedOtherSkills, selectedOtherSkills } = this.state;\n\n if (selectedOtherSkill && selectedOtherSkill !== \"\") {\n let optionsActionSkill = optionsActionSkills.find((it) => it.skills.some((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill));\n if (optionsActionSkill) {\n let skill = optionsActionSkill.skills.find((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill);\n if (skill) {\n skill.selected = true;\n\n pickedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n\n selectedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n }\n\n this.setState({ optionsActionSkills, selectedOtherSkill: \"\", pickedOtherSkills, selectedOtherSkills });\n }\n }\n }\n\n handleOtherSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedOtherSkills = this.state.selectedOtherSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n const index = selectedOtherSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedOtherSkills.splice(index, 1);\n }\n\n this.setState({ selectedOtherSkills });\n } else {\n this.setState({ selectedOtherSkills: [...selectedOtherSkills, selectedSkill] });\n }\n }\n\n handleSubmitEdit() {\n const { editedAction, selectedSkills, selectedOtherSkills } = this.state;\n\n const actionRequest = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n actionType: this.state.form.actionType.value,\n name: this.state.form.name.value,\n description: this.state.form.description.value,\n status: this.state.form.status.value,\n targetCompletionOn: this.state.form.targetCompletionOn.value,\n duration: this.state.form.duration.value,\n durationHours: this.state.form.durationHours.value,\n link: this.state.form.link.value,\n skills: [...selectedSkills.filter((it) => !it.removed), ...selectedOtherSkills.filter((it) => !it.removed)].map((skill) => {\n return {\n id: skill.id ? skill.id : null,\n name: skill.skillName,\n code: skill.skillCode,\n level: skill.skillLevel,\n type: skill.skillType,\n };\n }),\n };\n\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.updateManagedPeopleAction(editedAction.id, actionRequest) : this.props.onActionPlan.updateAction(editedAction.id, actionRequest)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showActionPlanEdit: false, selectedSkills: [] });\n this.props.handleActionPlanUpdated(this.props.updatedAction);\n this.props.generateAlert(\"success\", \"Action plan updated\");\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n\n handleSubmitDelete() {\n const { editedAction } = this.state;\n\n const deletedId = editedAction.id;\n\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.deleteManagedPeopleAction(deletedId, this.props.managedPeople.personB.email) : this.props.onActionPlan.deleteAction(deletedId)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showActionPlanEdit: false });\n this.props.handleActionPlanDeleted(deletedId);\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n\n handleSubmitIssueBadge = () => {\n this.setState({ showActionPlanEdit: false, showIssueBadgeConfirmationDialog: true });\n };\n\n handleCancelIssueBadge = () => {\n this.setState({ showActionPlanEdit: true, showIssueBadgeConfirmationDialog: false });\n };\n\n handleConfirmIssueBadge = () => {\n const { editedAction } = this.state;\n\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.issueBadgeManagedPeopleAction(editedAction.id, this.props.managedPeople.personB.email).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showIssueBadgeConfirmationDialog: false });\n this.props.handleActionPlanUpdated(this.props.updatedAction);\n this.props.generateAlert(\"success\", \"Issue badge success\");\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n renderIssueBadgeConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n
\n \n
\n \n
\n
\n
\n \n {\n this.handleConfirmIssueBadge();\n }}\n disabled={this.state.actionPlanUpdating}\n >\n \n \n \n \n
\n );\n };\n\n handleRejectIssueBadge = () => {\n this.setState({ showActionPlanEdit: false, showRejectBadgeConfirmationDialog: true });\n };\n\n handleCancelRejectBadge = () => {\n this.setState({ showActionPlanEdit: true, showRejectBadgeConfirmationDialog: false });\n };\n\n handleConfirmRejectBadge = () => {\n const { editedAction } = this.state;\n\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.rejectBadgeManagedPeopleAction(editedAction.id, this.props.managedPeople.personB.email).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showRejectBadgeConfirmationDialog: false });\n this.props.handleActionPlanUpdated(this.props.updatedAction);\n this.props.generateAlert(\"success\", \"Reject issue badge success\");\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n renderRejectBadgeConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmRejectBadge();\n }}\n disabled={this.state.actionPlanUpdating}\n >\n \n \n \n \n
\n );\n };\n\n renderEditActionPlan() {\n let isReadOnly = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isReadOnly = true;\n }\n\n const { editedAction, form, optionsActionSkills, optionProposeCapabilities, selectedSkills, pickedOtherSkills, selectedOtherSkills, showPopUpAsPromoteAction, showPopUpAsProposeAction, showPopUpAsViewProposedAction } = this.state;\n const { optionsActionTypes, lorProfiles, skillProfiles, showHiddenSkills, categories, lors, jobLorProfiles, jobSkillProfiles } = this.props;\n\n let editedOptionsActionTypes = [...optionsActionTypes];\n\n if (editedAction && !editedOptionsActionTypes.find((it) => it.name == editedAction.actionType)) {\n editedOptionsActionTypes.push({\n name: editedAction.actionType,\n });\n }\n\n if (editedAction && editedAction.status == \"IssueBadge\") {\n isReadOnly = true;\n }\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n let optionsStatus = [\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusTodo\", \"Todo\"), value: \"ToDo\" },\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusInProgress\", \"In Progress\"), value: \"InProgress\" },\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusDone\", \"Done\"), value: \"Done - self verified\" },\n ];\n\n if (editedAction && editedAction.interventionId && editedAction.actionType == \"Accredited Badge Issuing Action\" && editedAction.status == \"IssueBadge\" && !optionsStatus.find((it) => it.value == \"IssueBadge\")) {\n optionsStatus.push({ label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusIssueBadge\", \"Issue Badge\"), value: \"IssueBadge\" });\n }\n\n let showIssueBadge = false;\n if (this.props.managedPeople && editedAction && editedAction.interventionId && editedAction.actionType == \"Accredited Badge Issuing Action\" && editedAction.status != \"IssueBadge\" && this.props.containerConfig && this.props.containerConfig.allowBadgesFromActions == true) {\n showIssueBadge = true;\n }\n\n const spreadedActionSkills = [].concat.apply(\n [],\n optionsActionSkills\n .filter((it) => it.skills.some((skill) => !skill.selected && !skill.actioned))\n .map((it, groupIndex) => {\n return it.skills\n .filter((skill) => !skill.selected && !skill.actioned && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(skill.skillCode))))\n .map((skill) => {\n return {\n groupIndex,\n skillName: skill.skillType == \"Lor\" ? this.contentTranslator(this.props.contentTranslations, \"Lors\", skill.skillName, skill.skillName) : this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.skillName, skill.skillName),\n skillCode: skill.skillCode,\n skillLabel:\n skill.skillType == \"Lor\"\n ? `${this.contentTranslator(this.props.contentTranslations, \"Lors\", skill.skillName, skill.skillName)} ${skill.skillLevel}`\n : `${this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.skillName, skill.skillName)} ${skill.skillLevel}`,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n };\n });\n })\n );\n\n let updateProfileEvidenceProposalSkills = [];\n if (showPopUpAsViewProposedAction) {\n updateProfileEvidenceProposalSkills = editedAction && editedAction.updateProfileEvidenceProposalSkills ? editedAction.updateProfileEvidenceProposalSkills : [];\n }\n\n let updatedProposedSkills = 0;\n\n if (showPopUpAsProposeAction && form.proposeCapability.value) {\n let selectedCapabilityNumber = form.proposeCapability.value == \"Competent\" ? 1 : form.proposeCapability.value == \"Proficient\" ? 0.5 : form.proposeCapability.value == \"Knowledge\" ? 0.25 : 0;\n\n selectedSkills\n .filter(\n (it) =>\n !it.removed &&\n ![...jobLorProfiles.map((it) => it.lorCode + it.level), ...jobSkillProfiles.map((it) => it.skillCode + it.level)].includes(it.skillCode + it.skillLevel) &&\n (!showPopUpAsPromoteAction || (showPopUpAsPromoteAction && !it.removed)) &&\n ((!showPopUpAsProposeAction && !showPopUpAsViewProposedAction) || ((showPopUpAsViewProposedAction || showPopUpAsProposeAction) && (it.skillType != \"Lor\" || !filterOutLoROnProposeAction)))\n )\n .forEach((skill) => {\n if (skill.skillType == \"Skill\") {\n const skillProfile = skillProfiles.find((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel && it.numericVal > 0);\n if (skillProfile) {\n if (selectedCapabilityNumber > skillProfile.numericVal) {\n updatedProposedSkills++;\n }\n } else {\n updatedProposedSkills++;\n }\n } else if (!filterOutLoROnProposeAction) {\n if (lorProfiles.find((it) => it.lorCode == skill.skillCode)) {\n const lorProfile = lorProfiles.filter((it) => it.lorCode == skill.skillCode).sort((a, b) => b.level - a.level)[0];\n if (lorProfile.level < skill.skillLevel) {\n updatedProposedSkills++;\n }\n }\n }\n });\n\n if (jobLorProfiles) {\n jobLorProfiles\n .filter(\n (it) =>\n (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))) &&\n selectedSkills.some((skill) => !skill.removed && skill.skillCode == it.lorCode && skill.skillLevel >= it.level) &&\n ((!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !filterOutLoROnProposeAction) ||\n (showPopUpAsPromoteAction && !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level && !s.removed)) ||\n (!filterOutLoROnProposeAction && (showPopUpAsProposeAction || showPopUpAsViewProposedAction)) ||\n (filterOutLoROnProposeAction &&\n (showPopUpAsProposeAction || showPopUpAsViewProposedAction) &&\n !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level) &&\n !!updateProfileEvidenceProposalSkills.find((s) => s.code == it.lorCode && s.level == it.level)))\n )\n .forEach((jobLorProfile) => {\n if (showPopUpAsProposeAction && !filterOutLoROnProposeAction) {\n if (lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode)) {\n const lorProfile = lorProfiles.filter((it) => it.lorCode == jobLorProfile.lorCode).sort((a, b) => b.level - a.level)[0];\n if (lorProfile.level < jobLorProfile.level) {\n updatedProposedSkills++;\n }\n }\n }\n });\n }\n\n if (jobSkillProfiles) {\n jobSkillProfiles\n .filter(\n (it) =>\n (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(it.skillCode))) &&\n selectedSkills.some((skill) => !skill.removed && skill.skillCode == it.skillCode && skill.skillLevel == it.level) &&\n ((!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction) ||\n (showPopUpAsPromoteAction && !!selectedSkills.find((s) => s.skillCode == it.skillCode && s.skillLevel == it.level && !s.removed)) ||\n (showPopUpAsProposeAction && !!selectedSkills.find((s) => s.skillCode == it.skillCode && s.skillLevel == it.level)) ||\n (showPopUpAsViewProposedAction && !!selectedSkills.find((s) => s.skillCode == it.skillCode && s.skillLevel == it.level) && updateProfileEvidenceProposalSkills.find((s) => s.code == it.skillCode && s.level == it.level)))\n )\n .forEach((jobSkillProfile) => {\n if (showPopUpAsProposeAction) {\n const skillProfile = skillProfiles.find((it) => it.skillCode == jobSkillProfile.skillCode && it.level == jobSkillProfile.level && it.numericVal > 0);\n if (skillProfile) {\n if (selectedCapabilityNumber > skillProfile.numericVal) {\n updatedProposedSkills++;\n }\n } else {\n updatedProposedSkills++;\n }\n }\n });\n }\n }\n\n return (\n \n \n {showPopUpAsPromoteAction ? (\n \n ) : showPopUpAsProposeAction || showPopUpAsViewProposedAction ? (\n \n ) : isReadOnly ? (\n \n ) : (\n \n )}\n \n \n {this.state.actionPlanUpdating ? (\n
\n \n
\n ) : (\n
\n {!showPopUpAsPromoteAction && (\n \n \n \n \n this.handleChange({\n target: {\n name: \"status\",\n value: value.value,\n },\n })\n }\n data={optionsStatus}\n textField=\"label\"\n dataKey=\"value\"\n value={optionsStatus.find((it) => it.value == form.status.value)}\n defaultValue={optionsStatus.find((it) => it.value == form.status.value)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n readOnly={showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly}\n />\n \n \n )}\n \n \n \n \n this.handleChange({\n target: {\n name: \"actionType\",\n value: value.name,\n },\n })\n }\n value={editedOptionsActionTypes.find((it) => it.name == form.actionType.value)}\n data={editedOptionsActionTypes}\n textField=\"name\"\n dataKey=\"name\"\n defaultValue={editedOptionsActionTypes.find((it) => it.name == form.actionType.value)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n readOnly={showPopUpAsPromoteAction || showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly || (editedAction && editedAction.interventionId)}\n />\n \n \n \n \n \n \n \n \n {!showPopUpAsPromoteAction && (\n \n \n \n this.handleChangeDate(\"targetCompletionOn\", value)}\n className=\"form-control\"\n isClearable={!(showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly)}\n />\n {form && !form.targetCompletionOn.valid && Target date is mandatory}\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!showPopUpAsViewProposedAction ? (\n \n {selectedSkills\n .filter(\n (it) =>\n ![...jobLorProfiles.map((it) => it.lorCode + it.level), ...jobSkillProfiles.map((it) => it.skillCode + it.level)].includes(it.skillCode + it.skillLevel) &&\n (!showPopUpAsPromoteAction || (showPopUpAsPromoteAction && !it.removed)) &&\n ((!showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly) || showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly) &&\n (it.skillType != \"Lor\" || !filterOutLoROnProposeAction)\n )\n .map((selectedSkill, index) => {\n let currentCapability;\n\n if (showPopUpAsProposeAction) {\n if (selectedSkill.skillType == \"Skill\") {\n const skillProfile = skillProfiles.find((it) => it.skillCode == selectedSkill.skillCode && it.level == selectedSkill.skillLevel && it.numericVal > 0);\n if (skillProfile) {\n currentCapability = skillProfile.stringVal == \"M\" ? \"Competent\" : skillProfile.stringVal == \"P\" ? \"Proficient\" : skillProfile.stringVal == \"NA\" ? \"Knowledge\" : \"Missing\";\n } else {\n currentCapability = \"Missing\";\n }\n } else if (!filterOutLoROnProposeAction) {\n if (lorProfiles.find((it) => it.lorCode == selectedSkill.skillCode)) {\n const lorProfile = lorProfiles.filter((it) => it.lorCode == selectedSkill.skillCode).sort((a, b) => b.level - a.level)[0];\n if (lorProfile.level >= selectedSkill.skillLevel) {\n currentCapability = \"Competent\";\n } else {\n currentCapability = \"Missing\";\n }\n }\n }\n }\n\n let tooltipDescription = \"\";\n if (selectedSkill.skillType == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == selectedSkill.skillLevel);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${selectedSkill.skillCode} ${selectedSkill.skillLevel} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == selectedSkill.skillCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == selectedSkill.skillLevel) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n \n {selectedSkill.skillCode}\n {selectedSkill.skillLevel}\n {\" - \"}\n {selectedSkill.skillType == \"Skill\"\n ? this.contentTranslator(this.props.contentTranslations, \"Skills\", selectedSkill.skillName, selectedSkill.skillName)\n : this.contentTranslator(this.props.contentTranslations, \"Lors\", selectedSkill.skillName, selectedSkill.skillName)}{\" \"}\n {selectedSkill.skillLevel}\n {showPopUpAsProposeAction && currentCapability ? ` - ${currentCapability}` : \"\"}\n
\n }\n onChange={() => this.handleSkillCheckedChange(selectedSkill.skillName, selectedSkill.skillCode, selectedSkill.skillLevel, selectedSkill.skillType)}\n disabled={showPopUpAsPromoteAction || showPopUpAsViewProposedAction || isReadOnly || (editedAction && editedAction.interventionId)}\n inline\n />\n
\n \n \n );\n })}\n {selectedSkills.find(\n (it) =>\n ![...jobLorProfiles.map((it) => it.lorCode + it.level), ...jobSkillProfiles.map((it) => it.skillCode + it.level)].includes(it.skillCode + it.skillLevel) &&\n (!showPopUpAsPromoteAction || (showPopUpAsPromoteAction && !it.removed)) &&\n ((!showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly) || showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly) &&\n (it.skillType != \"Lor\" || !filterOutLoROnProposeAction)\n ) &&
 
}\n {jobLorProfiles &&\n jobLorProfiles\n .filter(\n (it) =>\n (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))) &&\n (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.lorCode && skill.skillLevel >= it.level)) &&\n ((!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && !filterOutLoROnProposeAction) ||\n (showPopUpAsPromoteAction && !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level && !s.removed)) ||\n (!filterOutLoROnProposeAction && (showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly) && !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level)))\n )\n .sort((a, b) => (a.lorCode + a.level > b.lorCode + b.level ? 1 : -1))\n .map((jobLorProfile, index) => {\n let currentCapability;\n\n if (showPopUpAsProposeAction && !filterOutLoROnProposeAction) {\n if (lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode)) {\n const lorProfile = lorProfiles.filter((it) => it.lorCode == jobLorProfile.lorCode).sort((a, b) => b.level - a.level)[0];\n if (lorProfile.level >= jobLorProfile.level) {\n currentCapability = \"Competent\";\n } else {\n currentCapability = \"Missing\";\n }\n }\n }\n\n const lor = lors.find((it) => it.lorCode == jobLorProfile.lorCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == jobLorProfile.level) : null;\n\n return (\n \n
\n it.skillCode == jobLorProfile.lorCode && it.skillLevel == jobLorProfile.level && !it.removed)}\n label={\n
\n {jobLorProfile.lorCode}\n {jobLorProfile.level}\n {\" - \"}\n {this.contentTranslator(this.props.contentTranslations, \"Lors\", jobLorProfile.lor, jobLorProfile.lor)} {jobLorProfile.level}\n {showPopUpAsProposeAction && currentCapability ? ` - ${currentCapability}` : \"\"}\n
\n }\n onChange={() => this.handleSkillCheckedChange(jobLorProfile.lor, jobLorProfile.lorCode, jobLorProfile.level, \"Lor\")}\n disabled={showPopUpAsPromoteAction || showPopUpAsViewProposedAction || isReadOnly || (editedAction && editedAction.interventionId)}\n inline\n />\n
\n \n {lorLevel && }\n \n
\n );\n })}\n {jobLorProfiles &&\n jobLorProfiles.find(\n (it) =>\n (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))) &&\n (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.lorCode && skill.skillLevel >= it.level)) &&\n ((!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && !filterOutLoROnProposeAction) ||\n (showPopUpAsPromoteAction && !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level && !s.removed)) ||\n (!filterOutLoROnProposeAction && (showPopUpAsProposeAction || showPopUpAsViewProposedAction || isReadOnly) && !!selectedSkills.find((s) => s.skillCode == it.lorCode && s.skillLevel == it.level)))\n ) &&
 
}\n {jobSkillProfiles &&\n jobSkillProfiles\n .filter(\n (it) =>\n (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(it.skillCode))) &&\n (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.skillCode && skill.skillLevel == it.level)) &&\n ((!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly) ||\n (showPopUpAsPromoteAction && !!selectedSkills.find((s) => s.skillCode == it.skillCode && s.skillLevel == it.level && !s.removed)) ||\n ((isReadOnly || showPopUpAsProposeAction) && !!selectedSkills.find((s) => s.skillCode == it.skillCode && s.skillLevel == it.level)))\n )\n .sort((a, b) => (a.skillCode + a.level > b.skillCode + b.level ? 1 : -1))\n .map((jobSkillProfile, index) => {\n let currentCapability;\n\n if (showPopUpAsProposeAction) {\n const skillProfile = skillProfiles.find((it) => it.skillCode == jobSkillProfile.skillCode && it.level == jobSkillProfile.level && it.numericVal > 0);\n if (skillProfile) {\n currentCapability = skillProfile.stringVal == \"M\" ? \"Competent\" : skillProfile.stringVal == \"P\" ? \"Proficient\" : skillProfile.stringVal == \"NA\" ? \"Knowledge\" : \"Missing\";\n } else {\n currentCapability = \"Missing\";\n }\n }\n\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == jobSkillProfile.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${jobSkillProfile.skillCode} ${jobSkillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n it.skillCode == jobSkillProfile.skillCode && it.skillLevel == jobSkillProfile.level && !it.removed)}\n label={\n
\n {jobSkillProfile.skillCode}\n {jobSkillProfile.level}\n {\" - \"}\n {this.contentTranslator(this.props.contentTranslations, \"Skills\", jobSkillProfile.skill, jobSkillProfile.skill)} {jobSkillProfile.level}\n {showPopUpAsProposeAction && currentCapability ? ` - ${currentCapability}` : \"\"}\n
\n }\n onChange={() => this.handleSkillCheckedChange(jobSkillProfile.skill, jobSkillProfile.skillCode, jobSkillProfile.level, \"Skill\")}\n disabled={showPopUpAsPromoteAction || showPopUpAsViewProposedAction || isReadOnly || (editedAction && editedAction.interventionId)}\n inline\n />\n
\n \n
\n );\n })}\n \n ) : (\n \n {editedAction &&\n editedAction.updateProfileEvidenceProposalSkills &&\n editedAction.updateProfileEvidenceProposalSkills.map((proposedSkill, index) => {\n let tooltipDescription = \"\";\n if (proposedSkill.type == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == proposedSkill.name && it.skillsCode == proposedSkill.code)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == proposedSkill.name && it.skillsCode == proposedSkill.code));\n const skill = subCategory && subCategory.skills.find((it) => it.name == proposedSkill.name && it.skillsCode == proposedSkill.code);\n const skillLevel = skill && skill.levels.find((it) => it.level == proposedSkill.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${proposedSkill.code} ${proposedSkill.level} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == proposedSkill.code);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == proposedSkill.level) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n \n {proposedSkill.type == \"Skill\"\n ? `${proposedSkill.code}${proposedSkill.level} - ${this.contentTranslator(this.props.contentTranslations, \"Skills\", proposedSkill.name, proposedSkill.name)} ${proposedSkill.level}${\n proposedSkill.currentCapability ? ` - ${proposedSkill.currentCapability}` : \"\"\n }`\n : `${proposedSkill.code}${proposedSkill.level} - ${this.contentTranslator(this.props.contentTranslations, \"Lors\", proposedSkill.name, proposedSkill.name)} ${proposedSkill.level}${\n proposedSkill.currentCapability ? ` - ${proposedSkill.currentCapability}` : \"\"\n }`}\n
\n }\n onChange={() => this.handleSkillCheckedChange(jobSkillProfile.skill, jobSkillProfile.skillCode, jobSkillProfile.level, \"Skill\")}\n disabled={showPopUpAsPromoteAction || showPopUpAsViewProposedAction}\n inline\n />\n
\n \n
\n );\n })}\n \n )}\n \n \n {!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && !(editedAction && editedAction.interventionId) && (\n \n \n \n \n {pickedOtherSkills && pickedOtherSkills.length > 0 && (\n \n {pickedOtherSkills.map((pickedSkill, index) => {\n let tooltipDescription = \"\";\n\n if (pickedSkill.skillType == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == pickedSkill.skillLevel);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${pickedSkill.skillCode} ${pickedSkill.skillLevel} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == pickedSkill.skillCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == pickedSkill.skillLevel) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n it.skillCode == pickedSkill.skillCode && it.skillLevel == pickedSkill.skillLevel)}\n label={\n
\n {pickedSkill.skillCode}\n {pickedSkill.skillLevel}\n {\" - \"}\n {pickedSkill.skillType == \"Skill\"\n ? this.contentTranslator(this.props.contentTranslations, \"Skills\", pickedSkill.skillName, pickedSkill.skillName)\n : this.contentTranslator(this.props.contentTranslations, \"Lors\", pickedSkill.skillName, pickedSkill.skillName)}{\" \"}\n {pickedSkill.skillLevel}\n
\n }\n onChange={() => this.handleOtherSkillCheckedChange(pickedSkill.skillName, pickedSkill.skillCode, pickedSkill.skillLevel, pickedSkill.skillType)}\n inline\n />\n
\n \n
\n );\n })}\n
\n \n )}\n \n a.groupIndex - b.groupIndex)}\n onSelect={(value) =>\n this.handleChangeOtherSkill({\n target: {\n value: value.skillCode + \"-\" + value.skillLevel,\n },\n })\n }\n onChange={(value) => {\n value == \"\" &&\n this.handleChangeOtherSkill({\n target: {\n value: \"\",\n },\n });\n }}\n textField=\"skillLabel\"\n groupBy=\"skillName\"\n filter=\"contains\"\n placeholder=\"Select skill\"\n autoSelectMatches={true}\n value={spreadedActionSkills.find((value) => value.skillCode + \"-\" + value.skillLevel == this.state.selectedOtherSkill)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\", width: \"100%\" }}\n />\n \n \n \n \n \n \n
\n \n
\n )}\n {!showPopUpAsPromoteAction && (showPopUpAsProposeAction || showPopUpAsViewProposedAction) && (\n \n \n \n \n \n this.handleChange({\n target: {\n name: \"proposeCapability\",\n value: value.name,\n },\n })\n }\n value={optionProposeCapabilities.find((it) => it.name == form.proposeCapability.value)}\n data={optionProposeCapabilities}\n textField=\"name\"\n dataKey=\"name\"\n defaultValue={optionProposeCapabilities.find((it) => it.name == form.proposeCapability.value)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n readOnly={showPopUpAsPromoteAction || showPopUpAsViewProposedAction}\n />\n \n \n {showPopUpAsProposeAction && form.proposeCapability.value && (\n \n \n \n \n )}\n \n )}\n {!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && (\n \n \n \n
\n \n {showIssueBadge && (\n \n {editedAction && editedAction.issueBadgeRejected == false && (\n \n {\" \"}\n \n {\" \"}\n \n \n )}\n \n )}\n
\n {showIssueBadge && editedAction && editedAction.issueBadgeRejected == true && (\n
\n
\n
\n \n
\n
\n
\n )}\n \n
\n )}\n {showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && (\n \n Check your awards for progress\"\n ),\n }}\n >\n \n )}\n \n )}\n \n \n {!showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && !isReadOnly && (\n \n )}\n {showPopUpAsPromoteAction && !showPopUpAsProposeAction && !showPopUpAsViewProposedAction && (\n \n \n \n \n \n \n )}\n {showPopUpAsProposeAction && !showPopUpAsPromoteAction && !showPopUpAsViewProposedAction && (\n \n \n \n \n \n \n )}\n \n \n \n );\n }\n\n handleSubmitPromote = () => {\n this.setState({ showActionPlanEdit: false, showActionPromotionConfirmationDialog: true });\n };\n\n handleCancelSubmitPromote = () => {\n this.setState({ showActionPlanEdit: true, showActionPromotionConfirmationDialog: false });\n };\n\n handleConfirmSubmitPromote = () => {\n const { editedAction } = this.state;\n\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.submitActionPromotion(editedAction.id, this.state.form.description.value).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showActionPromotionConfirmationDialog: false, selectedSkills: [] });\n this.props.generateAlert(\"success\", \"Action promotion request submitted\");\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n renderActionPromotionConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmSubmitPromote();\n }}\n disabled={this.state.actionPlanUpdating}\n >\n \n \n \n \n
\n );\n };\n\n handleSubmitPropose = () => {\n this.setState({ showActionPlanEdit: false, showProposeActionConfirmationDialog: true });\n };\n\n handleCancelSubmitPropose = () => {\n this.setState({ showActionPlanEdit: true, showProposeActionConfirmationDialog: false });\n };\n\n handleConfirmSubmitPropose = () => {\n const { editedAction, selectedSkills, selectedOtherSkills, form } = this.state;\n const { lorProfiles, skillProfiles } = this.props;\n\n const updateProfileEvidenceProposalSkills = [...selectedSkills.filter((it) => (!filterOutLoROnProposeAction || (filterOutLoROnProposeAction && it.skillType != \"Lor\")) && !it.removed), ...selectedOtherSkills.filter((it) => !it.removed)].map((skill) => {\n let currentCapability;\n if (skill.skillType == \"Skill\") {\n const skillProfile = skillProfiles.find((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel && it.numericVal > 0);\n if (skillProfile) {\n currentCapability = skillProfile.stringVal == \"M\" ? \"Competent\" : skillProfile.stringVal == \"P\" ? \"Proficient\" : skillProfile.stringVal == \"NA\" ? \"Knowledge\" : \"Missing\";\n } else {\n currentCapability = \"Missing\";\n }\n } else {\n if (lorProfiles.find((it) => it.lorCode == skill.skillCode)) {\n const lorProfile = lorProfiles.filter((it) => it.lorCode == skill.skillCode).sort((a, b) => b.level - a.level)[0];\n if (lorProfile.level >= skill.skillLevel) {\n currentCapability = \"Competent\";\n } else {\n currentCapability = \"Missing\";\n }\n }\n }\n\n return {\n name: skill.skillName,\n code: skill.skillCode,\n level: skill.skillLevel,\n type: skill.skillType,\n capability: form.proposeCapability.value,\n currentCapability: currentCapability,\n };\n });\n\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.submitProposeAction(editedAction.id, this.props.managedPeople && this.props.managedPeople.personB.email, updateProfileEvidenceProposalSkills).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.setState({ showProposeActionConfirmationDialog: false, selectedSkills: [], proposeActionMode: false });\n this.props.generateAlert(\"success\", \"Update profile and evidence from action proposal submitted\");\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n renderProposeActionConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmSubmitPropose();\n }}\n disabled={this.state.actionPlanUpdating}\n >\n \n \n \n \n
\n );\n };\n\n handleChangeSortOption(event) {\n const { name, value } = event.target;\n const { optionSorts } = this.state;\n optionSorts.forEach((option) => {\n if (option.field == value) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n });\n\n this.setState({\n selectedSortOption: value,\n optionSorts,\n });\n }\n\n handleChangeSortDirection() {\n const { selectedSortOptionDirection } = this.state;\n\n this.setState({\n selectedSortOptionDirection: selectedSortOptionDirection == \"asc\" ? \"desc\" : \"asc\",\n });\n }\n\n sortActions = (actions) => {\n const { selectedSortOption, selectedSortOptionDirection } = this.state;\n\n if (selectedSortOption == \"targetCompletionOn\") {\n if (selectedSortOptionDirection == \"asc\") {\n actions = actions.sort((a, b) => new Date(a.targetCompletionOn) - new Date(b.targetCompletionOn));\n } else {\n actions = actions.sort((b, a) => new Date(a.targetCompletionOn) - new Date(b.targetCompletionOn));\n }\n } else {\n actions = _.orderBy(actions, selectedSortOption, selectedSortOptionDirection);\n }\n\n return actions;\n };\n\n handleUpdateActionHidden = (action) => {\n this.setState({ actionPlanUpdating: true });\n if (action.hidden) {\n this.props.onActionPlan.updateUnHideAction(action.id).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.props.handleActionPlanHidden(this.props.updatedAction);\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n } else {\n this.props.onActionPlan.updateHideAction(action.id).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n } else {\n this.props.handleActionPlanHidden(this.props.updatedAction);\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n };\n\n renderTodos = (actions, showDone, showHidden, proposeMode, viewProposedMode) => {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const rows = actions\n .filter((it) =>\n proposeMode\n ? it.status.toLowerCase().includes(\"done\") && !it.updateProfileEvidenceProposed\n : viewProposedMode\n ? it.status.toLowerCase().includes(\"done\") && it.updateProfileEvidenceProposed && it.updateProfileEvidenceProposalStatus == \"Requested\"\n : (showDone ? it.id : !it.status.toLowerCase().includes(\"done\") && it.status != \"IssueBadge\") && (showHidden ? it.id : !it.hidden)\n )\n .map((action, index) => {\n const row = action;\n const skills = action.skills;\n const updateProfileEvidenceProposalSkills = action.updateProfileEvidenceProposalSkills;\n\n return (\n \n \n \n \n \n \n \n {row.status &&\n (row.status == \"ToDo\"\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusTodo\", \"Todo\")\n : row.status == \"InProgress\"\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusInProgress\", \"In Progress\")\n : row.status.toLowerCase().includes(\"done\")\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusDone\", \"Done\")\n : row.status == \"IssueBadge\"\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusIssueBadge\", \"Issue Badge\")\n : row.status)}\n \n \n

\n {row.link ? (\n \n {row.name}\n \n ) : (\n row.name\n )}\n
\n {viewProposedMode\n ? updateProfileEvidenceProposalSkills && updateProfileEvidenceProposalSkills.length > 0\n ? updateProfileEvidenceProposalSkills.map((it, index) => {\n return (\n \n \n {`${it.code}-${it.level}`}\n {index < updateProfileEvidenceProposalSkills.length - 1 && \",\"}\n {\" \"}\n \n );\n })\n : row.description\n : skills && skills.length > 0\n ? skills.map((it, index) => {\n return (\n \n \n {`${it.code}-${it.level}`}\n {index < skills.length - 1 && \",\"}\n {\" \"}\n \n );\n })\n : row.description}\n

\n \n
\n \n \n \n \n {row.actionType}\n \n \n \n {\" \"}\n \n \n {row.duration || row.durationHours ? (\n \n {row.duration ?
{this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanDuration\", \"{s1} Days\"), row.duration)}
: \"\"}\n {row.durationHours ?
{this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanDurationHours\", \"{s1} Hours\"), row.durationHours)}
: \"\"}\n
\n ) : (\n \"-\"\n )}\n
\n \n \n {row.createdOn && (\n \n \n {\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.createdOn))}\n \n
\n
\n )}\n {row.targetCompletionOn && (\n \n \n {\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.targetCompletionOn))}\n \n \n )}\n \n \n {proposeMode ? (\n \n \n \n \n \n \n ) : viewProposedMode ? (\n \n \n \n \n \n \n ) : (\n \n {isAdmin || row.status == \"IssueBadge\" ? (\n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n )}\n\n {!this.props.managedPeople && (\n \n
\n \n \n {row.hidden ? (\n \n ) : (\n \n
\n )}\n {!isAdmin && this.props.containerConfig && this.props.containerConfig.enablePromoteAction == true && !row.interventionId && (\n \n
\n this.openActionPlanEditModal(row, true, false, false)}\n disabled={row.promoted ? true : false}\n >\n \n \n \n \n \n
\n )}\n
\n )}\n \n
\n \n
\n
\n
\n
\n );\n });\n\n return rows;\n };\n\n handleChangeFilterDone = () => {\n const showDone = this.state.showDone;\n this.setState({ showDone: !showDone });\n };\n\n handleChangeFilterHidden = () => {\n const showHidden = this.state.showHidden;\n this.setState({ showHidden: !showHidden });\n };\n\n handleStartProposeActionMode = () => {\n this.setState({ proposeActionMode: true });\n this.props.handleProposeActionModeStarted(true);\n };\n\n togleProposeActionMode = () => {\n const proposeActionMode = this.state.proposeActionMode;\n this.setState({ proposeActionMode: !proposeActionMode });\n this.props.handleProposeActionModeStarted(!proposeActionMode);\n };\n\n handleStartViewProposedActionMode = () => {\n this.setState({ viewProposedActionMode: true });\n };\n\n togleViewProposedActionMode = () => {\n const viewProposedActionMode = this.state.viewProposedActionMode;\n this.setState({ viewProposedActionMode: !viewProposedActionMode });\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const optionSorts = [\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanSortByCompletionDate\", \"Target Completion Date\"),\n field: \"targetCompletionOn\",\n selected: true,\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanSortByCreatedDate\", \"Created Date\"),\n field: \"createdOn\",\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanSortByStatus\", \"Status\"),\n field: \"status\",\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanSortByType\", \"Type\"),\n field: \"actionType\",\n },\n ];\n\n let { actions } = this.props;\n actions = this.sortActions(actions);\n\n const { showDone, showHidden } = this.state;\n\n if (this.props.loadingAction) return

;\n return (\n \n {this.modalActionPlanDetail()}\n {this.renderEditActionPlan()}\n {this.renderActionPromotionConfirmation()}\n {this.renderProposeActionConfirmation()}\n {this.renderIssueBadgeConfirmation()}\n {this.renderRejectBadgeConfirmation()}\n
\n \n \n \n {actions.filter((it) => it.status.toLowerCase().includes(\"done\") || it.status == \"IssueBadge\").length > 0 && (\n \n \n \n {showDone ? (\n \n ) : (\n \n )}\n \n \n )}\n {actions.filter((it) => it.hidden).length > 0 && (\n \n \n \n {showHidden ? (\n \n \n )}\n {this.props.managedPeople && this.props.actionPlanUpdated && (\n \n \n \n )}\n {this.props.managedPeople &&\n !isAdmin &&\n this.props.containerConfig &&\n this.props.containerConfig.allowUpdateProfileAndEvidenceFromAction &&\n actions.filter((it) => it.status.toLowerCase().includes(\"done\") && it.updateProfileEvidenceProposed == true && it.updateProfileEvidenceProposalStatus == \"Requested\").length == 0 && (\n \n \n {this.state.proposeActionMode && (\n \n )}\n \n )}\n {this.props.managedPeople &&\n this.props.containerConfig &&\n this.props.containerConfig.allowUpdateProfileAndEvidenceFromAction &&\n actions.filter((it) => it.status.toLowerCase().includes(\"done\") && it.updateProfileEvidenceProposed == true && it.updateProfileEvidenceProposalStatus == \"Requested\").length > 0 && (\n \n \n {this.state.viewProposedActionMode && (\n \n )}\n \n )}\n \n \n \n \n \n \n \n \n {optionSorts.map((optionSort, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n {this.renderTodos(actions, showDone, showHidden, this.state.proposeActionMode, this.state.viewProposedActionMode)}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n actionPlanUpdating: state.actionPlan.actionPlanUpdating,\n actionPlanUpdatingError: state.actionPlan.actionPlanUpdatingError,\n updatedAction: state.actionPlan.addedAction,\n\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Todo);\n","import * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as companyActions from \"../../store/actions/companyAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport * as lorActions from \"../../store/actions/lorAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport StepProfile from \"../profile/StepProfile\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport ManageActionPlan from \"./ManageActionPlan\";\nimport Todo from \"./Todo\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, Container, Form, FormGroup, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst step1 = process.env.REACT_APP_ACTIONPLAN_STEP_1;\nconst step2 = process.env.REACT_APP_ACTIONPLAN_STEP_2;\nconst step3 = process.env.REACT_APP_ACTIONPLAN_STEP_3;\n\nconst step1Hover = process.env.REACT_APP_ACTIONPLAN_STEP_1_HOVER;\nconst step2Hover = process.env.REACT_APP_ACTIONPLAN_STEP_2_HOVER;\nconst step3Hover = process.env.REACT_APP_ACTIONPLAN_STEP_3_HOVER;\n\nclass ActionPlan extends React.Component {\n static displayName = ActionPlan.name;\n\n constructor(props) {\n super(props);\n this.state = {\n stepActionClicked: false,\n stepData: {\n step1: {\n desc: step1,\n hover: step1Hover,\n },\n step2: {\n desc: step2,\n hover: step2Hover,\n },\n step3: {\n desc: step3,\n hover: step3Hover,\n },\n currentStep: null,\n },\n userResponsibilityData: null,\n skillActionPlanData: null,\n actionPlanDetailData: null,\n optionsProfile: [],\n categories: [],\n lors: [],\n extraFrameworkCapabilities: [],\n lorProfiles: [],\n skillProfiles: [],\n optionsJob: [],\n selectedprofileType: null,\n jobLorProfiles: [],\n jobSkillProfiles: [],\n selectedJob: null,\n loading: false,\n contentLoading: true,\n\n actionLoading: true,\n actions: [],\n optionsActionSkills: this.props.actionSkills,\n optionsActionTypes: this.props.actionTypes,\n alerts: [],\n providers: [],\n\n loadingAdd: true,\n loadingProfile: true,\n\n actionPlanUpdated: false,\n listRelationshipType: [\"Line Manager\", \"Mentor\"],\n showHiddenSkills: false,\n proposeActionStarted: false,\n };\n\n this.initData = this.initData.bind(this);\n this.handleActionPlanAdded = this.handleActionPlanAdded.bind(this);\n this.handleActionPlanUpdated = this.handleActionPlanUpdated.bind(this);\n this.handleActionPlanDeleted = this.handleActionPlanDeleted.bind(this);\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaPlan-SfiaPlanTooltip-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n const stepData = {\n step1: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep1Description\", step1),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep1Hover\", step1Hover),\n },\n step2: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep2Description\", step2),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep2Hover\", step2Hover),\n },\n step3: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep3Description\", step3),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStep3Hover\", step3Hover),\n },\n currentStep: null,\n };\n\n this.setState({ stepData });\n\n this.props.onAuth.authCheckState().then(() => {\n if (!this.props.currAssessment) {\n this.props.onConfig.getCurrAssessment().then(() => {});\n }\n\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.initData();\n }\n });\n }\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.initData();\n }\n });\n }\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n }\n }\n\n initData() {\n this.setState({ loading: true });\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileTypes(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyProfileTypes()).then(() => {\n if (this.props.errorProfile) {\n this.setState({ loading: false });\n } else {\n let profileType = null;\n\n if (this.props.profileTypes.length > 0) {\n profileType = this.props.profileTypes[0];\n\n this.setState({\n optionsProfile: this.props.profileTypes.map((it) => {\n return {\n value: it,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", it.replace(\" \", \"\"), it),\n };\n }),\n selectedprofileType: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", profileType.replace(\" \", \"\"), profileType),\n });\n }\n\n this.props.onPerson.getPersonSkillCoins().then(() => {});\n\n Promise.all([\n this.props.managedPeople ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email) : this.props.onJob.getMyJobMatches(),\n this.props.onCategory.getExtraFrameworkCapabilities(),\n this.props.onCategory.getCategories(),\n this.props.onLor.getLors(),\n ]).then(() => {\n if (!this.props.loading && !this.props.categoryLoading) {\n let optionsJob = [];\n let selectedJob = null;\n\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n if (currentJob) {\n optionsJob.push({\n value: currentJob.jobType + \" - \" + currentJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", currentJob.jobType, currentJob.jobType) + \" - \" + currentJob.jobTitle,\n type: currentJob.jobType,\n id: currentJob.jobId,\n });\n }\n\n if (futureJob) {\n optionsJob.push({\n value: futureJob.jobType + \" - \" + futureJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", futureJob.jobType, futureJob.jobType) + \" - \" + futureJob.jobTitle,\n type: futureJob.jobType,\n id: futureJob.jobId,\n });\n }\n\n if (optionsJob.length > 0) {\n selectedJob = optionsJob[0];\n }\n\n this.setState({\n optionsJob,\n jobMatches,\n currentJob,\n futureJob,\n selectedJob,\n categories: this.props.categories,\n lors: this.props.lors,\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n });\n\n Promise.all([\n this.props.managedPeople ? this.props.onJob.getManagedPeopleJobLorProfiles(this.props.managedPeople.personB.email) : this.props.onJob.getJobLorProfiles(null),\n this.props.managedPeople ? this.props.onJob.getManagedPeopleJobSkillProfiles(this.props.managedPeople.personB.email) : this.props.onJob.getJobSkillProfiles(null),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyLorProfile(null, null, null),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMySkillProfile(null, null, null),\n ]).then(() => {\n if (!this.props.jobLoading && !this.props.loadingProfile && !this.props.errorProfile && !this.props.loadingLorProfile && !this.props.errorLorProfile) {\n this.setState({\n loadingProfile: this.props.jobLoading || this.props.loadingProfile || this.props.loadingLorProfile,\n jobLorProfiles: this.props.jobLorProfiles,\n jobSkillProfiles: this.props.jobSkillProfiles.filter((it) => it.stringVal != \"N\"),\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n });\n }\n });\n }\n\n this.setState({\n loading: this.props.loading || this.props.categoryLoading,\n });\n });\n\n Promise.all([this.props.managedPeople ? this.props.onActionPlan.getManagedPeopleActions(this.props.managedPeople.personB.email) : this.props.onActionPlan.getMyActions()]).then(() => {\n this.setState({\n actions: this.props.actions,\n actionLoading: this.props.actionPlanloading,\n });\n });\n\n Promise.all([this.props.onActionPlan.getActionTypes(), this.props.onActionPlan.getActionSkills(), this.props.onCompany.getSelectedProviderCompanies()]).then(() => {\n if (!this.props.companyLoading && !this.props.actionPlanloading) {\n this.setState({\n optionsActionTypes: this.props.actionTypes,\n optionsActionSkills: this.props.actionSkills,\n providers: this.props.selectedProviders,\n });\n }\n\n this.setState({\n loadingAdd: this.props.companyLoading || this.props.actionPlanloading,\n });\n });\n }\n });\n }\n\n handleActionPlanAdded(addedAction) {\n const { actions, categories } = this.state;\n\n addedAction.skills.forEach((actionSkill) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((skill) => skill.name == actionSkill.name)));\n\n if (category) {\n const level = category.subCategories\n .find((subCategory) => subCategory.skills.some((skill) => skill.name == actionSkill.name))\n .skills.find((skill) => skill.name == actionSkill.name && skill.skillsCode == actionSkill.code)\n .levels.find((it) => it.level == actionSkill.level);\n\n if (level) {\n level.action = addedAction;\n }\n }\n });\n\n this.setState({ actionPlanUpdated: true, actions: [...actions, addedAction] }, () => {\n this.generateAlert(\"success\", \"Action plan added\");\n });\n }\n\n handleActionPlanUpdated(updatedAction) {\n const { actions, categories } = this.state;\n\n const editedAction = actions.find((it) => it.id == updatedAction.id);\n\n if (editedAction) {\n const updatedActionIndex = actions.indexOf(editedAction);\n const removedActionSkills = editedAction.skills.filter((it) => !updatedAction.skills.some((skill) => it.code == skill.code && it.level == skill.level));\n\n removedActionSkills.forEach((removedActionSkill) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((skill) => skill.name == removedActionSkill.name)));\n\n if (category) {\n const level = category.subCategories\n .find((subCategory) => subCategory.skills.some((skill) => skill.name == removedActionSkill.name))\n .skills.find((skill) => skill.name == removedActionSkill.name && skill.skillsCode == removedActionSkill.code)\n .levels.find((it) => it.level == removedActionSkill.level && it.action);\n\n if (level) {\n level.action = null;\n }\n }\n });\n\n updatedAction.skills.forEach((actionSkill) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((skill) => skill.name == actionSkill.name)));\n\n if (category) {\n const level = category.subCategories\n .find((subCategory) => subCategory.skills.some((skill) => skill.name == actionSkill.name))\n .skills.find((skill) => skill.name == actionSkill.name && skill.skillsCode == actionSkill.code)\n .levels.find((it) => it.level == actionSkill.level);\n\n if (level) {\n level.action = updatedAction;\n }\n }\n });\n\n actions[updatedActionIndex] = updatedAction;\n\n this.setState({\n actionPlanUpdated: true,\n actions: [...actions],\n categories: [...categories],\n });\n }\n }\n\n handleActionPlanHidden = (updatedAction) => {\n const { actions } = this.state;\n\n const editedAction = actions.find((it) => it.id == updatedAction.id);\n\n if (editedAction) {\n const updatedActionIndex = actions.indexOf(editedAction);\n actions[updatedActionIndex] = updatedAction;\n\n this.setState({\n actions: [...actions],\n });\n }\n };\n\n handleActionPlanDeleted(id) {\n const { actions, jobLorProfiles, jobSkillProfiles } = this.state;\n const deletedAction = actions.find((it) => it.id == id);\n\n if (deletedAction) {\n deletedAction.skills.forEach((actionSkill) => {\n jobLorProfiles.forEach((it) => {\n if (it.actioned && it.lorCode == actionSkill.code) {\n it.actioned = null;\n }\n });\n\n jobSkillProfiles.forEach((it) => {\n if (it.actioned && it.skillCode == actionSkill.code && it.level == actionSkill.level) {\n it.actioned = null;\n }\n });\n });\n\n this.setState(\n {\n actionPlanUpdated: true,\n jobLorProfiles,\n jobSkillProfiles,\n actions: [...actions.filter((it) => it.id != id)],\n },\n () => {\n this.generateAlert(\"success\", \"Action plan deleted\");\n }\n );\n }\n }\n\n handleChangeProfileType = (value) => {\n this.setState({\n loadingProfile: true,\n selectedprofileType: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", value.replace(\" \", \"\"), value),\n });\n\n Promise.all([\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email, null, null, value) : this.props.onSkillProfile.getMyLorProfile(null, null, value),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email, null, null, value) : this.props.onSkillProfile.getMySkillProfile(null, null, value),\n ]).then(() => {\n this.setState({\n loadingProfile: this.props.loadingProfile || this.props.loadingLorProfile,\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n });\n });\n };\n\n handleChangeJob = (job) => {\n this.setState({ selectedJob: job });\n };\n\n step1Clicked = () => {\n this.setState({ stepActionClicked: new Date() });\n };\n\n step2Clicked = () => {\n this.setState({ stepActionClicked: new Date() });\n };\n\n step3Clicked = () => {};\n\n setActionPlanUpdated = (actionPlanUpdated) => {\n this.setState({ actionPlanUpdated: actionPlanUpdated });\n };\n\n handleSendUpdatedActionPlanNotification = () => {\n this.setState({ showActionPlanUpdatedNotificationConfirmation: true });\n };\n\n handleConfirmSendActionPlanUpdatedNotification = () => {\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.onActionPlan.sendUpdatedActionPlanNotification(this.props.managedPeople.personB.email)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.generateAlert(\"danger\", this.props.actionPlanUpdatingError);\n } else {\n this.generateAlert(\"success\", \"Notification email sent\");\n this.setState({\n actionPlanUpdated: false,\n showActionPlanUpdatedNotificationConfirmation: false,\n });\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n toggleSendActionPlanUpdatedNotificationConfirmation = () => {\n const showActionPlanUpdatedNotificationConfirmation = this.state.showActionPlanUpdatedNotificationConfirmation;\n\n this.setState({\n showActionPlanUpdatedNotificationConfirmation: !showActionPlanUpdatedNotificationConfirmation,\n });\n };\n\n renderSendActionPlanUpdatedNotificationConfirmation = () => {\n return (\n \n Send Notification Confirmation\n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfirmSendActionPlanUpdatedNotification();\n }}\n disabled={this.props.actionPlanUpdating}\n >\n OK\n \n \n \n
\n );\n };\n\n handleChageShowHiddenSkills = (showHiddenSkills) => {\n this.setState({ showHiddenSkills: showHiddenSkills });\n };\n\n handleProposeActionModeStarted = (proposeActionStarted) => {\n this.setState({ showHiddenSkills: false, proposeActionStarted: proposeActionStarted });\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n let { jobLorProfiles, jobSkillProfiles, selectedJob } = this.state;\n jobLorProfiles = jobLorProfiles && selectedJob ? jobLorProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n jobSkillProfiles = jobSkillProfiles && selectedJob ? jobSkillProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n\n const { managedPeople } = this.props;\n\n return (\n \n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n {(!managedPeople || (managedPeople && isAdmin) || (managedPeople && this.state.listRelationshipType.some((item) => item.toLocaleLowerCase().trim() === managedPeople.relationshipType?.toLocaleLowerCase().trim()))) && (\n
\n
\n

\n {managedPeople\n ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanManagedTitle\", \"Action Plan for {s1}\"), `${managedPeople.personB.firstName} ${managedPeople.personB.lastName}`)\n : this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanTitle\", \"Your Action Plan\")}\n

\n
\n {this.props.containerConfig && this.props.containerConfig.enablePromoteAction == true && this.props.skillCoins && this.props.skillCoins.length > 0 && this.props.skillCoins.find((it) => it.type == \"Actions Promoted and Accepted\") && (\n
\n \n {this.props.skillCoins.find((it) => it.type == \"Actions Promoted and Accepted\").coins}\n
\n \n \n
\n
\n )}\n {this.props.containerConfig && this.props.containerConfig.enablePromoteAction == true && this.props.skillCoins && this.props.skillCoins.length > 0 && this.props.skillCoins.find((it) => it.type == \"Promoted Action Usage\") && (\n
\n \n {this.props.skillCoins.find((it) => it.type == \"Promoted Action Usage\").coins}\n
\n \n \n \n \n )}\n \n )}\n
\n
\n {!managedPeople && }\n \n {this.renderSendActionPlanUpdatedNotificationConfirmation()}\n {(!managedPeople || (managedPeople && isAdmin) || (managedPeople && this.state.listRelationshipType.some((item) => item.toLocaleLowerCase().trim() === managedPeople.relationshipType?.toLocaleLowerCase().trim()))) && (\n \n )}\n \n
\n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.job.jobMatchesLoading,\n error: state.job.error,\n jobMatches: state.job.jobMatches,\n actionPlanloading: state.actionPlan.loading,\n actionPlanerror: state.actionPlan.error,\n actionPlanUpdating: state.actionPlan.actionPlanUpdating,\n actionPlanUpdatingError: state.actionPlan.actionPlanUpdatingError,\n actions: state.actionPlan.actions,\n actionTypes: state.actionPlan.actionTypes,\n actionSkills: state.actionPlan.actionSkills,\n\n jobLoading: state.job.loading,\n jobLorProfiles: state.job.jobLorProfiles,\n jobSkillProfiles: state.job.jobSkillProfiles,\n\n loadingProfile: state.skillProfile.loading,\n errorProfile: state.skillProfile.error,\n skillProfiles: state.skillProfile.skillProfiles,\n\n profileTypes: state.skillProfile.profileTypes,\n\n loadingLorProfile: state.skillProfile.lorLoading,\n errorLorProfile: state.skillProfile.lorError,\n lorProfiles: state.skillProfile.lorProfiles,\n\n categories: state.category.categories,\n extraFrameworkCapabilities: state.category.extraFrameworkCapabilities,\n categoryLoading: state.category.loading,\n categoryError: state.category.error,\n\n selectedProviders: state.company.selectedProviders,\n companyLoading: state.company.loading,\n companyError: state.company.error,\n\n lorLoading: state.lor.loading,\n lorError: state.lor.error,\n lors: state.lor.lors,\n\n personLoading: state.person.loading,\n personManagedPeople: state.person.managedPeople,\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n skillCoins: state.person.skillCoins,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n currAssessment: state.config.currAssessment,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ActionPlan);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass BadgeRequestAPI {\n static getMyLatestBadgeRequest() {\n return axios\n .get(`/badgerequests/mylatestbadgerequest`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static submitBadgeRequest(badgeRequest) {\n return axios\n .post(`/badgerequests`, badgeRequest)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static createBadgeLinkRequest(badgeRequest) {\n return axios\n .post(`/badgerequests/createwalletaccess`, badgeRequest)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n static getBadgeWallet(id) {\n return axios\n .get(`/badgerequests/badgewallet/${id}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n\n static getBadgeWalletLink() {\n return axios\n .get(`/badgerequests/badgewalletlink`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default BadgeRequestAPI;\n","export const lightenColor = (color, amount) => {\n // Parse the input color string into RGB components\n let r = parseInt(color.substr(1,2), 16);\n let g = parseInt(color.substr(3,2), 16);\n let b = parseInt(color.substr(5,2), 16);\n\n // Calculate the lightened RGB values\n r = Math.round(Math.min(r + amount, 255));\n g = Math.round(Math.min(g + amount, 255));\n b = Math.round(Math.min(b + amount, 255));\n\n // Convert the RGB values back to a hex color string\n let hex = ((r << 16) | (g << 8) | b).toString(16);\n return '#' + ('000000' + hex).slice(-6);\n}","import React from \"react\";\n\n\nconst borderWidth = 15;\nconst styles = {\n badgeContentContainer: {},\n skillAvatar: {\n borderRadius: \"20px 100px 100px 100px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n tmpAvatar: {\n width: \"90px\",\n height: \"90px\",\n borderRadius: \"100px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n};\n\nconst BadgeAvatar = ({ imgSource, bgColor, size = 100 }) => {\n return (\n \n
\n \n \"Skill\n
\n \n \n );\n};\n\nexport default BadgeAvatar;\n","import React, { useState } from \"react\";\nimport BadgeAvatar from \"./BadgeAvatar\"\n\nconst styles = {\n container: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n width: \"200px\",\n backgroundColor: \"#ffffff\",\n borderRadius: \"20px\",\n cursor: \"pointer\",\n paddingTop: \"30px\"\n },\n badgeContentContainer: {\n padding: \"30px 0\",\n },\n badgeTitleContainer: {\n borderRadius: \"0 0 20px 20px\",\n padding: \"12px 0\",\n color: \"#ffffff\",\n marginTop: \"30px\",\n width: \"100%\"\n },\n flex: {\n display: \"flex\",\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n skillAvatar: {\n width: \"100px\",\n height: \"100px\",\n borderRadius: \"20px 100px 100px 100px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n tmpAvatar: {\n width: \"90px\",\n height: \"90px\",\n backgroundColor: \"#ffffff\",\n borderRadius: \"100px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n};\n\nconst Badge = ({\n title = \"\",\n bgColor = \"\",\n lightBgColor = \"\",\n imgSource,\n onClick = () => {},\n data\n}) => {\n const [isHover, setIsHover] = useState(false);\n const mouseEnter = () => {\n setIsHover(true);\n };\n const mouseLeave = () => {\n setIsHover(false);\n };\n return (\n onClick?.(data)}\n >\n \n \n {title}\n \n \n );\n};\n\nexport default Badge;\n","import Badge from \"./Badge\";\nimport React from \"react\";\n\nconst styles = {\n listContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n gap: \"30px\",\n },\n sectionTitle: {\n fontFamily: \"IBMPlexSans\",\n marginBottom: \"20px\"\n }\n};\n\nconst BadgesList = ({\n sectionTitle,\n sectionDarkColor = \"#000000\",\n sectionLightColor = \"#000000\",\n badgesData,\n onClick\n}) => {\n return (\n
\n \n {sectionTitle}\n \n
\n {badgesData.map((badge, index) => (\n \n ))}\n
\n
\n );\n};\n\nexport default BadgesList;\n","import React from 'react'\n\nconst styles = {\n container: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"5px 10px\",\n borderRadius: \"5px\",\n cursor: \"pointer\",\n },\n iconContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginRight: \"10px\",\n }\n};\n\nconst Button = ({children, icon, onClick, primary}) => {\n return (\n
{\n onClick?.()}}>\n {icon &&
{icon}
}\n {children}\n
\n )\n}\n\nexport default Button;\n","import Button from \"../common/Button\";\nimport { LinkOutlined } from \"@ant-design/icons\";\nimport { Card, notification } from \"antd\";\nimport React from \"react\";\n\nconst LinkComponent = ({ email, url, isActive, expireOn, hasStatus }) => {\n const [api, contextHolder] = notification.useNotification();\n const openNotification = (placement) => {\n api.success({\n message: `Copy to clipboard`,\n description: \"\",\n placement,\n });\n };\n\n return (\n \n {contextHolder}\n
\n \n {`${email} `}\n {hasStatus && (\n <>\n \n -\n

\n \n {isActive ? `Active ( until ${expireOn} )` : `Inactive`}\n

\n \n )}\n

\n \n \n {url}\n

\n {((isActive && hasStatus) || !hasStatus) && (\n {\n openNotification(\"bottom\");\n navigator.clipboard.writeText(url);\n }}\n icon={}\n >\n Copy link\n \n )}\n
\n \n
\n );\n};\n\nexport default LinkComponent;\n","import LinkComponent from \"../LinkComponent\";\nimport { Modal, Empty, Typography, Select } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport dayjs from \"dayjs\"\n\nconst styles = {\n emptyContainer: {\n height: \"40vh\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n infoContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n marginBottom: 20,\n },\n};\n\nconst { Text } = Typography;\n\nconst HistoryModal = ({ open, onOk, onCancel, history }) => {\n const [filter, setFilter] = useState('all')\n\n const dataToRender = useMemo(() => {\n if (Array.isArray(history)) {\n const rowData = history.reverse()\n switch (filter) {\n case \"all\":\n return rowData;\n case \"active\":\n return rowData.filter((item) => dayjs().isBefore(dayjs(item.expireOn)))\n case \"inactive\":\n return rowData.filter((item) => dayjs().isAfter(dayjs(item.expireOn)))\n default:\n return rowData;\n }\n }\n }, [filter, history]);\n return (\n \n {history && history.length !== 0 ? (\n <>\n
\n {dataToRender.length} Link shared\n \n
\n {dataToRender?.map((item) => (\n \n ))}\n \n ) : (\n No shared links yet!}\n style={styles.emptyContainer}\n />\n )}\n \n );\n};\n\nexport default HistoryModal;\n","export const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n","import BadgeAPI from \"../../../common/api/service/BadgeRequestService\";\nimport { emailRegex } from \"../../../utils/consts\";\nimport {\n Modal,\n Input,\n Button,\n DatePicker,\n Space,\n Tag,\n notification,\n Form\n} from \"antd\";\nimport dayjs from \"dayjs\";\nimport React, { useState } from \"react\";\n\nconst styles = {\n container: {\n display: \"flex\",\n flexDirection: \"row\",\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n },\n content: {\n textAlign: \"center\",\n marginTop: 25,\n marginBottom: 25,\n maxWidth: \"30ch\",\n color: \"#4F4F4F\",\n },\n text: {\n maxWidth: \"30ch\",\n color: \"#4F4F4F\",\n margin: \"0 0 5px 0\",\n fontWeight: 500,\n },\n inputArea: {\n margin: \"20px 50px 20px 0\",\n minWidth: \"280px\",\n },\n spacing: {\n marginTop: \"10px\",\n },\n inputContainer: {\n width: \"280px\",\n marginTop: 10,\n },\n illustrationContainer: {\n margin: \"30px 80px 30px 40px\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n};\n\nconst { TextArea, Search } = Input;\nconst maxNumberOfEmails = 5;\nconst ShareBadgesModal = ({\n isModalOpen,\n onOk,\n onCancel,\n setSuccessShareData,\n setSuccessSharedDataPreview,\n}) => {\n const [form] = Form.useForm()\n const expirationDate = Form.useWatch(\"expDate\", form)\n const noteForContact = Form.useWatch(\"note\", form)\n const [isLoading, setIsLoading] = useState(false);\n const [emails, setEmails] = useState([]);\n const [api, contextHolder] = notification.useNotification();\n\n const shareBadges = () => {\n setIsLoading(true);\n // form.submit()\n\n const respData = [];\n Promise.all(\n emails.map((email) =>\n BadgeAPI.createBadgeLinkRequest({\n email: email,\n expDate: expirationDate,\n remark: noteForContact,\n }).then((response) => respData.push(response))\n )\n ).then(() => {\n setSuccessShareData(respData);\n setSuccessSharedDataPreview({\n note: noteForContact,\n expiration: expirationDate?.format('YYYY-MM-DD HH:mm') + ` in (${expirationDate.diff(new Date(), \"days\")} days)`,\n });\n // setIsLoading(false);\n onCancel?.();\n }).finally(() => {\n setEmails([])\n form.resetFields()\n setIsLoading(false);\n });\n };\n\n const onSearch = (payload) => {\n if (form.getFieldError(\"email\").length < 1) {\n const emailString = payload.toLowerCase()\n if (emailRegex.test(emailString)) {\n if (emails.indexOf(emailString) < 0) {\n setEmails((oldEmails) => [...oldEmails, emailString]);\n form.setFieldValue(\"email\",null)\n } else {\n api.warning({\n message: \"Email already exist\",\n description: \"\",\n placement: \"bottom\",\n });\n }\n }\n }\n };\n\n const deleteEmail = (payload) => {\n setEmails((oldEmails) => oldEmails.filter((email) => email !== payload));\n form.setFieldValue(\"email\",null)\n form.validateField(\"email\")\n };\n\n const disabledDate = (current) => {\n // Can not select days before today and today\n return current && current < dayjs().endOf(\"day\").add(1);\n };\n\n\n return (\n \n {contextHolder}\n
\n
\n \n

\n Share your achievement with your network in one place.\n

\n
\n
\n
\n Up to {maxNumberOfEmails} contact\n {maxNumberOfEmails > 1 ? \"s\" : \"\"}} rules={[\n {\n required: emails.length < 1,\n },\n {\n pattern: emailRegex,\n message: \"Please enter a valid email address.\"\n },\n {\n validator: (_, value) => {\n if (emails.includes(value)) {\n return Promise.reject(\"email address exist.\");\n }\n return Promise.resolve();\n },\n }\n ]}>\n = maxNumberOfEmails}\n />\n \n\n
\n \n {emails.map((email, index) => (\n deleteEmail(email)}\n color=\"blue\"\n >\n {email}\n \n ))}\n \n
\n
\n
\n \n \n \n\n
\n
\n \n \n \n\n
\n
\n { form.submit() }}\n loading={isLoading}\n >\n Share\n \n
\n
\n
\n \n );\n};\n\nexport default ShareBadgesModal;\n","import BadgeAvatar from \"../BadgeAvatar\";\nimport { ArrowRightOutlined } from \"@ant-design/icons\";\nimport { Modal, Space, Tag } from \"antd\";\nimport React from \"react\";\n\nconst skillstxCapabilitiesPdf = `${process.env.PUBLIC_URL}/assets/documents/skillstx_capabilities.pdf`;\n\nconst styles = {\n contentContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n padding: \"10px\",\n },\n textContentSection: {\n padding: \"0 20px 0 40px\",\n display: \"flex\",\n flexDirection: \"column\",\n },\n title: {\n fontFamily: \"IBMPlexSans-Bold\",\n fontSize: \"18px\",\n marginBottom: \"15px\",\n },\n description: {},\n tagsTitle: {\n marginTop: \"20px\",\n fontFamily: \"IBMPlexSans-Bold\",\n },\n downloadLinkRef: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 0,\n width: \"fit-content\",\n gap: \"5px\",\n cursor: \"pointer\",\n marginTop: \"20px\",\n },\n};\n\nconst SkillDetailsModal = ({\n isModalOpen,\n onOk,\n onCancel,\n okText = \"Close\",\n footer = null,\n data,\n}) => {\n return (\n \n
\n \n
\n
\n

{`${\n data.skillName\n } - Level ${data.level}${\n data?.skillType ? ` - ${data?.skillType}` : \"\"\n }`}

\n

{data.description}

\n

Tags

\n \n SFIA V{data.sfiaVersion}\n {data.skillCode}\n Level {data.level}\n \n \n Learn more \n \n \n View Badge \n \n
\n
\n
\n \n );\n};\n\nexport default SkillDetailsModal;\n","import LinkComponent from \"../LinkComponent\";\nimport { MessageOutlined, HourglassOutlined } from \"@ant-design/icons\";\nimport { Modal, Result, Typography } from \"antd\";\nimport React from \"react\";\n\nconst { Text } = Typography;\n\nconst SuccessShareDataModal = ({\n open,\n onOk,\n onCancel,\n previewData = { expiration: undefined, note: undefined },\n dataList,\n}) => {\n return (\n \n \n
\n \n \n \n Expiration date:\n {` ${previewData.expiration}`}\n \n
\n
\n \n \n Note:\n {` ${previewData.note ?? \"N/A\"}`}\n \n
\n \n \n {dataList?.map((item) => (\n \n ))}\n \n );\n};\n\nexport default SuccessShareDataModal;\n","import BadgeAPI from \"../../common/api/service/BadgeRequestService\";\nimport CategoryAPI from \"../../common/api/service/CategoryService\";\nimport EvidenceAPI from \"../../common/api/service/EvidenceService\";\nimport { lightenColor } from \"../../utils/functions\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport BadgesList from \"./BadgesList\";\nimport HistoryModal from \"./Modal/HistoryModal\";\nimport ShareBadgesModal from \"./Modal/ShareBadgesModal\";\nimport SkillDetailsModal from \"./Modal/SkillDetailsModal\";\nimport SuccessShareDataModal from \"./Modal/SuccessShareDataModal\";\nimport { Empty, Switch, notification } from \"antd\";\nimport _ from \"lodash\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nconst styles = {\n emptyContainer: {\n height: \"40vh\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n shareContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"0 0 25px 0\",\n boxShadow: `0px 15px 10px -15px rgba(0, 0, 0, 0.1)`,\n },\n};\n\nconst createSkillBadgeImage = (skill, skill_code, skill_type, skill_level, badgeProvider) => {\n if (badgeProvider && badgeProvider == \"DSA\" ){\n return `${process.env.REACT_APP_AZURE_STORAGE_BADGE_DSA_IMAGE_BASE_URL}${skill_type} - ${skill.replaceAll(\"/\", \" \")} - Level ${skill_level}.png`;\n }else{\n return `${process.env.REACT_APP_AZURE_STORAGE_BADGE_IMAGE_BASE_URL}${skill_code}${skill_level}${skill_type}.png`;\n }\n};\n\nconst findSkillsCode = (objArr, code) => {\n const found = _.find(objArr, (obj) => {\n return _.some(obj.subCategories, (sub) => {\n return _.some(sub.skills, (skill) => {\n return skill.skillsCode === code;\n });\n });\n });\n\n return found;\n};\n\nfunction findSkills(objects, skill, payload) {\n let result = null;\n _.forEach(objects, (obj) => {\n _.forEach(obj.subCategories, (sub) => {\n const child = _.find(sub.skills, { skillsCode: skill.skillCode });\n if (child) {\n const { id, colour, name, sfiaVersion } = obj;\n const { description, level } = child.levels.find(\n (filteredSkill) => filteredSkill.level === skill.level\n );\n result = {\n ...payload,\n id,\n categoryName: name,\n color: colour,\n skillCode: child.skillsCode,\n link: skill?.link ?? \"\",\n description,\n level,\n sfiaVersion,\n skillName: child.name,\n skillType: skill.skillType,\n };\n return false;\n }\n });\n if (result) {\n return false;\n }\n });\n return result;\n}\nconst DigitalWallet = () => {\n const [badges, setBadges] = useState();\n const [showByCategory, setShowByCategory] = useState(false);\n const [isModalOpen, setModalOpen] = useState(false);\n const [isShareModalOpen, setShareModalOpen] = useState(false);\n const [modalData, setModalData] = useState();\n const [successShareData, setSuccessShareData] = useState([]);\n const [history, setHistory] = useState();\n const [successSharedDataPreview, setSuccessSharedDataPreview] = useState({\n note: undefined,\n expiration: undefined,\n });\n\n const fussionBadgesData = useMemo(() => {\n if (badges) {\n return Object.keys(badges).reduce(\n (accumulator, currentValue) =>\n accumulator.concat(badges?.[currentValue]?.data),\n []\n );\n }\n return [];\n }, [badges]);\n\n const [isResultsModalOpen, setResultsModalOpen] = useState(false);\n const [isHistoryModalOpen, setIsHistoryModalOpen] = useState(false);\n const showResultsModal = () => {\n setResultsModalOpen(true);\n };\n\n const handleResultsOk = () => {\n setResultsModalOpen(false);\n };\n\n useEffect(() => {\n if (successShareData?.length !== 0) {\n showResultsModal();\n } else {\n handleResultsOk;\n }\n }, [successShareData]);\n\n useEffect(() => {\n const fetchBadges = async () => {\n const listOfCategories = await CategoryAPI.getCategories();\n const fetchedBadges = await EvidenceAPI.getMyBadges();\n if (Array.isArray(fetchedBadges) && fetchedBadges.length === 0) {\n window.location = `${window.location.origin}/SfiaProfile`;\n return;\n }\n\n if (Array.isArray(fetchedBadges) && Array.isArray(listOfCategories)) {\n const MappedData = {};\n fetchedBadges.forEach((element) => {\n const results = findSkillsCode(listOfCategories, element?.skillCode);\n const parChildRes = findSkills(listOfCategories, element, {\n imgSource: createSkillBadgeImage(\n element?.skill,\n element?.skillCode,\n element?.skillType,\n element?.level,\n element?.badgeProvider\n ),\n lightColor: lightenColor(results.colour, 95),\n });\n\n if (results) {\n if (MappedData?.[results?.name]) {\n MappedData[results.name].data = [\n ...MappedData[results.name].data,\n parChildRes,\n ];\n } else {\n MappedData[results?.name] = {\n color: results.colour,\n lightColor: lightenColor(results.colour, 95),\n categoryName: results.name,\n data: [parChildRes],\n };\n }\n }\n setBadges(MappedData);\n });\n }\n };\n fetchBadges();\n }, []);\n\n const showModal = (payload) => {\n setModalData(payload);\n };\n\n useEffect(() => {\n if (modalData) {\n setModalOpen(true);\n }\n }, [modalData]);\n\n const handleOk = () => {\n setModalOpen(false);\n };\n\n const handleCancel = () => {\n setModalOpen(false);\n setModalData(undefined);\n };\n\n const requestHistory = async () => {\n BadgeAPI.getBadgeWalletLink().then((response) => {\n setHistory(response);\n setIsHistoryModalOpen(true);\n });\n };\n\n const [api, contextHolder] = notification.useNotification();\n const openNotification = (placement) => {\n api.success({\n message: `Copy to clipboard`,\n description: \"\",\n placement,\n });\n };\n\n return (\n \n {contextHolder}\n {badges && (\n
\n

Earned badges

\n
\n setShareModalOpen(true)}\n >\n Share my badges\n \n requestHistory()}\n >\n Previously shared\n \n
\n
\n )}\n
\n {badges && (\n <>\n
\n \n

Show By Category

\n
\n {showByCategory &&
}\n \n )}\n {badges ? (\n showByCategory ? (\n Object.keys(badges).map((key, index) => (\n
\n \n {Object.keys(badges).length !== index + 1 && (\n
\n )}\n
\n ))\n ) : (\n \n )\n ) : (\n No badges found!}\n style={styles.emptyContainer}\n />\n )}\n {modalData && (\n <>\n \n \n )}\n setShareModalOpen(false)}\n onCancel={() => setShareModalOpen(false)}\n setSuccessShareData={setSuccessShareData}\n setSuccessSharedDataPreview={setSuccessSharedDataPreview}\n />\n \n setIsHistoryModalOpen(true)}\n onCancel={() => setIsHistoryModalOpen(false)}\n history={history}\n />\n \n );\n};\n\nexport default DigitalWallet;\n","import BadgeRequestAPI from \"./../../common/api/service/BadgeRequestService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getMyLatestBadgeRequestStart = () => {\n return {\n type: actionTypes.GET_MY_LATEST_BADGE_REQUEST_START,\n };\n};\n\nexport const getMyLatestBadgeRequestSuccess = (myBadgeRequest) => {\n return {\n type: actionTypes.GET_MY_LATEST_BADGE_REQUEST_SUCCESS,\n myBadgeRequest,\n };\n};\n\nexport const getMyLatestBadgeRequestFail = (error) => {\n return {\n type: actionTypes.GET_MY_LATEST_BADGE_REQUEST_FAIL,\n error: error,\n };\n};\n\nexport const getMyLatestBadgeRequest = () => {\n return (dispatch) => {\n dispatch(getMyLatestBadgeRequestStart());\n\n return BadgeRequestAPI.getMyLatestBadgeRequest()\n .then((res) => {\n if (res) {\n dispatch(getMyLatestBadgeRequestSuccess(res));\n } else {\n dispatch(getMyLatestBadgeRequestFail(res));\n }\n })\n .catch((err) => {\n dispatch(getMyLatestBadgeRequestFail(err));\n });\n };\n};\n\nexport const submitBadgeRequestStart = () => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_START,\n };\n};\n\nexport const submitBadgeRequestSuccess = (badgeRequest) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_SUCCESS,\n badgeRequest,\n };\n};\n\nexport const submitBadgeRequestFail = (error) => {\n return {\n type: actionTypes.SUBMIT_BADGE_REQUEST_FAIL,\n error: error,\n };\n};\n\nexport const submitBadgeRequest = (badgeRequest) => {\n return (dispatch) => {\n dispatch(submitBadgeRequestStart());\n\n return BadgeRequestAPI.submitBadgeRequest(badgeRequest)\n .then((res) => {\n if (res) {\n dispatch(submitBadgeRequestSuccess(res));\n } else {\n dispatch(submitBadgeRequestFail(res));\n }\n })\n .catch((err) => {\n dispatch(submitBadgeRequestFail(err));\n });\n };\n};\n","import EvidenceAPI from \"./../../common/api/service/EvidenceService\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getEvidenceTypesStart = () => {\n return {\n type: actionTypes.GET_EVIDENCE_TYPES_START,\n };\n};\n\nexport const getEvidenceTypesSuccess = (evidenceTypes) => {\n return {\n type: actionTypes.GET_EVIDENCE_TYPES_SUCCESS,\n evidenceTypes: evidenceTypes,\n };\n};\n\nexport const getEvidenceTypesFail = (error) => {\n return {\n type: actionTypes.GET_EVIDENCE_TYPES_FAIL,\n error: error,\n };\n};\n\nexport const getEvidenceTypes = () => {\n return (dispatch) => {\n dispatch(getEvidenceTypesStart());\n\n return EvidenceAPI.getEvidenceTypes()\n .then((res) => {\n dispatch(getEvidenceTypesSuccess(res));\n })\n .catch((err) => {\n dispatch(getEvidenceTypesFail(err));\n });\n };\n};\n\nexport const getEvidencesByAccountIdStart = () => {\n return {\n type: actionTypes.GET_EVIDENCES_BYACCOUNTID_START,\n };\n};\n\nexport const getEvidencesByAccountIdSuccess = (evidences) => {\n return {\n type: actionTypes.GET_EVIDENCES_BYACCOUNTID_SUCCESS,\n evidences: evidences,\n };\n};\n\nexport const getEvidencesByAccountIdFail = (error) => {\n return {\n type: actionTypes.GET_EVIDENCES_BYACCOUNTID_FAIL,\n error: error,\n };\n};\n\nexport const getEvidencesByAccountId = () => {\n return (dispatch) => {\n dispatch(getEvidencesByAccountIdStart());\n\n return EvidenceAPI.getEvidencesByAccountId()\n .then((res) => {\n dispatch(getEvidencesByAccountIdSuccess(res));\n })\n .catch((err) => {\n dispatch(getEvidencesByAccountIdFail(err));\n });\n };\n};\n\nexport const getEvidencesByManagedPeopleAccountIdStart = () => {\n return {\n type: actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_START,\n };\n};\n\nexport const getEvidencesByManagedPeopleAccountIdSuccess = (evidences) => {\n return {\n type: actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_SUCCESS,\n evidences: evidences,\n };\n};\n\nexport const getEvidencesByManagedPeopleAccountIdFail = (error) => {\n return {\n type: actionTypes.GET_EVIDENCES_BY_MANAGE_PEOPLE_ACCOUNTID_FAIL,\n error: error,\n };\n};\n\nexport const getEvidencesByManagedPeopleAccountId = (email) => {\n return (dispatch) => {\n dispatch(getEvidencesByManagedPeopleAccountIdStart());\n\n return EvidenceAPI.getEvidencesByManagedPeopleAccountId(email)\n .then((res) => {\n dispatch(getEvidencesByManagedPeopleAccountIdSuccess(res));\n })\n .catch((err) => {\n dispatch(getEvidencesByManagedPeopleAccountIdFail(err));\n });\n };\n};\n\nexport const addEvidenceStart = () => {\n return {\n type: actionTypes.ADD_EVIDENCE_START,\n };\n};\n\nexport const addEvidenceSuccess = (evidence) => {\n return {\n type: actionTypes.ADD_EVIDENCE_SUCCESS,\n evidence: evidence,\n };\n};\n\nexport const addEvidenceFail = (error) => {\n return {\n type: actionTypes.ADD_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const addEvidence = (evidence) => {\n return (dispatch) => {\n dispatch(addEvidenceStart());\n\n return EvidenceAPI.addEvidence(evidence)\n .then((res) => {\n dispatch(addEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(addEvidenceFail(err));\n });\n };\n};\n\nexport const addEvidencesStart = () => {\n return {\n type: actionTypes.ADD_EVIDENCES_START,\n };\n};\n\nexport const addEvidencesSuccess = (evidences) => {\n return {\n type: actionTypes.ADD_EVIDENCES_SUCCESS,\n evidences: evidences,\n };\n};\n\nexport const addEvidencesFail = (error) => {\n return {\n type: actionTypes.ADD_EVIDENCES_FAIL,\n error: error,\n };\n};\n\nexport const addEvidences = (evidences) => {\n return (dispatch) => {\n dispatch(addEvidencesStart());\n\n return EvidenceAPI.addEvidences(evidences)\n .then((res) => {\n dispatch(addEvidencesSuccess(res));\n })\n .catch((err) => {\n dispatch(addEvidencesFail(err));\n });\n };\n};\n\nexport const addManagedPeopleEvidenceStart = () => {\n return {\n type: actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_START,\n };\n};\n\nexport const addManagedPeopleEvidenceSuccess = (evidence) => {\n return {\n type: actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_SUCCESS,\n evidence: evidence,\n };\n};\n\nexport const addManagedPeopleEvidenceFail = (error) => {\n return {\n type: actionTypes.ADD_MANAGED_PEOPLE_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const addManagedPeopleEvidence = (evidence) => {\n return (dispatch) => {\n dispatch(addManagedPeopleEvidenceStart());\n\n return EvidenceAPI.addManagedPeopleEvidence(evidence)\n .then((res) => {\n dispatch(addManagedPeopleEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(addManagedPeopleEvidenceFail(err));\n });\n };\n};\n\nexport const updateEvidenceStart = () => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_START,\n };\n};\n\nexport const updateEvidenceSuccess = (evidence) => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_SUCCESS,\n evidence: evidence,\n };\n};\n\nexport const updateEvidenceFail = (error) => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const updateEvidence = (evidenceId, evidence) => {\n return (dispatch) => {\n dispatch(updateEvidenceStart());\n\n return EvidenceAPI.updateEvidence(evidenceId, evidence)\n .then((res) => {\n dispatch(updateEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(updateEvidenceFail(err));\n });\n };\n};\n\nexport const updateEvidenceAIReview = (evidenceId) => {\n return (dispatch) => {\n dispatch(updateEvidenceStart());\n\n return EvidenceAPI.updateEvidenceAIReview(evidenceId)\n .then((res) => {\n dispatch(updateEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(updateEvidenceFail(err));\n });\n };\n};\n\nexport const updateManagedPeopleEvidenceStart = () => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_START,\n };\n};\n\nexport const updateManagedPeopleEvidenceSuccess = (evidence) => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_SUCCESS,\n evidence: evidence,\n };\n};\n\nexport const updateManagedPeopleEvidenceFail = (error) => {\n return {\n type: actionTypes.UPDATE_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const updateManagedPeopleEvidence = (evidenceId, evidence) => {\n return (dispatch) => {\n dispatch(updateManagedPeopleEvidenceStart());\n\n return EvidenceAPI.updateManagedPeopleEvidence(evidenceId, evidence)\n .then((res) => {\n dispatch(updateManagedPeopleEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(updateManagedPeopleEvidenceFail(err));\n });\n };\n};\n\nexport const deleteEvidenceStart = () => {\n return {\n type: actionTypes.DELETE_EVIDENCE_START,\n };\n};\n\nexport const deleteEvidenceSuccess = () => {\n return {\n type: actionTypes.DELETE_EVIDENCE_SUCCESS,\n };\n};\n\nexport const deleteEvidenceFail = (error) => {\n return {\n type: actionTypes.DELETE_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const deleteEvidence = (evidenceId) => {\n return (dispatch) => {\n dispatch(deleteEvidenceStart());\n\n return EvidenceAPI.deleteEvidence(evidenceId)\n .then((res) => {\n dispatch(deleteEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteEvidenceFail(err));\n });\n };\n};\n\nexport const deleteManagedPeopleEvidenceStart = () => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_START,\n };\n};\n\nexport const deleteManagedPeopleEvidenceSuccess = () => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_SUCCESS,\n };\n};\n\nexport const deleteManagedPeopleEvidenceFail = (error) => {\n return {\n type: actionTypes.DELETE_MANAGED_PEOPLE_EVIDENCE_FAIL,\n error: error,\n };\n};\n\nexport const deleteManagedPeopleEvidence = (evidenceId, personEmail) => {\n return (dispatch) => {\n dispatch(deleteManagedPeopleEvidenceStart());\n\n return EvidenceAPI.deleteManagedPeopleEvidence(evidenceId, personEmail)\n .then((res) => {\n dispatch(deleteManagedPeopleEvidenceSuccess(res));\n })\n .catch((err) => {\n dispatch(deleteManagedPeopleEvidenceFail(err));\n });\n };\n};\n\nexport const downloadEvidenceFileByIdStart = () => {\n return {\n type: actionTypes.DOWNLOAD_EVIDENCE_BYID_START,\n };\n};\n\nexport const downloadEvidenceFileByIdSuccess = (evidenceFile) => {\n console.log(\"evidenceFile\", evidenceFile);\n return {\n type: actionTypes.DOWNLOAD_EVIDENCE_BYID_SUCCESS,\n evidenceFile: evidenceFile,\n };\n};\n\nexport const downloadEvidenceFileByIdFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_EVIDENCE_BYID_FAIL,\n error: error,\n };\n};\n\nexport const downloadEvidenceFileById = (id) => {\n return (dispatch) => {\n dispatch(downloadEvidenceFileByIdStart());\n\n return EvidenceAPI.downloadEvidence(id)\n .then((res) => {\n dispatch(downloadEvidenceFileByIdSuccess(res));\n })\n .catch((err) => {\n dispatch(downloadEvidenceFileByIdFail(err));\n });\n };\n};\n\nexport const downloadManagedPeopleEvidenceFileByIdStart = () => {\n return {\n type: actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_START,\n };\n};\n\nexport const downloadManagedPeopleEvidenceFileByIdSuccess = (evidenceFile) => {\n return {\n type: actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_SUCCESS,\n evidenceFile: evidenceFile,\n };\n};\n\nexport const downloadManagedPeopleEvidenceFileByIdFail = (error) => {\n return {\n type: actionTypes.DOWNLOAD_MANAGED_PEOPLE_EVIDENCE_BYID_FAIL,\n error: error,\n };\n};\n\nexport const downloadManagedPeopleEvidenceFileById = (email, id) => {\n return (dispatch) => {\n dispatch(downloadManagedPeopleEvidenceFileByIdStart());\n\n return EvidenceAPI.downloadManagedPeopleEvidence(email, id)\n .then((res) => {\n dispatch(downloadManagedPeopleEvidenceFileByIdSuccess(res));\n })\n .catch((err) => {\n dispatch(downloadManagedPeopleEvidenceFileByIdFail(err));\n });\n };\n};\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport Combobox from \"react-widgets/Combobox\";\nimport { Button, Col, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nconst forbiddenExtensions = [\"asp\", \"aspx\", \"axd\", \"asx\", \"asmx\", \"ashx\", \"shtml\", \"mhtml\", \"xhtml\", \"mht\", \"scr\", \"lnk\", \"msi\", \"msp\", \"ps1\", \"reg\", \"vb\", \"vbs\", \"hta\", \"ws\", \"dll\", \"exe\"];\n\nclass EvidenceDetail extends React.Component {\n static displayName = EvidenceDetail.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n submitInProgress: false,\n editedEvidence: null,\n form: {\n id: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n label: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n evidenceTypeId: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n evidenceType: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n completedOn: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n expiryOn: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n supplier: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n text: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n notes: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n selectedSkills: [],\n selectedLors: [],\n evidenceOptions: [],\n evidenceOption: \"Upload File\",\n fileName: null,\n fileData: null,\n editMode: false,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const evidenceOptions = [\n { value: \"Upload File\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceUploadFile\", \"Upload File\") },\n { value: \"Specify Link\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSpecifyLink\", \"Specify Link\") },\n { value: \"Description in the Notes\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceDescriptionNotes\", \"Description in the Notes\") },\n ];\n\n this.setState({ evidenceOptions });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true, editMode: this.props.editMode });\n this.prepareFormState();\n }\n\n if (prevProps.editedEvidence !== this.props.editedEvidence) {\n this.setState({ editedEvidence: this.props.editedEvidence });\n }\n }\n\n prepareFormState = () => {\n const evidence = this.props.editedEvidence;\n let form = this.state.form;\n\n form.id.value = evidence.id;\n form.id.valid = true;\n form.id.isValidFormat = true;\n\n form.label.value = evidence.label;\n form.label.valid = true;\n form.label.isValidFormat = true;\n\n form.evidenceTypeId.value = evidence.evidenceTypeId;\n form.evidenceTypeId.valid = true;\n form.evidenceTypeId.isValidFormat = true;\n\n form.evidenceType.value = evidence.evidenceType;\n form.evidenceType.valid = true;\n form.evidenceType.isValidFormat = true;\n\n form.supplier.value = evidence.supplier;\n form.supplier.valid = true;\n form.supplier.isValidFormat = true;\n\n form.completedOn.value = evidence.completedOn;\n form.completedOn.valid = true;\n form.completedOn.isValidFormat = true;\n\n form.expiryOn.value = evidence.expiryOn;\n form.expiryOn.valid = true;\n form.expiryOn.isValidFormat = true;\n\n form.link.value = evidence.link;\n form.link.valid = true;\n form.link.isValidFormat = true;\n\n form.text.value = evidence.text;\n form.text.valid = true;\n form.text.isValidFormat = true;\n\n form.notes.value = evidence.evidenceType && evidence.evidenceType == \"Text\" && (!evidence.notes || (evidence.notes && evidence.notes.length == 0)) ? evidence.text : evidence.notes;\n form.notes.valid = true;\n form.notes.isValidFormat = true;\n\n const fileData = null;\n const fileName = evidence.fileName;\n\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\") {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n const selectedLors = evidence.lorLevels.map((lorLevel) => {\n return {\n id: lorLevel.id,\n lorLevelId: lorLevel.lorLevelId,\n lor: lorLevel.lor,\n lorCode: lorLevel.lorCode,\n level: lorLevel.level,\n };\n });\n\n const selectedSkills = evidence.skillLevels.map((skillLevel) => {\n return {\n id: skillLevel.id,\n skillLevelId: skillLevel.skillLevelId,\n skill: skillLevel.skill,\n skillCode: skillLevel.skillCode,\n level: skillLevel.level,\n };\n });\n\n this.setState({ form, isFormValid: true, selectedLors, selectedSkills, fileName, fileData, evidenceOption });\n };\n\n togleEditEvidenceModal = () => {\n const showDialog = this.state.showDialog;\n this.setState({ showDialog: !showDialog, editMode: false });\n };\n\n handleEditMode = () => {\n this.setState({ editMode: true });\n };\n\n handleCancelEditMode = () => {\n this.setState({ editMode: false });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"evidenceTypeId\") {\n const evidenceType = this.props.evidenceTypes.find((it) => it.id == value);\n if (evidenceType) {\n updateState = changeInput(updateState.form, \"evidenceType\", evidenceType.name);\n\n if (this.state.evidenceOption == \"Specify Link\") {\n if (updateState.form.link.value == \"\" || updateState.form.link.value == null) {\n updateState.form.link.valid = false;\n updateState.form.link.isValidFormat = false;\n\n updateState.valid = false;\n }\n } else if (this.state.evidenceOption == \"Description in the Notes\") {\n if (updateState.form.notes.value == \"\" || updateState.form.notes.value == null) {\n updateState.form.notes.valid = false;\n updateState.form.notes.isValidFormat = false;\n\n updateState.valid = false;\n }\n } else if (this.state.fileData != \"\") {\n updateState.valid = true;\n }\n }\n } else if (name == \"notes\") {\n if (this.state.evidenceOption == \"Description in the Notes\") {\n if (updateState.form.notes.value == \"\" || updateState.form.notes.value == null) {\n updateState.form.notes.valid = false;\n updateState.form.notes.isValidFormat = false;\n\n updateState.valid = false;\n }\n }\n } else if (name == \"link\") {\n if (this.state.evidenceOption == \"Specify Link\") {\n if (updateState.form.link.value == \"\" || updateState.form.link.value == null) {\n updateState.form.link.valid = false;\n updateState.form.link.isValidFormat = false;\n\n updateState.valid = false;\n }\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeDate(name, value) {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n handleChangeEvidenceOption = (evidenceOption) => {\n this.setState({ evidenceOption });\n\n let updateState = changeInput(this.state.form, \"label\", this.state.form.label.value);\n\n updateState.form.link.valid = true;\n updateState.form.link.isValidFormat = true;\n\n updateState.form.notes.valid = true;\n updateState.form.notes.isValidFormat = true;\n\n if (evidenceOption == \"Specify Link\") {\n updateState = changeInput(updateState.form, \"link\", updateState.form.link.value);\n } else if (evidenceOption == \"Description in the Notes\") {\n updateState = changeInput(updateState.form, \"notes\", updateState.form.notes.value);\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleSkillCheckedChange = (skill, skillCode, level) => {\n let selectedSkills = this.state.selectedSkills;\n const { categories } = this.props;\n\n const selectedSkill = {\n skillLevelId: null,\n skill,\n skillCode,\n level,\n };\n\n if (selectedSkills.find((it) => it.skill == skill && it.skillCode == skillCode && it.level == level)) {\n const unSelectedSkill = selectedSkills.find((it) => it.skill == skill && it.skillCode == skillCode && it.level == level);\n\n if (unSelectedSkill.removed) {\n unSelectedSkill.removed = false;\n } else {\n unSelectedSkill.removed = true;\n }\n\n this.setState({ selectedSkills });\n } else {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skill && it.skillsCode == skillCode)));\n const categorySubCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skill && it.skillsCode == skillCode));\n const categorySkill = categorySubCategory && categorySubCategory.skills.find((it) => it.name == skill && it.skillsCode == skillCode);\n const skillLevel = categorySkill && categorySkill.levels.find((it) => it.level == level);\n\n if (skillLevel) {\n selectedSkill.skillLevelId = skillLevel.id;\n }\n\n this.setState({ selectedSkills: [...selectedSkills, selectedSkill] });\n }\n };\n\n handlelorCheckedChange = (lor, lorCode, level) => {\n let selectedLors = this.state.selectedLors;\n const { lors } = this.props;\n\n const selectedLor = {\n lorLevelId: null,\n lor,\n lorCode,\n level,\n };\n\n if (selectedLors.find((it) => it.lor == lor && it.lorCode == lorCode && it.level == level)) {\n const unSelectedLor = selectedLors.find((it) => it.lor == lor && it.lorCode == lorCode && it.level == level);\n\n if (unSelectedLor.removed) {\n unSelectedLor.removed = false;\n } else {\n unSelectedLor.removed = true;\n }\n\n this.setState({ selectedLors });\n } else {\n const lorLevel = lors.find((it) => it.name == lor && it.lorCode == lorCode).levels.find((it) => it.levelNumber == level);\n\n if (lorLevel) {\n selectedLor.lorLevelId = lorLevel.id;\n }\n\n this.setState({ selectedLors: [...selectedLors, selectedLor] });\n }\n };\n\n setEvidenceFile = (evidenceFile) => {\n const extension = evidenceFile.name.split(\".\").pop().toLowerCase();\n toBase64(evidenceFile).then((result) => {\n const fileData = result.split(\",\")[1];\n this.setState({ fileName: evidenceFile.name, fileData, fileExtension: extension });\n });\n\n this.handleChange({\n target: {\n name: \"evidenceTypeId\",\n value: this.state.form.evidenceTypeId.value,\n },\n });\n };\n\n handleSubmitDelete = () => {\n const { editedEvidence } = this.state;\n\n if (window.confirm(`Are you sure?`)) {\n const deletedId = editedEvidence.id;\n const personEmail = this.props.managedPeople && this.props.managedPeople.personB.email ? this.props.managedPeople.personB.email : null;\n\n this.setState({ submitInProgress: true });\n Promise.resolve(this.props.managedPeople ? this.props.onEvidence.deleteManagedPeopleEvidence(deletedId, personEmail) : this.props.onEvidence.deleteEvidence(deletedId)).then(() => {\n if (!this.props.updateInProgress) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({ showDialog: false });\n if (this.props.handleEvidenceDeleted) {\n this.props.handleEvidenceDeleted(deletedId);\n }\n }\n }\n this.setState({ submitInProgress: this.props.updateInProgress });\n });\n }\n };\n\n handleSubmitEdit = () => {\n const { form, evidenceOption, selectedSkills, selectedLors, editedEvidence } = this.state;\n\n let fileName = null;\n\n if (this.state.fileData) {\n fileName = this.state.fileName;\n } else if (evidenceOption == \"Specify Link\" || evidenceOption == \"Description in the Notes\") {\n fileName = null;\n } else {\n fileName = editedEvidence.fileName;\n }\n\n const evidence = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n evidenceTypeId: form.evidenceTypeId.value,\n evidenceType: form.evidenceType.value,\n label: form.label.value,\n supplier: form.supplier.value,\n completedOn: form.completedOn.value,\n expiryOn: form.expiryOn.value,\n link: evidenceOption == \"Specify Link\" ? form.link.value : null,\n fileName: fileName,\n fileData: this.state.fileData,\n lorLevels: selectedLors.filter((it) => !it.removed),\n skillLevels: selectedSkills.filter((it) => !it.removed),\n text: form.text.value,\n notes: form.notes.value,\n };\n\n this.setState({ submitInProgress: true });\n Promise.resolve(this.props.managedPeople ? this.props.onEvidence.updateManagedPeopleEvidence(form.id.value, evidence) : this.props.onEvidence.updateEvidence(form.id.value, evidence)).then(() => {\n if (!this.props.updateInProgress) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({ showDialog: false, editMode: false });\n if (this.props.handleEvidenceUpdated) {\n this.props.handleEvidenceUpdated(this.props.updatedEvidence);\n }\n }\n }\n this.setState({ submitInProgress: this.props.updateInProgress });\n });\n };\n\n handleSubmitAIEvidenceReview = () => {\n const { form } = this.state;\n\n this.setState({ submitInProgress: true });\n this.props.onEvidence.updateEvidenceAIReview(form.id.value).then(() => {\n if (!this.props.updateInProgress) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.setState({ editedEvidence: this.props.updatedEvidence });\n if (this.props.handleEvidenceUpdated) {\n this.props.handleEvidenceUpdated(this.props.updatedEvidence);\n }\n }\n }\n this.setState({ submitInProgress: this.props.updateInProgress });\n });\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const { form, selectedSkills, selectedLors, editedEvidence, editMode, submitInProgress } = this.state;\n const { skillProfiles, lorProfiles, lors, categories, showHiddenSkills, containerConfig } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n const allowEdit = !(editedEvidence && (editedEvidence.isDigitalBadge || editedEvidence.isNonEditable || (editedEvidence.isEditableToCreatorOnly && editedEvidence.createdById != this.props.personId)) ? true : false);\n const showOnly = (editedEvidence && (editedEvidence.isDigitalBadge || editedEvidence.isNonEditable || (editedEvidence.isEditableToCreatorOnly && editedEvidence.createdById != this.props.personId)) ? true : false) || !editMode;\n\n let stxEvidenceOption = \"Upload File\";\n\n if (editedEvidence) {\n if (editedEvidence.fileName && editedEvidence.fileName != \"\") {\n stxEvidenceOption = \"Upload File\";\n } else if (editedEvidence.link && editedEvidence.link != \"\") {\n stxEvidenceOption = \"Specify Link\";\n } else if (editedEvidence.notes && editedEvidence.notes != \"\" && !editedEvidence.notes.startsWith(\"Evidence created from an Action\")) {\n stxEvidenceOption = \"Description in the Notes\";\n } else if (editedEvidence.evidenceType == \"Text\") {\n stxEvidenceOption = \"Description in the Notes\";\n } else {\n stxEvidenceOption = \"Specify Link\";\n }\n }\n\n const showStxIntelligence =\n allowEdit &&\n !editMode &&\n editedEvidence &&\n !(editedEvidence.isDigitalBadge || editedEvidence.isNonEditable || (editedEvidence.isEditableToCreatorOnly && editedEvidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (editedEvidence.lorLevels ? editedEvidence.lorLevels : []).length + (editedEvidence.skillLevels ? editedEvidence.skillLevels : []).length == 1 &&\n (stxEvidenceOption == \"Upload File\" || stxEvidenceOption == \"Description in the Notes\") &&\n !this.props.managedPeople;\n\n return (\n \n \n {showOnly ? : }\n \n \n {this.state.submitInProgress ? (\n
\n \n
\n ) : (\n
\n \n \n \n \n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"evidenceTypeId\",\n value: value.id,\n },\n });\n }}\n data={this.props.evidenceTypes}\n textField=\"name\"\n dataKey=\"name\"\n value={this.props.evidenceTypes.find((it) => it.id == form.evidenceTypeId.value)}\n defaultValue={this.props.evidenceTypes.find((it) => it.id == form.evidenceTypeId.value)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n readOnly={showOnly}\n />\n \n \n \n \n \n \n \n \n \n \n \n this.handleChangeDate(\"completedOn\", value)} className=\"form-control\" disabled={showOnly} isClearable={!showOnly} />\n \n \n \n \n \n this.handleChangeDate(\"expiryOn\", value)} className=\"form-control\" disabled={showOnly} isClearable={!showOnly} />\n \n \n \n \n \n {\n this.handleChangeEvidenceOption(value.value);\n }}\n onChange={() => {}}\n textField=\"label\"\n dataKey=\"value\"\n defaultValue={this.state.evidenceOption}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n readOnly={showOnly}\n />\n \n \n {this.state.evidenceOption == \"Specify Link\" && (\n \n \n \n \n \n \n )}\n \n \n \n {!this.state.fileData && this.state.fileName && this.state.fileName != \"\" && (\n \n )}\n this.setEvidenceFile(e.target.files[0])} readOnly={showOnly} />\n \n \n \n {this.state.fileData && this.state.fileExtension && forbiddenExtensions.includes(this.state.fileExtension) && For security this file type is not allowed}\n \n \n \n \n \n \n {this.state.evidenceOption == \"Description in the Notes\" && form.notes.touched && form.notes.value && (form.notes.value.length < 30 || form.notes.value.length > 5000) && Min 30, max 5000 characters}\n \n \n \n \n \n {lorProfiles &&\n lorProfiles\n .filter((lorProfile) => (!showOnly ? lorProfile && (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(lorProfile.lorCode))) : !!selectedLors.find((it) => !it.removed && it.lorCode == lorProfile.lorCode && it.level == lorProfile.level)))\n .sort((a, b) => (`${a.lorCode}${a.level}` > `${b.lorCode}${b.level}` ? 1 : -1))\n .map((lorProfile, index) => {\n const lor = lors.find((it) => it.lorCode == lorProfile.lorCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == lorProfile.level) : null;\n\n return (\n \n
\n !it.removed && it.lorCode == lorProfile.lorCode && it.level == lorProfile.level)}\n label={\n
\n {lorProfile.lorCode}\n {lorProfile.level} - {this.contentTranslator(this.props.contentTranslations, \"Lors\", lorProfile.lor, lorProfile.lor)} {lorProfile.level}\n
\n }\n onChange={() => this.handlelorCheckedChange(lorProfile.lor, lorProfile.lorCode, lorProfile.level)}\n disabled={showOnly}\n inline\n />\n
\n \n {lorLevel && }\n \n
\n );\n })}\n \n
\n \n \n \n \n \n \n \n {skillProfiles &&\n skillProfiles\n .filter((skillProfile) =>\n !showOnly ? skillProfile && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(skillProfile.skillCode))) : !!selectedSkills.find((it) => !it.removed && it.skillCode == skillProfile.skillCode && it.level == skillProfile.level)\n )\n .sort((a, b) => (`${a.skillCode}${a.level}` > `${b.skillCode}${b.level}` ? 1 : -1))\n .map((skillProfile, index) => {\n const category = categories && categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode)));\n const subCategory = category ? category.subCategories.find((it) => it.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode)) : null;\n const skill = subCategory ? subCategory.skills.find((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode) : null;\n const skillLevel = skill ? skill.levels.find((it) => it.level == skillProfile.level) : null;\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillCode} ${skillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n !it.removed && it.skillCode == skillProfile.skillCode && it.level == skillProfile.level)}\n label={\n
\n {skillProfile.skillCode}\n {skillProfile.level} - {this.contentTranslator(this.props.contentTranslations, \"Skills\", skillProfile.skill, skillProfile.skill)} {skillProfile.level}\n
\n }\n onChange={() => this.handleSkillCheckedChange(skillProfile.skill, skillProfile.skillCode, skillProfile.level)}\n disabled={showOnly}\n inline\n />\n
\n \n
\n );\n })}\n \n
\n {editedEvidence && editedEvidence.aiReviewed && !editMode && (\n \n \n \n \n \n \n \n {editedEvidence.aiReviewNotes}\n \n \n )}\n {!showOnly && (\n \n \n \n \n \n \n )}\n
\n )}\n
\n \n {editedEvidence && !editedEvidence.aiReviewed && showStxIntelligence && (\n \n \n \n \n \n \n )}\n {allowEdit && !editMode && (\n \n )}\n {!showOnly && (\n !it.removed).length > 0 || selectedLors.filter((it) => !it.removed).length > 0) &&\n (this.state.evidenceOption == \"Description in the Notes\"\n ? form.notes.value && form.notes.value.length >= 30 && form.notes.value.length <= 5000\n ? true\n : false\n : this.state.evidenceOption == \"Specify Link\"\n ? form.link.value\n ? true\n : false\n : this.state.fileName\n ? true\n : false)\n )\n }\n >\n \n \n )}\n {/* {allowEdit && editMode && !submitInProgress && (\n \n )} */}\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.evidence.loading,\n error: state.evidence.error,\n evidenceFile: state.evidence.evidenceFile,\n updateInProgress: state.evidence.updateInProgress,\n updatedEvidence: state.evidence.updatedEvidence,\n evidenceTypes: state.evidence.evidenceTypes,\n\n lors: state.lor.lors,\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n personId: state.auth.personId,\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceDetail);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport EvidenceDetail from \"./EvidenceDetail\";\nimport { faArrowDown, faArrowUp } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Container, Input, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass EvidenceList extends React.Component {\n static displayName = EvidenceList.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showEditEvidence: false,\n editedEvidence: null,\n editMode: false,\n selectedSortOption: \"label\",\n selectedSortOptionDirection: \"asc\",\n optionSorts: [\n {\n label: \"Label\",\n field: \"label\",\n selected: true,\n },\n {\n label: \"Type\",\n field: \"evidenceType\",\n },\n {\n label: \"Expiry Date\",\n field: \"expiryOn\",\n },\n ],\n showDialogEvidenceDetailTs: null,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (this.props.addedEvidence && prevProps.addedEvidence !== this.props.addedEvidence) {\n const containerConfig = this.props.containerConfig;\n\n const evidence = this.props.addedEvidence;\n const fileName = evidence.fileName;\n\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\" && !evidence.notes.startsWith(\"Evidence created from an Action\")) {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n if (\n !(evidence.isDigitalBadge || evidence.isNonEditable || (evidence.isEditableToCreatorOnly && evidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (evidence.lorLevels ? evidence.lorLevels : []).length + (evidence.skillLevels ? evidence.skillLevels : []).length == 1 &&\n (evidenceOption == \"Upload File\" || evidenceOption == \"Description in the Notes\")\n ) {\n this.openEditEvidenceModal(evidence, false);\n }\n }\n }\n\n openEditEvidenceModal = (evidence, editMode) => {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode });\n };\n\n handleChangeSortOption = (event) => {\n const { name, value } = event.target;\n const { optionSorts } = this.state;\n optionSorts.forEach((option) => {\n if (option.field == value) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n });\n\n this.setState({\n selectedSortOption: value,\n optionSorts,\n });\n };\n\n handleChangeSortDirection = () => {\n const { selectedSortOptionDirection } = this.state;\n\n this.setState({\n selectedSortOptionDirection: selectedSortOptionDirection == \"asc\" ? \"desc\" : \"asc\",\n });\n };\n\n sortActions = (actions) => {\n const { selectedSortOption, selectedSortOptionDirection } = this.state;\n\n if (selectedSortOption == \"expiryOn\") {\n if (selectedSortOptionDirection == \"asc\") {\n actions = actions.sort((a, b) => new Date(a.expiryOn) - new Date(b.expiryOn));\n } else {\n actions = actions.sort((b, a) => new Date(a.expiryOn) - new Date(b.expiryOn));\n }\n } else {\n actions = _.orderBy(actions, selectedSortOption, selectedSortOptionDirection);\n }\n\n return actions;\n };\n\n renderEvidenceList = () => {\n const { containerConfig } = this.props;\n let evidences = this.props.evidences;\n evidences = this.sortActions(evidences);\n\n const optionSorts = [\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSortByLabel\", \"Label\"),\n field: \"label\",\n selected: true,\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSortByType\", \"Type\"),\n field: \"evidenceType\",\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSortByCreatedDate\", \"Created Date\"),\n field: \"createdOn\",\n },\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSortByExpiryDate\", \"Expiry Date\"),\n field: \"expiryOn\",\n },\n ];\n\n return (\n \n {evidences && evidences.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n \n {optionSorts.map((optionSort, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n {evidences.map((evidence, index) => {\n const skillLevels = [\n ...evidence.lorLevels.map((lorLevel) => {\n return lorLevel.lorCode + lorLevel.level;\n }),\n ...evidence.skillLevels.map((skillLevel) => {\n return skillLevel.skillCode + skillLevel.level;\n }),\n ];\n\n const fileName = evidence.fileName;\n\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\" && !evidence.notes.startsWith(\"Evidence created from an Action\")) {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n return (\n \n \n \n \n \n \n {evidence.fileName ? (\n \n {this.props.managedPeople ? (\n \n {evidence.label}\n \n ) : (\n \n {evidence.label}\n \n )}\n \n ) : evidence.link ? (\n \n {evidence.label}\n \n ) : (\n evidence.label\n )}\n {skillLevels.length > 0 &&
}\n {skillLevels.map((it, index) => {\n return (index > 0 ? \", \" : \"\") + it;\n })}\n \n \n {evidence.evidenceType}\n \n \n {evidence.createdOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.createdOn))}\n \n
\n
\n )}\n {evidence.completedOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.completedOn))}\n \n
\n
\n )}\n {evidence.expiryOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.expiryOn))}\n \n \n )}\n \n \n \n {!(evidence.isDigitalBadge || evidence.isNonEditable || (evidence.isEditableToCreatorOnly && evidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (evidence.lorLevels ? evidence.lorLevels : []).length + (evidence.skillLevels ? evidence.skillLevels : []).length == 1 &&\n (evidenceOption == \"Upload File\" || evidenceOption == \"Description in the Notes\") &&\n !evidence.aiReviewed &&\n !this.props.managedPeople && (\n \n this.openEditEvidenceModal(evidence, false)}\n disabled={this.props.loadingEdit}\n >\n \n \n \n \n \n \n )}\n {evidence.aiReviewed && (\n \n )}\n \n
\n {evidence.evidenceType == \"Text\" && (!evidence.notes || (evidence.notes && evidence.notes.length == 0)) && (\n \n \n
\n {evidence.text}\n \n \n
\n )}\n {evidence.notes && evidence.notes.length > 0 && (\n \n \n
\n {evidence.notes}\n \n \n
\n )}\n {evidence.isEditableToCreatorOnly && (\n \n \n
\n {`Evidence created by ${evidence.createdBy} on ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.createdOn))}`}\n \n \n
\n )}\n \n
\n
\n
\n );\n })}\n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n
\n );\n };\n\n render() {\n let { evidences } = this.props;\n\n if (!evidences) return

;\n return (\n \n \n

\n {this.props.managedPeople\n ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceListFor\", \"Evidence List for {s1}\"), `${this.props.managedPeople.personB.firstName} ${this.props.managedPeople.personB.lastName}`)\n : this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceList\", \"Your Evidence List\")}\n

\n {this.props.loadingEvidence ? (\n
\n \n
\n ) : (\n this.renderEvidenceList()\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.evidence.loading,\n error: state.evidence.error,\n evidenceFile: state.evidence.evidenceFile,\n updateInProgress: state.evidence.updateInProgress,\n updatedEvidence: state.evidence.updatedEvidence,\n evidenceTypes: state.evidence.evidenceTypes,\n\n lors: state.lor.lors,\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n personId: state.auth.personId,\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceList);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport Combobox from \"react-widgets/Combobox\";\nimport { Button, Col, Container, CustomInput, Form, FormGroup, Input, Label, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst wrapperStyle = {\n borderRadius: \"10px\",\n width: \"700px\",\n background: \"#F5F5F5\",\n paddingLeft: \"63px\",\n paddingRight: \"63px\",\n paddingTop: \"35px\",\n paddingBottom: \"35px\",\n};\n\nconst toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nconst forbiddenExtensions = [\"asp\", \"aspx\", \"axd\", \"asx\", \"asmx\", \"ashx\", \"shtml\", \"mhtml\", \"xhtml\", \"mht\", \"scr\", \"lnk\", \"msi\", \"msp\", \"ps1\", \"reg\", \"vb\", \"vbs\", \"hta\", \"ws\", \"dll\", \"exe\"];\n\nclass AddNewEvidenceForm extends React.Component {\n static displayName = AddNewEvidenceForm.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n submitInProgress: false,\n selectedSkills: [],\n selectedLors: [],\n evidenceOptions: [],\n evidenceOption: \"Upload File\",\n form: {\n label: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n evidenceTypeId: {\n validation: {\n required: true,\n },\n value: this.props.evidenceTypes && this.props.evidenceTypes.length > 0 && this.props.evidenceTypes[0].id,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n evidenceType: {\n validation: {\n required: true,\n },\n value: this.props.evidenceTypes && this.props.evidenceTypes.length > 0 && this.props.evidenceTypes[0].name,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n completedOn: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n expiryOn: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n supplier: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n text: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n notes: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n fileName: null,\n fileExtension: null,\n fileData: null,\n isFormValid: false,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const evidenceOptions = [\n { value: \"Upload File\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceUploadFile\", \"Upload File\") },\n { value: \"Specify Link\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceSpecifyLink\", \"Specify Link\") },\n { value: \"Description in the Notes\", label: this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceDescriptionNotes\", \"Description in the Notes\") },\n ];\n\n this.setState({ evidenceOptions });\n\n const { selectedSkills, selectedLors } = this.state;\n const { defaultSelectedSkill, defaultSelectedSkills, defaultSelectedLor, defaultSelectedLors } = this.props;\n\n if (defaultSelectedSkill) {\n this.setState({ selectedSkills: [...selectedSkills, defaultSelectedSkill] });\n } else if (defaultSelectedSkills) {\n this.setState({ selectedSkills: [...selectedSkills, ...defaultSelectedSkills] });\n }\n\n if (defaultSelectedLor) {\n this.setState({ selectedLors: [...selectedLors, defaultSelectedLor] });\n }\n if (defaultSelectedLors) {\n this.setState({ selectedLors: [...selectedLors, ...defaultSelectedLors] });\n }\n }\n\n handleChangeEvidenceOption = (evidenceOption) => {\n this.setState({ evidenceOption });\n\n let updateState = changeInput(this.state.form, \"label\", this.state.form.label.value);\n\n updateState.form.link.valid = true;\n updateState.form.link.isValidFormat = true;\n\n updateState.form.notes.valid = true;\n updateState.form.notes.isValidFormat = true;\n\n if (evidenceOption == \"Specify Link\") {\n updateState = changeInput(updateState.form, \"link\", updateState.form.link.value);\n } else if (evidenceOption == \"Description in the Notes\") {\n updateState = changeInput(updateState.form, \"notes\", updateState.form.notes.value);\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n let updateState = changeInput(this.state.form, name, value);\n\n if (name == \"evidenceTypeId\") {\n const evidenceType = this.props.evidenceTypes.find((it) => it.id == value);\n if (evidenceType) {\n updateState = changeInput(updateState.form, \"evidenceType\", evidenceType.name);\n\n if (this.state.evidenceOption == \"Specify Link\") {\n if (updateState.form.link.value == \"\" || updateState.form.link.value == null) {\n updateState.form.link.valid = false;\n updateState.form.link.isValidFormat = false;\n\n updateState.valid = false;\n }\n } else if (this.state.evidenceOption == \"Description in the Notes\") {\n if (updateState.form.notes.value == \"\" || updateState.form.notes.value == null) {\n updateState.form.notes.valid = false;\n updateState.form.notes.isValidFormat = false;\n\n updateState.valid = false;\n }\n }\n }\n } else if (name == \"notes\") {\n if (this.state.evidenceOption == \"Description in the Notes\") {\n if (updateState.form.notes.value == \"\" || updateState.form.notes.value == null) {\n updateState.form.notes.valid = false;\n updateState.form.notes.isValidFormat = false;\n\n updateState.valid = false;\n }\n }\n } else if (name == \"link\") {\n if (this.state.evidenceOption == \"Specify Link\") {\n if (updateState.form.link.value == \"\" || updateState.form.link.value == null) {\n updateState.form.link.valid = false;\n updateState.form.link.isValidFormat = false;\n\n updateState.valid = false;\n }\n }\n }\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeDate(name, value) {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n }\n\n setEvidenceFile = (evidenceFile) => {\n const extension = evidenceFile.name.split(\".\").pop().toLowerCase();\n toBase64(evidenceFile).then((result) => {\n const fileData = result.split(\",\")[1];\n this.setState({ fileName: evidenceFile.name, fileData, fileExtension: extension });\n });\n };\n\n handleSkillCheckedChange = (skill, skillCode, level) => {\n let selectedSkills = this.state.selectedSkills;\n const { categories } = this.props;\n\n const selectedSkill = {\n skillLevelId: null,\n skill,\n skillCode,\n level,\n };\n\n if (selectedSkills.find((it) => it.skill == skill && it.skillCode == skillCode && it.level == level)) {\n const unSelectedSkill = selectedSkills.find((it) => it.skill == skill && it.skillCode == skillCode && it.level == level);\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills.splice(index, 1);\n }\n\n this.setState({ selectedSkills });\n } else {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skill && it.skillsCode == skillCode)));\n const categorySubCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skill && it.skillsCode == skillCode));\n const categorySkill = categorySubCategory && categorySubCategory.skills.find((it) => it.name == skill && it.skillsCode == skillCode);\n const skillLevel = categorySkill && categorySkill.levels.find((it) => it.level == level);\n\n if (skillLevel) {\n selectedSkill.skillLevelId = skillLevel.id;\n }\n\n this.setState({ selectedSkills: [...selectedSkills, selectedSkill] });\n }\n };\n\n handlelorCheckedChange = (lor, lorCode, level) => {\n let selectedLors = this.state.selectedLors;\n const { lors } = this.props;\n\n const selectedLor = {\n lorLevelId: null,\n lor,\n lorCode,\n level,\n };\n\n if (selectedLors.find((it) => it.lor == lor && it.lorCode == lorCode && it.level == level)) {\n const unSelectedLor = selectedLors.find((it) => it.lor == lor && it.lorCode == lorCode && it.level == level);\n const index = selectedLors.indexOf(unSelectedLor);\n if (index !== -1) {\n selectedLors.splice(index, 1);\n }\n\n this.setState({ selectedLors });\n } else {\n const lorLevel = lors.find((it) => it.name == lor && it.lorCode == lorCode).levels.find((it) => it.levelNumber == level);\n\n if (lorLevel) {\n selectedLor.lorLevelId = lorLevel.id;\n }\n\n this.setState({ selectedLors: [...selectedLors, selectedLor] });\n }\n };\n\n submitForm = () => {\n const { pendingSaveEvidence } = this.props;\n const { form, evidenceOption, selectedSkills, selectedLors } = this.state;\n const evidence = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n evidenceTypeId: form.evidenceTypeId.value,\n evidenceType: form.evidenceType.value,\n label: form.label.value,\n link: evidenceOption == \"Specify Link\" ? form.link.value : null,\n expiryOn: form.expiryOn.value,\n fileName: this.state.fileName,\n fileData: this.state.fileData,\n lorLevels: selectedLors,\n skillLevels: selectedSkills,\n text: form.text.value,\n notes: form.notes.value,\n completedOn: form.completedOn.value,\n supplier: form.supplier.value,\n };\n\n if (pendingSaveEvidence && this.props.handleEvidencePendingSave) {\n this.props.handleEvidencePendingSave(evidence);\n } else {\n this.setState({ submitInProgress: true });\n\n Promise.resolve(this.props.managedPeople ? this.props.onEvidence.addManagedPeopleEvidence(evidence) : this.props.onEvidence.addEvidence(evidence)).then(() => {\n if (!this.props.updateInProgress) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.handleEvidenceAdded(this.props.addedEvidence);\n }\n }\n this.setState({ submitInProgress: this.props.updateInProgress });\n });\n }\n };\n\n render() {\n const { form, selectedSkills, selectedLors } = this.state;\n const { lors, categories, skillProfiles, lorProfiles, showHiddenSkills, pendingSaveEvidence, shownSkills } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden || showHiddenSkills)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n return (\n \n {this.state.submitInProgress ? (\n
\n \n
\n ) : (\n \n
\n \n \n \n \n \n \n \n \n \n \n {\n this.handleChange({\n target: {\n name: \"evidenceTypeId\",\n value: value.id,\n },\n });\n }}\n onChange={() => {}}\n textField=\"name\"\n dataKey=\"name\"\n defaultValue={this.props.evidenceTypes[0]}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n \n \n {\n this.handleChangeEvidenceOption(value.value);\n }}\n onChange={() => {}}\n textField=\"label\"\n dataKey=\"value\"\n defaultValue={this.state.evidenceOption}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n this.handleChangeDate(\"completedOn\", value)} className=\"form-control\" isClearable />\n \n \n \n \n \n this.handleChangeDate(\"expiryOn\", value)} className=\"form-control\" isClearable />\n \n \n \n \n \n \n \n this.setEvidenceFile(e.target.files[0])} />\n \n \n \n {this.state.fileData && this.state.fileExtension && forbiddenExtensions.includes(this.state.fileExtension) && For security this file type is not allowed}\n \n \n \n {this.state.evidenceOption == \"Specify Link\" && (\n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n {this.state.evidenceOption == \"Description in the Notes\" && form.notes.touched && form.notes.value && (form.notes.value.length < 30 || form.notes.value.length > 5000) && Min 30, max 5000 characters}\n \n \n \n {!pendingSaveEvidence &&\n \n \n \n \n
\n {lorProfiles &&\n lorProfiles\n .filter((it) => availableLorCodes.includes(it.lorCode))\n .sort((a, b) => (a.lorCode + a.level > b.lorCode + b.level ? 1 : -1))\n .map((lorProfile, index) => {\n const lor = lors.find((it) => it.lorCode == lorProfile.lorCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == lorProfile.level) : null;\n\n return (\n \n
\n it.lorCode == lorProfile.lorCode && it.level == lorProfile.level)}\n label={`${lorProfile.lorCode}${lorProfile.level} - ${this.contentTranslator(this.props.contentTranslations, \"Lors\", lorProfile.lor, lorProfile.lor)} ${lorProfile.level}`}\n onChange={() => this.handlelorCheckedChange(lorProfile.lor, lorProfile.lorCode, lorProfile.level)}\n inline\n />\n
\n \n {lorLevel && }\n \n
\n );\n })}\n
\n
\n \n
\n }\n \n \n \n \n {pendingSaveEvidence\n ?
\n {\n shownSkills && shownSkills.sort((a, b) => (a.skillCode + a.level > b.skillCode + b.level ? 1 : -1))\n .map((skillProfile, index) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == skillProfile.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillCode} ${skillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n it.skillCode == skillProfile.skillCode && it.level == skillProfile.level)}\n label={`${skillProfile.skillCode}${skillProfile.level} - ${this.contentTranslator(this.props.contentTranslations, \"Skills\", skillProfile.skill, skillProfile.skill)} ${skillProfile.level}`}\n // onChange={() => this.handleSkillCheckedChange(skillProfile.skill, skillProfile.skillCode, skillProfile.level)}\n disabled={true}\n inline\n />\n
\n \n
\n );\n })\n }\n
\n :\n
\n {skillProfiles &&\n skillProfiles\n .filter((it) => availableSkillCodes.includes(it.skillCode))\n .sort((a, b) => (a.skillCode + a.level > b.skillCode + b.level ? 1 : -1))\n .map((skillProfile, index) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == skillProfile.skill && it.skillsCode == skillProfile.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == skillProfile.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillCode} ${skillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n it.skillCode == skillProfile.skillCode && it.level == skillProfile.level)}\n label={`${skillProfile.skillCode}${skillProfile.level} - ${this.contentTranslator(this.props.contentTranslations, \"Skills\", skillProfile.skill, skillProfile.skill)} ${skillProfile.level}`}\n onChange={() => this.handleSkillCheckedChange(skillProfile.skill, skillProfile.skillCode, skillProfile.level)}\n inline\n />\n
\n \n
\n );\n })}\n
\n }\n
\n \n
\n \n \n 0 || selectedLors.length > 0) &&\n (this.state.evidenceOption == \"Description in the Notes\"\n ? form.notes.value && form.notes.value.length >= 30 && form.notes.value.length <= 5000\n ? true\n : false\n : this.state.evidenceOption == \"Upload File\"\n ? this.state.fileData\n ? true\n : false\n : form.link.value\n ? true\n : false)\n ? \"btnPrimary-Style\"\n : \"btnDisabled-Style\"\n }`}\n disabled={\n !(\n this.state.isFormValid &&\n !(this.state.evidenceOption == \"Upload File\" && this.state.fileData && this.state.fileExtension && forbiddenExtensions.includes(this.state.fileExtension)) &&\n (selectedSkills.length > 0 || selectedLors.length > 0) &&\n (this.state.evidenceOption == \"Description in the Notes\"\n ? form.notes.value && form.notes.value.length >= 30 && form.notes.value.length <= 5000\n ? true\n : false\n : this.state.evidenceOption == \"Upload File\"\n ? this.state.fileData\n ? true\n : false\n : form.link.value\n ? true\n : false)\n )\n }\n onClick={this.submitForm}\n >\n {pendingSaveEvidence ? : }\n \n \n \n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.evidence.loading,\n error: state.evidence.error,\n evidenceTypes: state.evidence.evidenceTypes,\n updateInProgress: state.evidence.updateInProgress,\n addedEvidence: state.evidence.updatedEvidence,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AddNewEvidenceForm);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport AddNewEvidenceForm from \"./AddNewEvidenceForm\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\n\nconst buttonActionPrimaryStyle = {\n height: \"32px\",\n width: \"80px\",\n};\nclass EvidenceResponsibilityBody extends React.Component {\n static displayName = EvidenceResponsibilityBody.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showAddEvidenceForm: false,\n };\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills) {\n this.setState({ showAddEvidenceForm: false });\n }\n }\n\n handleAddEvidenceClick = () => {\n this.setState({\n showAddEvidenceForm: !this.state.showAddEvidenceForm,\n });\n };\n\n handleCloseAddEvidence = () => {\n this.setState({\n showAddEvidenceForm: false,\n });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.handleCloseAddEvidence();\n this.props.handleEvidenceAdded(addedEvidence);\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const { evidences, lor, lorProfile } = this.props;\n\n let evidencesSkills = evidences.map((evidence) => {\n return {\n id: evidence.id,\n skills: [\n ...evidence.lorLevels.map((lor) => {\n return lor.lorCode + lor.level;\n }),\n ...evidence.skillLevels.map((lor) => {\n return lor.skillCode + lor.level;\n }),\n ],\n };\n });\n\n if (lorProfile) {\n const evidenceAdded = evidencesSkills.find((evidencesSkill) => evidencesSkill.skills.some((skill) => skill == lorProfile.lorCode + lorProfile.level)) ? true : false;\n\n const defaultSelectedLor = {\n lorLevelId: lor.levels.find((it) => it.levelNumber == lorProfile.level) ? lor.levels.find((it) => it.levelNumber == lorProfile.level).id : null,\n lor: lorProfile.lor,\n lorCode: lorProfile.lorCode,\n level: lorProfile.level,\n };\n\n return (\n \n \n \n \n \n {lorProfile ? lorProfile.level : 0}\n \n {!this.state.showAddEvidenceForm ? (\n \n ) : (\n \n )}\n \n \n {this.state.showAddEvidenceForm && (\n \n \n
\n \n
\n \n \n )}\n
\n );\n } else {\n return ;\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceResponsibilityBody);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport AddNewEvidenceForm from \"./AddNewEvidenceForm\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\n\nconst buttonActionPrimaryStyle = {\n height: \"32px\",\n width: \"80px\",\n};\n\nclass EvidenceResponsibilityBadgeBody extends React.Component {\n static displayName = EvidenceResponsibilityBadgeBody.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showAddEvidenceForm: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {}\n\n handleAddEvidenceClick = () => {\n this.setState({\n showAddEvidenceForm: !this.state.showAddEvidenceForm,\n });\n };\n\n handleCloseAddEvidence = () => {\n this.setState({\n showAddEvidenceForm: false,\n });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.handleCloseAddEvidence();\n this.props.handleEvidenceAdded(addedEvidence);\n };\n\n render() {\n const { skill, submitBadgeRequestSkills, maxNumberOfBadgeRequestSkill } = this.props;\n\n const skillSelected = submitBadgeRequestSkills && submitBadgeRequestSkills.find((it) => it.skillsCode == skill.skillsCode);\n\n if (skill) {\n return (\n \n \n \n {`${this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.skill, skill.skill)} (${skill.skillsCode})`}\n \n \n this.props.openSkillDescriptionModal({\n skillsCode: skill.skillsCode,\n description: this.contentTranslator(this.props.contentTranslations, \"Skills\", `${skill.name} Description`, skill.description),\n })\n }\n >\n \n \n \n \n {skillSelected ? (\n \n ) : submitBadgeRequestSkills.length >= maxNumberOfBadgeRequestSkill ? (\n \n ) : (\n \n )}\n \n \n \n );\n } else {\n return ;\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceResponsibilityBadgeBody);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport AddNewEvidenceForm from \"./AddNewEvidenceForm\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\n\nconst buttonActionPrimaryStyle = {\n height: \"32px\",\n width: \"80px\",\n};\n\nclass EvidenceSkillBody extends React.Component {\n static displayName = EvidenceSkillBody.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showAddEvidenceForm: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showHiddenSkills !== this.props.showHiddenSkills) {\n this.setState({ showAddEvidenceForm: false });\n }\n }\n\n handleAddEvidenceClick = () => {\n this.setState({\n showAddEvidenceForm: !this.state.showAddEvidenceForm,\n });\n };\n\n handleCloseAddEvidence = () => {\n this.setState({\n showAddEvidenceForm: false,\n });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.handleCloseAddEvidence();\n this.props.handleEvidenceAdded(addedEvidence);\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const { showAll, levelIndex, skill, level, categories, evidences } = this.props;\n\n let evidencesSkills = evidences.map((evidence) => {\n return {\n id: evidence.id,\n skills: [\n ...evidence.lorLevels.map((lor) => {\n return lor.lorCode + lor.level;\n }),\n ...evidence.skillLevels.map((lor) => {\n return lor.skillCode + lor.level;\n }),\n ],\n };\n });\n\n if (skill) {\n const evidenceAdded = evidencesSkills.find((evidencesSkill) => evidencesSkill.skills.some((it) => it == skill.skillsCode + level.level)) ? true : false;\n\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skill.name && it.skillsCode == skill.skillsCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skill.name && it.skillsCode == skill.skillsCode));\n const categorySkill = subCategory && subCategory.skills.find((it) => it.name == skill.name && it.skillsCode == skill.skillsCode);\n const skillLevel = categorySkill && categorySkill.levels.find((it) => it.level == level.level);\n\n const defaultSelectedSkill = {\n skillLevelId: skillLevel ? skillLevel.id : null,\n skill: skill.name,\n skillCode: skill.skillsCode,\n level: level.level,\n };\n\n return (\n \n \n \n {(showAll ? levelIndex === 0 : level.skillNameShown) && `${this.contentTranslator(this.props.contentTranslations, \"Skills\", skill.name, skill.name)} (${skill.skillsCode})`}\n \n {`${skill.skillsCode}${level.level} - `}\n \n this.props.openSkillLevelDescriptionModal({\n skillsCode: skill.skillsCode,\n level: level.level,\n description: this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skill.skillsCode} ${level.level} Description`, level.description),\n })\n }\n >\n \n \n \n \n {!this.state.showAddEvidenceForm ? (\n \n ) : (\n \n )}\n \n \n {this.state.showAddEvidenceForm && (\n \n \n
\n \n
\n \n \n )}\n
\n );\n } else {\n return ;\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceSkillBody);\n","import * as badgeRequestActions from \"../../store/actions/badgeRequestAction\";\nimport * as lorActions from \"../../store/actions/lorAction\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport AddNewEvidenceForm from \"./AddNewEvidenceForm\";\nimport EvidenceResponsibilityBody from \"./EvidenceResponsibilityBody\";\nimport EvidenceSkillBadgeBody from \"./EvidenceSkillBadgeBody\";\nimport EvidenceSkillBody from \"./EvidenceSkillBody\";\nimport { faMinus, faPlus } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport Select from \"react-select\";\nimport { Button, Col, Container, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"32px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst ddHeaderStyle = {\n fontsize: \"14px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst lorOrders = [\n { lor: \"Autonomy\", order: 1 },\n { lor: \"Influence\", order: 2 },\n { lor: \"Complexity\", order: 3 },\n { lor: \"Business Skills\", order: 4 },\n { lor: \"Knowledge\", order: 5 },\n { lor: \"Responsibility and Autonomy\", order: 1 },\n { lor: \"Complexity and Scope\", order: 2 },\n { lor: \"Skills\", order: 3 },\n];\n\nclass ManageEvidence extends React.Component {\n static displayName = ManageEvidence.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n skillLevelDescriptionShow: false,\n poppedUpLevel: null,\n skillDescriptionShow: false,\n poppedUpSkill: null,\n showAddEvidenceForm: false,\n submitBadgeRequestMode: false,\n submitBadgeRequestSkills: [],\n maxNumberOfBadgeRequestSkill: 6,\n submitBadgeRequestAccept: false,\n showSubmitBadgeRequestConfirmationDialog: false,\n showLoadingPanel: false,\n myBadgeRequest: this.props.myBadgeRequest,\n showHiddenSkills: false,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.myBadgeRequest !== this.props.myBadgeRequest) {\n this.setState({ myBadgeRequest: this.props.myBadgeRequest });\n }\n }\n\n handleChangeProfile = (event) => {\n this.props.handleChangeProfileType(event.value);\n };\n\n renderLorProfiles = () => {\n const { lors, lorProfiles } = this.props;\n const lorCategories = [];\n\n if (lors) {\n lors.forEach((lor) => {\n const lorOrder = lorOrders.find((it) => it.lor == lor.name);\n if (lorOrder) {\n lor.order = lorOrder.order;\n } else {\n lor.order = 999;\n }\n });\n\n if (lors.find((it) => !it.category)) {\n lorCategories.push({\n category: \"Generic Attributes\",\n categoryColor: \"#69849c\",\n lorColor: \"#ecf0f5\",\n lors: lors.find((it) => !it.category) ? [...lors.filter((it) => !it.category)] : [],\n });\n }\n\n lors.filter((it) => it.category).forEach((lor) => {\n if (!lorCategories.find((it) => it.category == lor.category)) {\n lorCategories.push({\n category: lor.category,\n categoryColor: lor.categoryColor,\n lorColor: lor.lorColor,\n lors: lors.find((it) => it.category == lor.category) ? [...lors.filter((it) => it.category == lor.category)] : [],\n });\n }\n });\n }\n\n return (\n \n {lorCategories.map((lorCategory, index) => {\n const categoryHidden = !lorCategory.lors.some((lor) => !lor.isHidden) && !this.state.showHiddenSkills;\n\n return (\n \n \n \n \n \n \n \n \n \n {lors &&\n lors\n .filter((it) => (it.category ? it.category : \"Generic Attributes\") == (lorCategory.category ? lorCategory.category : \"Generic Attributes\"))\n //.sort((a, b) => (`${a.sequence}${a.order}${a.name}` > `${b.sequence}${b.order}${b.name}` ? 1 : -1))\n .sort((a, b) => {\n if (a.sequence > b.sequence) {\n return 1;\n }\n if (a.sequence < b.sequence) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n if (a.order < b.order) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n })\n .map((lor, index) => {\n const lorHidden = lor.isHidden && !this.state.showHiddenSkills;\n const lorProfile = lorProfiles ? lorProfiles.find((x) => x.lor === lor.name) : null;\n\n return (\n \n );\n })}\n \n \n \n \n \n \n
\n {lorCategory.category == \"Generic Attributes\" ? : lorCategory.category}\n \n \n \n \n
\n );\n })}\n
\n );\n };\n\n renderSkillProfiles = () => {\n const { categories } = this.props;\n\n return (\n categories &&\n categories.map((category, index) => {\n return {this.renderSkillSubCategories(category)};\n })\n );\n };\n\n renderSkillSubCategories = (category) => {\n const evidences = this.props.evidences;\n const evidencesSkills = evidences.map((evidence) => {\n return {\n id: evidence.id,\n skills: [\n ...evidence.lorLevels.map((lor) => {\n return lor.lorCode + lor.level;\n }),\n ...evidence.skillLevels.map((lor) => {\n return lor.skillCode + lor.level;\n }),\n ],\n };\n });\n const submitBadgeRequestMode = this.state.submitBadgeRequestMode;\n\n const content = category.subCategories.map((subCategory, subIndex) => {\n const shownLevel = subCategory.skills.filter((skill) => skill.levels.some((level) => level.show));\n let subCatSkillProfilesCodeShown = subCategory.skills.filter((skill) => skill.levels.some((level) => level.show)).map((skill) => skill.skillsCode);\n const checkedSubCatSkills = subCategory.skills.filter((it) => subCatSkillProfilesCodeShown.includes(it.skillsCode));\n const subCategoryHidden = !checkedSubCatSkills.some((skill) => !skill.isHidden) && (!this.state.showHiddenSkills || submitBadgeRequestMode);\n\n return (\n (shownLevel.length > 0 || this.props.showAll) && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!submitBadgeRequestMode ? : }\n {!submitBadgeRequestMode ? : }\n \n \n {this.renderSkills(category, subCategory)}\n \n \n \n \n \n \n )\n );\n });\n\n return content;\n };\n\n renderSkills = (category, subCategory) => {\n const submitBadgeRequestMode = this.state.submitBadgeRequestMode;\n const evidences = this.props.evidences;\n const evidencesSkills = evidences.map((evidence) => {\n return {\n id: evidence.id,\n skills: [\n ...evidence.lorLevels.map((lor) => {\n return lor.lorCode + lor.level;\n }),\n ...evidence.skillLevels.map((lor) => {\n return lor.skillCode + lor.level;\n }),\n ],\n };\n });\n\n return (\n \n {subCategory.skills.map((skill, skillIndex) => {\n const skillHidden = skill.isHidden && (!this.state.showHiddenSkills || submitBadgeRequestMode);\n\n if (submitBadgeRequestMode) {\n const show = skill.levels.filter((it) => it.show).length > 0 ? true : false;\n\n return (\n \n {show && (\n \n )}\n \n );\n } else {\n return (\n \n {skill.levels.map((level, levelIndex) => {\n return (\n (level.show || this.props.showAll) && (\n \n )\n );\n })}\n \n );\n }\n })}\n \n );\n };\n\n openSkillLevelDescriptionModal = (level) => {\n this.setState({ poppedUpLevel: level, skillLevelDescriptionShow: true });\n };\n\n togleSkillLevelDescriptionModal = () => {\n const skillLevelDescriptionShow = this.state.skillLevelDescriptionShow;\n this.setState({ skillLevelDescriptionShow: !skillLevelDescriptionShow });\n };\n\n openSkillDescriptionModal = (skill) => {\n this.setState({ poppedUpSkill: skill, skillDescriptionShow: true });\n };\n\n togleSkillDescriptionModal = () => {\n const skillDescriptionShow = this.state.skillDescriptionShow;\n this.setState({ skillDescriptionShow: !skillDescriptionShow });\n };\n\n handleAddEvidenceClick = () => {\n this.setState({\n showAddEvidenceForm: !this.state.showAddEvidenceForm,\n });\n };\n\n handleCloseAddEvidence = () => {\n this.setState({\n showAddEvidenceForm: false,\n });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.props.handleEvidenceAdded(addedEvidence);\n this.handleCloseAddEvidence();\n this.props.generateAlert(\"success\", \"New Evidence Added\");\n };\n\n handleCertifySkills = () => {\n this.setState({ submitBadgeRequestMode: true, showHiddenSkills: false });\n };\n\n handleCancelCertifySkills = () => {\n this.setState({ submitBadgeRequestMode: false, submitBadgeRequestSkills: [] });\n };\n\n handleEvidenceBadgeRequestSelect = (selectedSkill) => {\n let submitBadgeRequestSkills = this.state.submitBadgeRequestSkills;\n submitBadgeRequestSkills.push(selectedSkill);\n this.setState({ submitBadgeRequestSkills: [...submitBadgeRequestSkills] });\n };\n\n handleEvidenceBadgeRequestUnSelect = (selectedSkill) => {\n let submitBadgeRequestSkills = this.state.submitBadgeRequestSkills;\n if (submitBadgeRequestSkills.find((it) => it.skillsCode == selectedSkill.skillsCode)) {\n const index = submitBadgeRequestSkills.indexOf(submitBadgeRequestSkills.find((it) => it.skillsCode == selectedSkill.skillsCode));\n if (index !== -1) {\n submitBadgeRequestSkills.splice(index, 1);\n }\n this.setState({ submitBadgeRequestSkills: [...submitBadgeRequestSkills] });\n }\n };\n\n handleChangeAcceptCheckBox = () => {\n const submitBadgeRequestAccept = this.state.submitBadgeRequestAccept;\n this.setState({ submitBadgeRequestAccept: !submitBadgeRequestAccept });\n };\n\n handleSubmitBadgeRequest = () => {\n const submitBadgeRequestSkills = this.state.submitBadgeRequestSkills;\n\n const badgeRequest = {\n submitDate: new Date(),\n status: \"Assessor not assigned\",\n requestEntries: submitBadgeRequestSkills.map((skill) => {\n return {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillsCode: skill.skillsCode,\n };\n }),\n };\n\n this.setState({ showSubmitBadgeRequestConfirmationDialog: false, showLoadingPanel: true, loadingPanelHeader: \"Submit badge request\", loadingPanelBody: \"Please wait...\" });\n this.props.onBadgeRequest.submitBadgeRequest(badgeRequest).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Badge request submitted\");\n this.handleCancelCertifySkills();\n }\n }\n this.setState({ showLoadingPanel: this.props.badgeRequestUpdating });\n });\n };\n\n togleSubmitBadgeRequestConfirmationModal = () => {\n const showSubmitBadgeRequestConfirmationDialog = this.state.showSubmitBadgeRequestConfirmationDialog;\n this.setState({ showSubmitBadgeRequestConfirmationDialog: !showSubmitBadgeRequestConfirmationDialog });\n };\n\n renderSubmitBadgeRequestConfirmation = () => {\n return (\n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleSubmitBadgeRequest();\n }}\n >\n OK\n \n \n \n
\n );\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n handleChageShowHiddenSkills = () => {\n const showHiddenSkills = this.state.showHiddenSkills;\n this.setState({ showHiddenSkills: !showHiddenSkills, showAddEvidenceForm: false });\n this.props.handleChageShowHiddenSkills(!showHiddenSkills);\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n const { poppedUpLevel, poppedUpSkill, submitBadgeRequestMode, maxNumberOfBadgeRequestSkill, submitBadgeRequestAccept, submitBadgeRequestSkills, showHiddenSkills } = this.state;\n const { optionsProfile, selectedOptionProfile } = this.props;\n\n return (\n \n {this.renderLoadingPanel()}\n {this.renderSubmitBadgeRequestConfirmation()}\n \n {poppedUpLevel && `${poppedUpLevel.skillsCode}-${poppedUpLevel.level}`}\n {poppedUpLevel &&
}
\n
\n \n {poppedUpSkill && `${poppedUpSkill.skillsCode}`}\n {poppedUpSkill &&
}
\n
\n \n

\n {this.props.managedPeople\n ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceManageEvidenceFor\", \"Manage Evidence for {s1}\"), `${this.props.managedPeople.personB.firstName} ${this.props.managedPeople.personB.lastName}`)\n : this.contentTranslator(this.props.contentTranslations, \"SfiaEvidence\", \"SfiaEvidenceManageEvidence\", \"Manage Your Evidence\")}\n

\n \n \n \n \n \n \n

\n \n

\n \n
\n
\n \n    \n \n \n
\n
\n \n
\n )}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n lors: state.lor.lors,\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n\n myBadgeRequest: state.badgeRequest.myBadgeRequest,\n badgeRequestUpdating: state.badgeRequest.isUpdating,\n error: state.badgeRequest.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLor: bindActionCreators(lorActions, dispatch),\n onBadgeRequest: bindActionCreators(badgeRequestActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageEvidence);\n","import * as authActions from \"../../store/actions/authAction\";\nimport * as badgeRequestActions from \"../../store/actions/badgeRequestAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport * as lorActions from \"../../store/actions/lorAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport EvidenceList from \"./EvidenceList\";\nimport ManageEvidence from \"./ManageEvidence\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Container, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nclass Evidence extends React.Component {\n static displayName = Evidence.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n contentLoading: true,\n alerts: [],\n optionsProfile: [],\n evidences: [],\n addedEvidence: null,\n lorProfiles: [],\n skillProfiles: [],\n loadingEvidence: true,\n loadingEdit: true,\n loadingAdd: true,\n showHiddenSkills: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n\n this.initData = this.initData.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaEvidence-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.props.onAuth.authCheckState().then(() => {\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.setState({ loading: true });\n\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.initData();\n }\n\n this.setState({ loading: this.props.personLoading });\n });\n } else {\n this.setState({ loading: this.props.personLoading });\n }\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.setState({ loading: true });\n\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.initData();\n }\n\n this.setState({ loading: this.props.personLoading });\n });\n } else {\n this.setState({ loading: this.props.personLoading });\n }\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n }\n }\n\n initData() {\n this.setState({ loading: true });\n\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileTypes(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyProfileTypes()).then(() => {\n if (this.props.errorProfile) {\n this.setState({ loading: false });\n } else {\n this.setState({ loading: false });\n\n let profileType = null;\n\n if (this.props.profileTypes.length > 0) {\n profileType = this.props.profileTypes[0];\n this.setState({\n optionsProfile: this.props.profileTypes.map((it) => {\n return {\n value: it,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", it.replace(\" \", \"\"), it),\n };\n }),\n selectedprofileType: profileType,\n });\n }\n\n Promise.all([\n this.props.managedPeople ? this.props.onEvidence.getEvidencesByManagedPeopleAccountId(this.props.managedPeople.personB.email) : this.props.onEvidence.getEvidencesByAccountId(),\n this.props.containerConfig && this.props.containerConfig.showSfiaCertificationAdmin && this.props.containerConfig.allowCertification && this.props.onBadgeRequest.getMyLatestBadgeRequest(),\n ]).then(() => {\n if (!this.props.loadingEvidence && !this.props.errorEvidence) {\n const evidences = this.props.evidences;\n\n this.setState({\n evidences,\n });\n }\n\n this.setState({\n loadingEvidence: this.props.loadingEvidence || (this.props.containerConfig && this.props.containerConfig.showSfiaCertificationAdmin && this.props.containerConfig.allowCertification && this.props.badgeRequestLoading),\n });\n });\n\n Promise.all([\n this.props.onCategory.getCategories(),\n this.props.onLor.getLors(),\n this.props.onEvidence.getEvidenceTypes(),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email, null, null, profileType) : this.props.onSkillProfile.getMyLorProfile(null, null, profileType),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email, null, null, profileType) : this.props.onSkillProfile.getMySkillProfile(null, null, profileType),\n ])\n .then(() => {\n if (!this.props.lorLoading && !this.props.lorError && !this.props.categoryLoading && !this.props.categoryError && !this.props.loadingProfile && !this.props.errorProfile) {\n const lorProfiles = this.props.lorProfiles;\n const skillProfiles = this.props.skillProfiles.filter((it) => it.numericVal != 0);\n\n this.populateCategories();\n\n this.setState({\n lorProfiles,\n skillProfiles,\n });\n }\n\n this.setState({\n loadingAdd: this.props.lorLoading || this.props.categoryLoading || this.props.loadingProfile,\n });\n })\n .catch((err) => {\n this.setState({\n loadingAdd: false,\n });\n });\n }\n });\n }\n\n handleChangeProfileType = (value) => {\n this.setState({ selectedprofileType: value });\n\n Promise.all([\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email, null, null, value) : this.props.onSkillProfile.getMyLorProfile(null, null, value),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email, null, null, value) : this.props.onSkillProfile.getMySkillProfile(null, null, value),\n ]).then(() => {\n const lorProfiles = this.props.lorProfiles;\n const skillProfiles = this.props.skillProfiles.filter((it) => it.numericVal != 0);\n this.setState({ lorProfiles, skillProfiles });\n\n this.populateCategories();\n });\n };\n\n populateCategories = () => {\n const skillProfiles = this.props.skillProfiles.filter((it) => it.numericVal != 0);\n\n let categories = this.props.categories;\n\n categories = categories.map((category) => {\n return {\n id: category.id,\n name: category.name,\n description: category.description,\n colour: category.colour,\n sfiaVersion: category.sfiaVersion,\n subCategories: category.subCategories.map((subCategory) => {\n return {\n id: subCategory.id,\n name: subCategory.name,\n description: subCategory.description,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n skills: subCategory.skills.map((skill) => {\n let skillNameShown = false;\n\n return {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n isHidden: skill.isHidden,\n levels: skill.levels.map((level) => {\n const skillProfile = skillProfiles.find((x) => x.skillCode == skill.skillsCode && x.level == level.level);\n\n level = {\n skillNameShown: false,\n show: false,\n id: level.id,\n level: level.level,\n description: level.description,\n skillProfile: skillProfile,\n };\n if (!skillNameShown) {\n if (level.skillProfile || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n }\n\n if (level.skillProfile) {\n level.show = true;\n }\n\n return level;\n }),\n };\n }),\n };\n }),\n };\n });\n\n this.setState({\n categories,\n loadingAdd: false,\n loadingEdit: false,\n });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n const evidences = this.state.evidences;\n this.setState({ addedEvidence, evidences: [...evidences, addedEvidence] });\n };\n\n handleEvidenceDeleted = (deletedId) => {\n const evidences = this.state.evidences;\n const deletedEvidence = evidences.find((it) => it.id == deletedId);\n\n if (deletedEvidence) {\n this.setState({\n evidences: [...evidences.filter((it) => it.id != deletedId)],\n });\n }\n };\n\n handleEvidenceUpdated = (updatedEvidence) => {\n const evidences = this.state.evidences;\n const editedEvidence = evidences.find((it) => it.id == updatedEvidence.id);\n\n if (editedEvidence) {\n const updatedEvidenceIndex = evidences.indexOf(editedEvidence);\n evidences[updatedEvidenceIndex] = updatedEvidence;\n }\n this.setState({ evidences: [...evidences] });\n };\n\n handleChageShowHiddenSkills = (showHiddenSkills) => {\n this.setState({ showHiddenSkills: showHiddenSkills });\n };\n\n render() {\n return (\n \n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n \n \n {this.state.optionsProfile && this.state.optionsProfile.length > 0 && (\n \n )}\n \n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loadingProfile: state.skillProfile.loading,\n errorProfile: state.skillProfile.error,\n profileTypes: state.skillProfile.profileTypes,\n skillProfiles: state.skillProfile.skillProfiles,\n\n categories: state.category.categories,\n categoryLoading: state.category.loading,\n categoryError: state.category.error,\n\n loadingEvidence: state.evidence.loading,\n errorEvidence: state.evidence.error,\n evidences: state.evidence.evidences,\n\n lorLoading: state.lor.loading,\n lorError: state.lor.error,\n\n loadingLor: state.skillProfile.lorLoading,\n errorLor: state.skillProfile.lorError,\n lorProfiles: state.skillProfile.lorProfiles,\n\n personLoading: state.person.loading,\n personManagedPeople: state.person.managedPeople,\n managedPeople: state.auth.managedPeople,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n containerConfig: state.config.containerConfig,\n myBadgeRequest: state.badgeRequest.myBadgeRequest,\n badgeRequestLoading: state.badgeRequest.loading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onBadgeRequest: bindActionCreators(badgeRequestActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Evidence);\n","import * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\n\nconst toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nclass EvidenceDownload extends React.Component {\n static displayName = EvidenceDownload.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n fileName: null,\n };\n }\n\n componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n const id = query.get(\"id\");\n const fileName = query.get(\"filename\");\n const email = query.get(\"email\");\n\n Promise.resolve(this.props.managed ? this.props.onEvidence.downloadManagedPeopleEvidenceFileById(email, id) : this.props.onEvidence.downloadEvidenceFileById(id)).then(() => {\n if (!this.props.loading) {\n if (!this.props.error && this.props.evidenceFile) {\n const url = window.URL.createObjectURL(this.props.evidenceFile);\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", fileName); //or any other extension\n document.body.appendChild(link);\n link.click();\n\n setTimeout(() => {\n window.close();\n }, 100);\n }\n }\n });\n }\n\n render() {\n return ;\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.evidence.loading,\n error: state.evidence.error,\n evidenceFile: state.evidence.evidenceFile,\n\n managedPeople: state.auth.managedPeople,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceDownload);\n","import { dismisAlert, generateAlert } from \"../../../src/utils/alertUtils\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport { SkillsTxTable } from \"../common/SkillsTxTable\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-my-people.css\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Container, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"22px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass MyLeaders extends React.Component {\n static displayName = MyLeaders.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: false,\n contentLoading: true,\n myLeaders: [],\n alerts: [],\n isUpdating: false,\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaMyLeaders-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.initData();\n });\n } else {\n this.initData();\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n this.setState({ loading: true });\n\n this.props.onPerson\n .getPersonMyLeaders()\n .then(() => {\n if (!this.props.loading) {\n const myLeaders = this.props.myLeaders.sort((a, b) => `${a.personB.firstName} ${a.personB.lastName}` > `${b.personB.firstName} ${b.personB.lastName}`);\n\n this.setState({\n myLeaders,\n });\n }\n\n this.setState({ loading: this.props.loading });\n })\n .catch(() => {\n this.setState({\n loading: false,\n });\n });\n }\n\n render() {\n const { myLeaders } = this.state;\n\n const columns = [\n {\n id: \"id\",\n name: (\n
\n \n
\n ),\n selector: (row) => row.id,\n sortable: false,\n width: \"25%\",\n format: function (row, index) {\n return `${row.personA.firstName} ${row.personA.lastName}`;\n },\n wrap: true,\n center: false,\n },\n {\n id: \"relationshipType\",\n name: (\n
\n \n
\n ),\n selector: (row) => row.relationshipType,\n sortable: false,\n width: \"25%\",\n format: function (row, index) {\n return `${row.relationshipType} ${row.relationshipType == \"Mentor\" && row.status != \"Accepted\" ? `(${row.status})` : \"\"}`;\n },\n wrap: true,\n center: false,\n },\n {\n id: \"createdOn\",\n name: (\n
\n \n
\n ),\n selector: (row) => row.createdOn,\n sortable: false,\n width: \"25%\",\n format: function (row, index) {\n return row.createdOn\n ? new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.createdOn))\n : \"\";\n },\n wrap: true,\n center: false,\n },\n {\n id: \"personAId\",\n name: (\n
\n \n
\n ),\n selector: (row) => row.personAId,\n sortable: false,\n width: \"25%\",\n format: function (row, index) {\n return {row.personA.email};\n },\n wrap: true,\n center: false,\n },\n ];\n\n return (\n \n \n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n

\n \n

\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n myLeaders: state.person.myLeaders,\n account: state.person.account,\n updating: state.person.updating,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MyLeaders);\n","import { dismisAlert, generateAlert } from \"../../../src/utils/alertUtils\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as adminEmailTemplateActions from \"../../store/admin/actions/adminEmailTemplateActions\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport { SkillsTxTable } from \"../common/SkillsTxTable\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-my-people.css\";\nimport { faCheckCircle, faExclamationCircle, faTimesCircle, faArrowUp, faArrowDown } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { Fragment } from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, ButtonGroup, Col, Container, Form, FormGroup, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"22px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass MyPeople extends React.Component {\n static displayName = MyPeople.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: false,\n contentLoading: true,\n myPeoples: [],\n columnDisplaySettings: [],\n alerts: [],\n generateActivityStatementProgress: false,\n showUpdateColumnSettingDialog: false,\n isUpdating: false,\n emailTemplate: null,\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n localStorage.setItem(\"manageEndorsementOperation\", \"HIDE\");\n\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaManage-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.initData();\n });\n } else {\n this.initData();\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.columnDisplaySettings !== this.props.columnDisplaySettings) {\n this.setState({ columnDisplaySettings: this.props.columnDisplaySettings });\n }\n }\n\n initData() {\n this.setState({ loading: true });\n\n if (!this.props.currAssessment) {\n this.props.onConfig.getCurrAssessment().then(() => {});\n }\n\n this.props.onEmailTemplate.getEmailTemplateByType(\"Activity Statement Notification\").then(() => {\n if (!this.props.emailTemplateLoading) {\n this.setState({ emailTemplate: this.props.emailTemplate });\n }\n });\n\n Promise.all([this.props.onPerson.getPersonMyPeoples(), this.props.onPerson.getPersonLatestAccount(), this.props.onPerson.getColumnDisplaySettings(\"My People\")])\n .then(() => {\n if (!this.props.loading && !this.props.columnDisplaySettingsLoading) {\n const myPeoples = this.props.myPeoples.sort((a, b) => (`${a.personB.firstName} ${a.personB.lastName}` > `${b.personB.firstName} ${b.personB.lastName}` ? 1 : -1));\n\n this.setState({\n myPeoples,\n account: this.props.account,\n columnDisplaySettings: this.props.columnDisplaySettings,\n });\n }\n\n this.setState({ loading: this.props.loading || this.props.columnDisplaySettingsLoading });\n })\n .catch(() => {\n this.setState({\n loading: false,\n });\n });\n }\n\n setManagedPeopleRelationship = (relationship) => {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"\", loadingPanelBody: \"Please wait...\" });\n Promise.resolve(this.props.onAuth.myPeopleSetManagedRelationship(relationship)).then(() => {\n Promise.resolve(this.props.onPerson.clearPersonAccountState()).then(() => {\n localStorage.setItem(\"showApprovedProfileOnly\", \"FALSE\");\n this.props.history.push(`Manage?email=${relationship.personB.email}`);\n });\n });\n };\n\n handleGenerateActivityStatement = () => {\n this.setState({ generateActivityStatementProgress: true, showLoadingPanel: true, loadingPanelHeader: \"Generate Activity Statement\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.generateActivityStatement().then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Activity statement sent\");\n }\n }\n\n this.setState({ generateActivityStatementProgress: this.props.updating, showLoadingPanel: this.props.updating });\n });\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n handleShowColumnsSetting = () => {\n this.setState({ showUpdateColumnSettingDialog: true });\n };\n\n togleColumnsSettingDialog = () => {\n this.setState({ showUpdateColumnSettingDialog: false });\n };\n\n updateColumnDisplaySettingVisibility = (columnDisplaySetting) => {\n columnDisplaySetting.visible = !columnDisplaySetting.visible;\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.updateColumnDisplaySetting(columnDisplaySetting).then(() => {\n this.setState({ showLoadingPanel: this.props.columnDisplaySettingsLoading });\n });\n };\n\n moveColumnDisplaySettingOrderUp = (columnDisplaySetting) => {\n columnDisplaySetting.visible = !columnDisplaySetting.visible;\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.updateColumnDisplaySettingOrderUp(columnDisplaySetting.id).then(() => {\n this.setState({ showLoadingPanel: this.props.columnDisplaySettingsLoading });\n });\n };\n\n moveColumnDisplaySettingOrderDown = (columnDisplaySetting) => {\n columnDisplaySetting.visible = !columnDisplaySetting.visible;\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"\", loadingPanelBody: \"Please wait...\" });\n\n this.props.onPerson.updateColumnDisplaySettingOrderDown(columnDisplaySetting.id).then(() => {\n this.setState({ showLoadingPanel: this.props.columnDisplaySettingsLoading });\n });\n };\n\n renderColumnsSettingDialog = () => {\n const { columnDisplaySettings } = this.state;\n const updateColumnDisplaySettingVisibility = this.updateColumnDisplaySettingVisibility;\n const moveColumnDisplaySettingOrderUp = this.moveColumnDisplaySettingOrderUp;\n const moveColumnDisplaySettingOrderDown = this.moveColumnDisplaySettingOrderDown;\n\n const columns = [\n {\n id: \"visible\",\n name: \"Visible\",\n selector: (row) => row.visible,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n \n \n \n \n
\n );\n },\n },\n {\n id: \"caption\",\n name: \"Caption\",\n selector: (row) => row.caption,\n sortable: false,\n width: \"65%\",\n center: false,\n format: function (row, index) {\n switch (row.columnName) {\n case \"name\":\n return ;\n break;\n case \"relationshipType\":\n return ;\n break;\n case \"activityStatus\":\n return ;\n break;\n case \"isApprovalRequested\":\n return ;\n break;\n case \"currentJobTitle\":\n return ;\n break;\n case \"currentJobMatchPercentSelf\":\n return ;\n break;\n case \"currentJobMatchPercentValidated\":\n return ;\n break;\n case \"futureJobTitle\":\n return ;\n break;\n case \"futureJobMatchPercentSelf\":\n return ;\n break;\n case \"futureJobMatchPercentValidated\":\n return ;\n break;\n default:\n return \"\";\n }\n },\n },\n {\n id: \"order\",\n name: \"Order\",\n selector: (row) => row.order,\n sortable: false,\n width: \"15%\",\n center: true,\n format: function (row, index) {\n return (\n
\n moveColumnDisplaySettingOrderUp(row)} />\n \n Move Up\n \n    \n moveColumnDisplaySettingOrderDown(row)} />\n \n Move Down\n \n
\n );\n },\n },\n ];\n\n return (\n \n \n \n \n \n
\n \n \n a.order - b.order) : []} pagination={false} progressPending={this.state.loading}>\n \n \n
\n
\n \n \n \n
\n );\n };\n\n render() {\n const { myPeoples, columnDisplaySettings } = this.state;\n const { language } = this.props;\n\n let showRequestApproval = false;\n if (this.props.currAssessment) {\n showRequestApproval = this.props.currAssessment.enableApprovalRequest;\n }\n\n let showHeaderTooltip = false;\n if (language && language.name != \"English\") {\n showHeaderTooltip = true;\n }\n\n let columns = [];\n const setManagedPeopleRelationship = this.setManagedPeopleRelationship;\n const totalWidth = 913;\n let hiddenWidth = 0;\n let visibleColumn = 0;\n let separateColumnWidth = 0;\n\n if (columnDisplaySettings) {\n columnDisplaySettings.map((columnDisplaySetting) => {\n if (columnDisplaySetting.visible == false) {\n switch (columnDisplaySetting.columnName) {\n case \"name\":\n hiddenWidth += showRequestApproval ? 135 : 155;\n break;\n case \"relationshipType\":\n hiddenWidth += showRequestApproval ? 95 : 150;\n break;\n case \"activityStatus\":\n hiddenWidth += 70;\n break;\n case \"isApprovalRequested\":\n hiddenWidth += 75;\n break;\n case \"currentJobTitle\":\n hiddenWidth += 129;\n break;\n case \"currentJobMatchPercentSelf\":\n hiddenWidth += 69;\n break;\n case \"currentJobMatchPercentValidated\":\n hiddenWidth += 71;\n break;\n case \"futureJobTitle\":\n hiddenWidth += 129;\n break;\n case \"futureJobMatchPercentSelf\":\n hiddenWidth += 69;\n break;\n case \"futureJobMatchPercentValidated\":\n hiddenWidth += 71;\n break;\n default:\n }\n } else {\n visibleColumn += 1;\n }\n });\n\n if (hiddenWidth > 0 && visibleColumn > 0) {\n separateColumnWidth = hiddenWidth / visibleColumn;\n }\n\n columnDisplaySettings\n .filter((it) => it.visible)\n .sort((a, b) => a.order - b.order)\n .map((columnDisplaySetting) => {\n switch (columnDisplaySetting.columnName) {\n case \"name\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${(showRequestApproval ? 135 : 155) + separateColumnWidth}px`,\n format: function (row, index) {\n return (\n setManagedPeopleRelationship(row)}>\n {row[columnDisplaySetting.columnName]}\n \n );\n },\n wrap: true,\n });\n break;\n case \"relationshipType\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${(showRequestApproval ? 95 : 150) + separateColumnWidth}px`,\n format: function (row, index) {\n return row[columnDisplaySetting.columnName];\n },\n wrap: true,\n });\n break;\n case \"activityStatus\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${70 + separateColumnWidth}px`,\n center: true,\n format: function (row, index) {\n return (\n \n
\n {row[columnDisplaySetting.columnName] == 1 ? (\n \n ) : row[columnDisplaySetting.columnName] == 2 ? (\n \n ) : (\n \n )}\n
\n \n {row[columnDisplaySetting.columnName] == 1 ? (\n \n ) : row[columnDisplaySetting.columnName] == 2 ? (\n \n ) : (\n \n )}\n \n
\n );\n },\n });\n break;\n case \"isApprovalRequested\":\n columns.push({\n id: columnDisplaySetting.isApprovalRequested,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.isApprovalRequested],\n sortable: false,\n width: `${75 + separateColumnWidth}px`,\n center: true,\n format: function (row, index) {\n return (\n \n
\n {row.isApprovalRequested || (row.latestProfileVersion && row.approvedVersion && row.latestProfileVersion == row.approvedVersion) ? (\n row.latestProfileVersion && row.approvedVersion && row.latestProfileVersion == row.approvedVersion ? (\n \n ) : (\n \n \n
\n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(row.approvalRequestSentOn))}\n
\n )\n ) : (\n \n )}\n
\n \n {row.isApprovalRequested || (row.latestProfileVersion && row.approvedVersion && row.latestProfileVersion == row.approvedVersion) ? (\n row.latestProfileVersion && row.approvedVersion && row.latestProfileVersion == row.approvedVersion ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n
\n );\n },\n omit: !showRequestApproval,\n });\n break;\n case \"currentJobTitle\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${129 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row[columnDisplaySetting.columnName]}
;\n },\n wrap: true,\n });\n break;\n case \"currentJobMatchPercentSelf\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${69 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row.currentJobMatchPercentSelf && row.currentJobMatchPercentSelf > 0 ? `${row.currentJobMatchPercentSelf}%` : \"\"}
;\n },\n wrap: true,\n });\n break;\n case \"currentJobMatchPercentValidated\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${71 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row.currentJobMatchPercentValidated && row.currentJobMatchPercentValidated > 0 ? `${row.currentJobMatchPercentValidated}%` : \"\"}
;\n },\n wrap: true,\n });\n break;\n case \"futureJobTitle\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${129 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row[columnDisplaySetting.columnName]}
;\n },\n wrap: true,\n });\n break;\n case \"futureJobMatchPercentSelf\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${69 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row.futureJobMatchPercentSelf && row.futureJobMatchPercentSelf > 0 ? `${row.futureJobMatchPercentSelf}%` : \"\"}
;\n },\n wrap: true,\n });\n break;\n case \"futureJobMatchPercentValidated\":\n columns.push({\n id: columnDisplaySetting.columnName,\n name: (\n
\n \n \n \n {showHeaderTooltip && (\n \n )}\n
\n ),\n selector: (row) => row[columnDisplaySetting.columnName],\n sortable: false,\n width: `${71 + separateColumnWidth}px`,\n format: function (row, index) {\n return
{row.futureJobMatchPercentValidated && row.futureJobMatchPercentValidated > 0 ? `${row.futureJobMatchPercentValidated}%` : \"\"}
;\n },\n wrap: true,\n });\n break;\n default:\n }\n });\n }\n\n return (\n \n \n {this.renderLoadingPanel()}\n {this.renderColumnsSettingDialog()}\n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n

\n {this.props.hasPeoples && this.props.mode == \"MyPeoples\" ? : }\n {this.props.hasPeoples && this.props.mode == \"MyPeoples\" && (\n \n {this.state.emailTemplate && this.state.emailTemplate.emailActive && (\n \n \n \n \n \n \n )}\n \n \n )}\n

\n {this.props.hasPeoples && this.props.mode == \"MyPeoples\" && (\n \n \n it.relationshipType == \"Line Manager\" ||\n it.relationshipType == \"Team Leader\" ||\n it.relationshipType == \"Mentor\" ||\n it.relationshipType == \"Line Manager WITHOUT Approval\" ||\n it.relationshipType == \"Team Leader WITHOUT Approval\" ||\n it.relationshipType == \"Mentor WITHOUT Approval\"\n )}\n pagination={false}\n progressPending={this.state.loading}\n cellsStyle={{\n style: {\n backgroundColor: \"#e9ebf5\",\n padding: \"5px 10px\",\n fontSize: \"12px\",\n border: \"1px solid #dee2e6\",\n },\n }}\n headCellsStyle={{\n style: {\n fontWeight: \"bold\",\n fontSize: \"12px\",\n border: \"1px solid #dee2e6\",\n whiteSpace: \"wrap\",\n paddingTop: \"5px\",\n paddingBottom: \"5px\",\n paddingRight: \"8px\",\n paddingLeft: \"8px\",\n backgroundColor: \"#333f50\",\n color: \"#FFFFFF\",\n },\n }}\n >\n \n )}\n {this.props.isEndorser && this.props.mode == \"Endorsements\" && (\n \n \n \n \n \n \n \n \n {this.props.loading && (\n \n \n \n )}\n {myPeoples\n .filter((it) => it.relationshipType == \"Endorser\")\n .map((myPeople, index) => {\n let activityStatus = 1;\n const today = new Date();\n\n if (myPeople.personB.lastUpdatedOn) {\n // To calculate the time difference of two dates\n var differenceInTime = today.getTime() - new Date(myPeople.personB.lastUpdatedOn).getTime();\n\n // To calculate the no. of days between two dates\n var differenceInDays = differenceInTime / (1000 * 3600 * 24);\n\n if (differenceInDays > 365) {\n activityStatus = 2;\n } else {\n activityStatus = 3;\n }\n }\n\n return (\n \n \n \n \n );\n })}\n \n
\n \n \n \n
\n \n
\n this.setManagedPeopleRelationship(myPeople)}>\n {myPeople.personB.firstName} {myPeople.personB.lastName}\n \n \n
\n {activityStatus == 1 ? (\n \n ) : activityStatus == 2 ? (\n \n \n
\n {`v${myPeople.personB.lastUpdatedVersion}-${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(myPeople.personB.lastUpdatedOn))}`}\n
\n ) : (\n \n \n
\n {`v${myPeople.personB.lastUpdatedVersion}-${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(myPeople.personB.lastUpdatedOn))}`}\n
\n )}\n
\n
\n )}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n myPeoples: state.person.myPeoples,\n account: state.person.account,\n updating: state.person.updating,\n\n columnDisplaySettingsLoading: state.person.columnDisplaySettingsLoading,\n columnDisplaySettings: state.person.columnDisplaySettings,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n currAssessment: state.config.currAssessment,\n emailTemplate: state.adminEmailTemplate.emailTemplate,\n emailTemplateLoading: state.adminEmailTemplate.loading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n onEmailTemplate: bindActionCreators(adminEmailTemplateActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MyPeople);\n","import { Empty } from \"antd\";\nimport { Chart, registerables } from \"chart.js\";\nimport ChartDataLabels from \"chartjs-plugin-datalabels\";\nimport React, { useRef, useEffect } from \"react\";\n\nChart.register(...registerables, ChartDataLabels);\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n \n
\n
\n );\n};\n// Static configurations moved outside of the component for performance reasons.\n// These don't need to be recreated every render.\n\nconst constantData = {\n chartType: \"bar\",\n colors: {\n background: [\n \"#b71540\",\n \"#eb2f06\",\n \"#f6b93b\",\n \"#0c2461\",\n \"#1e3799\",\n \"#0a3d62\",\n \"#60a3bc\",\n \"#079992\",\n \"#78e08f\",\n \"#6a89cc\",\n ],\n type1: \"#EEEEEE\",\n type2: \"#3C65C2\",\n },\n yText: \"Generic Attribute Count\",\n xText: \"GA Code And Level\",\n legendText: \"Attribute Number\",\n endName: \"end\",\n};\n\n// Base font configuration for the X and Y axis to avoid repetitive code.\nconst baseFontConfig = {\n weight: 500,\n};\n\n// Base title configuration for the X and Y axis to maintain consistent styling.\nconst baseTitleConfig = {\n display: true,\n color: constantData.colors.type2,\n font: {\n size: 14,\n weight: 700,\n },\n};\n\nconst Bar = ({ data: { source = [], maxCount } = {} }) => {\n const canvas = useRef(null);\n\n // Refactored data for the chart using destructuring for more concise code.\n const dataChart = {\n labels: source.map((item) => item.label),\n datasets: [\n {\n label: constantData.legendText,\n data: source.map((item) => item.value),\n backgroundColor: constantData.colors.background,\n },\n ],\n };\n\n // Centralized configuration for the chart. Static values are directly set\n // and values that depend on props are computed inline.\n const configChart = {\n type: constantData.chartType,\n data: dataChart,\n options: {\n scales: {\n y: {\n ticks: {\n ...baseFontConfig,\n precision: 0,\n },\n max: maxCount,\n beginAtZero: true,\n grid: {\n color: constantData.colors.type1,\n borderDash: [8, 4],\n },\n title: {\n ...baseTitleConfig,\n text: constantData.yText,\n },\n },\n x: {\n ticks: {\n ...baseFontConfig,\n },\n grid: {\n display: false,\n },\n title: {\n ...baseTitleConfig,\n text: constantData.xText,\n },\n },\n },\n responsive: true,\n maintainAspectRatio: true,\n barThickness: 30,\n aspectRatio: 5 / 2,\n layout: {\n padding: {\n top: 32,\n },\n },\n elements: {\n line: {\n fill: false,\n tension: 0.4,\n },\n },\n plugins: {\n datalabels: {\n align: constantData.endName,\n anchor: constantData.endName,\n offset: 0,\n },\n legend: {\n display: false,\n },\n tooltip: {\n callbacks: {\n label: (ctx) => ` ${ctx.dataset.label} : ${ctx.formattedValue}`,\n title: (ctx) => ctx[0].label,\n },\n },\n },\n },\n };\n\n // Ensure the chart is only re-rendered when the data source changes.\n useEffect(() => {\n let chartInstance = null;\n\n if (source?.length > 0) {\n chartInstance = new Chart(canvas.current, configChart);\n }\n\n // Cleanup the previous chart instance to prevent memory leaks\n return () => {\n if (chartInstance) {\n chartInstance.destroy();\n }\n };\n }, [source]); // Dependency array updated to re-render the chart when data changes\n\n // Conditionally render the canvas if data is present, otherwise display a centered 'No Data' message\n if (source?.length < 1) {\n return } />;\n }\n\n return ;\n};\n\nexport { Bar };\n","import { Empty } from \"antd\";\nimport { Chart } from \"chart.js\";\nimport { TreemapController, TreemapElement } from \"chartjs-chart-treemap\";\nimport React, { useRef, useEffect } from \"react\";\n\nChart.register(TreemapController, TreemapElement);\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n \n
\n
\n );\n};\n\nconst constantData = {\n chartType: \"treemap\",\n topName: \"top\",\n leftName: \"left\",\n dataName: \"data\",\n boldName: \"bold\",\n valueName: \"value\",\n colors: {\n transparent: \"transparent\",\n font: [\"white\", \"whiteSmoke\"],\n type1: \"#545350\",\n },\n};\n\nconst TreeMapChart = ({ data = [] }) => {\n const canvas = useRef(null);\n\n // Helper function to retrieve the appropriate color based on the context\n const getColorByContext = (ctx, defaultColor, colorKey) => {\n // Check if the context type matches our expected data type\n return ctx.type !== constantData.dataName\n ? defaultColor\n : ctx.raw._data[colorKey];\n };\n\n const dataChart = {\n datasets: [{ tree: data, key: constantData.valueName }],\n };\n\n const configChart = {\n type: constantData.chartType,\n data: dataChart,\n options: {\n labels: {\n position: constantData.topName,\n align: constantData.leftName,\n display: true,\n overflow: \"fit\",\n // Format the label based on the context data\n formatter(ctx) {\n if (ctx.type !== constantData.dataName) return;\n return [ctx.raw._data.label, `Count : ${ctx.raw.v}`];\n },\n color: constantData.colors.font,\n font: [{ size: 15, weight: constantData.boldName }, { size: 13 }],\n },\n // Utilize helper function for retrieving background color\n backgroundColor: (ctx) =>\n getColorByContext(ctx, constantData.colors.transparent, \"colour\"),\n // Utilize helper function for retrieving hover background color\n hoverBackgroundColor: (ctx) =>\n getColorByContext(ctx, constantData.colors.transparent, \"hoverColour\"),\n hoverColor: constantData.colors.type1,\n hoverFont: [{ size: 16, weight: constantData.boldName }, { size: 14 }],\n borderWidth: 0,\n borderRadius: 3,\n spacing: 1,\n plugins: {\n tooltip: {\n callbacks: {\n title: (ctx) => {\n const item = ctx[0];\n return (\n item.dataset.tree[item.datasetIndex]?.description ||\n item.dataset.value\n );\n },\n },\n },\n datalabels: {\n display: false,\n },\n title: {\n display: false,\n },\n legend: {\n display: false,\n },\n },\n },\n };\n\n // Effect hook ensures chart gets rendered (or re-rendered) when data changes\n useEffect(() => {\n let chartInstance = null;\n if (data?.length > 0) {\n chartInstance = new Chart(canvas.current, configChart);\n }\n\n // Cleanup function to prevent memory leaks by destroying the chart instance when the component unmounts\n return () => {\n if (chartInstance) {\n chartInstance.destroy();\n }\n };\n }, [data]); // Dependency array ensures the effect runs only when data changes\n\n // Conditionally render the canvas if data is present, otherwise display a centered 'No Data' message\n if (data?.length < 1) {\n return } />;\n }\n\n return ;\n};\n\nexport { TreeMapChart };\n","import { Empty, Divider } from \"antd\";\nimport { Chart } from \"chart.js\";\nimport React, { useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nconst constantData = {\n chartType: \"pie\",\n colors: {\n background: [\n \"#E3BDD6\",\n \"#F989A2\",\n \"#FACA5F\",\n \"#e0c2a5\",\n \"#99dbf4\",\n \"#99dbb9\",\n \"#fae8a1\",\n ],\n },\n};\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n \n
\n
\n );\n};\nconst Wrapper = styled.div`\n .color-t {\n color: #969696;\n }\n`;\n\nfunction PieChart({\n source: { data = [], labels = [], counts = [] } = {},\n title,\n}) {\n const canvas = useRef(null);\n\n // Refactored data for the chart using destructuring for more concise code.\n\n const dataChart = {\n labels: [...labels],\n datasets: [\n {\n counts: [...counts],\n data: [...data],\n backgroundColor: constantData.colors.background,\n borderWidth: 0,\n hoverOffset: 4,\n },\n ],\n };\n\n // Centralized configuration for the chart. Static values are directly set\n // and values that depend on props are computed inline.\n const configChart = {\n type: constantData.chartType,\n data: dataChart,\n options: {\n responsive: true,\n maintainAspectRatio: true,\n aspectRatio: 5 / 4,\n plugins: {\n datalabels: {\n formatter: (value, context) => `${value}%`,\n },\n legend: {\n position: \"bottom\",\n },\n tooltip: {\n callbacks: {\n label: (ctx) =>\n ` value : ${ctx.dataset.counts[ctx.datasetIndex]}, percent : ${\n ctx.formattedValue\n }%`,\n title: (ctx) => ctx[0].label,\n },\n },\n },\n },\n };\n\n // Ensure the chart is only re-rendered when the data source changes.\n useEffect(() => {\n let chartInstance = null;\n\n if (data?.length > 0) {\n chartInstance = new Chart(canvas.current, configChart);\n }\n\n // Cleanup the previous chart instance to prevent memory leaks\n return () => {\n if (chartInstance) {\n chartInstance.destroy();\n }\n };\n }, [data]); // Dependency array updated to re-render the chart when data changes\n\n // Conditionally render the canvas if data is present, otherwise display a centered 'No Data' message\n if (data?.length < 1) {\n return } />;\n }\n\n return (\n \n
{title ?? \"-\"}
\n \n \n
\n );\n}\n\nexport default PieChart;\n","const LevelResponsibility = {\n name: \"7 Levels Of Responsibility\",\n levels: [\n {\n level: 1,\n name: \"Follow\",\n },\n {\n level: 2,\n name: \"Assist\",\n },\n {\n level: 3,\n name: \"Apply\",\n },\n {\n level: 4,\n name: \"Enable\",\n },\n {\n level: 5,\n name: \"Ensure, Advise\",\n },\n {\n level: 6,\n name: \"Initiate, Influence\",\n },\n {\n level: 7,\n name: \"Set Strategy, Inspire, Mobilise\",\n },\n ],\n};\n\nexport { LevelResponsibility };\n","const OrderCategory = [\n \"Strategy and architecture\",\n \"Change and transformation\",\n \"Development and implementation\",\n \"Delivery and operation\",\n \"People and skills\",\n \"Relationship and engagement\",\n];\n\nconst OrderGeneric = [\n \"Autonomy\", \n \"Responsibility and Autonomy\", \n \"Influence\", \n \"Complexity\", \n \"Complexity and Scope\", \n \"Business Skills\", \n \"Skills\", \n \"Knowledge\" \n];\n\nexport { OrderCategory, OrderGeneric };\n","import { Select, TreeSelect } from \"antd\";\nimport React, { useState } from \"react\";\n\nconst { SHOW_PARENT } = TreeSelect;\n\nconst CustomSelect = ({\n label,\n obj = {},\n isTreeSelect = false,\n placeholder,\n}) => {\n // Expanded keys state for TreeSelect\n const [expandedKeys, setExpandedKeys] = useState([]);\n\n // Function to handle tree expansion\n const onTreeExpanded = (keys) => setExpandedKeys(keys);\n\n // Function to handle dropdown visibility change\n const onDropdownVisibleChanged = (isOpen) => {\n // Reset expanded keys when dropdown opens, no values are selected, and there are expanded keys\n if (isOpen && !obj.value?.length && expandedKeys.length) {\n setExpandedKeys([]);\n }\n };\n\n // Common props shared by both TreeSelect and Select\n const commonProps = {\n value: obj.value,\n onChange: (val) => obj.setValue?.(val), // Using optional chaining to avoid potential errors\n allowClear: true,\n showArrow: true,\n size: \"middle\",\n placeholder,\n style: { width: \"100%\" },\n };\n\n return (\n <>\n {/* Render label */}\n {label}\n\n {/* Conditional rendering: If isTreeSelect is true, render TreeSelect, else render Select */}\n {isTreeSelect ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default CustomSelect;\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag, Typography, Divider } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst SkillsWeNeedFilters = ({\n objType,\n objRequirement,\n objLorSkill,\n objGeneric,\n}) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [objType, objRequirement, objLorSkill, objGeneric].some(\n (obj) => obj?.value?.length > 0\n );\n }, [\n objType?.value,\n objRequirement?.value,\n objLorSkill?.value,\n objGeneric?.value,\n ]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objRequirement, \"green\", onCloseClicked)}\n {renderTags(objType, \"cyan\", onCloseClicked)}\n {renderTags(objLorSkill, \"geekblue\", onCloseClicked, true)}\n {renderTags(objGeneric, \"purple\", onCloseClicked, true)}\n \n \n \n {/* Rest of the JSX structure where you'll use your CustomSelect */}\n \n \n \n \n \n \n Filter only the skills\n \n \n \n \n \n \n \n \n \n \n \n \n \n Filter only the generic attributes\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n Filter both\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n );\n};\n\nexport default SkillsWeNeedFilters;\n","import { InfoCircleOutlined, UpOutlined } from \"@ant-design/icons\";\nimport { Table, Tag, Tooltip } from \"antd\";\nimport React, { useState, useMemo, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperTable = styled.div`\n white-space: nowrap;\n border-top: none;\n margin-top: 20px;\n\n .ant-table.ant-table-middle\n .ant-table-tbody\n .ant-table-wrapper:only-child\n .ant-table {\n margin: 0px;\n }\n\n .ant-table-cell:has(.p-zero) {\n padding: 0px !important;\n }\n\n .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed .ant-table,\n .ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table {\n margin: 0px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table {\n border-top-left-radius: 0x;\n border-top-right-radius: 0px;\n }\n\n .ant-table {\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n > .ant-table-content\n > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n border-width: 0px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n\n .ant-table-cell:has(.b-none) {\n border-color: white !important;\n transition: background 0.3s;\n }\n\n .ant-table-cell:has(.c-lv) {\n text-align: center;\n }\n\n .ant-table-cell:has(.c-w) {\n width: 50px !important;\n }\n\n .ant-table-cell:has(.e-w) {\n width: 80px !important;\n }\n\n .ant-table-container table > thead > tr:first-child th {\n background: ${(props) =>\n props?.customStyle?.tableHeaderBackgroundColor || \"\"};\n color: ${(props) => props?.customStyle?.tableHeaderColor || \"\"};\n text-align: center;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th {\n background: #fafafa;\n color: black;\n text-align: center;\n cursor: pointer;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th:first-child {\n border-top-left-radius: 0px;\n text-align: start;\n width: auto !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: 280px;\n }\n .ant-table-cell {\n padding: 10px;\n }\n .ant-table-row-expand-icon {\n display: none;\n }\n\n .ant-table-row-indent {\n padding-left: 0 !important;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n td:first-child {\n border-top-left-radius: 0px;\n width: auto !important;\n }\n\n .table-s .ant-table-column-sorters {\n text-align: center;\n }\n\n .ant-table-container table > thead > tr:first-child td:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: 280px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th:last-child {\n border-top-right-radius: 0px;\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .rotate-180 {\n transform: rotate(180deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n`;\n\nconst WrapperTitleCustom = styled.div`\n text-align: center;\n margin-top: -7px;\n cursor: pointer;\n`;\n\nconst WrapperTooltipCustom = styled(Tooltip)`\n position: absolute;\n right: 5%;\n cursor: help;\n margin-top: 7px;\n`;\n\nconst WrapperLevelCustom = styled.div`\n padding: 5px;\n`;\n\nconst WrapperCellCustom = styled.div`\n text-align: center;\n margin-top: -7px;\n cursor: pointer;\n`;\n\nconst WrapperCellSkillCategoryCustom = styled(Tooltip)`\n padding-left: 20px;\n`;\n\nconst WrapperCellSubCategoryCustom = styled(Tooltip)`\n font-weight: 700;\n`;\n\nconst WrapperSlide = styled.div`\n transition: all 0.2s ease-in-out;\n transform-origin: left top;\n animation: slide 0.2s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n`;\n\nconst constantData = {\n lvBackgroundColorDefault: \"#F0F0F0\",\n tableSize: \"default\",\n expandedTableSize: \"default\",\n skillLevelCount: 7,\n colorLevel: 5,\n categoryName: \"category\",\n expandName: \"expand\",\n bottomName: \"bottom\",\n levelName: \"Level\",\n rootName: \"root\",\n};\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (title, dataIndex, sorterFunction) => ({\n title, // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: sorterFunction, // Sorting function for the column\n render: (text) =>
{text ?? \"-\"}
, // Centering the text\n});\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\nconst SkillGapTable = ({ data = null }) => {\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n const [listExpand, setListExpand] = useState([\n {\n name: constantData.rootName,\n isExpand: true,\n },\n ]);\n const [expendedRowKeysRef, setExpendedRowKeysRef] = useState({\n level: null,\n name: null,\n keys: [],\n });\n const [expendedRowKeysCurrent, setExpendedRowKeysCurrent] = useState({\n level: null,\n name: null,\n keys: [],\n });\n\n const onExpandedRowRendered = (record) => {\n // Transform the record's people data into the format suitable for the table.\n const dataSource = record.people\n .filter((item) => item.level === expendedRowKeysRef?.level) // Filter by the specific level\n .map((item, index) => ({\n // Map over the filtered items\n key: `${index + 1}`,\n ...item, // Spread the properties of each item\n }));\n\n // Define columns for the table. These determine how data is displayed in the table.\n const columns = [\n createCenteredTextColumn(\"Full Name\", \"fullName\", (a, b) =>\n sortByText(a.fullName, b.fullName)\n ),\n createCenteredTextColumn(\"Person Email\", \"email\", (a, b) =>\n sortByText(a.email, b.email)\n ),\n {\n title: \"Person Skill Level\",\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) =>\n sortByText(`${a.skillCode} ${a.level}`, `${b.skillCode} ${b.level}`),\n render: (text, record) => (\n
\n \n \n {`${record.skillCode} ${record.level}`}\n \n \n
\n ),\n },\n createCenteredTextColumn(\"Capability\", \"capability\", (a, b) =>\n sortByText(a.capability, b.capability)\n ),\n createCenteredTextColumn(\"Requirement Type\", \"jobType\", (a, b) =>\n sortByText(a.jobType, b.jobType)\n ),\n {\n title: \"Skill Gap\",\n dataIndex: \"skillGap\",\n key: \"skillGap\",\n sorter: (a, b) =>\n {\n const askillGap = a.selfAssessedSkillGap == a.endorsedSkillGap ? a.skillGap : `Self Assessed ${a.selfAssessedSkillGap} - Endorsed ${a.endorsedSkillGap}`;\n const bskillGap = b.selfAssessedSkillGap == b.endorsedSkillGap ? b.skillGap : `Self Assessed ${b.selfAssessedSkillGap} - Endorsed ${b.endorsedSkillGap}`;\n sortByText(askillGap, bskillGap) \n },\n render: (text, record) => (\n
\n {record.selfAssessedSkillGap == record.endorsedSkillGap ? record.skillGap :\n \n {`Self Assessed - ${record.selfAssessedSkillGap}`}
\n {`Endorsed - ${record.endorsedSkillGap}`}\n
\n }\n
\n ),\n },\n ];\n\n // Return the formatted table contained within a styled wrapper.\n return (\n \n
\n \n
\n
\n );\n };\n\n // This function determines if a row is expandable based on the 'isSkill' attribute.\n const onRowExpandable = (record) => {\n // Directly return the boolean value of 'isSkill' attribute of the record.\n // If the attribute isn't present, it defaults to false.\n return record.isSkill || false;\n };\n\n const onExpandCellRendered = (text, record) => {\n // Find the corresponding expandable item from the listExpand array using the record's category.\n const findExpand = listExpand.find((_) => _.name === record.category);\n\n return (\n
\n {/* \n Conditional rendering: \n If 'isShowExpand' attribute of the record is true, then render the custom cell wrapper. \n Otherwise, nothing will be rendered inside the div. \n */}\n {record.isShowExpand && (\n onExpendClicked(findExpand)}\n >\n \n \n )}\n
\n );\n };\n\n const onCategoryCellRendered = (text, record, index) => {\n // Depending on the 'isSkill' property of the record, determine which component to render.\n // If 'isSkill' is true, use 'WrapperCellSkillCategoryCustom'.\n // If 'isSkill' is false, use 'WrapperCellSubCategoryCustom'.\n const ComponentToRender = record.isSkill\n ? WrapperCellSkillCategoryCustom\n : WrapperCellSubCategoryCustom;\n\n // Render the chosen component inside a div with the given class.\n // The title and placement properties are consistent for both components.\n return (\n
\n \n {text}\n \n
\n );\n };\n\n const onExpandCellTitleRendered = (meta) => {\n // Get the root expandable item to decide the direction of the 'UpOutlined' icon.\n const expand = getRootExpand();\n\n // Define the custom title for the tooltip:\n // It contains the name of the level responsibility and a list of levels beneath it.\n const customTitle = () => (\n
\n {/* Display the name of the level responsibility */}\n {meta.levelResponsibility.name}\n\n {/* Map through the levels and display each one */}\n {meta.levelResponsibility.levels.map((item, index) => (\n \n {`${constantData.levelName} ${item.level} : ${item.name}`}\n \n ))}\n
\n );\n\n // Render the custom title wrapped in a 'WrapperTitleCustom' component.\n // It contains an expandable icon and an informational icon within a tooltip.\n return (\n \n {/* Expandable Icon: Its rotation depends on the 'expand.isExpand' value */}\n onExpendClicked(expand)}\n />\n\n {/* Information Icon wrapped in a tooltip */}\n \n \n \n \n );\n };\n\n const onExpendClicked = (obj) => {\n if (!obj) return; // Early exit if obj is falsy\n\n const tempExpandStatus = !obj.isExpand;\n\n let updatedListExpand;\n\n if (obj.name === constantData.rootName) {\n // If the clicked object is the root, update expand status of all items\n updatedListExpand = listExpand.map((item) => ({\n ...item,\n isExpand: tempExpandStatus,\n }));\n } else {\n // Toggle the expand status of the clicked item\n obj.isExpand = tempExpandStatus;\n\n const rootItem = getRootExpand();\n // Check if any child item (excluding root) is expanded\n const hasExpandedChild = listExpand.some(\n (item) => item.name !== constantData.rootName && item.isExpand\n );\n\n // If the clicked item is expanded or no other child item is expanded, update the root expand status\n if (tempExpandStatus || !hasExpandedChild) {\n rootItem.isExpand = tempExpandStatus;\n }\n\n updatedListExpand = [...listExpand]; // Create a copy of the listExpand array\n }\n\n setListExpand(updatedListExpand); // Update state with the new list\n };\n\n // Renders cell content based on the level value\n const onLevelTextCellRendered = (text, record, index, lv) => {\n // Check if the record qualifies and find the respective level.\n const tempLevel =\n record.isSkill &&\n record.levels &&\n record.levels.find((level) => level.lv === `${lv}`);\n\n // If level found, render its value with a tooltip.\n if (tempLevel) {\n return (\n
\n \n {tempLevel.value}\n \n
\n );\n }\n\n // Default empty cell for non-matching records.\n return
;\n };\n\n /**\n * Determines the styling and interactivity of cells based on the given record and level.\n * This function primarily checks the level and adjusts the cell style based on the record's details.\n */\n const onLevelColorCellRendered = (record, index, lv) => {\n // When record isn't a skill, just return an empty style object.\n if (!record.isSkill) return {};\n\n // This is a default style for a cell. Used for skill-based records when no specific level styling is found.\n const defaultStyle = {\n backgroundColor: constantData.lvBackgroundColorDefault,\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n };\n\n // If the record has no levels defined, just return the default styling.\n if (!record.levels) return { style: defaultStyle };\n\n // Attempt to find the corresponding level from the record's levels.\n const tempLevel = record.levels.find((level) => level.lv === `${lv}`);\n\n // If no such level is found, return with the default style.\n if (!tempLevel) return { style: defaultStyle };\n\n // Calculate a value which will be used for determining the color of the cell.\n const val = tempLevel.value * -1;\n\n return {\n // Add click functionality if a corresponding level is found for the cell.\n onClick: () => onCellExpandClicked(record, lv),\n\n // Set up the cell's styling based on the found level's value.\n style: {\n cursor: \"pointer\",\n // Determine the cell's background color based on the value.\n backgroundColor:\n val < constantData.colorLevel\n ? record.meta.colour\n : record.meta.cateColour,\n // Adjust text color depending on the value.\n color: val < constantData.colorLevel ? \"black\" : \"white\",\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n },\n };\n };\n\n // A simple tooltip renderer for cell titles\n const onCellTitleRendered = (text, description) => (\n \n {text}\n \n );\n\n // Handle cell expansion based on the record and level\n const onCellExpandClicked = (record, lv) => {\n setExpendedRowKeysRef((prevState) => ({\n ...prevState, // Keep other properties of the state unchanged\n level: lv,\n name: record.parent,\n keys: [record.key],\n }));\n };\n\n const getRootExpand = () =>\n listExpand.find((_) => _.name === constantData.rootName);\n\n const getDataSource = () => {\n // Cache the root expand state to avoid calculating it repeatedly in the loop\n const isRootExpanded = getRootExpand().isExpand;\n\n // If the root is not expanded, return the sub-category data without skills\n if (!isRootExpanded) {\n return data.subCategories.map((item, index) => ({\n key: `${index + 1}`,\n category: item.name,\n isShowExpand: true,\n isSkill: false,\n meta: {\n description: item.description,\n skillColour: item.skillColour,\n colour: item.colour,\n cateColour: item.cateColour,\n },\n }));\n }\n\n // If the root is expanded, handle both subcategories and their skills\n return data.subCategories.flatMap((item, index) => {\n const { name, description, skillColour, colour, cateColour, skills } =\n item;\n\n // Construct base data for the sub-category\n const baseData = {\n key: `${index + 1}`,\n category: name,\n isShowExpand: true,\n isSkill: false,\n meta: { description, skillColour, colour, cateColour },\n };\n\n // Check if the current sub-category is in the list of expanded items\n const findExpand = listExpand.find(\n (expandItem) => expandItem.name === name\n );\n\n // If found but it's not expanded, only return the base data\n if (findExpand && !findExpand.isExpand) {\n return [baseData];\n }\n\n // Construct data for each skill under the current sub-category\n const skillsData = skills.map((itemSkill, indexSkill) => {\n const { name, description, people, levels } = itemSkill;\n\n return {\n key: `${index + 1}.${indexSkill + 1}`,\n category: name,\n parent: item.name,\n isShowExpand: false,\n isSkill: true,\n meta: { skillColour, colour, cateColour, description },\n people,\n // Map each level of the skill to its data structure\n levels: levels.map((level) => ({\n lv: level.lv,\n value: level.value,\n description: level.description,\n })),\n };\n });\n\n // Return a combined array of the base sub-category data and all its skills data\n return [baseData, ...skillsData];\n });\n };\n\n const getColumns = () => {\n // Initial columns for category and expand cells\n const initialColumns = [\n {\n title: () => onCellTitleRendered(data.name, data.description),\n dataIndex: constantData.categoryName,\n key: constantData.categoryName,\n render: onCategoryCellRendered,\n },\n {\n title: () => onExpandCellTitleRendered(data.meta),\n key: constantData.expandName,\n dataIndex: constantData.expandName,\n render: (text, record, index) =>\n onExpandCellRendered(text, record, index),\n },\n ];\n\n // Generate columns for each skill level\n const skillLevelColumns = Array.from(\n { length: constantData.skillLevelCount },\n (_, lv) => {\n const level = lv + 1;\n return {\n title: `${level}`,\n dataIndex: `${level}`,\n key: `${level}`,\n onCell: (record, index) =>\n onLevelColorCellRendered(record, index, level),\n render: (text, record, index) =>\n onLevelTextCellRendered(text, record, index, level),\n };\n }\n );\n\n // Combine and return all columns\n return [...initialColumns, ...skillLevelColumns];\n };\n\n // useMemo calculates and memoizes the table data based on its dependencies.\n // It will only re-compute the table data when either data, listExpand, or isContentLoaded changes.\n const tableData = useMemo(() => {\n if (isContentLoaded === false) return { dataSource: [], columns: [] };\n // Get the data source using the provided getDataSource function\n const dataSource = getDataSource();\n\n // Get the columns using the provided getColumns function\n const columns = getColumns();\n\n // Return the computed values in an object\n return { dataSource, columns };\n }, [data, listExpand, isContentLoaded]); // Memoization depends on these three values.\n\n // This useEffect is responsible for handling the side-effect when the content is not yet loaded.\n // It updates the state by marking the content as loaded and sets the initial expanded subcategories.\n useEffect(() => {\n // Check if the content has not been loaded yet\n if (!isContentLoaded) {\n // Mark content as loaded\n setIsContentLoaded(true);\n\n // Generate an array of expanded subcategories from the data\n const tempListExpand = data.subCategories.map((subCategory) => ({\n name: subCategory.name,\n isExpand: true,\n }));\n\n // Update the listExpand state by appending the new expanded subcategories.\n // We use a functional update to safely access and update the previous state.\n setListExpand((prevListExpand) => [...prevListExpand, ...tempListExpand]);\n }\n }, [data, isContentLoaded]); // The effect depends on the data and the isContentLoaded flag.\n\n // useEffect for handling the side-effect related to listExpand updates\n useEffect(() => {\n const find = listExpand.find(\n (item) => item.isExpand === false && item.name === expendedRowKeysRef.name\n );\n\n if (find) {\n // Reset expendedRowKeysCurrent to its default values\n setExpendedRowKeysCurrent((prevState) => ({\n ...prevState,\n level: null,\n name: null,\n keys: [],\n }));\n }\n }, [listExpand, expendedRowKeysRef.name]);\n\n // useEffect for handling the side-effect related to expendedRowKeysRef updates\n useEffect(() => {\n // Use a functional state update for expendedRowKeysCurrent since its new value depends on the previous state\n setExpendedRowKeysCurrent((prevState) => {\n const temp = { ...prevState };\n\n if (expendedRowKeysRef.keys.length < 1) {\n temp.level = null;\n temp.name = null;\n temp.keys = [];\n } else if (\n temp.keys.length > 0 &&\n temp.keys[0] === expendedRowKeysRef.keys[0] &&\n temp.level === expendedRowKeysRef.level\n ) {\n temp.level = null;\n temp.name = null;\n temp.keys = [];\n } else {\n temp.level = expendedRowKeysRef.level;\n temp.name = expendedRowKeysRef.name;\n temp.keys = [...expendedRowKeysRef.keys];\n }\n return temp;\n });\n }, [expendedRowKeysRef]);\n\n return (\n \n
\n \n
\n
\n );\n};\n\nexport { SkillGapTable };\n","import {\n InfoCircleOutlined,\n UpOutlined,\n CheckCircleOutlined,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Table, Tag, Tooltip, Row, Typography, Empty } from \"antd\";\nimport React, { useState, useMemo, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n white-space: nowrap;\n border-top: none;\n margin-top: 20px;\n\n .ant-table.ant-table-middle\n .ant-table-tbody\n .ant-table-wrapper:only-child\n .ant-table {\n margin: 0px;\n }\n\n .table-s .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .anticon {\n vertical-align: 1px !important;\n }\n\n .ant-table-cell:has(.p-zero) {\n padding: 0px !important;\n }\n\n .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed .ant-table,\n .ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table {\n margin: 0px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table {\n border-top-left-radius: 0x;\n border-top-right-radius: 0px;\n }\n\n .ant-table {\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n }\n\n .font-sm {\n font-size: small;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n > .ant-table-content\n > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n border-width: 0px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n .op-0 {\n opacity: 0;\n }\n .ant-table-cell:has(.b-none) {\n border-color: white !important;\n transition: background 0.3s;\n }\n\n .table-s .ant-table-body {\n max-height: 300px;\n }\n .ant-table-cell:has(.c-lv) {\n text-align: center;\n }\n\n .ant-table-cell:has(.c-w) {\n width: 50px !important;\n }\n\n .ant-table-cell:has(.e-w) {\n width: 80px !important;\n }\n\n .ant-table-container table > thead > tr:first-child th {\n background: ${(props) =>\n props?.customStyle?.tableHeaderBackgroundColor || \"\"};\n color: ${(props) => props?.customStyle?.tableHeaderColor || \"\"};\n text-align: center;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th {\n background: #fafafa;\n color: black;\n text-align: center;\n cursor: pointer;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th:first-child {\n border-top-left-radius: 0px;\n text-align: start;\n width: auto !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: 280px;\n }\n\n .ant-table-cell {\n padding: 10px;\n }\n .ant-table-row-expand-icon {\n display: none;\n }\n\n .ant-table-row-indent {\n padding-left: 0 !important;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n td:first-child {\n border-top-left-radius: 0px;\n width: auto !important;\n }\n\n .table-s .ant-table-column-sorters {\n text-align: center;\n }\n\n .item-center {\n align-items: center;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th:last-child {\n border-top-right-radius: 0px;\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .rotate-180 {\n transform: rotate(180deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n /*== start of code for tooltips ==*/\n .tool {\n cursor: help;\n position: relative;\n }\n\n /*== common styles for both parts of tool tip ==*/\n .tool::before,\n .tool::after {\n left: 50%;\n opacity: 0;\n position: absolute;\n z-index: -100;\n }\n .flex {\n display: flex;\n }\n .mt-15 {\n margin-top: 15px;\n }\n .ml-10 {\n margin-left: 10px;\n }\n\n .tool:hover::before,\n .tool:focus::before,\n .tool:hover::after,\n .tool:focus::after {\n opacity: 1;\n transform: scale(1) translateY(0);\n z-index: 100;\n }\n\n /*== pointer tip ==*/\n .tool::before {\n border-style: solid;\n border-width: 1em 0.75em 0 0.75em;\n border-color: #3e474f transparent transparent transparent;\n bottom: 100%;\n\n content: \"\";\n margin-left: -0.5em;\n transition: all 0.65s cubic-bezier(0.84, -0.18, 0.31, 1.26),\n opacity 0.65s 0.5s;\n transform: scale(0.6) translateY(-90%);\n }\n\n .tool:hover::before,\n .tool:focus::before {\n transition: all 0.65s cubic-bezier(0.84, -0.18, 0.31, 1.26) 0.2s;\n }\n\n /*== speech bubble ==*/\n .tool::after {\n background: #3e474f;\n border-radius: 0.25em;\n bottom: 135%;\n text-wrap: balance;\n height: auto;\n color: #edeff0;\n content: attr(data-tip);\n margin-left: -16em;\n padding: 1em;\n transition: all 0.65s cubic-bezier(0.84, -0.18, 0.31, 1.26) 0.2s;\n transform: scale(0.6) translateY(50%);\n width: 18em;\n }\n\n .tool:hover::after,\n .tool:focus::after {\n transition: all 0.65s cubic-bezier(0.84, -0.18, 0.31, 1.26);\n }\n\n @media (max-width: 760px) {\n .tool::after {\n font-size: 0.75em;\n margin-left: -5em;\n width: 10em;\n }\n }\n\n @media (max-width: 1080px) {\n .sm-grid {\n display: grid;\n }\n }\n .circle {\n border-radius: 10px;\n width: 10px;\n height: 10px;\n }\n .pd-10 {\n padding: 10px;\n }\n .grid {\n display: grid;\n }\n .mr-10 {\n margin-right: 10px;\n }\n`;\n\nconst WrapperTitleCustom = styled.div`\n text-align: center;\n margin-top: -7px;\n cursor: pointer;\n`;\n\nconst WrapperTooltipCustom = styled(Tooltip)`\n cursor: help;\n margin-top: 7px;\n`;\n\nconst WrapperLevelCustom = styled.div`\n padding: 5px;\n`;\n\nconst WrapperDivToolCustom = styled.div`\n padding: 10px;\n`;\n\nconst WrapperDivToolMTCustom = styled.div`\n padding-top: 5px;\n padding-bottom: 5px;\n`;\n\nconst WrapperDivCustom = styled.div`\n padding-top: 5px;\n display: flex;\n align-items: center;\n`;\n\nconst WrapperCircleCustom = styled.div`\n border-radius: 10px;\n width: 10px;\n margin-left: 10px;\n height: 10px;\n`;\n\nconst WrapperCellCustom = styled.div`\n text-align: center;\n margin-top: -7px;\n cursor: pointer;\n`;\n\nconst WrapperSlide = styled.div`\n transition: all 0.2s ease-in-out;\n transform-origin: left top;\n animation: slide 0.2s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto !important;\n text-wrap: wrap;\n`;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n \n
\n
\n );\n};\n\nconst constantData = {\n titleLevel: 5,\n tableSize: \"default\",\n expandedTableSize: \"default\",\n skillLevelCount: 7,\n categoryName: \"category\",\n expandName: \"expand\",\n bottomName: \"bottom\",\n levelName: \"Level\",\n categoryColors: [\n {\n name: \"Strategy and architecture\",\n bold: \"#EE2A53\",\n tint: \"#f8a9ba\",\n },\n {\n name: \"Change and transformation\",\n bold: \"#CE559F\",\n tint: \"#ebbbd8\",\n },\n {\n name: \"Delivery and operation\",\n bold: \"#B26720\",\n tint: \"#e0c2a5\",\n },\n {\n name: \"Development and implementation\",\n bold: \"#f3c716\",\n tint: \"#fae8a1\",\n },\n {\n name: \"People and skills\",\n bold: \"#00a5e4\",\n tint: \"#99dbf4\",\n },\n {\n name: \"Relationship and engagement\",\n bold: \"#00a752\",\n tint: \"#99dbb9\",\n },\n ],\n};\n\nconst createCenteredTextColumnHeader = (title) => (\n {title}\n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: sorterFunction, // Sorting function for the column\n render: (text) => (\n {text ?? \"-\"}\n ), // Centering the text\n});\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\nconst SkillsWeHaveNeedTable = ({\n data = null,\n isNeedSkill = false,\n isShowDetail = true,\n isSpilt = false,\n}) => {\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n const [listExpand, setListExpand] = useState([]);\n const [expendedRowKeysRef, setExpendedRowKeysRef] = useState({\n name: null,\n keys: [],\n });\n const [expendedRowKeysCurrent, setExpendedRowKeysCurrent] = useState({\n name: null,\n keys: [],\n });\n\n const onExpandedRowRendered = (record) => {\n // Transform the record's people data into the format suitable for the table.\n const dataSource = record.people.map((item, index) => ({\n // Map over the filtered items\n key: `${index + 1}`,\n ...item, // Spread the properties of each item\n }));\n\n // Define columns for the table. These determine how data is displayed in the table.\n let columns;\n if (isNeedSkill) {\n columns = [\n createCenteredTextColumn(\"Requirement Name\", \"jobName\", (a, b) =>\n sortByText(a.jobName, b.jobName)\n ),\n createCenteredTextColumn(\"Sub-Category\", \"subCategory\", (a, b) =>\n sortByText(a.subCategory, b.subCategory)\n ),\n createCenteredTextColumn(\"Skill Name\", \"skill\", (a, b) =>\n sortByText(a.skill, b.skill)\n ),\n {\n title: createCenteredTextColumnHeader(\"Skill Level\"),\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) =>\n sortByText(\n `${a.skillCode} ${a.level}`,\n `${b.skillCode} ${b.level}`\n ),\n render: (text, record) => (\n
\n \n \n {`${record.skillCode} ${record.level}`}\n \n \n
\n ),\n },\n\n createCenteredTextColumn(\"Status\", \"need\", (a, b) =>\n sortByText(a.need, b.need)\n ),\n ];\n } else {\n columns = [\n createCenteredTextColumn(\"Full Name\", \"fullName\", (a, b) =>\n sortByText(a.fullName, b.fullName)\n ),\n createCenteredTextColumn(\"Sub-Category\", \"subCategory\", (a, b) =>\n sortByText(a.subCategory, b.subCategory)\n ),\n createCenteredTextColumn(\"Skill Name\", \"skill\", (a, b) =>\n sortByText(a.skill, b.skill)\n ),\n {\n title: createCenteredTextColumnHeader(\"Skill Level\"),\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) =>\n sortByText(\n `${a.skillCode} ${a.level}`,\n `${b.skillCode} ${b.level}`\n ),\n render: (text, record) => (\n
\n \n \n {`${record.skillCode} ${record.level}`}\n \n \n
\n ),\n },\n {\n title: createCenteredTextColumnHeader(\"Status\"),\n dataIndex: \"profileStatus\",\n key: \"profileStatus\",\n sorter: (a, b) => sortByText(a.profileStatus, b.profileStatus),\n render: (text, record) => (\n
\n {record.profileType}\n \n ) : (\n \n )\n }\n color={record.isApproved ? \"success\" : \"error\"}\n >\n {record.isApproved ? \"Approved \" : \"Not Approved \"}\n \n
\n ),\n },\n ];\n }\n\n // Return the formatted table contained within a styled wrapper.\n return (\n \n
\n \n
\n
\n );\n };\n\n // This function determines if a row is expandable based on the 'isSkill' attribute.\n const onRowExpandable = (record) => {\n // Directly return the boolean value of 'levels' attribute of the record.\n // If the attribute isn't present, it defaults to false.\n return record.levels.length > 0;\n };\n\n const onExpandCellRendered = (text, record, index) => {\n // Find the corresponding expandable item from the listExpand array using the record's category.\n const findExpand = listExpand.find((_) => _.name === record.category);\n\n return (\n
\n {/* \n Conditional rendering: \n If 'isShowExpand' attribute of the record is true, then render the custom cell wrapper. \n Otherwise, nothing will be rendered inside the div. \n */}\n {record.isShowExpand && (\n onExpendClicked(findExpand, record)}\n >\n \n \n )}\n
\n );\n };\n\n const onCategoryCellRendered = (text, record, index) => {\n // Render the chosen component inside a div with the given class.\n // The title and placement properties are consistent for both components.\n return (\n
\n \n {text}\n \n
\n );\n };\n\n const onExpandCellTitleRendered = (meta) => {\n // Define the custom title for the tooltip:\n // It contains the name of the level responsibility and a list of levels beneath it.\n const customTitle = () => (\n
\n {/* Display the name of the level responsibility */}\n {meta.levelResponsibility.name}\n\n {/* Map through the levels and display each one */}\n {meta.levelResponsibility.levels.map((item, index) => (\n \n {`${constantData.levelName} ${item.level} : ${item.name}`}\n \n ))}\n
\n );\n\n // Render the custom title wrapped in a 'WrapperTitleCustom' component.\n // It contains an expandable icon and an informational icon within a tooltip.\n return (\n \n {/* Information Icon wrapped in a tooltip */}\n \n \n \n \n );\n };\n\n const onExpendClicked = (obj, record) => {\n if (!obj) return; // Early exit if obj is falsy\n\n const tempExpandStatus = !obj.isExpand;\n\n listExpand.forEach((_) => (_.isExpand = false));\n const updatedListExpand = [...listExpand]; // Create a copy of the listExpand array\n\n if (tempExpandStatus === true) {\n // Toggle the expand status of the clicked item\n obj.isExpand = tempExpandStatus;\n }\n\n setListExpand(updatedListExpand); // Update state with the new list\n setExpendedRowKeysRef((prevState) => ({\n ...prevState, // Keep other properties of the state unchanged\n name: tempExpandStatus ? record.category : \"\",\n keys: tempExpandStatus ? [record.key] : [],\n }));\n };\n\n // Renders cell content based on the level value\n const onCellRendered = (text, record, index, lv) => {\n // Filter out the levels based on the provided `lv`.\n const findLevels = record.levels.filter((item) => item.lv === lv);\n\n // Create a map to keep track of the count of each code.\n // This helps in avoiding multiple filters and loops on the same array.\n const codeCounts = {};\n for (let item of findLevels) {\n if (!codeCounts[item.code]) {\n codeCounts[item.code] = 1; // Initialize count if code is seen for the first time.\n } else {\n codeCounts[item.code]++; // Increment count for the code.\n }\n }\n\n // Extract unique skill codes.\n const uniqueCodes = Object.keys(codeCounts);\n\n // Render the tooltip content.\n const dataTip = () => (\n \n
Skill Level: {lv}
\n \n Count Of Skills Code: {findLevels.length}\n \n {uniqueCodes.map((code, idx) => (\n \n \n {code}\n {/* If a code appears more than once, show its count. */}\n {` (${codeCounts[code]})`}\n \n {/* Display a circle with background color from record meta. */}\n \n \n ))}\n
\n );\n\n // Render the main cell content. If there are matching levels, display a tooltip.\n return (\n
\n {findLevels.length > 0 && (\n \n
{findLevels.length}
\n
\n )}\n
\n );\n };\n\n /**\n * Determines the styling and interactivity of cells based on the given record and level.\n * This function primarily checks the level and adjusts the cell style based on the record's details.\n */\n const onLevelColorCellRendered = (record, index, lv) => {\n // This is a default style for a cell. Used for skill-based records when no specific level styling is found.\n const defaultStyle = {\n backgroundColor: record.meta.tint,\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n };\n\n // If the record has no levels defined, just return the default styling.\n const findLevels = record.levels.filter((_) => _.lv === lv);\n if (findLevels.length === 0) return { style: defaultStyle };\n\n return {\n // Set up the cell's styling based on the found level's value.\n style: {\n cursor: \"help\",\n // Determine the cell's background color based on the value.\n backgroundColor: record.meta.bold,\n // Adjust text color depending on the value.\n //color: val < constantData.colorLevel ? \"black\" : \"white\",\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n },\n };\n };\n\n // A simple tooltip renderer for cell titles\n const onCellTitleRendered = (text, description) => (\n \n {text}\n \n );\n\n const getDataSource = () => {\n if (data?.subCategories) {\n // If the root is expanded, handle both subcategories and their skills\n return data.subCategories.flatMap((item, index) => {\n const { name, description, people } = item;\n const findCategoryColor = constantData.categoryColors.find(\n (_) => _.name === name\n );\n // Construct base data for the sub-category\n const baseData = {\n key: `${index + 1}`,\n category: name,\n isShowExpand: true,\n meta: {\n description,\n tint: findCategoryColor ? findCategoryColor.tint : item.tint ? item.tint : item.styles.skillColour,\n bold: findCategoryColor ? findCategoryColor.bold : item.bold ? item.bold : item.styles.cateColour,\n },\n levels: people.map((_) => ({\n lv: _.level,\n code: _.skillCode,\n })),\n people,\n };\n\n // Check if the current sub-category is in the list of expanded items\n const findExpand = listExpand.find(\n (expandItem) => expandItem.name === name\n );\n\n // If found but it's not expanded, only return the base data\n if (findExpand && !findExpand.isExpand) {\n return [baseData];\n }\n // Return a combined array of the base sub-category data and all its skills data\n return [baseData];\n });\n }\n return [];\n };\n\n const getColumns = () => {\n if (data?.subCategories) {\n // Initial columns for category and expand cells\n const initialColumns = [\n {\n title: () => onCellTitleRendered(data.name, data.description),\n dataIndex: constantData.categoryName,\n key: constantData.categoryName,\n render: onCategoryCellRendered,\n },\n {\n title: () => onExpandCellTitleRendered(data.meta),\n key: constantData.expandName,\n dataIndex: constantData.expandName,\n render: onExpandCellRendered,\n },\n ];\n\n // Generate columns for each skill level\n const skillLevelColumns = Array.from(\n { length: constantData.skillLevelCount },\n (_, lv) => {\n const level = lv + 1;\n return {\n title: `${level}`,\n dataIndex: `${level}`,\n key: `${level}`,\n onCell: (record, index) =>\n onLevelColorCellRendered(record, index, level),\n render: (text, record, index) =>\n onCellRendered(text, record, index, level),\n };\n }\n );\n\n // Combine and return all columns\n return [...initialColumns, ...skillLevelColumns];\n }\n return [];\n };\n\n // useMemo calculates and memoizes the table data based on its dependencies.\n // It will only re-compute the table data when either data, listExpand, or isContentLoaded changes.\n const tableData = useMemo(() => {\n if (isContentLoaded === false || data === undefined || data === null)\n return { dataSource: [], columns: [] };\n // Get the data source using the provided getDataSource function\n const dataSource = getDataSource();\n\n // Get the columns using the provided getColumns function\n const columns = getColumns();\n\n // Return the computed values in an object\n return { dataSource, columns };\n }, [data, listExpand, isContentLoaded]); // Memoization depends on these three values.\n\n // This useEffect is responsible for handling the side-effect when the content is not yet loaded.\n // It updates the state by marking the content as loaded and sets the initial expanded subcategories.\n useEffect(() => {\n // Check if the content has not been loaded yet\n if (!isContentLoaded) {\n // Mark content as loaded\n setIsContentLoaded(true);\n\n // Generate an array of expanded subcategories from the data\n let tempListExpand = [];\n if (data?.subCategories) {\n tempListExpand =\n data?.subCategories.map((subCategory) => ({\n name: subCategory.name,\n isExpand: false,\n })) || [];\n }\n\n // Update the listExpand state by appending the new expanded subcategories.\n // We use a functional update to safely access and update the previous state.\n setListExpand((prevListExpand) => [...prevListExpand, ...tempListExpand]);\n }\n }, [data, isContentLoaded]); // The effect depends on the data and the isContentLoaded flag.\n\n // useEffect for handling the side-effect related to listExpand updates\n useEffect(() => {\n const find = listExpand.find(\n (item) => item.isExpand === false && item.name === expendedRowKeysRef.name\n );\n\n if (find) {\n // Reset expendedRowKeysCurrent to its default values\n setExpendedRowKeysCurrent((prevState) => ({\n ...prevState,\n name: null,\n keys: [],\n }));\n }\n }, [listExpand, expendedRowKeysRef.name]);\n\n // useEffect for handling the side-effect related to expendedRowKeysRef updates\n useEffect(() => {\n // Use a functional state update for expendedRowKeysCurrent since its new value depends on the previous state\n setExpendedRowKeysCurrent((prevState) => {\n const temp = { ...prevState };\n\n if (expendedRowKeysRef.keys.length < 1) {\n temp.name = null;\n temp.keys = [];\n } else if (\n temp.keys.length > 0 &&\n temp.keys[0] === expendedRowKeysRef.keys[0]\n ) {\n temp.name = null;\n temp.keys = [];\n } else {\n temp.name = expendedRowKeysRef.name;\n temp.keys = [...expendedRowKeysRef.keys];\n }\n return temp;\n });\n }, [expendedRowKeysRef]);\n\n return (\n <>\n \n Skills by Category{\" \"}\n {isSpilt && (\n <span className=\"vs-h-sm-h\">{`(${\n isNeedSkill ? \"Skill We Need\" : \"Skill We Have\"\n })`}</span>\n )}\n \n {tableData.dataSource.length > 0 ? (\n \n
\n \n
\n {isShowDetail && (\n \n {data?.subCategories.map((item, index) => {\n const find = constantData.categoryColors.find(\n (_) => _.name === item.name\n );\n return (\n \n {item.name}\n
\n
\n );\n })}\n \n )}\n \n ) : (\n } />\n )}\n \n );\n};\n\nexport { SkillsWeHaveNeedTable };\n","import { CheckCircleOutlined, CloseCircleOutlined } from \"@ant-design/icons\";\nimport { Table, Tag, Tooltip, Typography, Empty } from \"antd\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n colors: {\n type1: \"#69849c\",\n type2: \"#a5b8c8\",\n },\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n
\n
\n {title}\n \n
\n
\n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n {title}\n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false\n) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text ?? \"-\"}\n \n ), // Centering the text\n});\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (isNeedSkill, type, isResponsive) => {\n const commonSkillLevelColumn = {\n title: createCenteredTextColumnHeader(\"Skill Level\"),\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) =>\n sortByText(`${a.skillCode} ${a.level}`, `${b.skillCode} ${b.level}`),\n render: (text, record) => (\n
\n \n \n {`${record.skillCode} ${record.level}`}\n \n \n
\n ),\n };\n\n if (type === \"professional\") {\n return isNeedSkill\n ? [\n createCenteredTextColumn(\"Requirement Name\", \"jobName\", sortByText),\n createCenteredTextColumn(\"Reference\", \"jobRef\", sortByText),\n createCenteredTextColumn(\"Sub-Category\", \"subCategory\", sortByText),\n commonSkillLevelColumn,\n {\n title: createCenteredTextColumnHeader(\"Need Version\"),\n dataIndex: \"needVersion\",\n key: \"needVersion\",\n sorter: (a, b) =>\n sortByText(`${a.need} ${a.version}`, `${b.need} ${b.version}`),\n render: (text, record) => (\n
\n \n {`${record.need} ${record.version}`}\n \n
\n ),\n },\n ]\n : [\n createCenteredTextColumn(\"Full Name\", \"fullName\", sortByText),\n createCenteredTextColumn(\"Email\", \"email\", sortByText, isResponsive),\n {\n title: createCenteredTextColumnHeader(\"Profile Status\"),\n dataIndex: \"profileStatus\",\n key: \"profileStatus\",\n sorter: (a, b) => sortByText(a.profileStatus, b.profileStatus),\n render: (text, record) => (\n
\n {record.profileType}\n \n ) : (\n \n )\n }\n color={record.isApproved ? \"success\" : \"error\"}\n >\n {record.isApproved ? \"Approved \" : \"Not Approved \"}\n \n
\n ),\n },\n commonSkillLevelColumn,\n createCenteredTextColumn(\"Capability\", \"capability\", sortByText),\n ];\n } else if (type === \"generic\") {\n // generic type\n return isNeedSkill\n ? [\n createCenteredTextColumn(\"Requirement Name\", \"jobName\", sortByText),\n createCenteredTextColumn(\"Reference\", \"jobRef\", sortByText),\n createCenteredTextColumn(\n \"Generic Attributes (GA)\",\n \"lor\",\n sortByText\n ),\n {\n ...commonSkillLevelColumn,\n dataIndex: \"lorCode\",\n key: \"lorCode\",\n sorter: (a, b) =>\n sortByText(`${a.lorCode} ${a.level}`, `${b.lorCode} ${b.level}`),\n render: (text, record) => (\n
\n \n \n {`${record.lorCode} ${record.level}`}\n \n \n
\n ),\n },\n ]\n : [\n createCenteredTextColumn(\"Full Name\", \"fullName\", sortByText),\n createCenteredTextColumn(\"Email\", \"email\", sortByText),\n createCenteredTextColumn(\n \"Generic Attributes (GA)\",\n \"lor\",\n sortByText\n ),\n {\n title: createCenteredTextColumnHeader(\"Skill Level\"),\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) =>\n sortByText(\n `${a.skillCode || a.lorCode} ${a.level}`,\n `${b.skillCode || b.lorCode} ${b.level}`\n ),\n render: (text, record) => (\n
\n \n \n {`${record.skillCode || record.lorCode} ${record.level}`}\n \n \n
\n ),\n },\n ];\n }\n};\n\n// Component to render the table with a title\n// This abstracts the rendering of the table with a title to avoid repeating the same JSX structure.\nconst RenderTable = ({\n title,\n dataSource,\n columns,\n pageSize,\n isSpilt,\n isNeedSkill,\n}) => (\n <>\n \n {title}{\" \"}\n {isSpilt && (\n <span className=\"vs-h-sm-h\">\n ({isNeedSkill ? \"Skill We Need\" : \"Skill We Have\"})\n </span>\n )}\n \n \n \n \n \n);\n\nconst SkillsWeHaveNeedTableNormal = ({\n data = null,\n isNeedSkill = false,\n isShowProfessional = false,\n isShowGeneric = false,\n isSpilt = false,\n pageSize = constantData.pageSize,\n isResponsive = false,\n}) => {\n // Memoized calculation for professional table data\n const tableProfessional = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (!isShowProfessional || !data.professional)\n return { columns: [], dataSource: [] };\n\n // Return the transformed data source and the appropriate columns\n return {\n dataSource: transformDataSource(data.professional),\n columns: getColumnDefinitions(isNeedSkill, \"professional\", isResponsive),\n };\n }, [data, isShowProfessional]);\n\n // Memoized calculation for generic table data\n const tableGeneric = useMemo(() => {\n // If not showing generic or no data, return empty data.\n if (!isShowGeneric || !data.generic) return { columns: [], dataSource: [] };\n\n // Return the transformed data source and the appropriate columns\n return {\n dataSource: transformDataSource(data.generic),\n columns: getColumnDefinitions(isNeedSkill, \"generic\", isResponsive),\n };\n }, [data, isShowGeneric]);\n\n return (\n
\n {isShowProfessional &&\n (tableProfessional.dataSource.length > 0 ? (\n // Render the professional table\n \n ) : (\n }\n />\n ))}\n {isShowGeneric &&\n (tableGeneric.dataSource.length > 0 ? (\n // Render the generic table\n \n ) : (\n }\n />\n ))}\n
\n );\n};\n\nexport { SkillsWeHaveNeedTableNormal };\n","import CategoryAPI from \"../../../../common/api/service/CategoryService\";\nimport JobService from \"../../../../common/api/service/JobService\";\nimport PersonService from \"../../../../common/api/service/PersonService\";\nimport { Bar } from \"../../components/charts\";\nimport { LevelResponsibility } from \"../../components/config/mockdata/levels\";\nimport { OrderCategory } from \"../../components/config/mockdata/order\";\nimport SkillsWeNeedFilters from \"../../components/filters/skillsweneed\";\nimport {\n SkillsWeHaveNeedTable,\n SkillsWeHaveNeedTableNormal,\n} from \"../../components/table\";\nimport { Typography } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\n// styled components\nconst Container = styled.div`\n padding: 0px 30px 0px 30px;\n .mt-40 {\n margin-top: 40px;\n }\n`;\n\nconst ContainerBorder = styled.div`\n padding: 10px;\n border-width: 1px;\n border-style: solid;\n border-color: #dddddd;\n border-radius: 14px;\n`;\n\nconst ContainerContent = styled.div`\n padding: 20px 30px;\n`;\n\nconst ContainerDefault = styled.div`\n padding: 0px 0px 20px 0px;\n`;\n\n// Constant Data\nconst constantData = {\n pageSize: 5,\n jobLorProfileLevel: 8,\n empty: \"\",\n spaceBar: \" \",\n levelName: \"level\",\n profileStatusName: \"profileStatus\",\n skillCodeLevelName: \"skillCodeLevel\",\n desirableName: \"Desirable\",\n requiredName: \"Required\",\n jobTypeList: [\"Current\", \"Future\"],\n fullName: \"fullName\",\n categoryName: \"category\",\n skillName: \"skill\",\n categoryTitleName: \"Category\",\n subCategoryName: \"subCategory\",\n endorsedName: \"Endorsed\",\n competencyName: \"Competency\",\n capabilityName: \"capability\",\n lorCodeName: \"lorCode\",\n proficiencyName: \"Proficiency\",\n knowledgeName: \"Knowledge\",\n genericAttributeName: \"GenericAttribute\",\n personName: \"Person\",\n keyResult: [\"haveSkill\", \"needSkill\"],\n styles: {\n maxWidth: \"auto\",\n },\n colors: {\n type1: \"#3C65C2\",\n type2: \"#EEF2FF\",\n type3: \"#69849c\",\n type4: \"#a5b8c8\",\n },\n characters: {\n m: \"M\",\n n: \"N\",\n p: \"P\",\n },\n};\n\n// Helper function to deep clone data using JSON methods\n// This works for simple data structures without circular references or functions\nconst deepClone = (data) => JSON.parse(JSON.stringify(data));\n\n// Returns a new array containing only the unique elements from the provided `dataArray` based on a custom comparison function.\nconst distinctArray = (dataArray, func) => {\n // `seen` will store a unique \"hash\" for each item we've already encountered.\n const seen = new Set();\n\n // The array to accumulate unique items from `dataArray`.\n const uniqueArray = [];\n\n dataArray.forEach((item) => {\n // Create a unique \"hash\" for the current item based on the comparator function.\n // This \"hash\" is simply a string representation of all items considered equal to the current item.\n const hash = uniqueArray.some((itemIn) => func(item, itemIn));\n\n // If we haven't seen this unique \"hash\" before, add the item to our unique array.\n if (!hash) {\n seen.add(hash);\n uniqueArray.push(item);\n }\n });\n\n return uniqueArray;\n};\n\nconst SkillsWeNeed = () => {\n // Data\n const [data, setData] = useState([]);\n const [genericAttributeData, setGenericAttributeData] = useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n\n // Selection\n const [selectedLorSkill, setSelectedLorSkill] = useState([]);\n const [selectedGeneric, setSelectedGeneric] = useState([]);\n const [selectedRequirement, setSelectedRequirement] = useState([]);\n const [selectedType, setSelectedType] = useState([]);\n\n const processDetail = (data, categories) =>\n data.map((element) => {\n let findCategory = categories?.find(\n (item) => item.name === element?.category\n );\n if (!findCategory) {\n findCategory = {\n colour: constantData.colors.type3,\n description: constantData.empty,\n };\n }\n let findSubCategory = findCategory?.subCategories?.find(\n (item) => item.name === element?.subCategory\n );\n if (!findSubCategory) {\n findSubCategory = {\n colour: constantData.colors.type4,\n description: constantData.empty,\n };\n }\n const findSkill = findSubCategory?.skills?.find(\n (item) => item.name === element?.skill\n );\n const findLevel = findSkill?.levels?.find(\n (item) => item.level === element?.level\n );\n\n return {\n categoryDetail: {\n colour: findCategory?.colour,\n description: findCategory?.description,\n },\n subCategoryDetail: {\n skillColour: findSubCategory?.skillColour,\n colour: findSubCategory?.colour,\n description: findSubCategory?.description,\n },\n skillDetail: {\n description: findSkill?.description,\n },\n levelDetail: {\n description: findLevel?.description,\n },\n ...element,\n };\n });\n\n const processGenericAttribute = (data) => {\n // Generic\n // For the generic category of needSkill, we transform the data\n // by mapping over the jobLor property and appending jobName and jobRef to each item\n let tempMapJob = data\n .map((item) =>\n item.jobLor.map((jobLor) => ({\n ...jobLor,\n jobName: item.jobName,\n jobRef: item.jobRef,\n need: item.need,\n }))\n )\n .flat(2)\n .map((item) => ({\n jobName: item.jobName,\n jobRef: item.jobRef,\n lor: item.lor,\n lorCode: item.lorCode,\n level: item.level,\n need: item.need,\n }));\n\n return distinctArray(\n tempMapJob,\n (itemA, itemB) => JSON.stringify(itemA) === JSON.stringify(itemB)\n );\n };\n\n // Processes data related to the skills needed by people.\n const processData = async (personPeople, categories) => {\n // For each person, fetch their job matches concurrently.\n // Flatten the resulting array three levels deep.\n const managedPeopleJobMatches = (\n await Promise.all(\n personPeople.map((item) =>\n JobService.getManagedPeopleJobMatches(item.personB.email)\n )\n )\n ).flat(3);\n\n // Filter out jobs that are not part of the predefined job type list.\n const filteredJobs = managedPeopleJobMatches.filter((item) =>\n constantData.jobTypeList.includes(item.jobType)\n );\n\n // Process the job details for the filtered jobs.\n const jobDetails = await processJobDetailData(categories, filteredJobs);\n\n // Reduce the job details to create a list of processed jobs, mapping each job's stringVal\n // to its respective 'need' value.\n const processedJobs = jobDetails.reduce((a, b) => {\n if (b.stringVal === constantData.characters.m) {\n b.need = constantData.requiredName;\n // Add the processed job to the accumulator.\n a.push(b);\n } else if (b.stringVal === constantData.characters.p) {\n b.need = constantData.desirableName;\n // Add the processed job to the accumulator.\n a.push(b);\n } else {\n b.need = constantData.empty;\n // Add the processed job to the accumulator.\n a.push(b);\n }\n return a;\n }, []);\n\n const processedData = processDetail(processedJobs, categories);\n const genericAttributeData = processGenericAttribute(processedData);\n // Update the state or storage with the processed jobs.\n setData(processedData);\n setGenericAttributeData(genericAttributeData);\n };\n\n // Processes the job details for a given list of items.\n // For each item, it fetches the associated job, its skill profiles, and its lor profiles.\n const processJobDetailData = async (categories, items) => {\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n // For each item, create a set of promises to fetch the relevant job details.\n const jobDetailsPromises = items.map(async (item) => {\n // Use Promise.all to fetch the job, its skill profiles, and lor profiles concurrently for the given jobId.\n const [job, jobSkillProfiles, jobLorProfiles] = await Promise.all([\n JobService.getJob(item.jobId),\n JobService.getJobSkillProfiles(item.jobId),\n JobService.getJobLorProfiles(\n item.jobId\n ),\n ]);\n\n // Enrich each jobSkillProfile with additional job details (name, reference, lor profiles).\n return jobSkillProfiles.filter(it => availableSkillCodes.includes(it.skillCode)).map((profile) => {\n profile.jobName = job.name;\n profile.jobRef = job.reference;\n profile.jobLor = jobLorProfiles;\n return profile;\n });\n });\n\n // Resolve all the promises and flatten the resulting arrays to a single array.\n return (await Promise.all(jobDetailsPromises)).flat(2);\n };\n\n // Processes all relevant data for skills.\n // This function fetches a set of initial data, and then prepares and processes\n // two types of skill-related data: haveSkill and needSkill.\n const processAllData = async () => {\n try {\n // Concurrently fetch multiple sets of data using Promise.all for improved performance.\n const [personPeople, categories] = await Promise.all([\n PersonService.getPersonMyPeoples(),\n\n CategoryAPI.getCategories(),\n ]);\n\n // Use the original personPeople data for processing \"needSkill\" data since no modifications are needed.\n const prepareDataNeedSkill = personPeople;\n\n await processData(prepareDataNeedSkill, categories);\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n const generateTableSkillCategory = (data) => {\n // Destructure for easier access.\n const { categoryName } = constantData;\n\n // Use a single reduce function to categorize and structure the data.\n const groupedData = data.reduce((acc, item) => {\n // Extract keys for categorization.\n const categoryKey = item[categoryName];\n\n // If the category does not exist, initialize it.\n if (!acc[categoryKey]) {\n acc[categoryKey] = {\n values: [],\n };\n }\n\n // Push the item into the category values.\n acc[categoryKey].values.push(item);\n return acc;\n }, {});\n\n // Extract keys from groupedData\n const groupedKeys = Object.keys(groupedData);\n\n let orderedCats = OrderCategory.map((key) =>\n groupedKeys.find((e) => e.name === key)\n );\n\n let orderedKeys = [];\n if (orderedCats.filter(it => it == undefined).length > 0){\n orderedKeys = [...groupedKeys];\n }else{\n //Filter and reorder the keys based on OrderCategory\n orderedKeys = OrderCategory.filter((key) =>\n groupedKeys.includes(key)\n );\n } \n\n // Construct the ordered grouped data\n const orderedGroupedData = orderedKeys.map((key) => [\n key,\n groupedData[key],\n ]);\n\n const resultData = {\n name: constantData.categoryTitleName,\n meta: { levelResponsibility: LevelResponsibility },\n description: constantData.empty,\n styles: {\n tableHeaderColor: constantData.colors.type1,\n tableHeaderBackgroundColor: constantData.colors.type2,\n },\n subCategories: orderedGroupedData.map(\n ([categoryKey, { values: categoryValues }]) => {\n const { categoryDetail, subCategoryDetail } = categoryValues[0];\n return {\n name: categoryKey,\n meta: { levelResponsibility: LevelResponsibility },\n description: categoryDetail.description,\n styles: {\n cateColour: categoryDetail.colour,\n skillColour: subCategoryDetail.skillColour,\n colour: subCategoryDetail.colour || \"\",\n },\n people: categoryValues,\n };\n }\n ),\n };\n\n return resultData;\n };\n\n // Generates bar data for given input.\n const generateBar = (data) => {\n // Use reduce to create an object where the keys are the skillCodeLevel\n // and the values are their respective counts.\n const groupedData = data.reduce((acc, item) => {\n const skillCodeLevel = `${item.lorCode} - ${item.level}`;\n\n // If the skillCodeLevel doesn't exist in the accumulator, initialize it.\n if (!acc[skillCodeLevel]) {\n acc[skillCodeLevel] = 0;\n }\n\n // Increment the count for the skillCodeLevel.\n acc[skillCodeLevel]++;\n\n return acc;\n }, {});\n\n // Convert the grouped data object to an array of {label, value} objects.\n const aggregatedData = Object.entries(groupedData).map(\n ([label, value]) => ({\n label,\n value,\n })\n );\n\n // Sort the data in descending order based on their values (counts).\n aggregatedData.sort((a, b) => b.value - a.value);\n\n return {\n maxCount: Math.max(...aggregatedData.map((item) => item.value)) + 1, // Calculate the maximum count\n source: aggregatedData,\n };\n };\n\n const generateTreeSelect = (data, name) =>\n // Using Object.entries to get both key and value of each entry in the data object\n Object.entries(data)\n .map(([category, itemsArray], categoryIdx) => {\n // Generating a Set to deduplicate the values based on the 'name' property\n // Then spread the Set back into an array for easy mapping\n const uniqueValues = [...new Set(itemsArray.map((item) => item[name]))];\n const rootData = JSON.stringify({\n isRoot: true,\n value: category,\n });\n return {\n title: category,\n value: rootData,\n key: rootData,\n\n // For each unique value, we map it to generate the 'children' array\n children: uniqueValues\n .map((uniqueValue, valueIdx) => {\n const childData = JSON.stringify({\n isRoot: false,\n value: uniqueValue,\n });\n return {\n // Fetching the 'text' property directly from the original itemsArray for each child\n title: itemsArray[valueIdx].text,\n value: childData,\n key: childData,\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title));\n\n // Filter Level of Skill Have\n const optionLorSkillLevel = useMemo(() => {\n // Exit early if there's no data to process.\n if (data.length === 0) return [];\n\n // Transform\n const combinedSkills = [...data].map((item) => ({\n skillCode: `${item.skillCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.skillCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.skillCode === itemB.skillCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n \"skillCode\"\n );\n }, [data]);\n\n // Filter Level of Generic Attribute Have\n const optionGenericAttribute = useMemo(() => {\n // Exit early if there's no data to process.\n if (genericAttributeData.length === 0) return [];\n\n // Transform\n const combinedSkills = [...genericAttributeData].map((item) => ({\n lorCode: `${item.lorCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.lorCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.lorCode === itemB.lorCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n constantData.lorCodeName\n );\n }, [genericAttributeData]);\n\n // Filter by Requirement Name\n const optionRequirement = useMemo(() => {\n if (data.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n data,\n (itemA, itemB) => itemA.jobName === itemB.jobName\n );\n\n return [\n ...new Set(\n uniqueSkills.map((item) => ({\n label: item.jobName,\n value: item.jobName,\n }))\n ),\n ].sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Filter by Requirement Type\n const optionType = useMemo(() => {\n if (data.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n data,\n (itemA, itemB) => itemA.need === itemB.need\n );\n\n return [\n ...new Set(\n uniqueSkills.map((item) => ({\n label: item.need,\n value: item.need,\n }))\n ),\n ].sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Data Filter => Ref By Data\n const dataFilter = useMemo(() => {\n let resultData = [];\n\n if (data.length) {\n resultData = data.filter((item) => {\n // If selectedRequirement is populated and the condition is not met, filter out\n if (\n selectedRequirement.length > 0 &&\n !selectedRequirement.includes(item.jobName)\n ) {\n return false;\n }\n\n // If selectedType is populated and the condition is not met, filter out\n if (selectedType.length > 0 && !selectedType.includes(item.need)) {\n return false;\n }\n\n // If selectedLorSkill is populated and the condition is not met, filter out\n if (selectedLorSkill.length > 0) {\n const isFound = selectedLorSkill\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.skillCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n\n return resultData;\n }, [data, selectedLorSkill, selectedRequirement, selectedType]);\n\n // Data Filter => Ref By Data\n const dataFilterGenericAttribute = useMemo(() => {\n let resultData = [];\n\n if (genericAttributeData.length) {\n resultData = genericAttributeData.filter((item) => {\n // If selectedRequirement is populated and the condition is not met, filter out\n if (\n selectedRequirement.length > 0 &&\n !selectedRequirement.includes(item.jobName)\n ) {\n return false;\n }\n\n // If selectedType is populated and the condition is not met, filter out\n if (selectedType.length > 0 && !selectedType.includes(item.need)) {\n return false;\n }\n\n // If selectedGeneric is populated and the condition is not met, filter out\n if (selectedGeneric.length > 0) {\n const isFound = selectedGeneric\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.lorCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n\n return resultData;\n }, [\n genericAttributeData,\n selectedGeneric,\n selectedRequirement,\n selectedType,\n ]);\n\n const dashboardTableSkillCategory = useMemo(\n () => generateTableSkillCategory(dataFilter) ?? {},\n [dataFilter]\n ); // Recompute only if dataFilter changes\n\n const dashboardTableGeneric = useMemo(\n () =>\n dataFilterGenericAttribute.length > 0\n ? { generic: deepClone(dataFilterGenericAttribute) }\n : {},\n [dataFilterGenericAttribute]\n );\n\n const dashboardTableProfessional = useMemo(\n () =>\n dataFilter.length > 0 ? { professional: deepClone(dataFilter) } : {},\n [dataFilter]\n );\n\n // Use useMemo to ensure we only recompute the data when `dataFilter` changes.\n const dashboardBar = useMemo(\n () =>\n dataFilterGenericAttribute.length > 0\n ? generateBar(dataFilterGenericAttribute)\n : {},\n [dataFilterGenericAttribute]\n );\n\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []);\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n Generic Attributes\n \n
\n \n
\n
\n
\n \n \n \n \n \n \n
\n );\n};\n\nexport { SkillsWeNeed };\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag, Typography, Divider } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n }\n @media (max-width: 760px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst SkillsWeHaveFilters = ({\n objName,\n objProfile,\n objLorSkill,\n objGeneric,\n}) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [objName, objProfile, objLorSkill, objGeneric].some(\n (obj) => obj?.value?.length > 0\n );\n }, [\n objName?.value,\n objProfile?.value,\n objLorSkill?.value,\n objGeneric?.value,\n ]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objProfile, \"magenta\", onCloseClicked, true)}\n {renderTags(objName, \"red\", onCloseClicked)}\n {renderTags(objLorSkill, \"geekblue\", onCloseClicked, true)}\n {renderTags(objGeneric, \"purple\", onCloseClicked, true)}\n \n \n \n {/* Rest of the JSX structure where you'll use your CustomSelect */}\n \n \n \n \n \n \n Filter only the skills\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n Filter only the generic attributes\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Filter both\n \n \n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default SkillsWeHaveFilters;\n","import CategoryAPI from \"../../../../common/api/service/CategoryService\";\nimport PersonService from \"../../../../common/api/service/PersonService\";\nimport ProfileService from \"../../../../common/api/service/ProfileService\";\nimport { Bar } from \"../../components/charts\";\nimport { LevelResponsibility } from \"../../components/config/mockdata/levels\";\nimport { OrderCategory } from \"../../components/config/mockdata/order\";\nimport SkillsWeHaveFilters from \"../../components/filters/skillswehave\";\nimport {\n SkillsWeHaveNeedTable,\n SkillsWeHaveNeedTableNormal,\n} from \"../../components/table\";\nimport { Typography } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\n// styled components\nconst Container = styled.div`\n padding: 0px 30px 0px 30px;\n .mt-40 {\n margin-top: 40px;\n }\n`;\n\nconst ContainerBorder = styled.div`\n padding: 10px;\n border-width: 1px;\n border-style: solid;\n border-color: #dddddd;\n border-radius: 14px;\n`;\n\nconst ContainerContent = styled.div`\n padding: 20px 30px;\n`;\n\nconst ContainerDefault = styled.div`\n padding: 0px 0px 20px 0px;\n`;\n\n// Constant Data\nconst constantData = {\n pageSize: 5,\n jobLorProfileLevel: 8,\n empty: \"\",\n spaceBar: \" \",\n levelName: \"level\",\n profileStatusName: \"profileStatus\",\n skillCodeLevelName: \"skillCodeLevel\",\n desirableName: \"Desirable\",\n requiredName: \"Required\",\n jobTypeList: [\"Current\", \"Future\"],\n fullName: \"fullName\",\n categoryName: \"category\",\n skillName: \"skill\",\n categoryTitleName: \"Category\",\n subCategoryName: \"subCategory\",\n endorsedName: \"Endorsed\",\n competencyName: \"Competency\",\n capabilityName: \"capability\",\n lorCodeName: \"lorCode\",\n proficiencyName: \"Proficiency\",\n knowledgeName: \"Knowledge\",\n genericAttributeName: \"GenericAttribute\",\n personName: \"Person\",\n keyResult: [\"haveSkill\", \"needSkill\"],\n styles: {\n maxWidth: \"auto\",\n },\n colors: {\n type1: \"#3C65C2\",\n type2: \"#EEF2FF\",\n type3: \"#69849c\",\n type4: \"#a5b8c8\",\n },\n characters: {\n m: \"M\",\n n: \"N\",\n p: \"P\",\n },\n};\n\n// Helper function to deep clone data using JSON methods\n// This works for simple data structures without circular references or functions\nconst deepClone = (data) => JSON.parse(JSON.stringify(data));\n\n// Returns a new array containing only the unique elements from the provided `dataArray` based on a custom comparison function.\nconst distinctArray = (dataArray, func) => {\n // `seen` will store a unique \"hash\" for each item we've already encountered.\n const seen = new Set();\n\n // The array to accumulate unique items from `dataArray`.\n const uniqueArray = [];\n\n dataArray.forEach((item) => {\n // Create a unique \"hash\" for the current item based on the comparator function.\n // This \"hash\" is simply a string representation of all items considered equal to the current item.\n const hash = uniqueArray.some((itemIn) => func(item, itemIn));\n\n // If we haven't seen this unique \"hash\" before, add the item to our unique array.\n if (!hash) {\n seen.add(hash);\n uniqueArray.push(item);\n }\n });\n\n return uniqueArray;\n};\n\nconst SkillsWeHave = () => {\n // Data\n const [data, setData] = useState([]);\n const [genericAttributeData, setGenericAttributeData] = useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n\n // Selection\n const [selectedLorSkill, setSelectedLorSkill] = useState([]);\n const [selectedGeneric, setSelectedGeneric] = useState([]);\n const [selectedName, setSelectedName] = useState([]);\n const [selectedProfile, setSelectedProfile] = useState([]);\n\n // Processes the data of a person for a given item and its associated versions.\n const processPersonData = async (item, versions, categories) => {\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n // Creates a copy of personB's accounts and sorts them in descending order based on the creation date.\n // Then, selects the most recent account.\n const account = item.personB.accounts\n .slice()\n .sort((a, b) => new Date(b.createdOn) - new Date(a.createdOn))[0];\n\n // If an account exists, creates a copy of its approvals, sorts them in descending order based on the approval date,\n // and then selects the most recent approval.\n const approver =\n account &&\n account.approvals\n .slice()\n .sort((a, b) => new Date(b.approvedOn) - new Date(a.approvedOn))[0];\n\n // Retrieves skillProfiles from the item. If they're not available, and a version exists,\n // fetches them using the ProfileService. If none of these conditions are met, defaults to an empty array.\n const skillProfiles =\n item.skillProfile ||\n (versions.length > 0 &&\n (await ProfileService.getManagedPeopleSkillPofiles(\n item.personB.email,\n versions[0].sfiaVersion,\n versions[0].version\n ))) ||\n [];\n\n // Returns the processed data.\n return {\n approver,\n profiles: processDetail(skillProfiles.filter(it => availableSkillCodes.includes(it.skillCode)), categories),\n name: constantData.personName,\n };\n };\n\n //Processes generic attribute data for a given item and its versions.z`\n const processGenericAttribute = async (item, versions, categories) => {\n // Sorts the accounts of personB based on the creation date.\n const account = item.personB.accounts.sort(\n (a, b) => new Date(a.createdOn) - new Date(b.createdOn)\n );\n\n // Sorts the approvals of the oldest account based on the approval date.\n const sortedApprovals = account[0].approvals.sort(\n (a, b) => new Date(a.approvedOn) - new Date(b.approvedOn)\n );\n\n // Gets the first (oldest) approver if available, otherwise null.\n const approver = sortedApprovals.length > 0 ? sortedApprovals[0] : null;\n\n // Retrieves lorProfiles from the item or fetches them if not available and a version exists.\n const lorProfiles =\n item.lorProfile ||\n (versions.length > 0\n ? await ProfileService.getManagedPeopleLorPofiles(\n item.personB.email,\n versions[0].sfiaVersion,\n versions[0].version\n )\n : []);\n\n // Returns the processed data.\n return {\n approver,\n profiles: processDetail(lorProfiles, categories),\n name: constantData.genericAttributeName,\n };\n };\n\n // Processes data related to people who possess certain skills.\n const processData = async (personPeople, categories) => {\n // Initialize arrays to store processed data.\n const personData = [];\n const genericAttributeData = [];\n\n // Map over each person item and process their data concurrently.\n await Promise.all(\n personPeople.map(async (item) => {\n // Get the profile versions of the current person.\n // If not provided, fetch them using the ProfileService.\n const versions =\n item.profileVersion ||\n (await ProfileService.getManagedPeopleProfileVersions(\n item.personB.email\n ));\n\n // Concurrently fetch and process person data and generic attribute data.\n const listData = await Promise.all([\n processPersonData(item, versions, categories),\n processGenericAttribute(item, versions, categories),\n ]);\n\n // For each processed data value, transform and filter the profiles.\n for (const value of listData) {\n const mapData = value.profiles\n .map((_) => ({\n ..._,\n // Append full name and email details to each profile.\n fullName: `${item.personB.firstName} ${item.personB.lastName}`,\n email: item.personB.email,\n ...value.approver,\n // Set the profile status based on its type and approver details.\n profileStatus: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? `${_.profileType} (Approved)`\n : `${_.profileType} (Not Approved)`\n : _.profileType,\n isApproved: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? true\n : false\n : null,\n approvedText: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? \"Approved\"\n : \"Not Approved\"\n : null,\n // Determine the capability based on stringVal.\n capability:\n _.stringVal === constantData.characters.m\n ? constantData.competencyName\n : _.stringVal === constantData.characters.p\n ? constantData.proficiencyName\n : constantData.knowledgeName,\n }))\n .filter((_) => _.stringVal !== constantData.characters.n);\n\n // If the processed data name matches \"personName\", push to personData, else to genericAttributeData.\n if (value.name === constantData.personName) {\n personData.push(mapData);\n } else {\n genericAttributeData.push(mapData);\n }\n }\n })\n );\n\n // Flatten and set the processed data to their respective states or storage locations.\n setData(personData.flat(2));\n setGenericAttributeData(genericAttributeData.flat(2));\n };\n\n const processDetail = (data, categories) =>\n data.map((element) => {\n let findCategory = categories?.find(\n (item) => item.name === element?.category\n );\n if (!findCategory) {\n findCategory = {\n colour: constantData.colors.type3,\n description: constantData.empty,\n };\n }\n let findSubCategory = findCategory?.subCategories?.find(\n (item) => item.name === element?.subCategory\n );\n if (!findSubCategory) {\n findSubCategory = {\n colour: constantData.colors.type4,\n description: constantData.empty,\n };\n }\n const findSkill = findSubCategory?.skills?.find(\n (item) => item.name === element?.skill\n );\n const findLevel = findSkill?.levels?.find(\n (item) => item.level === element?.level\n );\n\n return {\n categoryDetail: {\n colour: findCategory?.colour,\n description: findCategory?.description,\n },\n subCategoryDetail: {\n skillColour: findSubCategory?.skillColour,\n colour: findSubCategory?.colour,\n description: findSubCategory?.description,\n },\n skillDetail: {\n description: findSkill?.description,\n },\n levelDetail: {\n description: findLevel?.description,\n },\n ...element,\n };\n });\n\n // Processes all relevant data for skills.\n // This function fetches a set of initial data, and then prepares and processes\n // two types of skill-related data: haveSkill and needSkill.\n const processAllData = async () => {\n try {\n // Concurrently fetch multiple sets of data using Promise.all for improved performance.\n const [\n personPeople,\n personProfile,\n profileVersion,\n skillProfile,\n lorProfile,\n categories,\n ] = await Promise.all([\n PersonService.getPersonMyPeoples(),\n PersonService.getPersonMyProfile(),\n ProfileService.getMyProfileVersions(),\n ProfileService.getMySkillPofiles(),\n ProfileService.getMyLorPofiles(),\n CategoryAPI.getCategories(),\n ]);\n\n // Construct a new data entry based on the fetched personal profile and related data.\n const newDataEntry = {\n personB: personProfile,\n profileVersion,\n skillProfile,\n lorProfile,\n };\n\n // Append the new data entry to the existing list of personPeople for processing \"haveSkill\" data.\n const prepareDataHaveSkill = [...personPeople, newDataEntry];\n\n await processData(prepareDataHaveSkill, categories);\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n const generateTableSkillCategory = (data) => {\n // Destructure for easier access.\n const { categoryName } = constantData;\n\n // Use a single reduce function to categorize and structure the data.\n const groupedData = data.reduce((acc, item) => {\n // Extract keys for categorization.\n const categoryKey = item[categoryName];\n\n // If the category does not exist, initialize it.\n if (!acc[categoryKey]) {\n acc[categoryKey] = {\n values: [],\n };\n }\n\n // Push the item into the category values.\n acc[categoryKey].values.push(item);\n return acc;\n }, {});\n\n // Extract keys from groupedData\n const groupedKeys = Object.keys(groupedData);\n\n let orderedCats = OrderCategory.map((key) =>\n groupedKeys.find((e) => e.name === key)\n );\n\n let orderedKeys = [];\n if (orderedCats.filter(it => it == undefined).length > 0){\n orderedKeys = [...groupedKeys];\n }else{\n //Filter and reorder the keys based on OrderCategory\n orderedKeys = OrderCategory.filter((key) =>\n groupedKeys.includes(key)\n );\n }\n\n // Construct the ordered grouped data\n const orderedGroupedData = orderedKeys.map((key) => [\n key,\n groupedData[key],\n ]);\n\n const resultData = {\n name: constantData.categoryTitleName,\n meta: { levelResponsibility: LevelResponsibility },\n description: constantData.empty,\n styles: {\n tableHeaderColor: constantData.colors.type1,\n tableHeaderBackgroundColor: constantData.colors.type2,\n },\n subCategories: orderedGroupedData.map(\n ([categoryKey, { values: categoryValues }]) => {\n const { categoryDetail, subCategoryDetail } = categoryValues[0];\n return {\n name: categoryKey,\n meta: { levelResponsibility: LevelResponsibility },\n description: categoryDetail.description,\n styles: {\n cateColour: categoryDetail.colour,\n skillColour: subCategoryDetail.skillColour,\n colour: subCategoryDetail.colour || \"\",\n },\n people: categoryValues,\n };\n }\n ),\n };\n\n return resultData;\n };\n\n // Generates bar data for given input.\n const generateBar = (data) => {\n // Use reduce to create an object where the keys are the skillCodeLevel\n // and the values are their respective counts.\n const groupedData = data.reduce((acc, item) => {\n const skillCodeLevel = `${item.lorCode} - ${item.level}`;\n\n // If the skillCodeLevel doesn't exist in the accumulator, initialize it.\n if (!acc[skillCodeLevel]) {\n acc[skillCodeLevel] = 0;\n }\n\n // Increment the count for the skillCodeLevel.\n acc[skillCodeLevel]++;\n\n return acc;\n }, {});\n\n // Convert the grouped data object to an array of {label, value} objects.\n const aggregatedData = Object.entries(groupedData).map(\n ([label, value]) => ({\n label,\n value,\n })\n );\n\n // Sort the data in descending order based on their values (counts).\n aggregatedData.sort((a, b) => b.value - a.value);\n\n return {\n maxCount: Math.max(...aggregatedData.map((item) => item.value)) + 1, // Calculate the maximum count\n source: aggregatedData,\n };\n };\n\n const generateTreeSelect = (data, name) =>\n // Using Object.entries to get both key and value of each entry in the data object\n Object.entries(data)\n .map(([category, itemsArray], categoryIdx) => {\n // Generating a Set to deduplicate the values based on the 'name' property\n // Then spread the Set back into an array for easy mapping\n const uniqueValues = [...new Set(itemsArray.map((item) => item[name]))];\n const rootData = JSON.stringify({\n isRoot: true,\n value: category,\n });\n return {\n title: category,\n value: rootData,\n key: rootData,\n\n // For each unique value, we map it to generate the 'children' array\n children: uniqueValues\n .map((uniqueValue, valueIdx) => {\n const childData = JSON.stringify({\n isRoot: false,\n value: uniqueValue,\n });\n return {\n // Fetching the 'text' property directly from the original itemsArray for each child\n title: itemsArray[valueIdx].text,\n value: childData,\n key: childData,\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title));\n\n // Filter by Person Name\n const optionsName = useMemo(() => {\n if (data.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n data,\n (itemA, itemB) => itemA.fullName === itemB.fullName\n );\n\n const groupedData = groupBy(uniqueSkills, constantData.fullName);\n\n return Object.keys(groupedData)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Filter Profile Status\n const optionProfileStatus = useMemo(() => {\n if (data.length === 0) return [];\n\n const temp = data.map((item) => ({\n capability: `${item.capability} (${item.approvedText})`,\n profileStatus: item.profileStatus,\n text: `${item.capability} (${item.approvedText})`,\n }));\n // Deduplicate the combined array based on the capability.\n const uniqueArray = distinctArray(\n temp,\n (itemA, itemB) => itemA.capability === itemB.capability\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueArray, constantData.profileStatusName),\n constantData.capabilityName\n );\n }, [data]);\n\n // Filter Level of Skill Have\n const optionLorSkillLevel = useMemo(() => {\n // Exit early if there's no data to process.\n if (data.length === 0) return [];\n\n // Transform\n const combinedSkills = [...data].map((item) => ({\n skillCode: `${item.skillCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.skillCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.skillCode === itemB.skillCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n \"skillCode\"\n );\n }, [data]);\n\n // Filter Level of Generic Attribute Have\n const optionGenericAttribute = useMemo(() => {\n // Exit early if there's no data to process.\n if (genericAttributeData.length === 0) return [];\n\n // Transform\n const combinedSkills = [...genericAttributeData].map((item) => ({\n lorCode: `${item.lorCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.lorCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.lorCode === itemB.lorCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n constantData.lorCodeName\n );\n }, [genericAttributeData]);\n\n // Data Filter => Ref By Data\n const dataFilter = useMemo(() => {\n let resultData = [];\n\n if (data.length) {\n resultData = data.filter((item) => {\n // If selectedName is populated and the condition is not met, filter out\n if (selectedName.length > 0 && !selectedName.includes(item.fullName)) {\n return false;\n }\n\n // If selectedProfile is populated and the condition is not met, filter out\n if (selectedProfile.length > 0) {\n const isFound = selectedProfile\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return item.profileStatus === _.value;\n } else {\n return `${item.capability} (${item.approvedText})` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If selectedLorSkill is populated and the condition is not met, filter out\n if (selectedLorSkill.length > 0) {\n const isFound = selectedLorSkill\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.skillCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n\n return resultData;\n }, [data, selectedLorSkill, selectedName, selectedProfile]);\n\n // Data Filter => Ref By Data\n const dataFilterGenericAttribute = useMemo(() => {\n let resultData = [];\n\n if (genericAttributeData.length) {\n resultData = genericAttributeData.filter((item) => {\n // If selectedName is populated and the condition is not met, filter out\n if (selectedName.length > 0 && !selectedName.includes(item.fullName)) {\n return false;\n }\n\n // If selectedGeneric is populated and the condition is not met, filter out\n if (selectedGeneric.length > 0) {\n const isFound = selectedGeneric\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.lorCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n\n return resultData;\n }, [genericAttributeData, selectedGeneric, selectedName]);\n\n const dashboardTableSkillCategory = useMemo(\n () => generateTableSkillCategory(dataFilter) ?? {},\n [dataFilter]\n ); // Recompute only if dataFilter changes\n\n const dashboardTableGeneric = useMemo(\n () =>\n dataFilterGenericAttribute.length > 0\n ? { generic: deepClone(dataFilterGenericAttribute) }\n : {},\n [dataFilterGenericAttribute]\n );\n\n const dashboardTableProfessional = useMemo(\n () =>\n dataFilter.length > 0 ? { professional: deepClone(dataFilter) } : {},\n [dataFilter]\n );\n\n // Use useMemo to ensure we only recompute the data when `dataFilter` changes.\n const dashboardBar = useMemo(\n () =>\n dataFilterGenericAttribute.length > 0\n ? generateBar(dataFilterGenericAttribute)\n : {},\n [dataFilterGenericAttribute]\n );\n\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []);\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n Generic Attributes\n \n
\n \n
\n
\n
\n \n \n \n \n \n \n
\n );\n};\n\nexport { SkillsWeHave };\n","import { UpOutlined, UserOutlined, SolutionOutlined } from \"@ant-design/icons\";\nimport { Col, Row, Typography, Button, Badge, Empty } from \"antd\";\nimport React, { useEffect } from \"react\";\nimport { Tree, TreeNode } from \"react-organizational-chart\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst { Title, Text } = Typography;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nconst WarperNode = styled.div`\n display: inline-block;\n justify-content: space-between;\n\n padding: 20px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 10px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px #dcdcdc;\n\n backdrop-filter: blur(15px);\n\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n`;\n\nconst WarperIconExpand = styled.div`\n margin-bottom: -15px;\n margin-top: 15px;\n`;\n\nconst WrapperTree = styled.div`\n padding-top: 30px;\n padding-bottom: 30px;\n\n .rotate-180 {\n transform: rotate(180deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n`;\n// Utility function to get expanded data from a node\nconst getExpandedData = (node) => ({\n isExpand: node?.isExpand ?? false,\n key: node.label,\n});\n\nconst renderNode = (item, func, listExpand) => {\n // Check if the item has children for multiple conditions\n const hasChildren = item.children.length > 0;\n\n // Find the expand data for the current item\n const expandData = listExpand?.data?.find(\n (expand) => expand.key === item.label\n );\n\n return (\n \n \n {/* Render the first column with Badge and Button if item has children */}\n {hasChildren && (\n \n
\n \n func(item, expandData)}\n type=\"dashed\"\n shape=\"circle\"\n icon={item.isRoot ? : }\n />\n \n
\n \n )}\n\n {/* Render the label of the node */}\n \n
\n {hasChildren ? (\n {item.label}\n ) : (\n {item.label}\n )}\n
\n {/* Display number of children if applicable */}\n {hasChildren && expandData?.isExpand && (\n
\n {item.children.length} {item.isRoot ? \"Members\" : \"Skills\"}\n
\n )}\n \n \n\n {/* Display the expand/collapse icon if item has children */}\n {hasChildren && (\n \n func(item, expandData)}\n type=\"link\"\n shape=\"circle\"\n icon={\n \n }\n size=\"small\"\n />\n \n )}\n
\n );\n};\n\nconst renderTreeNode = (data, func, listExpand) => {\n if (data.children.length < 1) return null;\n\n // Determine if current data should be expanded or not\n const expandData = listExpand?.data?.find(\n (expand) => expand.key === data.label\n );\n if (expandData?.isExpand === false) return null;\n\n // Render each child as a TreeNode\n return data.children.map((item, index) => (\n \n {renderTreeNode(item, null, listExpand)}\n \n ));\n};\n\nconst OrganizationalChart = ({ data }) => {\n const [listExpand, setListExpand] = useImmer({ data: [] });\n\n // Toggle expand state for nodes\n const onExpandedClicked = (node, expandData) => {\n if (!node.children.length) return;\n\n setListExpand((draft) => {\n if (node.isRoot && expandData.isExpand) {\n draft.data.forEach((item) => (item.isExpand = !expandData.isExpand));\n } else {\n const found = draft.data.find((item) => item.key === expandData.key);\n if (found) {\n found.isExpand = !expandData.isExpand;\n }\n }\n });\n };\n\n // Initialize the expand states based on provided data\n useEffect(() => {\n if (data) {\n const tempListExpand = [\n getExpandedData(data),\n ...data.children.map(getExpandedData),\n ];\n setListExpand((draft) => {\n draft.data = tempListExpand;\n });\n }\n }, [data]);\n\n // If no data, render an empty component\n if (!data)\n return (\n (\n \n )}\n />\n );\n\n // Main organizational chart render\n return (\n
\n \n Our Team\n \n \n \n {renderTreeNode(data, onExpandedClicked, listExpand)}\n \n \n
\n );\n};\n\nexport default OrganizationalChart;\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n }\n @media (max-width: 760px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst TeamBuilderFilters = ({\n objAttribute,\n objCountry,\n objSkillLevel,\n objProfileStatus,\n objPosition,\n objSkill,\n}) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [\n objAttribute,\n objCountry,\n objSkillLevel,\n objProfileStatus,\n objPosition,\n objSkill,\n ].some((obj) => obj?.value?.length > 0);\n }, [\n objAttribute?.value,\n objCountry?.value,\n objSkillLevel?.value,\n objProfileStatus?.value,\n objPosition?.value,\n objSkill?.value,\n ]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objCountry, \"magenta\", onCloseClicked, true)}\n {renderTags(objPosition, \"red\", onCloseClicked)}\n {renderTags(objProfileStatus, \"green\", onCloseClicked, true)}\n {renderTags(objSkill, \"cyan\", onCloseClicked)}\n {renderTags(objSkillLevel, \"geekblue\", onCloseClicked, true)}\n {renderTags(objAttribute, \"purple\", onCloseClicked)}\n \n \n \n {/* Rest of the JSX structure where you'll use your CustomSelect */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TeamBuilderFilters;\n","import {\n CheckCircleOutlined,\n CloseCircleOutlined,\n EyeTwoTone,\n} from \"@ant-design/icons\";\nimport { Table, Tag, Tooltip, Typography, Empty, Row, Col, Button } from \"antd\";\nimport React, { useMemo, useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Text } = Typography;\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n colors: {\n type1: \"#69849c\",\n type2: \"#a5b8c8\",\n },\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst WrapperSlide = styled.div`\n margin-left: 20px;\n margin-right: 20px;\n transition: all 0.2s ease-in-out;\n transform-origin: left top;\n animation: slide 0.2s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n {title}\n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false\n) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text ?? \"-\"}\n \n ), // Centering the text\n});\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (isResponsive, func) => {\n const tempColum = [\n createCenteredTextColumn(\"Full Name\", \"fullName\", sortByText),\n createCenteredTextColumn(\"Email\", \"email\", sortByText, isResponsive),\n createCenteredTextColumn(\n \"Position as Entered\",\n \"position\",\n sortByText,\n isResponsive\n ),\n {\n title: createCenteredTextColumnHeader(\"Profile Status\"),\n dataIndex: \"profileStatus\",\n key: \"profileStatus\",\n sorter: (a, b) => sortByText(a.profileStatus, b.profileStatus),\n render: (text, record) => (\n
\n {record.profileType}\n \n ) : (\n \n )\n }\n color={record.isApproved ? \"success\" : \"error\"}\n >\n {record.isApproved ? \"Approved \" : \"Not Approved \"}\n \n
\n ),\n },\n createCenteredTextColumn(\"Capability\", \"capability\", sortByText),\n {\n title: createCenteredTextColumnHeader(\"Skill Level\"),\n dataIndex: \"skillLevel\",\n key: \"skillLevel\",\n sorter: (a, b) => sortByText(a.skillCode, b.skillCode),\n render: (text, record) => (\n
\n \n \n {record.skillCode} {record.level}\n \n \n
\n ),\n },\n {\n title: createCenteredTextColumnHeader(\"Country & Location\"),\n dataIndex: \"countryLocation\",\n key: \"countryLocation\",\n sorter: (a, b) =>\n sortByText(\n `${a.country} - ${a.location}`,\n `${b.country} - ${b.location}`\n ),\n render: (text, record) => (\n
\n \n {record.country} - {record.location}\n \n
\n ),\n },\n {\n title: createCenteredTextColumnHeader(\"Attributes\"),\n dataIndex: \"attributes\",\n key: \"attributes\",\n render: (text, record) => (\n
\n {record.attributes.length > 0 ? (\n \n \n \n ) : (\n \n No Attributes\n \n )}\n
\n ),\n },\n ];\n return tempColum;\n};\n\nconst TeamBuilderTable = ({\n data = [],\n pageSize = constantData.pageSize,\n isResponsive = false,\n}) => {\n const [expendedRowKeysRef, setExpendedRowKeysRef] = useState([]);\n // This function determines if a row is expandable based on the 'isSkill' attribute.\n const onRowExpandable = (record) => {\n // Directly return the boolean value of 'levels' attribute of the record.\n // If the attribute isn't present, it defaults to false.\n return record.attributes.length > 0;\n };\n\n const onExpandedRowRendered = (record) => {\n // Return the formatted table contained within a styled wrapper.\n return (\n \n \n \n \n Attributes:\n \n \n \n {record.attributes.map((item, index) => (\n {item}\n ))}\n \n \n \n );\n };\n\n const onExpandedClicked = (record) => {\n if (expendedRowKeysRef.some((item) => item === record.key)) {\n setExpendedRowKeysRef([]);\n } else {\n setExpendedRowKeysRef([record.key]);\n }\n };\n\n // Memoized calculation for professional table data\n const dataSource = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return transformDataSource(data);\n }, [data]);\n\n // Memoized calculation for professional table data\n const columns = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return getColumnDefinitions(isResponsive, onExpandedClicked);\n }, [data]);\n\n useEffect(() => setExpendedRowKeysRef([]), [data]);\n\n return (\n \n {dataSource.length > 0 ? (\n // Render the professional table\n <>\n Professional Skills\n \n \n \n \n ) : (\n }\n />\n )}\n \n );\n};\n\nexport default TeamBuilderTable;\n","import CategoryService from \"../../../../common/api/service/CategoryService\";\nimport PersonService from \"../../../../common/api/service/PersonService\";\nimport ProfileService from \"../../../../common/api/service/ProfileService\";\nimport OrganizationalChart from \"../../components/charts/organizational\";\nimport TeamBuilderFilters from \"../../components/filters/teambuilder\";\nimport TeamBuilderTable from \"../../components/table/teambuilder\";\nimport { groupBy } from \"lodash\";\nimport React, { useEffect, useState, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n padding: 10px 30px;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\nconst ContainerBorder = styled.div`\n padding: 10px;\n border-width: 1px;\n border-style: solid;\n border-color: #dddddd;\n border-radius: 14px;\n`;\n\n// Constant Data\nconst constantData = {\n noAttribute: \"(No Attribute)\",\n empty: \"\",\n pageSize: 5,\n fullName: \"fullName\",\n level: \"level\",\n location: \"location\",\n skillCode: \"skillCode\",\n country: \"country\",\n profileStatus: \"profileStatus\",\n endorsed: \"Endorsed\",\n capability: \"capability\",\n competency: \"Competency\",\n proficiency: \"Proficiency\",\n knowledge: \"Knowledge\",\n characters: {\n n: \"N\",\n m: \"M\",\n p: \"P\",\n },\n};\n\n// Returns a new array containing only the unique elements from the provided `dataArray` based on a custom comparison function.\nconst distinctArray = (dataArray, func) => {\n // `seen` will store a unique \"hash\" for each item we've already encountered.\n const seen = new Set();\n\n // The array to accumulate unique items from `dataArray`.\n const uniqueArray = [];\n\n dataArray.forEach((item) => {\n // Create a unique \"hash\" for the current item based on the comparator function.\n // This \"hash\" is simply a string representation of all items considered equal to the current item.\n const hash = uniqueArray.some((itemIn) => func(item, itemIn));\n\n // If we haven't seen this unique \"hash\" before, add the item to our unique array.\n if (!hash) {\n seen.add(hash);\n uniqueArray.push(item);\n }\n });\n\n return uniqueArray;\n};\n\nconst TeamBuilder = () => {\n // data\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n const [data, setData] = useState([]);\n\n // Selection\n const [selectedAttribute, setSelectedAttribute] = useState([]);\n const [selectedSkill, setSelectedSkill] = useState([]);\n const [selectedPosition, setSelectedPosition] = useState([]);\n const [selectedProfileStatus, setSelectedProfileStatus] = useState([]);\n const [selectedCountry, setSelectedCountry] = useState([]);\n const [selectedSkillLevel, setSelectedSkillLevel] = useState([]);\n\n /**\n * Fetch data from services.\n */\n const fetchData = async () => {\n const services = [\n CategoryService.getCategories(true),\n PersonService.getPersonMyPeoples(),\n PersonService.getPersonMyProfile(),\n ProfileService.getMyProfileVersions(),\n ProfileService.getMySkillPofiles(null, null, \"Self Assessed\"),\n ProfileService.getMySkillPofiles(null, null, \"Endorsed\"),\n ];\n\n return await Promise.all(services);\n };\n\n /**\n * Flatten categories to get skills.\n */\n const flattenDataCategories = (dataCategories) => {\n return dataCategories\n .flatMap((item) => item.subCategories)\n .flatMap((item) => item.skills);\n };\n\n /**\n * Get capability based on string value.\n */\n const getCapability = (stringVal) => {\n switch (stringVal) {\n case constantData.characters.m:\n return constantData.competency;\n case constantData.characters.p:\n return constantData.proficiency;\n default:\n return constantData.knowledge;\n }\n };\n\n // Derive sub-category details for a given value\n const getSubCategory = (value, dataCategories) => {\n // Logic to extract and return sub-category details\n let findCategory = dataCategories?.find(\n (item) => item.name === value?.category\n );\n if (!findCategory) {\n findCategory = {\n colour: constantData.empty,\n description: constantData.empty,\n };\n }\n let findSubCategory = findCategory?.subCategories?.find(\n (item) => item.name === value?.subCategory\n );\n if (!findSubCategory) {\n findSubCategory = {\n colour: constantData.empty,\n description: constantData.empty,\n };\n }\n return {\n skillColour: findSubCategory?.skillColour,\n colour: findSubCategory?.colour,\n description: findSubCategory?.description,\n };\n };\n\n // Map a single skill with its associated metadata\n const mapSkillWithDetails = (itemSkill, item, approver) => {\n // Logic to transform the given skill with additional details\n return {\n ...itemSkill,\n country: item.personB.country,\n location: item.personB.location,\n fullName: item.personB.firstName + \" \" + item.personB.lastName,\n position: item.personB.position,\n email: item.personB.email,\n ...approver,\n profileStatus: approver ? `${itemSkill.profileType} - Approved` : `${itemSkill.profileType} - Not Approved`,\n isApproved: approver ? true : false,\n approvedText: approver ? \"Approved\" : \"Not Approved\",\n capability: getCapability(itemSkill.stringVal),\n };\n };\n\n // Function to derive skill data from an item, its versions, and an approver\n const getDataSkill = async (item, versions, approver) => {\n let baseSkills = [];\n\n if (item.skillProfile) {\n baseSkills.push(...item.skillProfile);\n } else {\n if (versions.length > 0){\n if (versions.filter(it => it.profileType == \"Self Assessed\").length > 0){\n const selfAssessedSkills = await ProfileService.getManagedPeopleSkillPofiles(\n item.personB.email,\n versions.filter(it => it.profileType == \"Self Assessed\")[0].sfiaVersion,\n versions.filter(it => it.profileType == \"Self Assessed\")[0].version,\n versions.filter(it => it.profileType == \"Self Assessed\")[0].profileType\n )\n\n if (selfAssessedSkills.length > 0){\n baseSkills.push(...selfAssessedSkills);\n }\n }\n\n if (versions.filter(it => it.profileType == \"Endorsed\").length > 0){\n const endorsedSkills = await ProfileService.getManagedPeopleSkillPofiles(\n item.personB.email,\n versions.filter(it => it.profileType == \"Endorsed\")[0].sfiaVersion,\n versions.filter(it => it.profileType == \"Endorsed\")[0].version,\n versions.filter(it => it.profileType == \"Endorsed\")[0].profileType\n )\n\n if (endorsedSkills.length > 0){\n baseSkills.push(...endorsedSkills);\n }\n }\n }\n }\n\n const result = baseSkills\n .map((itemSkill) => mapSkillWithDetails(itemSkill, item, approver))\n .filter((itemSkill) => itemSkill.stringVal !== constantData.characters.n)\n\n return result;\n };\n\n // Helper function to process individual datasets\n const processItem = async (item) => {\n // Fetch versions if not present in the item\n const versions = item.versions\n ? item.versions\n : await ProfileService.getManagedPeopleProfileVersions(\n item.personB.email\n );\n\n // Find the earliest account creation and its approvals\n const earliestAccount = item.personB.accounts.sort(\n (a, b) => new Date(a.createdOn) - new Date(b.createdOn)\n )[0];\n const approvals = earliestAccount.approvals.sort(\n (a, b) => new Date(a.approvedOn) - new Date(b.approvedOn)\n );\n const approver = approvals.length > 0 ? approvals[0] : null;\n\n // Compute the skill data based on various conditions and associated metadata\n const dataSkill = await getDataSkill(item, versions, approver);\n return {\n personId: item.personB.id,\n dataSkill,\n accountAttributes: earliestAccount ? earliestAccount.attributes .map((attr) => attr.skillAttributeId) : [],\n getAttributes: dataSkill.map((item) => item.skillCode),\n };\n };\n\n /**\n * Main function to process all data.\n */\n const processAllData = async () => {\n try {\n // Fetch all required initial datasets\n let dataSkill = [];\n const [dataCategories, dataPeoples, dataProfile, dataVersion, selfAssessedDataSkill, endorsedDataSkill] =\n await fetchData();\n\n if (selfAssessedDataSkill && selfAssessedDataSkill.length > 0){\n dataSkill.push(...selfAssessedDataSkill);\n }\n\n if (endorsedDataSkill && endorsedDataSkill.length > 0){\n dataSkill.push(...endorsedDataSkill);\n }\n\n // Convert nested dataCategories into a flat structure\n const flatDataCategories = flattenDataCategories(dataCategories);\n\n // Create a combined dataset to facilitate further processing\n const initialData = [\n ...dataPeoples,\n {\n personB: dataProfile,\n versions: dataVersion,\n skillProfile: dataSkill,\n },\n ];\n\n // Process each individual dataset to structure them uniformly\n const peoplesData = await Promise.all(\n initialData.map(async (item) => processItem(item))\n );\n\n // Create a set of unique attributes\n const attributesSet = new Set(\n peoplesData.flatMap((item) => item.getAttributes)\n );\n\n // Filter to get matching attributes\n const allAttribute = flatDataCategories.filter((item) =>\n attributesSet.has(item.skillsCode)\n );\n\n // Map over datasets, enriching them with associated sub-category details and attributes\n const processedData = peoplesData\n .map((item) => item.dataSkill)\n .flat(2)\n .map((item) => {\n const accountAttributes = peoplesData.find(it => it.personId == item.personId).accountAttributes;\n const attributes = allAttribute.find((attr) => attr.skillsCode == item.skillCode)?.attributes?.filter(attr => accountAttributes && accountAttributes.includes(attr.id)).map((attr) => attr.attribute) || [];\n \n return {\n ...item,\n subCategoryDetail: getSubCategory(item, dataCategories),\n attributes: [...attributes]\n }\n })\n ;\n\n //Set the resulting data for further usage (for instance, updating the component's state)\n setData(processedData);\n } catch (error) {\n // Handle exceptions and log them for debugging purposes\n console.error(\"Failed to fetch and process data:\", error);\n }\n };\n\n /**\n * Main function to generate the tree select based on input value.\n */\n const generateTreeSelect = (val, name) =>\n // Using Object.entries to get both key and value of each entry in the data object\n Object.entries(val)\n .map(([category, itemsArray], categoryIdx) => {\n // Generating a Set to deduplicate the values based on the 'name' property\n // Then spread the Set back into an array for easy mapping\n const uniqueValues = [...new Set(itemsArray.map((item) => item[name]))];\n const rootData = JSON.stringify({\n isRoot: true,\n value: category,\n });\n return {\n title: category,\n value: rootData,\n key: rootData,\n\n // For each unique value, we map it to generate the 'children' array\n children: uniqueValues\n .map((uniqueValue, valueIdx) => {\n const childData = JSON.stringify({\n isRoot: false,\n value: uniqueValue,\n });\n return {\n // Fetching the 'text' property directly from the original itemsArray for each child\n title: itemsArray[valueIdx].text,\n value: childData,\n key: childData,\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title));\n\n /**\n * Main function to generate the tree node based on input value.\n */\n const generateTreeNode = (val) => {\n /**\n * Helper function to create a new tree node.\n */\n const createNode = (label, isPerson = false) => ({\n label,\n isRoot: false, // By default, a node is not a root node\n isExpand: false, // By default, a node is not expanded\n meta: {\n isPerson,\n },\n children: [],\n });\n // Create the root node with pre-defined properties\n const rootNode = {\n label: \"Persons\",\n isRoot: true,\n isExpand: true,\n meta: {\n isPerson: false,\n },\n // Map over each item in the input array to construct the children nodes for the root\n children: val.map((item) => {\n // Use the helper function to create a new node for the item\n const node = createNode(item.label, true); // Set isPerson to true for the item node\n // Map over each child of the item to construct its children nodes\n node.children = item.children.map((childItem) =>\n createNode(childItem.skillCode)\n );\n return node; // Return the constructed node for the item\n }),\n };\n\n return rootNode;\n };\n\n // Filter Attribute\n const optionsAttribute = useMemo(() => {\n // If there's no data, return an empty array immediately.\n if (data.length === 0) return [];\n const attributesSet = new Set(data.flatMap((item) => item.attributes));\n attributesSet.add(constantData.noAttribute);\n // Filter out non-distinct items based on their 'attributes' field.\n // This uses the distinctArray function, which presumably removes duplicates based on a comparator.\n return (\n Array.from(attributesSet)\n .map((item) => ({\n // Convert each item into a label-value pair for use in a dropdown or similar UI element.\n label: item,\n value: item,\n }))\n // Sort the options alphabetically based on the label.\n .sort((a, b) => a.label.localeCompare(b.label))\n );\n }, [data]); // Recompute only when 'data' changes.\n\n // Filter Skill Name\n const optionsSkill = useMemo(() => {\n // If there's no data, return an empty array immediately.\n if (data.length === 0) return [];\n\n // Filter out non-distinct items based on their 'skill' field.\n // This uses the distinctArray function, which presumably removes duplicates based on a comparator.\n return (\n distinctArray(data, (itemA, itemB) => itemA.skill === itemB.skill)\n .map(({ skill, skillCode }) => ({\n label: `${skill} (${skillCode})`,\n value: skill,\n }))\n // Sort the options alphabetically based on the label.\n .sort((a, b) => a.label.localeCompare(b.label))\n );\n }, [data]); // Recompute only when 'data' changes.\n\n // Filter Position\n const optionsPosition = useMemo(() => {\n // If there's no data, return an empty array immediately.\n if (data.length === 0) return [];\n\n // Filter out non-distinct items based on their 'position' field.\n // This uses the distinctArray function, which presumably removes duplicates based on a comparator.\n return (\n distinctArray(data, (itemA, itemB) => itemA.position === itemB.position)\n .map(({ position }) => ({\n label: position,\n value: position,\n }))\n // Sort the options alphabetically based on the label.\n .sort((a, b) => a.label.localeCompare(b.label))\n );\n }, [data]); // Recompute only when 'data' changes.\n\n // Filter Profile Status\n const optionsProfileStatus = useMemo(() => {\n if (data.length === 0) return [];\n\n const temp = data.map((item) => ({\n capability: `${item.profileType} - ${item.capability} (${item.approvedText})`, \n profileType: item.profileType,\n profileStatus: item.profileStatus,\n text: `${item.profileType} - ${item.capability} (${item.approvedText})`,\n }));\n\n // Deduplicate the combined array based on the capability.\n const uniqueArray = distinctArray(\n temp,\n (itemA, itemB) => itemA.capability === itemB.capability\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueArray, constantData.profileStatus),\n constantData.capability\n );\n }, [data]);\n\n // Filter Country Location\n const optionsCountry = useMemo(() => {\n // Exit early if there's no data to process.\n if (data.length === 0) return [];\n\n // Transform\n const tempData = data.map((item) => ({\n location: `${item.country} - ${item.location}`,\n country: item.country,\n text: `${item.country} - ${item.location}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n tempData,\n (itemA, itemB) => itemA.country === itemB.country\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.country),\n constantData.location\n );\n }, [data]);\n\n // Filter Level of Skill\n const optionsSkillLevel = useMemo(() => {\n // Exit early if there's no data to process.\n if (data.length === 0) return [];\n\n // Transform\n const tempData = data.map((item) => ({\n skillCode: `${item.skillCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.skillCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n tempData,\n (itemA, itemB) => itemA.skillCode === itemB.skillCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.level),\n constantData.skillCode\n );\n }, [data]);\n\n // Data Filter => Ref By Data\n const dataFilter = useMemo(() => {\n let resultData = [];\n\n if (data.length) {\n resultData = data.filter((item) => {\n // If selectedAttribute is populated and the condition is not met, filter out\n if (\n selectedAttribute.length > 0 &&\n !selectedAttribute.some((attr) => {\n if (attr === constantData.noAttribute) {\n return item.attributes.length === 0;\n }\n return item.attributes.includes(attr);\n })\n ) {\n return false;\n }\n\n // If selectedPosition is populated and the condition is not met, filter out\n if (\n selectedPosition.length > 0 &&\n !selectedPosition.includes(item.position)\n ) {\n return false;\n }\n\n // If selectedSkill is populated and the condition is not met, filter out\n if (selectedSkill.length > 0 && !selectedSkill.includes(item.skill)) {\n return false;\n }\n\n // If selectedProfileStatus is populated and the condition is not met, filter out\n if (selectedProfileStatus.length > 0) {\n const isFound = selectedProfileStatus\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return item.profileStatus === _.value;\n } else {\n return `${item.profileType} - ${item.capability} (${item.approvedText})` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If selectedCountry is populated and the condition is not met, filter out\n if (selectedCountry.length > 0) {\n const isFound = selectedCountry\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return item.country === _.value;\n } else {\n return `${item.country} - ${item.location}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If selectedSkillLevel is populated and the condition is not met, filter out\n if (selectedSkillLevel.length > 0) {\n const isFound = selectedSkillLevel\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.skillCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n\n return resultData;\n }, [\n data,\n selectedSkillLevel,\n selectedCountry,\n selectedProfileStatus,\n selectedSkill,\n selectedPosition,\n selectedAttribute,\n ]);\n\n const dashboardTable = useMemo(() => dataFilter ?? [], [dataFilter]); // Recompute only if dataFilter changes\n\n const dashboardOrganizationalChart = useMemo(() => {\n // Early return if dataFilter is empty\n if (dataFilter.length === 0) return null;\n\n // Group the data based on fullName\n const dataGroup = groupBy(dataFilter, constantData.fullName);\n\n // Construct the tempData array using the grouped data\n const tempData = Object.keys(dataGroup).map((key) => ({\n label: key,\n children: distinctArray(\n dataGroup[key],\n (a, b) => a.skillCode === b.skillCode\n ),\n }));\n\n // Generate and return the tree node using the constructed tempData\n return generateTreeNode(tempData);\n }, [dataFilter]); // Recompute only if dataFilter changes\n\n // This effect runs when the component mounts.\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n // Fetch and process all data\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []); // Empty dependency array means this effect runs once when the component mounts and never again.\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n {/* Filter */}\n \n {/* Organizational Chart */}\n \n \n \n {/* TeamBuilder Table */}\n \n \n \n \n );\n};\n\nexport { TeamBuilder };\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass TeamAnalyticsService {\n static getSkillWeHave() {\n return axios\n .get(`datavisualization/skillwehave`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n static getSkillWeHaveGa() {\n return axios\n .get(`dataVisualization/skillwehavega`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n static getSkillWeNeed() {\n return axios\n .get(`dataVisualization/skillweneed`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static getActionPlan() {\n return axios\n .get(`dataVisualization/action`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n static getBuilders() {\n return axios\n .get(`dataVisualization/builders`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n static getSkillGaps() {\n return axios\n .get(`dataVisualization/skillgap`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default TeamAnalyticsService;\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst ActionPlanFilters = ({ objName, objSkillCode, objActions }) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [objName, objSkillCode, objActions].some(\n (obj) => obj?.value?.length > 0\n );\n }, [objName?.value, objSkillCode?.value, objActions?.value]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objName, \"magenta\", onCloseClicked)}\n {renderTags(objSkillCode, \"red\", onCloseClicked)}\n {renderTags(objActions, \"geekblue\", onCloseClicked)}\n \n \n \n {/* Rest of the JSX structure where you'll use your FilterComponent */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ActionPlanFilters;\n","import {\n CheckCircleOutlined,\n ClockCircleOutlined,\n MinusCircleOutlined,\n SyncOutlined,\n} from \"@ant-design/icons\";\nimport { Table, Tag, Tooltip, Typography, Empty } from \"antd\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n colors: {\n type1: \"#69849c\",\n type2: \"#a5b8c8\",\n },\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n`;\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false\n) => ({\n title, // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text ?? \"-\"}\n \n ), // Centering the text\n});\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (isResponsive) => {\n const getColorByActionStatus = (record) => {\n switch (record.actionStatus.toLowerCase()) {\n case \"to do\":\n return \"default\";\n case \"in progress\":\n return \"processing\";\n case \"pending\":\n return \"warning\";\n case \"done\":\n return \"success\";\n default:\n return \"default\";\n }\n };\n const getIconByActionStatus = (record) => {\n switch (record.actionStatus.toLowerCase()) {\n case \"to do\":\n return ;\n case \"pending\":\n return ;\n case \"in progress\":\n return ;\n case \"done\":\n return ;\n default:\n return <>;\n }\n };\n const tempColum = [\n createCenteredTextColumn(\"Full Name\", \"fullName\", sortByText),\n createCenteredTextColumn(\n \"Completion Date\",\n \"targetCompletionOn\",\n sortByText,\n isResponsive\n ),\n createCenteredTextColumn(\n \"Skill Name\",\n \"skillName\",\n sortByText,\n isResponsive\n ),\n {\n title: \"Skill Code\",\n dataIndex: \"skillCode\",\n key: \"skillCode\",\n sorter: (a, b) => sortByText(a.skillCode, b.skillCode),\n render: (text, record) => (\n
\n \n {text}\n \n
\n ),\n },\n createCenteredTextColumn(\"Action Type\", \"actionType\", sortByText),\n {\n title: \"Action Status\",\n dataIndex: \"actionStatus\",\n key: \"actionStatus\",\n sorter: (a, b) => sortByText(a.status, b.status),\n render: (text, record) => (\n
\n \n {text}\n \n
\n ),\n },\n ];\n return tempColum;\n};\n\nconst ActionPlanTable = ({\n data = [],\n pageSize = constantData.pageSize,\n isResponsive = false,\n}) => {\n // Memoized calculation for professional table data\n const dataSource = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return transformDataSource(data);\n }, [data]);\n\n // Memoized calculation for professional table data\n const columns = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return getColumnDefinitions(isResponsive);\n }, [data]);\n\n return (\n \n {dataSource.length > 0 ? (\n // Render the professional table\n <>\n Professional Skills\n \n \n \n \n ) : (\n }\n />\n )}\n \n );\n};\n\nexport default ActionPlanTable;\n","import TeamAnalyticsService from \"../../../../common/api/service/TeamAnalyticsService\";\nimport PieChart from \"../../components/charts/pie\";\nimport ActionPlanFilters from \"../../components/filters/actionplan\";\nimport ActionPlanTable from \"../../components/table/actionplan\";\nimport { Col, Row, DatePicker, Typography } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport moment from \"moment\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst { RangePicker } = DatePicker;\n\nconst { Title } = Typography;\n\nconst Container = styled.div`\n padding: 10px 30px;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst ContainerBorder = styled.div`\n padding: 10px;\n border-width: 1px;\n border-style: solid;\n border-color: #dddddd;\n border-radius: 14px;\n`;\n\nconst ContainerBar = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n margin-top: 30px;\n margin-bottom: 30px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n\n .pl-10 {\n padding-left: 10px;\n }\n .pr-10 {\n padding-right: 10px;\n }\n\n .mt-30 {\n margin-top: 20px;\n }\n\n .mb-30 {\n margin-bottom: 40px;\n }\n`;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\n/**\n * A styled column component to reduce the repetition of classes and props.\n * This component encapsulates the common style properties of columns.\n */\nconst ColumnWithStyle = ({ children, span }) => (\n \n {children}\n \n);\n\n// Constant Data\nconst constantData = {\n fullName: \"fullName\",\n pageSize: 5,\n actionType: \"actionType\",\n actionStatus: \"actionStatus\",\n actionProvider: \"actionProvider\",\n};\n// Returns a new array containing only the unique elements from the provided `dataArray` based on a custom comparison function.\nconst distinctArray = (dataArray, func) => {\n // `seen` will store a unique \"hash\" for each item we've already encountered.\n const seen = new Set();\n\n // The array to accumulate unique items from `dataArray`.\n const uniqueArray = [];\n\n dataArray.forEach((item) => {\n // Create a unique \"hash\" for the current item based on the comparator function.\n // This \"hash\" is simply a string representation of all items considered equal to the current item.\n const hash = uniqueArray.some((itemIn) => func(item, itemIn));\n\n // If we haven't seen this unique \"hash\" before, add the item to our unique array.\n if (!hash) {\n seen.add(hash);\n uniqueArray.push(item);\n }\n });\n\n return uniqueArray;\n};\n\nconst ActionPlan = () => {\n // data\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n const [data, setData] = useState([]);\n const [dataOptions, setDataOptions] = useImmer({\n actionName: [],\n skillCode: [],\n });\n\n // selection\n const [selectedSkillCode, setSelectedSkillCode] = useState([]);\n const [selectedActionName, setSelectedActionName] = useState([]);\n const [selectedName, setSelectedName] = useState([]);\n const [selectedTargetCompletionDate, setSelectedTargetCompletionDate] =\n useState([]);\n\n const processData = (value) => {\n return value.map((item) => ({\n ...item,\n actionStatus: item.status.replace(/([a-z])([A-Z])/g, \"$1 $2\"),\n actionProvider: item.interventionProviderName ?? \"Empty\",\n }));\n };\n\n /**\n * Fetch and process all the necessary data.\n *\n * The function:\n * 1. Fetches action plan data from the service.\n * 2. Sets the fetched data to the component's state.\n * 3. Handles errors gracefully and logs them.\n */\n const processAllData = async () => {\n try {\n // Fetch the action plan data from the service\n const actionPlanData = await TeamAnalyticsService.getActionPlan();\n // Set the fetched data to the component's state\n setDataOptions((item) => {\n item.actionName = actionPlanData?.options?.optionActionName ?? [];\n item.skillCode = actionPlanData?.options?.optionSkillCode ?? [];\n });\n const tempData = processData(actionPlanData?.list);\n // Set the fetched data to the component's state\n setData(tempData);\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n const generatePie = (val, name) => {\n // Group the dataFilter by the actionType for pie chart segmentation\n const dataGroup = groupBy(val, name);\n\n // Extract labels directly from the grouped data keys\n const labels = Object.keys(dataGroup);\n\n // Calculate the pie chart data values (percentages) for each label\n // We derive the percentage by dividing the count of each group by the total dataFilter length\n const data = labels.map((label) =>\n ((dataGroup[label].length / dataFilter.length) * 100).toFixed(1)\n );\n\n const counts = labels.map((label) => dataGroup[label].length);\n\n // Return the structured pie chart data\n return {\n data, // Percentage values for pie chart segments\n labels, // Labels for the pie chart segments\n counts,\n };\n };\n\n // Filter by Person\n const optionsName = useMemo(() => {\n if (data?.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n data,\n (itemA, itemB) => itemA.fullName === itemB.fullName\n );\n\n const groupedData = groupBy(uniqueSkills, constantData.fullName);\n\n return Object.keys(groupedData)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Filter by Action Name\n const optionsActionName = useMemo(() => {\n if (dataOptions.actionName.length === 0) return [];\n\n return dataOptions.actionName\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [dataOptions.actionName]);\n\n // Filter by Skill Code\n const optionsSkillCode = useMemo(() => {\n if (dataOptions.skillCode.length === 0) return [];\n\n return dataOptions.skillCode\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [dataOptions.skillCode]);\n\n // Data Filter => Ref By Data\n const dataFilter = useMemo(() => {\n let resultData = [];\n\n if (data.length) {\n resultData = data.filter((item) => {\n // If selectedTargetCompletionDate is populated and the condition is not met, filter out\n if (selectedTargetCompletionDate.length > 0) {\n const isBetween = moment(item.targetCompletionOn).isBetween(\n selectedTargetCompletionDate[0],\n selectedTargetCompletionDate[1]\n );\n if (isBetween === false) {\n return false;\n }\n }\n\n // If selectedName is populated and the condition is not met, filter out\n if (selectedName.length > 0 && !selectedName.includes(item.fullName)) {\n return false;\n }\n\n // If selectedSkillCode is populated and the condition is not met, filter out\n if (\n selectedSkillCode.length > 0 &&\n !selectedSkillCode.includes(item.skillCode)\n ) {\n return false;\n }\n\n // If selectedActionName is populated and the condition is not met, filter out\n if (\n selectedActionName.length > 0 &&\n !selectedActionName.includes(item.actionName)\n ) {\n return false;\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n return resultData;\n }, [\n data,\n selectedName,\n selectedSkillCode,\n selectedActionName,\n selectedTargetCompletionDate,\n ]);\n\n const dashboardTable = useMemo(() => dataFilter ?? [], [dataFilter]); // Recompute only if dataFilter changes\n\n const dashboardActionTypePie = useMemo(() => {\n // If dataFilter is empty, we return an empty array\n if (!dataFilter.length) return { data: [], labels: [] };\n // Return the structured pie chart data\n return generatePie(dataFilter, constantData.actionType);\n }, [dataFilter]); // This useMemo will only recompute when dataFilter changes\n\n const dashboardActionStatusPie = useMemo(() => {\n // If dataFilter is empty, we return an empty array\n if (!dataFilter.length) return { data: [], labels: [] };\n // Return the structured pie chart data\n return generatePie(dataFilter, constantData.actionStatus);\n }, [dataFilter]); // This useMemo will only recompute when dataFilter changes\n\n const dashboardActionProviderPie = useMemo(() => {\n // If dataFilter is empty, we return an empty array\n if (!dataFilter.length) return { data: [], labels: [] };\n // Return the structured pie chart data\n return generatePie(dataFilter, constantData.actionProvider);\n }, [dataFilter]); // This useMemo will only recompute when dataFilter changes\n\n // This effect runs when the component mounts.\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n // Fetch and process all data\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []); // Empty dependency array means this effect runs once when the component mounts and never again.\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n // Main content of the component.\n return (\n \n {/* Action filters */}\n \n\n \n {/* Date picker section */}\n \n \n Choose Target Completion Date\n \n \n setSelectedTargetCompletionDate(val ?? [])}\n />\n \n \n\n {/* Pie charts displaying various data */}\n \n \n \n \n \n \n \n \n \n \n \n \n\n {/* Actions table */}\n \n \n \n \n );\n};\n\nexport { ActionPlan };\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst JobMatchFilters = ({ objName, objRequirement }) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [objName, objRequirement].some((obj) => obj?.value?.length > 0);\n }, [objName?.value, objRequirement?.value]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objName, \"magenta\", onCloseClicked)}\n {renderTags(objRequirement, \"red\", onCloseClicked)}\n \n \n \n {/* Rest of the JSX structure where you'll use your FilterComponent */}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default JobMatchFilters;\n","import { Row, Col, InputNumber, Slider, Typography } from \"antd\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst ContainerFilter = styled.div`\n margin: 10px;\n margin-bottom: 40px;\n\n .w-100 {\n width: 100% !important;\n }\n\n .w-75 {\n width: 75% !important;\n }\n .ant-input-number-input-wrap > input {\n text-align: center;\n }\n`;\n\nconst WrapperCard = styled.div`\n display: inline-block;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n`;\n\nconst WrapperHeader = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n`;\n\n// Constant Data\nconst constantData = {\n min: 0,\n max: 100,\n sliderDefaultValue: [0, 100],\n};\n\n// Reusable Slider Component\n// This component handles rendering and functionality for the Slider and associated input fields\nconst RangeSlider = ({ title, obj, constantData }) => {\n return (\n \n {title} {/* Display the title */}\n
\n {/* Slider Component */}\n \n obj?.setValue((item) => {\n item.min = val[0];\n item.max = val[1];\n })\n }\n />\n {/* Input Fields for Min and Max */}\n \n
\n
\n );\n};\n\n// Reusable Input Component\n// This component handles rendering and functionality for the Min and Max input fields\nconst InputRange = ({ obj, constantData }) => (\n \n \n \n obj?.setValue((item) => {\n item[\"min\"] = val;\n })\n }\n />\n \n \n -\n \n \n \n obj?.setValue((item) => {\n item[\"min\"] = val;\n })\n }\n />\n \n \n);\n\n// Main Component\n// This component contains the overall layout and utilizes the reusable components\nconst MatchRangeFilters = ({\n objSelfAssessed,\n objEndorsed,\n objPerson,\n objRequirementMatch,\n}) => {\n return (\n \n {/* Row for Self-Assessed and Endorsed sliders */}\n \n \n {/* Self-Assessed Slider */}\n \n \n \n {/* Endorsed Slider */}\n \n \n \n {/* Row for Number Of Person and Number Of Requirement Matches */}\n \n {/* Number Of Person */}\n \n \n Number Of Person\n {objPerson?.count ?? 0}\n \n \n {/* Number Of Requirement Matches */}\n \n \n Number Of Requirement Matches\n {objRequirementMatch?.count ?? 0}\n \n \n \n \n );\n};\n\nexport default MatchRangeFilters;\n","import { Table, Typography, Empty, Tag, Row } from \"antd\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n colors: {\n type1: \"#69849c\",\n type2: \"#a5b8c8\",\n },\n rangeColors: [\n {\n color: \"green\",\n label: \"80 - 100\",\n isMatch: (val) => val >= 80,\n },\n {\n color: \"cyan\",\n label: \"60 - 79\",\n isMatch: (val) => val >= 60,\n },\n {\n color: \"gold\",\n label: \"40 - 59\",\n isMatch: (val) => val >= 40,\n },\n {\n color: \"orange\",\n label: \"20 - 39\",\n isMatch: (val) => val >= 20,\n },\n {\n color: \"volcano\",\n label: \"1 - 19\",\n isMatch: (val) => val >= 0,\n },\n {\n color: \"red\",\n label: \"0\",\n isMatch: (val) => val === 0,\n },\n ],\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n .anticon {\n vertical-align: 1px !important;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n\n .circle {\n border-radius: 10px;\n width: 10px;\n height: 10px;\n }\n\n .ml-10 {\n margin-left: 10px;\n }\n\n .pd-10 {\n padding: 10px;\n }\n\n .flex {\n display: flex;\n }\n\n .font-sm {\n font-size: small;\n }\n\n .item-center {\n align-items: center;\n }\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n {title}\n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false,\n isCenter = true\n) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text ?? \"-\"}\n \n ), // Centering the text\n});\n\nconst createCenteredNumberColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false,\n isCenter = true\n) => {\n const getColor = (val) =>\n constantData.rangeColors.find((item) => item.isMatch(val))?.color;\n\n return {\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text}%\n \n ), // Centering the text\n };\n};\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n// Utility function to compare number values\nconst sortByNumber = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (isResponsive) => {\n const tempColum = [\n createCenteredTextColumn(\n \"Full Name\",\n \"fullName\",\n sortByText,\n isResponsive,\n false\n ),\n createCenteredTextColumn(\"Email\", \"email\", sortByText, isResponsive, false),\n createCenteredTextColumn(\n \"Requirement Name\",\n \"jobTitle\",\n sortByText,\n isResponsive,\n false\n ),\n createCenteredTextColumn(\n \"Current Position as Entered\",\n \"position\",\n sortByText,\n isResponsive,\n false\n ),\n createCenteredNumberColumn(\n \"Match % (SA)\",\n \"matchPercentSelf\",\n sortByNumber\n ),\n createCenteredNumberColumn(\n \"Match % (Endorsed)\",\n \"matchPercentValidated\",\n sortByNumber\n ),\n ];\n return tempColum;\n};\n\nconst JobMatchTable = ({\n data = [],\n pageSize = constantData.pageSize,\n isResponsive = false,\n}) => {\n // Memoized calculation for professional table data\n const dataSource = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return transformDataSource(data);\n }, [data]);\n\n // Memoized calculation for professional table data\n const columns = useMemo(() => {\n // If not showing professional or no data, return empty data.\n if (data?.length === 0) return [];\n\n // Return the transformed data source and the appropriate columns\n return getColumnDefinitions(isResponsive);\n }, [data]);\n\n return (\n \n {dataSource.length > 0 ? (\n // Render the professional table\n <>\n Match Range For Person\n \n \n \n {constantData.rangeColors.map((item, index) => {\n return (\n \n Range:\n \n {item.label}\n \n \n );\n })}\n \n \n \n ) : (\n }\n />\n )}\n \n );\n};\n\nexport default JobMatchTable;\n","import JobAPI from \"../../../../common/api/service/JobService\";\nimport PersonAPI from \"../../../../common/api/service/PersonService\";\nimport JobMatchFilters from \"../../components/filters/jobmatch\";\nimport MatchRangeFilters from \"../../components/filters/jobmatch/matchrange\";\nimport JobMatchTable from \"../../components/table/jobmatch\";\nimport { groupBy } from \"lodash\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\nconst Container = styled.div`\n padding: 10px 30px;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst ContainerBorder = styled.div`\n padding: 10px;\n margin-top: 30px;\n border-width: 1px;\n border-style: solid;\n border-color: #dddddd;\n border-radius: 14px;\n`;\n\n// Constant Data\nconst constantData = {\n fullName: \"fullName\",\n jobTitle: \"jobTitle\",\n pageSize: 10,\n};\n\nconst JobMatch = () => {\n // Data\n const [data, setData] = useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n // Selection\n const [selectedName, setSelectedName] = useState([]);\n const [selectedRequirement, setSelectedRequirement] = useState([]);\n const [selectedMatchRangeSelfAssessed, setSelectedMatchRangeSelfAssessed] =\n useImmer({\n min: 0,\n max: 100,\n });\n const [selectedMatchRangeEndorsed, setSelectedMatchRangeEndorsed] = useImmer({\n min: 0,\n max: 100,\n });\n\n const processAllData = async () => {\n try {\n // 1. Fetch all person details\n const dataMyPeoples = await PersonAPI.getPersonMyPeoples();\n\n // 2. For each person, fetch their associated job matches\n const dataJobMatches = await Promise.all(\n dataMyPeoples.map((person) =>\n JobAPI.getManagedPeopleJobMatches(person.personB.email).then(\n (jobMatches) => ({\n jobMatches,\n personB: person.personB, // Store only what's needed\n })\n )\n )\n );\n\n // 3. Combine person details with their respective job matches\n const dataMixJob = dataJobMatches.flatMap(({ jobMatches, personB }) =>\n jobMatches.map((jobItem) => ({\n ...jobItem,\n fullName: `${personB.firstName} ${personB.lastName}`,\n email: personB.email,\n position: personB.position,\n }))\n );\n\n // Update state or context with the merged data\n setData(dataMixJob);\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n // Optionally, you can set an error state to display an error message to users.\n }\n };\n\n // Filter by Person Name\n const optionsName = useMemo(() => {\n if (data?.length === 0) return [];\n\n const dataGroup = groupBy(data, constantData.fullName);\n\n return Object.keys(dataGroup)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Filter by Requirement\n const optionsRequirement = useMemo(() => {\n if (data?.length === 0) return [];\n\n const dataGroup = groupBy(data, constantData.jobTitle);\n\n return Object.keys(dataGroup)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [data]);\n\n // Data Filter => Ref By Data\n const dataFilter = useMemo(() => {\n let resultData = [];\n\n if (data.length) {\n resultData = data.filter((item) => {\n // If selectedName is populated and the condition is not met, filter out\n if (selectedName.length > 0 && !selectedName.includes(item.fullName)) {\n return false;\n }\n\n // If selectedRequirement is populated and the condition is not met, filter out\n if (\n selectedRequirement.length > 0 &&\n !selectedRequirement.includes(item.jobTitle)\n ) {\n return false;\n }\n\n // If selectedMatchRangeSelfAssessed is populated and the condition is not met, filter out\n if (\n !(\n item.matchPercentSelf >= selectedMatchRangeSelfAssessed.min &&\n item.matchPercentSelf <= selectedMatchRangeSelfAssessed.max\n )\n ) {\n return false;\n }\n\n // If selectedMatchRangeEndorsed is populated and the condition is not met, filter out\n if (\n !(\n item.matchPercentValidated >= selectedMatchRangeEndorsed.min &&\n item.matchPercentValidated <= selectedMatchRangeEndorsed.max\n )\n ) {\n return false;\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }\n return resultData;\n }, [\n data,\n selectedName,\n selectedRequirement,\n selectedMatchRangeSelfAssessed,\n selectedMatchRangeEndorsed,\n ]);\n\n const dashboardTable = useMemo(() => dataFilter ?? [], [dataFilter]); // Recompute only if dataFilter changes\n\n const dashboardSelfAssessedCount = useMemo(() => {\n // Checking for emptiness directly\n if (!dataFilter.length) return 0;\n\n // Count unique fullNames without grouping the entire dataset\n const uniqueNames = new Set(\n dataFilter.map((item) => item[constantData.fullName])\n );\n return uniqueNames.size;\n }, [dataFilter]); // Recompute only if dataFilter changes\n\n const dashboardRequirementMatchCount = useMemo(() => {\n // Checking for emptiness directly\n if (!dataFilter.length) return 0;\n\n // Count unique fullNames without grouping the entire dataset\n const uniqueNames = new Set(\n dataFilter.map((item) => item[constantData.jobTitle])\n );\n return uniqueNames.size;\n }, [dataFilter]); // Recompute only if dataFilter changes\n\n // This effect runs when the component mounts.\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n // Fetch and process all data\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []); // Empty dependency array means this effect runs once when the component mounts and never again.\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n {/* JobMatches filters */}\n \n {/* JobMatch Match Range */}\n \n \n \n {/* JobMatch table */}\n \n \n \n \n );\n};\n\nexport { JobMatch };\n","import { Row, Col, Select, Form, Switch } from \"antd\";\nimport React from \"react\";\n\nconst constantData = {\n empty: \"\",\n labelPersonName: \"Person\",\n personName: \"person\",\n endVersionName: \"endVersion\",\n startVersionName: \"startVersion\",\n labelStartVersionName: \"Start Version\",\n labelEndVersionName: \"End Version\",\n noDatText: \" (No Data)\",\n labelProfileTypeName: \"Profile Type\",\n};\n\n// A reusable select component that reduces redundancy\nconst SelectComponent = ({\n value,\n onChange,\n placeholderBaseText,\n options,\n disabled,\n}) => {\n // Constructing the placeholder text based on the passed options\n const placeholderText = `${placeholderBaseText}${\n (options ?? []).length < 1 ? constantData.noDatText : constantData.empty\n }`;\n\n return (\n \n );\n};\n\nconst SkillChangeFilters = ({\n objPerson,\n objStartVersion,\n objEndVersion,\n objCompact,\n objProfileType\n}) => {\n // Destructuring properties to avoid repeated optional chaining\n const { value: personValue, setValue: setPersonValue } = objPerson || {};\n const { value: profileTypeValue, setValue: setProfileTypeValue } =\n objProfileType || {};\n const { value: startVersionValue, setValue: setStartVersionValue } =\n objStartVersion || {};\n const { value: endVersionValue, setValue: setEndVersionValue } =\n objEndVersion || {};\n const { value: compactValue, setValue: setCompactValue } = objCompact || {};\n\n // Defining clear conditions for component behaviors\n const isStartVersionDisabled = !personValue;\n const isEndVersionDisabled = !startVersionValue;\n const isSwitchDisabled = !startVersionValue || !endVersionValue;\n\n return (\n <>\n
\n \n \n \n {/* Using the reusable select component */}\n setPersonValue(val)}\n placeholderBaseText=\"Please Select Person\"\n options={objPerson?.options}\n />\n \n \n \n \n \n \n {/* Using the reusable select component */}\n setProfileTypeValue(val)}\n placeholderBaseText=\"Please Select Profile Type\"\n options={objProfileType?.options}\n disabled={isStartVersionDisabled}\n />\n \n \n \n \n \n \n \n \n {/* Using the reusable select component */}\n setStartVersionValue(val)}\n placeholderBaseText=\"Please Select Start Version\"\n options={objStartVersion?.options.filter(it => it.refData.profileType == profileTypeValue)}\n disabled={isStartVersionDisabled}\n />\n \n \n \n \n {/* Using the reusable select component */}\n setEndVersionValue(val)}\n placeholderBaseText=\"Please Select End Version\"\n options={objEndVersion?.options.filter(it => it.refData.profileType == profileTypeValue)}\n disabled={isEndVersionDisabled}\n />\n \n \n \n \n \n {/* Switch for compact view, only enabled when both versions are selected */}\n setCompactValue(val)}\n />\n Check with Compact View\n \n \n
\n \n );\n};\n\nexport default SkillChangeFilters;\n","import { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Table, Tooltip } from \"antd\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n\n .ant-table.ant-table-middle\n .ant-table-tbody\n .ant-table-wrapper:only-child\n .ant-table {\n margin: 0px;\n }\n\n .ant-table-cell:has(.p-zero) {\n padding: 0px !important;\n }\n\n .ant-table-tbody > tr > td > .ant-table-expanded-row-fixed .ant-table,\n .ant-table-tbody > tr > td > .ant-table-wrapper:only-child .ant-table {\n margin: 0px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table {\n border-top-left-radius: 0x;\n border-top-right-radius: 0px;\n }\n\n .ant-table {\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n > .ant-table-content\n > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n border-width: 0px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n\n .ant-table-cell:has(.b-none) {\n border-color: white !important;\n transition: background 0.3s;\n }\n\n .ant-table-row:has(.r-hide) {\n display: none;\n }\n\n .ant-table-cell:has(.c-w) {\n width: 50px !important;\n }\n\n .ant-table-cell:has(.e-w) {\n width: 30px;\n }\n\n .ant-table-container table > thead > tr:first-child th {\n background: ${(props) =>\n props?.customStyle?.tableHeaderBackgroundColor || \"\"};\n color: ${(props) => props?.customStyle?.tableHeaderColor || \"\"};\n text-align: center;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th {\n background: #fafafa;\n color: black;\n text-align: center;\n cursor: pointer;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n th:first-child {\n border-top-left-radius: 0px;\n text-align: start;\n width: auto !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: 280px;\n }\n .ant-table-cell {\n padding: 10px;\n }\n .ant-table-row-expand-icon {\n display: none;\n }\n\n .ant-table-row-indent {\n padding-left: 0 !important;\n }\n\n .table-s\n > .ant-table-wrapper\n > .ant-spin-nested-loading\n > .ant-spin-container\n > .ant-table\n > .ant-table-container\n table\n > thead\n > tr:first-child\n td:first-child {\n border-top-left-radius: 0px;\n width: auto !important;\n }\n\n .table-s .ant-table-column-sorters {\n text-align: center;\n }\n\n .ant-table-container table > thead > tr:first-child td:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: 240px;\n }\n\n @media (max-width: 1080px) {\n .ant-table-container table > thead > tr:first-child td:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: auto !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n text-align: start;\n width: auto !important;\n }\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .op-0 {\n opacity: 0;\n }\n`;\nconst WrapperLevelCustom = styled.div`\n padding: 5px;\n`;\n\nconst WrapperCellSkillCategoryCustom = styled(Tooltip)`\n padding-left: 20px;\n`;\nconst WrapperCellSkillCategory = styled(Tooltip)``;\n\nconst WrapperCellSubCategoryCustom = styled(Tooltip)`\n font-weight: 700;\n`;\n\nconst WrapperTitleCustom = styled.div`\n text-align: center;\n margin-top: -7px;\n cursor: pointer;\n`;\n\nconst WrapperTooltipCustom = styled(Tooltip)`\n cursor: help;\n`;\n\n// Renders cell content based on the level value\nconst getCellEmpty = () =>
;\n\nconst constantData = {\n lvBackgroundColorDefault: \"#F0F0F0\",\n tableSize: \"default\",\n expandedTableSize: \"default\",\n skillLevelCount: 7,\n categoryName: \"category\",\n infoName: \"info\",\n topName: \"top\",\n levelName: \"Level\",\n characters: {\n p: \"P\",\n na: \"NA\",\n m: \"M\",\n },\n};\n\nconst SkillChangeTable = ({ data = null, version = null }) => {\n const onCategoryCellRendered = (text, record, index) => {\n // Depending on the 'isSkill' property of the record, determine which component to render.\n // If 'isSkill' is true, use 'WrapperCellSkillCategoryCustom'.\n // If 'isSkill' is false, use 'WrapperCellSubCategoryCustom'.\n const ComponentToRender = record.isSkill\n ? record.hideHeader\n ? WrapperCellSkillCategory\n : WrapperCellSkillCategoryCustom\n : WrapperCellSubCategoryCustom;\n\n // Render the chosen component inside a div with the given class.\n // The title and placement properties are consistent for both components.\n return (\n
\n \n {`${text}${record.isSkill ? ` (${record.meta.code})` : \"\"}`}\n \n
\n );\n };\n\n const onExpandCellTitleRendered = (meta) => {\n // Define the custom title for the tooltip:\n // It contains the name of the level responsibility and a list of levels beneath it.\n const customTitle = () => (\n
\n {/* Display the name of the level responsibility */}\n \n {meta?.levelResponsibility?.name}\n \n\n {/* Map through the levels and display each one */}\n {meta?.levelResponsibility?.levels?.map((item, index) => (\n \n {`${constantData.levelName} ${item.level} : ${item.name}`}\n \n ))}\n
\n );\n\n // Render the custom title wrapped in a 'WrapperTitleCustom' component.\n // It contains an expandable icon and an informational icon within a tooltip.\n return (\n \n {/* Information Icon wrapped in a tooltip */}\n \n \n \n \n );\n };\n // Renders get content based on the level value\n const onCellRendered = (text, record, lv) => {\n // When record isn't a skill, just return an empty style object.\n if (!record.isSkill || !record.levels) return getCellEmpty();\n // Attempt to find the corresponding level from the record's levels.\n const tempLevel = record.levels.find(\n (level) =>\n level.lv === lv && (record.hideHeader ? level.skillProfile : true)\n );\n // If no such level is found, return with the default style.\n if (!tempLevel) return getCellEmpty();\n\n return (\n \n
{tempLevel.lv}
\n \n );\n };\n\n /**\n * Determines the styling and interactivity of cells based on the given record and level.\n * This function primarily checks the level and adjusts the cell style based on the record's details.\n */\n const onLevelColorCellRendered = (record, index, lv) => {\n // When record isn't a skill, just return an empty style object.\n if (!record.isSkill) return {};\n\n // This is a default style for a cell. Used for skill-based records when no specific level styling is found.\n const defaultStyle = {\n backgroundColor: constantData.lvBackgroundColorDefault,\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n };\n\n // If the record has no levels defined, just return the default styling.\n if (!record.levels) return { style: defaultStyle };\n\n // Attempt to find the corresponding level from the record's levels.\n const tempLevel = record.levels.find(\n (level) =>\n level.lv === lv && (record.hideHeader ? level.skillProfile : true)\n );\n\n // If no such level is found, return with the default style.\n if (!tempLevel) return { style: defaultStyle };\n let tempBackgroundColor = record.meta.skillColour;\n if (record.hideHeader === false && tempLevel.skillProfile) {\n switch (tempLevel.skillProfile.stringVal) {\n case constantData.characters.m:\n tempBackgroundColor = record.meta.colour;\n break;\n case constantData.characters.na:\n tempBackgroundColor = `repeating-linear-gradient(${record.meta.skillColour}, ${record.meta.colour} 10px, ${record.meta.skillColour} 10px, ${record.meta.colour} 20px)`;\n break;\n case constantData.characters.p:\n tempBackgroundColor = `repeating-linear-gradient(45deg, ${record.meta.skillColour}, ${record.meta.colour} 10px, ${record.meta.skillColour} 10px, ${record.meta.colour} 20px)`;\n break;\n }\n }\n return {\n // Set up the cell's styling based on the found level's value.\n style: {\n cursor: \"help\",\n // Determine the cell's background color based on the value.\n background: tempBackgroundColor,\n // Adjust text color depending on the value.\n color: \"black\",\n borderStyle: \"solid\",\n borderWidth: \"0.5px\",\n },\n };\n };\n\n // A simple tooltip renderer for cell titles\n const onCellTitleRendered = (text, description) => (\n \n {text} {version && (v. {version})}\n \n );\n\n const onCellTitle = (record, index) => {\n if (record.hideHeader && !record.isSkill) {\n return {\n className: \"r-hide\",\n };\n }\n return {};\n };\n\n const getDataSource = () => {\n const hideHeader = data.meta.hideHeader;\n // If the root is expanded, handle both subcategories and their skills\n return data.subCategories.flatMap((item, index) => {\n const { name, description, skillColour, colour, skills } = item;\n\n // Construct base data for the sub-category\n const baseData = {\n key: `${index + 1}`,\n category: name,\n hideHeader: hideHeader,\n isSkill: false,\n meta: { description, skillColour, colour },\n };\n\n // Construct data for each skill under the current sub-category\n const skillsData = skills.map((itemSkill, indexSkill) => {\n const { name, description, levels, code } = itemSkill;\n\n return {\n key: `${index + 1}.${indexSkill + 1}`,\n category: name,\n parent: item.name,\n hideHeader: hideHeader,\n isSkill: true,\n meta: { skillColour, colour, description, code },\n // Map each level of the skill to its data structure\n levels: levels.map((level) => ({\n lv: level.level,\n description: level.description,\n skillProfile: level.skillProfile,\n })),\n };\n });\n\n // Return a combined array of the base sub-category data and all its skills data\n return [baseData, ...skillsData];\n });\n };\n\n const getColumns = () => {\n // Initial columns for category and expand cells\n const initialColumns = [\n {\n title: () =>\n onCellTitleRendered(data.name, data.description, data.meta),\n dataIndex: constantData.categoryName,\n key: constantData.categoryName,\n render: onCategoryCellRendered,\n onCell: onCellTitle,\n },\n {\n title: () => onExpandCellTitleRendered(data.meta),\n key: constantData.infoName,\n dataIndex: constantData.infoName,\n render: () => getCellEmpty(),\n },\n ];\n\n // Generate columns for each skill level\n const skillLevelColumns = Array.from(\n { length: constantData.skillLevelCount },\n (_, lv) => {\n const level = lv + 1;\n return {\n title: `${level}`,\n dataIndex: `${level}`,\n key: `${level}`,\n onCell: (record, index) =>\n onLevelColorCellRendered(record, index, level),\n render: (text, record) => onCellRendered(text, record, level),\n };\n }\n );\n\n // Combine and return all columns\n return [...initialColumns, ...skillLevelColumns];\n };\n\n // useMemo calculates and memoizes the table data based on its dependencies.\n const tableData = useMemo(() => {\n if (data === undefined) return { dataSource: [], columns: [] };\n // Get the data source using the provided getDataSource function\n const dataSource = getDataSource();\n\n // Get the columns using the provided getColumns function\n const columns = getColumns();\n\n // Return the computed values in an object\n return { dataSource, columns };\n }, [data]); // Memoization depends on these three values.\n\n return (\n \n
\n \n
\n
\n );\n};\n\nexport default SkillChangeTable;\n","import CategoryAPI from \"../../../../common/api/service/CategoryService\";\nimport LorAPI from \"../../../../common/api/service/LorService\";\nimport PersonAPI from \"../../../../common/api/service/PersonService\";\nimport ProfileAPI from \"../../../../common/api/service/ProfileService\";\nimport { LevelResponsibility } from \"../../components/config/mockdata/levels\";\nimport {\n OrderCategory,\n OrderGeneric,\n} from \"../../components/config/mockdata/order\";\nimport SkillChangeFilters from \"../../components/filters/skillchange\";\nimport SkillChangeTable from \"../../components/table/skillchange\";\nimport { Row, Col, Empty, Typography } from \"antd\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst WrapperDiv = styled.div`\n .vs-h-sm-h {\n display: none;\n }\n @media (max-width: 1080px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n }\n\n .col-sm-cm {\n flex: 0 0 100%;\n }\n\n .vs-sm-h {\n display: none;\n }\n\n .vs-h-sm-h {\n display: contents;\n }\n }\n`;\n\nconst constantData = {\n empty: \"\",\n versionName: \"Version\",\n approvedText: \" (Approved)\",\n selfAssessedName: \"Self Assessed\",\n generic: {\n id: \"genericObj12345\",\n name: \"Generic Attributes\",\n description: null,\n },\n genericSub: {\n id: \"genericSubObj12345\",\n name: \"Generic Sub Attributes\",\n description: null,\n },\n colors: {\n type1: \"#3C65C2\",\n type2: \"#EEF2FF\",\n type3: \"#69849c\",\n type4: \"#a5b8c8\",\n },\n};\n\n/**\n * Utility function to extract default values from an item. If the item doesn't have\n * a particular key, it uses the default value provided.\n */\nconst extractDefaults = (item, defaults) => {\n return Object.keys(defaults).reduce((obj, key) => {\n obj[key] = item[key] ?? defaults[key];\n return obj;\n }, {});\n};\n\nconst SkillChange = (props) => {\n const [dataPerson, setDataPerson] = useState([]);\n const [dataCategory, setDataCategory] = useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n // Selection\n const [selectPerson, setSelectPerson] = useState();\n const [selectProfileType, setSelectProfileType] = useState();\n const [selectStartVersion, setSelectStartVersion] = useState();\n const [selectEndVersion, setSelectEndVersion] = useState();\n\n const [isCompactView, setIsCompactView] = useState(true);\n\n // Helper function to fetch and enrich profile versions for a given email\n const fetchProfileVersions = async (categories, email) => {\n // Fetching profile versions based on email\n const versions = await ProfileAPI.getManagedPeopleProfileVersions(email);\n\n // Mapping through each version to enrich with skill profiles\n const enrichedVersions = await Promise.all(\n versions.map(async (version) => {\n // Fetching skill profiles and self assessed skills in parallel for efficiency\n const [skills, selfAssessedSkills] = await Promise.all([\n ProfileAPI.getManagedPeopleSkillPofiles(\n email,\n version.sfiaVersion,\n version.version,\n version.profileType\n ),\n ProfileAPI.getManagedPeopleLorPofiles(\n email,\n version.sfiaVersion,\n version.version,\n version.profileType\n ),\n ]);\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n // Combining the fetched data and returning enriched version\n return {\n ...version,\n skillProfile: [...skills.filter(it => availableSkillCodes.includes(it.skillCode)), ...selfAssessedSkills],\n };\n })\n );\n\n return enrichedVersions;\n };\n\n const processPersonData = async (categories, people) => {\n // For each person, fetch and enrich their profile versions.\n people = await Promise.all(\n people.map(async (person) => {\n // Fetch enriched profile versions for the person.\n const profileVersions = await fetchProfileVersions(\n categories,\n person.personB.email\n );\n\n // Add an `approveVersion` flag based on approvals and return the enriched person data.\n return {\n ...person,\n profileVersions: profileVersions.map((version) => ({\n ...version,\n // Check if any account has an approval for this version.\n approveVersion: version.profileType == \"Self Assessed\" && person.personB.accounts.some((account) =>\n account.approvals.some(\n (approval) => approval.approvedVersion == version.version\n )\n ),\n })),\n };\n })\n );\n \n setDataPerson(people);\n };\n\n const processCategoryData = (category, lor) => {\n // Reordering category based on the predefined order.\n let orderedCats = OrderCategory.map((key) =>\n category.find((e) => e.name === key)\n );\n\n if (orderedCats.filter(it => it == undefined).length > 0){\n orderedCats = [...category]\n }\n\n let orderedGeneric = [];\n let lorNameOrder = [];\n\n lor.forEach((it) => {\n let idx = 99;\n if (OrderGeneric.find(x => x == it.name)){\n idx = OrderGeneric.indexOf(it.name);\n }\n\n lorNameOrder.push({\n idx,\n name:it.name\n })\n })\n\n lorNameOrder.sort((a, b) => (`${a.idx} ${a.name}` > `${b.idx} ${b.name}` ? 1 : -1)).forEach((lname) => {\n const l = lor.find(it => it.name == lname.name);\n orderedGeneric.push(l);\n })\n\n // Defining the genericObj structure.\n const genericObj = [\n {\n id: constantData.generic.id,\n name: constantData.generic.name,\n description: constantData.generic.description,\n styles: {\n color: constantData.colors.type1,\n backgroundColor: constantData.colors.type2,\n },\n hideHeader: true,\n sfiaVersion: 8,\n subCategories: [\n {\n id: constantData.genericSub.id,\n name: constantData.genericSub.name,\n description: constantData.genericSub.description,\n colour: constantData.colors.type3,\n skillColour: constantData.colors.type4,\n skills: orderedGeneric,\n },\n ],\n },\n ];\n // Combining the reordered category list with the generic object.\n setDataCategory([...genericObj, ...orderedCats]);\n };\n\n const processAllData = async () => {\n try {\n if (!props.manageProfileByAdminPopup){\n // Fetching both datasets in parallel.\n const [peoples, category, lor] = await Promise.all([\n PersonAPI.getPersonMyPeoples(),\n CategoryAPI.getCategories(),\n LorAPI.getLors(),\n ]);\n\n processCategoryData(category, lor);\n await processPersonData(category, peoples);\n } else {\n let peoples = [];\n\n if (props.managedPeople){\n peoples.push(props.managedPeople); \n }\n\n const [category, lor] = await Promise.all([\n CategoryAPI.getCategories(),\n LorAPI.getLors(),\n ]);\n\n processCategoryData(category, lor);\n await processPersonData(category, peoples);\n }\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n // Use the useMemo hook to optimize the transformation of dataPerson into the desired format.\n // This ensures that the transformation only happens when dataPerson changes.\n const optionPerson = useMemo(() => {\n // Check if dataPerson is empty; if so, return an empty array.\n if (!dataPerson.length) return [];\n\n // Map over the dataPerson array to transform each item.\n // This combines the task of accessing item.personB and constructing the new format\n // into a single iteration over the dataPerson array.\n return dataPerson.map((item) => ({\n // Set the value as the ID of personB.\n value: item.personB.id,\n\n // Construct the label by combining the firstName and lastName of personB.\n label: `${item.personB.firstName} ${item.personB.lastName}`,\n }));\n }, [dataPerson]); // Only recompute optionPerson when dataPerson changes.\n\n // Use the useMemo hook to transform optionPerson into the desired option format.\n // This ensures the transformation only occurs if optionPerson changes.\n const optionProfileType = useMemo(() => {\n // If dataPerson is empty, return an empty array.\n if (!dataPerson.length) return [];\n\n // Find the correct personB item based on the person ID and retrieve profileVersions.\n // If not found, default to an empty array.\n const profileVersions =\n dataPerson.find((item) => item.personB.id === selectPerson)\n ?.profileVersions || [];\n\n const profileTypes = [];\n\n if (profileVersions.find(it => it.profileType == \"Self Assessed\")){\n profileTypes.push({\n value : \"Self Assessed\",\n label : \"Self Assessed\"\n });\n }\n\n if (profileVersions.find(it => it.profileType == \"Endorsed\")){\n profileTypes.push({\n value : \"Endorsed\",\n label : \"Endorsed\"\n });\n }\n\n return profileTypes;\n }, [optionPerson, selectPerson]); // Dependencies for useMemo: Only recompute if either of these values change.\n\n // Use the useMemo hook to transform optionPerson into the desired option format.\n // This ensures the transformation only occurs if optionPerson changes.\n const optionStartVersion = useMemo(() => {\n // If dataPerson is empty, return an empty array.\n if (!dataPerson.length) return [];\n\n // Find the correct personB item based on the person ID and retrieve profileVersions.\n // If not found, default to an empty array.\n const profileVersions =\n dataPerson.find((item) => item.personB.id === selectPerson)\n ?.profileVersions || [];\n\n // Map over the profileVersions to create the desired option format.\n return profileVersions.map((item) => ({\n value: item.version,\n label: `${constantData.versionName} ${item.version} - ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(item.createdOn))}${\n item.approveVersion ? constantData.approvedText : constantData.empty\n }`,\n refData: item,\n }));\n }, [optionPerson, selectPerson]); // Dependencies for useMemo: Only recompute if either of these values change.\n\n // Use the useMemo hook to optimize the generation of optionEndVersion based on optionStartVersion.\n // This ensures that the filtered options only get recalculated if optionStartVersion or selectStartVersion changes.\n const optionEndVersion = useMemo(() => {\n // If optionStartVersion doesn't have any items, return an empty array.\n if (!optionStartVersion.length) return [];\n\n // Filter the options from optionStartVersion. Only include items where the version\n // is greater than the selected start version, ensuring that the end version is always after the start version.\n return optionStartVersion.filter((item) => item.value > selectStartVersion);\n }, [optionStartVersion, selectStartVersion]); // Dependencies for useMemo: Only recompute if either of these values change.\n\n // Function to generate a table by profile level.\n const generateTableByProfileLevel = (profile) => {\n return dataCategory.map((item) => {\n // Extract default values for the main category item\n const itemDefaults = {\n hideHeader: false,\n colour: \"\",\n styles: null,\n };\n const extractedItem = extractDefaults(item, itemDefaults);\n\n return {\n name: item.name,\n meta: {\n hideHeader: extractedItem.hideHeader,\n levelResponsibility: LevelResponsibility,\n },\n description: item.description,\n styles: {\n tableHeaderColor: extractedItem?.styles?.color || \"white\",\n tableHeaderBackgroundColor:\n extractedItem?.styles?.backgroundColor || extractedItem.colour,\n },\n subCategories: item.subCategories.map((subCategoryKey) => {\n // Extract default values for sub-category items\n const subCategoryDefaults = {\n colour: \"\",\n skillColour: \"\",\n };\n const extractedSubCategory = extractDefaults(\n subCategoryKey,\n subCategoryDefaults\n );\n\n return {\n name: subCategoryKey.name,\n description: subCategoryKey.description,\n colour: extractedSubCategory.colour,\n skillColour: extractedSubCategory.skillColour,\n skills: subCategoryKey.skills\n .filter(it => !it.isHidden)\n .map((skillKey) => {\n // Extract default values for skills within sub-category\n const skillDefaults = {\n skillsCode: skillKey.lorCode,\n };\n const extractedSkill = extractDefaults(skillKey, skillDefaults);\n\n return {\n name: skillKey.name,\n description: skillKey.description,\n code: extractedSkill.skillsCode,\n levels: skillKey.levels.map((levelKey) => {\n // Extract default values for levels within skills\n const levelDefaults = {\n level: levelKey.levelNumber,\n };\n const extractedLevel = extractDefaults(\n levelKey,\n levelDefaults\n );\n\n // Find a matching skill profile\n const findSkillProfile = profile.skillProfile.filter(it => it.profileType == selectProfileType).find(\n (_) =>\n // filter category\n (_.category ?? constantData.generic.name) === item.name &&\n // filter sub category\n (_.subCategory ?? constantData.genericSub.name) ===\n subCategoryKey.name &&\n // filter code\n (_.skillCode ?? _.lorCode) ===\n extractedSkill.skillsCode &&\n // filter level\n _.level === extractedLevel.level\n );\n\n return {\n level: extractedLevel.level,\n description: levelKey.description,\n skillProfile: findSkillProfile,\n };\n }),\n };\n }),\n };\n }).filter(it => it.skills.length > 0),\n };\n }).filter(it => it.subCategories.length > 0);\n };\n\n // Compares skills between two categories and returns the differences.\n const compareSkills = (itemSub, secondSkillsList) => {\n const listDiffSkills = [];\n\n itemSub.skills.forEach((skill, index) => {\n const firstSkills = skill.levels.filter((_) => _.skillProfile);\n const secondSkills = secondSkillsList[index].levels.filter(\n (_) => _.skillProfile\n );\n\n let isDiff = false;\n\n // Check if the number of skills differs\n if (firstSkills.length !== secondSkills.length) {\n isDiff = true;\n } else {\n // Check if there's any skill level mismatch between the tables\n isDiff = firstSkills.some((firstSkill) => {\n const findMatchLevel = secondSkills.find(\n (secondSkill) => secondSkill.level === firstSkill.level\n );\n\n return (\n !findMatchLevel ||\n findMatchLevel.skillProfile.stringVal !==\n firstSkill.skillProfile.stringVal\n );\n });\n }\n\n // If a difference was found, add the skill to the list of differences\n if (isDiff) {\n listDiffSkills.push({\n name: skill.name,\n code: skill.code,\n });\n }\n });\n\n return listDiffSkills;\n };\n\n // Compares two tables and filters out their data based on the differences.\n const compareTables = (firstTable, secondTable) => {\n // Copy tables to avoid mutations\n let tempFirst = [...firstTable];\n let tempSecond = [...secondTable];\n const listDiffCategory = [];\n\n tempFirst.forEach((item, index) => {\n const listDiffSubCategories = [];\n\n item.subCategories.forEach((itemSub, indexSub) => {\n const listDiffSkills = compareSkills(\n itemSub,\n secondTable[index].subCategories[indexSub].skills\n );\n\n // If differences in skills were found, filter the skills for that sub-category\n if (listDiffSkills.length > 0) {\n itemSub.skills = itemSub.skills.filter((skill) =>\n listDiffSkills.some((diff) => diff.name === skill.name)\n );\n tempSecond[index].subCategories[indexSub].skills = tempSecond[\n index\n ].subCategories[indexSub].skills.filter((skill) =>\n listDiffSkills.some((diff) => diff.name === skill.name)\n );\n listDiffSubCategories.push({ name: itemSub.name });\n } else {\n // Reset skills if no differences were found\n itemSub.skills = [];\n tempSecond[index].subCategories[indexSub].skills = [];\n }\n });\n\n // If differences in subcategories were found, filter the sub-categories for that category\n if (listDiffSubCategories.length > 0) {\n item.subCategories = item.subCategories.filter((subCat) =>\n listDiffSubCategories.some((diff) => diff.name === subCat.name)\n );\n tempSecond[index].subCategories = tempSecond[\n index\n ].subCategories.filter((subCat) =>\n listDiffSubCategories.some((diff) => diff.name === subCat.name)\n );\n listDiffCategory.push({ name: item.name });\n } else {\n // Reset subcategories if no differences were found\n item.subCategories = [];\n secondTable[index].subCategories = [];\n }\n });\n\n // If differences in categories were found, filter the main category list\n if (listDiffCategory.length > 0) {\n tempFirst = tempFirst.filter((cat) =>\n listDiffCategory.some((diff) => diff.name === cat.name)\n );\n tempSecond = tempSecond.filter((cat) =>\n listDiffCategory.some((diff) => diff.name === cat.name)\n );\n } else {\n // Reset tables if no differences were found\n tempFirst = [];\n tempSecond = [];\n }\n\n return {\n first: tempFirst,\n second: tempSecond,\n };\n };\n\n const compareTableSkills = (firstTable, secondTable) => {\n let updatedSkills = [];\n \n if (firstTable && firstTable.length > 0){\n firstTable.filter(it => it.stringVal != \"N\" && it.profileType == selectProfileType && !it.isExtraFramework).forEach((firstSkill) => {\n if (firstSkill.skillCode){\n const category = dataCategory.find(it => it.name == firstSkill.category);\n const categoryIndex = category ? dataCategory.findIndex(it => it.name == firstSkill.category) : 0;\n const subCategory = category ? category.subCategories.find(it => it.name == firstSkill.subCategory) : null;\n const subCategoryIndex = subCategory ? category.subCategories.findIndex(it => it.name == firstSkill.subCategory) : 0;\n const skill = subCategory ? subCategory.skills.find(it => it.name == firstSkill.skill) : null;\n const skillIndex = skill ? subCategory.skills.findIndex(it => it.name == firstSkill.skill) : 0;\n\n const checkSecond = secondTable ? secondTable.find(it => it.stringVal != \"N\" && it.profileType == selectProfileType && it.category == firstSkill.category && it.subCategory == firstSkill.subCategory && it.skillCode == firstSkill.skillCode && it.level == firstSkill.level) : null;\n if (checkSecond) {\n if (firstSkill.stringVal != checkSecond.stringVal){\n updatedSkills.push({\n category : firstSkill.category,\n categoryIndex,\n subCategory : firstSkill.subCategory,\n subCategoryIndex,\n skill : firstSkill.skill,\n skillIndex,\n skillCode : firstSkill.skillCode,\n level : firstSkill.level,\n stringVal : checkSecond.stringVal,\n originalSkillType : firstSkill.stringVal == \"M\" ? \"Competent\" : (firstSkill.stringVal == \"P\" ? \"Proficient\" : firstSkill.stringVal == \"NA\" ? \"Knowledge\" : \"\"),\n skillType : checkSecond.stringVal == \"M\" ? \"Competent\" : (checkSecond.stringVal == \"P\" ? \"Proficient\" : checkSecond.stringVal == \"NA\" ? \"Knowledge\" : \"\"),\n action : \"Updated\"\n })\n }\n } else {\n updatedSkills.push({\n category : firstSkill.category,\n categoryIndex,\n subCategory : firstSkill.subCategory,\n subCategoryIndex,\n skill : firstSkill.skill,\n skillIndex,\n skillCode : firstSkill.skillCode,\n level : firstSkill.level,\n stringVal : firstSkill.stringVal,\n skillType : firstSkill.stringVal == \"M\" ? \"Competent\" : (firstSkill.stringVal == \"P\" ? \"Proficient\" : firstSkill.stringVal == \"NA\" ? \"Knowledge\" : \"\"),\n action : \"Removed\"\n })\n }\n } else if (firstSkill.lorCode){\n const category = dataCategory.find(it => it.subCategories.some(it => it.skills.some(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode)));\n const categoryIndex = category ? dataCategory.findIndex(it => it.subCategories.some(it => it.skills.some(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode))) : 0;\n const subCategory = category ? category.subCategories.find(it => it.skills.some(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode)) : null;\n const subCategoryIndex = subCategory ? category.subCategories.findIndex(it => it.skills.some(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode)) : 0;\n const skill = subCategory ? subCategory.skills.find(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode) : null;\n const skillIndex = skill ? subCategory.skills.findIndex(it => it.name == firstSkill.lor && it.lorCode == firstSkill.lorCode) : 0;\n \n const checkSecond = secondTable ? secondTable.find(it => it.stringVal != \"N\" && it.profileType == selectProfileType && !it.isExtraFramework && it.lor == firstSkill.lor && it.lorCode == firstSkill.lorCode && it.level == firstSkill.level) : null;\n if (!checkSecond) {\n updatedSkills.push({\n category : category && category.name,\n categoryIndex,\n subCategory : subCategory && subCategory.name,\n subCategoryIndex,\n skill : firstSkill.lor,\n skillIndex,\n skillCode : firstSkill.lorCode,\n level : firstSkill.level,\n action : \"Removed\"\n })\n }\n }\n });\n }\n\n if (secondTable && secondTable.length > 0){\n secondTable.filter(it => it.stringVal != \"N\" && it.profileType == selectProfileType && !it.isExtraFramework).forEach((secondSkill) => {\n if (secondSkill.skillCode){\n const category = dataCategory.find(it => it.name == secondSkill.category);\n const categoryIndex = category ? dataCategory.findIndex(it => it.name == secondSkill.category) : 0;\n const subCategory = category ? category.subCategories.find(it => it.name == secondSkill.subCategory) : null;\n const subCategoryIndex = subCategory ? category.subCategories.findIndex(it => it.name == secondSkill.subCategory) : 0;\n const skill = subCategory ? subCategory.skills.find(it => it.name == secondSkill.skill) : null;\n const skillIndex = skill ? subCategory.skills.findIndex(it => it.name == secondSkill.skill) : 0;\n\n const checkFirst = firstTable ? firstTable.find(it => it.stringVal != \"N\" && it.profileType == selectProfileType && !it.isExtraFramework && it.category == secondSkill.category && it.subCategory == secondSkill.subCategory && it.skillCode == secondSkill.skillCode && it.level == secondSkill.level) : null;\n if (!checkFirst){\n updatedSkills.push({\n category : secondSkill.category,\n categoryIndex,\n subCategory : secondSkill.subCategory,\n subCategoryIndex,\n skill : secondSkill.skill,\n skillIndex,\n skillCode : secondSkill.skillCode,\n level : secondSkill.level,\n stringVal : secondSkill.stringVal,\n skillType : secondSkill.stringVal == \"M\" ? \"Competent\" : (secondSkill.stringVal == \"P\" ? \"Proficient\" : secondSkill.stringVal == \"NA\" ? \"Knowledge\" : \"\"),\n action : \"Added\"\n })\n }\n }else if (secondSkill.lorCode){\n const category = dataCategory.find(it => it.subCategories.some(it => it.skills.some(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode)));\n const categoryIndex = category ? dataCategory.findIndex(it => it.subCategories.some(it => it.skills.some(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode))) : 0;\n const subCategory = category ? category.subCategories.find(it => it.skills.some(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode)) : null;\n const subCategoryIndex = subCategory ? category.subCategories.findIndex(it => it.skills.some(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode)) : 0;\n const skill = subCategory ? subCategory.skills.find(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode) : null;\n const skillIndex = skill ? subCategory.skills.findIndex(it => it.name == secondSkill.lor && it.lorCode == secondSkill.lorCode) : 0;\n\n const checkFirst = firstTable ? firstTable.find(it => it.stringVal != \"N\" && it.profileType == selectProfileType && it.lor == secondSkill.lor && it.lorCode == secondSkill.lorCode && it.level == secondSkill.level) : null;\n if (!checkFirst){\n updatedSkills.push({\n category : category && category.name,\n categoryIndex,\n subCategory : subCategory && subCategory.name,\n subCategoryIndex,\n skill : secondSkill.lor,\n skillIndex,\n skillCode : secondSkill.lorCode,\n level : secondSkill.level,\n stringVal : secondSkill.stringVal,\n action : \"Added\"\n })\n }\n }\n });\n }\n\n return updatedSkills;\n }\n\n /**\n * Memoized computation of dashboard tables based on selected start and end versions.\n * It also takes into account the `isCompactView` flag to determine if tables should be compared or not.\n */\n const dashboardTable = useMemo(() => {\n let firstTable = [];\n let secondTable = [];\n\n let firstSkillProfiles = [];\n let secondSkillProfiles = [];\n let updatedSkillProfiles = [];\n\n // If a start version is selected, generate the first table\n if (selectStartVersion) {\n const foundStartVersion = optionStartVersion.find(\n (item) => item.value === selectStartVersion\n );\n firstTable = foundStartVersion\n ? generateTableByProfileLevel(foundStartVersion.refData)\n : [];\n\n firstSkillProfiles = foundStartVersion ? foundStartVersion.refData.skillProfile : [];\n }\n\n // If an end version is selected, generate the second table\n if (selectEndVersion) {\n const foundEndVersion = optionEndVersion.find(\n (item) => item.value === selectEndVersion\n );\n secondTable = foundEndVersion\n ? generateTableByProfileLevel(foundEndVersion.refData)\n : [];\n\n secondSkillProfiles = foundEndVersion ? foundEndVersion.refData.skillProfile : [];\n\n // If compact view is enabled and both tables exist, compare and filter them\n if (isCompactView && firstTable.length && secondTable.length) {\n const changedSkills = compareTableSkills(firstSkillProfiles, secondSkillProfiles);\n updatedSkillProfiles = changedSkills;\n const { first, second } = compareTables(firstTable, secondTable);\n firstTable = first;\n secondTable = second;\n }\n }\n\n return {\n firstTable,\n secondTable,\n updatedSkillProfiles\n };\n }, [selectStartVersion, selectEndVersion, isCompactView]);\n\n useEffect(() => {\n // Reset selectPerson if dataPerson is empty\n if (dataPerson.length > 0 && props.manageProfileByAdminPopup && !selectPerson){\n setSelectPerson(dataPerson[0].personB.id);\n }\n\n if (!dataPerson.length) {\n setSelectPerson(undefined);\n } else if (selectPerson) {\n if (selectProfileType && optionProfileType.length > 0 && optionProfileType.find(it => it.value == selectProfileType)) { \n // When selectPerson exists, find the minimum from optionStartVersion \n const find = optionStartVersion.filter(it => it.refData.profileType == selectProfileType).reduce((p, v) => (p < v ? p : v));\n \n if (find) {\n setSelectStartVersion(find.value);\n } \n }else {\n const defaultProfileType = optionProfileType.length > 0 ? optionProfileType[0] : null;\n\n if (defaultProfileType) {\n setSelectProfileType(defaultProfileType.value);\n // When selectPerson exists, find the minimum from optionStartVersion \n const find = optionStartVersion.filter(it => it.refData.profileType == defaultProfileType.value).reduce((p, v) => (p < v ? p : v));\n \n if (find) {\n setSelectStartVersion(find.value);\n }\n } \n }\n } else {\n // Reset selectStartVersion if selectPerson doesn't exist\n setSelectStartVersion(undefined);\n }\n }, [dataPerson, selectPerson, selectProfileType, optionStartVersion]);\n\n // Reset selectEndVersion when selectStartVersion changes\n useEffect(() => {\n setSelectEndVersion(undefined);\n }, [selectStartVersion]);\n\n // This effect runs when the component mounts.\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n // Fetch and process all data\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []); // Empty dependency array means this effect runs once when the component mounts and never again.\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n // If content is no data, display a empty.\n if (dataPerson.length < 1) {\n return (\n } />\n );\n }\n\n return (\n <>\n {/* Render SkillChangeFilters with necessary props */}\n \n\n {/* Check if there are any items in firstTable */}\n {dashboardTable.firstTable.length > 0 ? (\n \n {dashboardTable.secondTable.length > 0 ? (\n \n {\n dashboardTable.secondTable.map((item, index) => (\n \n {/* Render the first table */}\n \n {index === 0 && (\n \n Version {selectStartVersion}\n \n )}\n {/* Render each SkillChangeTable. Use unique identifier if present, or fall back to the index. */}\n \n \n {/* Render the second table */}\n \n {index === 0 && (\n \n Version {selectEndVersion}\n \n )}\n {/* Render each SkillChangeTable. Use unique identifier if present, or fall back to the index. */}\n \n \n \n ))\n }\n {/* Render skill changed summary */}\n {\n dashboardTable.updatedSkillProfiles.length > 0 && \n \n \n {\n dashboardTable.updatedSkillProfiles\n .sort((a, b ) => \n {\n if (a.categoryIndex < b.categoryIndex) return -1;\n if (a.categoryIndex > b.categoryIndex) return 1;\n if (a.subCategoryIndex < b.subCategoryIndex) return -1;\n if (a.subCategoryIndex > b.subCategoryIndex) return 1;\n if (a.skillIndex < b.skillIndex) return -1;\n if (a.skillIndex > b.skillIndex) return 1;\n if (a.level < b.level) return -1;\n if (a.level > b.level) return 1;\n return 0;\n }\n )\n .map((item, index) => (\n
\n {`${item.skillCode}${item.level} - ${item.skill} : ${item.skillType ? (item.skillType + \" \") : \"\"}${item.action}`}\n
\n ))\n }\n \n
\n }\n
\n ) : (\n \n {/* Render the table */}\n \n {dashboardTable.firstTable.map((item, index) => (\n // Render each SkillChangeTable. Use unique identifier if present, or fall back to the index.\n \n ))}\n \n \n )}\n
\n ) : (\n selectStartVersion && (\n (\n \n )}\n />\n )\n )}\n \n );\n};\nexport { SkillChange };\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag, Typography, Divider } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n }\n @media (max-width: 760px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst SkillsComparisonFilters = ({\n objName,\n objType,\n objProfile,\n objRequirement,\n objLorSkill,\n objGeneric,\n}) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [\n objName,\n objType,\n objProfile,\n objRequirement,\n objLorSkill,\n objGeneric,\n ].some((obj) => obj?.value?.length > 0);\n }, [\n objName?.value,\n objType?.value,\n objProfile?.value,\n objRequirement?.value,\n objLorSkill?.value,\n objGeneric?.value,\n ]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objProfile, \"magenta\", onCloseClicked, true)}\n {renderTags(objName, \"red\", onCloseClicked)}\n {renderTags(objRequirement, \"green\", onCloseClicked)}\n {renderTags(objType, \"cyan\", onCloseClicked)}\n {renderTags(objLorSkill, \"geekblue\", onCloseClicked, true)}\n {renderTags(objGeneric, \"purple\", onCloseClicked, true)}\n \n \n \n {/* Rest of the JSX structure where you'll use your CustomSelect */}\n \n \n \n \n \n \n Filter only the skills we have\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Filter only the skills we need\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Filter both\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default SkillsComparisonFilters;\n","import CategoryAPI from \"../../../../common/api/service/CategoryService\";\nimport JobService from \"../../../../common/api/service/JobService\";\nimport PersonService from \"../../../../common/api/service/PersonService\";\nimport ProfileService from \"../../../../common/api/service/ProfileService\";\nimport { Bar, TreeMapChart } from \"../../components/charts\";\nimport { LevelResponsibility } from \"../../components/config/mockdata/levels\";\nimport { OrderCategory } from \"../../components/config/mockdata/order\";\nimport SkillsComparisonFilters from \"../../components/filters/skillscomparison\";\nimport {\n SkillsWeHaveNeedTable,\n SkillsWeHaveNeedTableNormal,\n} from \"../../components/table\";\nimport { Row, Col, Typography } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\n// styled components\nconst Container = styled.div`\n padding: 10px;\n\n .vs-h-sm-h {\n display: none;\n }\n\n .mb-30 {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1280px) {\n .col-sm-c {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n\n .vs-h-sm-h {\n display: contents;\n }\n\n .sm-mt-20 {\n margin-top: 20px;\n }\n }\n`;\n\nconst ContainerContent = styled.div`\n padding: 20px 30px;\n margin-bottom: 50px;\n`;\n\nconst ContainerDefault = styled.div`\n padding: 0px 20px 00px 30px;\n`;\n\n// Constant Data\nconst constantData = {\n pageSize: 3,\n jobLorProfileLevel: 8,\n empty: \"\",\n spaceBar: \" \",\n levelName: \"level\",\n profileStatusName: \"profileStatus\",\n skillCodeLevelName: \"skillCodeLevel\",\n desirableName: \"Desirable\",\n requiredName: \"Required\",\n jobTypeList: [\"Current\", \"Future\"],\n fullName: \"fullName\",\n categoryName: \"category\",\n skillName: \"skill\",\n skillCode: \"skillCode\",\n categoryTitleName: \"Category\",\n subCategoryName: \"subCategory\",\n endorsedName: \"Endorsed\",\n competencyName: \"Competency\",\n capabilityName: \"capability\",\n lorCodeName: \"lorCode\",\n proficiencyName: \"Proficiency\",\n knowledgeName: \"Knowledge\",\n genericAttributeName: \"GenericAttribute\",\n personName: \"Person\",\n keyResult: [\"haveSkill\", \"needSkill\"],\n styles: {\n maxWidth: \"auto\",\n },\n colors: {\n type1: \"#3C65C2\",\n type2: \"#EEF2FF\",\n type3: \"#69849c\",\n type4: \"#a5b8c8\",\n },\n characters: {\n m: \"M\",\n n: \"N\",\n p: \"P\",\n },\n};\n\n// Helper function to deep clone data using JSON methods\n// This works for simple data structures without circular references or functions\nconst deepClone = (data) => JSON.parse(JSON.stringify(data));\n\n// Returns a new array containing only the unique elements from the provided `dataArray` based on a custom comparison function.\nconst distinctArray = (dataArray, func) => {\n // `seen` will store a unique \"hash\" for each item we've already encountered.\n const seen = new Set();\n\n // The array to accumulate unique items from `dataArray`.\n const uniqueArray = [];\n\n dataArray.forEach((item) => {\n // Create a unique \"hash\" for the current item based on the comparator function.\n // This \"hash\" is simply a string representation of all items considered equal to the current item.\n const hash = uniqueArray.some((itemIn) => func(item, itemIn));\n\n // If we haven't seen this unique \"hash\" before, add the item to our unique array.\n if (!hash) {\n seen.add(hash);\n uniqueArray.push(item);\n }\n });\n\n return uniqueArray;\n};\n\nconst SkillsComparison = () => {\n // Data\n const [dataHaveSkill, setDataHaveSkill] = useState([]);\n const [dataNeedSkill, setDataNeedSkill] = useState([]);\n const [genericAttributeHaveSkillData, setGenericAttributeHaveSkillData] =\n useState([]);\n const [genericAttributeNeedSkillData, setGenericAttributeNeedSkillData] =\n useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n\n // Selection\n const [selectedLorSkill, setSelectedLorSkill] = useState([]);\n const [selectedGeneric, setSelectedGeneric] = useState([]);\n const [selectedName, setSelectedName] = useState([]);\n const [selectedProfile, setSelectedProfile] = useState([]);\n const [selectedRequirement, setSelectedRequirement] = useState([]);\n const [selectedType, setSelectedType] = useState([]);\n\n const [categories, setCategories] = useState([]);\n\n // Processes the data of a person for a given item and its associated versions.\n const processPersonData = async (item, versions, categories) => {\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n // Creates a copy of personB's accounts and sorts them in descending order based on the creation date.\n // Then, selects the most recent account.\n const account = item.personB.accounts\n .slice()\n .sort((a, b) => new Date(b.createdOn) - new Date(a.createdOn))[0];\n\n // If an account exists, creates a copy of its approvals, sorts them in descending order based on the approval date,\n // and then selects the most recent approval.\n const approver =\n account &&\n account.approvals\n .slice()\n .sort((a, b) => new Date(b.approvedOn) - new Date(a.approvedOn))[0];\n\n // Retrieves skillProfiles from the item. If they're not available, and a version exists,\n // fetches them using the ProfileService. If none of these conditions are met, defaults to an empty array.\n const skillProfiles =\n item.skillProfile ||\n (versions.length > 0 &&\n (await ProfileService.getManagedPeopleSkillPofiles(\n item.personB.email,\n versions[0].sfiaVersion,\n versions[0].version\n ))) ||\n [];\n\n // Returns the processed data.\n return {\n approver,\n profiles: processDetail(skillProfiles.filter(it => availableSkillCodes.includes(it.skillCode)), categories),\n name: constantData.personName,\n };\n };\n\n //Processes generic attribute data for a given item and its versions.z`\n const processGenericAttributeHaveSkillData = async (\n item,\n versions,\n categories\n ) => {\n // Sorts the accounts of personB based on the creation date.\n const account = item.personB.accounts.sort(\n (a, b) => new Date(a.createdOn) - new Date(b.createdOn)\n );\n\n // Sorts the approvals of the oldest account based on the approval date.\n const sortedApprovals = account[0].approvals.sort(\n (a, b) => new Date(a.approvedOn) - new Date(b.approvedOn)\n );\n\n // Gets the first (oldest) approver if available, otherwise null.\n const approver = sortedApprovals.length > 0 ? sortedApprovals[0] : null;\n\n // Retrieves lorProfiles from the item or fetches them if not available and a version exists.\n const lorProfiles =\n item.lorProfile ||\n (versions.length > 0\n ? await ProfileService.getManagedPeopleLorPofiles(\n item.personB.email,\n versions[0].sfiaVersion,\n versions[0].version\n )\n : []);\n\n // Returns the processed data.\n return {\n approver,\n profiles: processDetail(lorProfiles, categories),\n name: constantData.genericAttributeName,\n };\n };\n\n const processGenericAttributeNeedSkillData = (data) => {\n // Generic\n // For the generic category of needSkill, we transform the data\n // by mapping over the jobLor property and appending jobName and jobRef to each item\n let tempMapJob = data\n .map((item) =>\n item.jobLor.map((jobLor) => ({\n ...jobLor,\n jobName: item.jobName,\n jobRef: item.jobRef,\n }))\n )\n .flat(2)\n .map((item) => ({\n jobName: item.jobName,\n jobRef: item.jobRef,\n lor: item.lor,\n lorCode: item.lorCode,\n level: item.level,\n }));\n\n return distinctArray(\n tempMapJob,\n (itemA, itemB) => JSON.stringify(itemA) === JSON.stringify(itemB)\n );\n };\n\n // Processes the job details for a given list of items.\n // For each item, it fetches the associated job, its skill profiles, and its lor profiles.\n const processJobDetailData = async (categories, items) => {\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n // For each item, create a set of promises to fetch the relevant job details.\n const jobDetailsPromises = items.map(async (item) => {\n // Use Promise.all to fetch the job, its skill profiles, and lor profiles concurrently for the given jobId.\n const [job, jobSkillProfiles, jobLorProfiles] = await Promise.all([\n JobService.getJob(item.jobId),\n JobService.getJobSkillProfiles(item.jobId),\n JobService.getJobLorProfiles(\n item.jobId\n ),\n ]);\n\n // Enrich each jobSkillProfile with additional job details (name, reference, lor profiles).\n return jobSkillProfiles\n .filter(it => availableSkillCodes.includes(it.skillCode))\n .map((profile) => {\n profile.jobName = job.name;\n profile.jobRef = job.reference;\n profile.jobLor = jobLorProfiles;\n return profile;\n });\n });\n\n // Resolve all the promises and flatten the resulting arrays to a single array.\n return (await Promise.all(jobDetailsPromises)).flat(2);\n };\n\n // Processes data related to people who possess certain skills.\n const processHaveSkillData = async (personPeople, categories) => {\n // Initialize arrays to store processed data.\n const personData = [];\n const genericAttributeData = [];\n\n // Map over each person item and process their data concurrently.\n await Promise.all(\n personPeople.map(async (item) => {\n // Get the profile versions of the current person.\n // If not provided, fetch them using the ProfileService.\n const versions =\n item.profileVersion ||\n (await ProfileService.getManagedPeopleProfileVersions(\n item.personB.email\n ));\n\n // Concurrently fetch and process person data and generic attribute data.\n const listData = await Promise.all([\n processPersonData(item, versions, categories),\n processGenericAttributeHaveSkillData(item, versions, categories),\n ]);\n\n // For each processed data value, transform and filter the profiles.\n for (const value of listData) {\n const mapData = value.profiles\n .map((_) => ({\n ..._,\n // Append full name and email details to each profile.\n fullName: `${item.personB.firstName} ${item.personB.lastName}`,\n email: item.personB.email,\n ...value.approver,\n // Set the profile status based on its type and approver details.\n profileStatus: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? `${_.profileType} (Approved)`\n : `${_.profileType} (Not Approved)`\n : _.profileType,\n isApproved: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? true\n : false\n : null,\n approvedText: !_.profileType.includes(constantData.endorsedName)\n ? value.approver\n ? \"Approved\"\n : \"Not Approved\"\n : null,\n // Determine the capability based on stringVal.\n capability:\n _.stringVal === constantData.characters.m\n ? constantData.competencyName\n : _.stringVal === constantData.characters.p\n ? constantData.proficiencyName\n : constantData.knowledgeName,\n }))\n .filter((_) => _.stringVal !== constantData.characters.n);\n\n // If the processed data name matches \"personName\", push to personData, else to genericAttributeHaveSkillData.\n if (value.name === constantData.personName) {\n personData.push(mapData);\n } else {\n genericAttributeData.push(mapData);\n }\n }\n })\n );\n\n // Flatten and set the processed data to their respective states or storage locations.\n setDataHaveSkill(personData.flat(2));\n setGenericAttributeHaveSkillData(genericAttributeData.flat(2));\n };\n\n // Processes data related to the skills needed by people.\n const processNeedSkillData = async (personPeople, categories) => {\n // For each person, fetch their job matches concurrently.\n // Flatten the resulting array three levels deep.\n const managedPeopleJobMatches = (\n await Promise.all(\n personPeople.map((item) =>\n JobService.getManagedPeopleJobMatches(item.personB.email)\n )\n )\n ).flat(3);\n\n // Filter out jobs that are not part of the predefined job type list.\n const filteredJobs = managedPeopleJobMatches.filter((item) =>\n constantData.jobTypeList.includes(item.jobType)\n );\n\n // Process the job details for the filtered jobs.\n const jobDetails = await processJobDetailData(categories, filteredJobs);\n\n // Reduce the job details to create a list of processed jobs, mapping each job's stringVal\n // to its respective 'need' value.\n const processedJobs = jobDetails.reduce((a, b) => {\n if (b.stringVal === constantData.characters.m) {\n b.need = constantData.requiredName;\n // Add the processed job to the accumulator.\n a.push(b);\n } else if (b.stringVal === constantData.characters.p) {\n b.need = constantData.desirableName;\n // Add the processed job to the accumulator.\n a.push(b);\n } else {\n b.need = constantData.empty;\n // Add the processed job to the accumulator.\n a.push(b);\n }\n return a;\n }, []);\n\n const processedData = processDetail(processedJobs, categories);\n const genericAttributeData =\n processGenericAttributeNeedSkillData(processedData);\n // Update the state or storage with the processed jobs.\n setDataNeedSkill(processedData);\n setGenericAttributeNeedSkillData(genericAttributeData);\n };\n\n const processDetail = (data, categories) =>\n data.map((element) => {\n let findCategory = categories?.find(\n (item) => item.name === element?.category\n );\n if (!findCategory) {\n findCategory = {\n colour: constantData.colors.type3,\n description: constantData.empty,\n };\n }\n let findSubCategory = findCategory?.subCategories?.find(\n (item) => item.name === element?.subCategory\n );\n if (!findSubCategory) {\n findSubCategory = {\n colour: constantData.colors.type4,\n description: constantData.empty,\n };\n }\n const findSkill = findSubCategory?.skills?.find(\n (item) => item.name === element?.skill\n );\n const findLevel = findSkill?.levels?.find(\n (item) => item.level === element?.level\n );\n\n return {\n categoryDetail: {\n colour: findCategory?.colour,\n description: findCategory?.description,\n },\n subCategoryDetail: {\n skillColour: findSubCategory?.skillColour,\n colour: findSubCategory?.colour,\n description: findSubCategory?.description,\n },\n skillDetail: {\n description: findSkill?.description,\n },\n levelDetail: {\n description: findLevel?.description,\n },\n ...element,\n };\n });\n\n // Processes all relevant data for skills.\n // This function fetches a set of initial data, and then prepares and processes\n // two types of skill-related data: haveSkill and needSkill.\n const processAllData = async () => {\n try {\n // Concurrently fetch multiple sets of data using Promise.all for improved performance.\n const [\n personPeople,\n personProfile,\n profileVersion,\n skillProfile,\n lorProfile,\n categories,\n ] = await Promise.all([\n PersonService.getPersonMyPeoples(),\n PersonService.getPersonMyProfile(),\n ProfileService.getMyProfileVersions(),\n ProfileService.getMySkillPofiles(),\n ProfileService.getMyLorPofiles(),\n CategoryAPI.getCategories(),\n ]);\n\n // Construct a new data entry based on the fetched personal profile and related data.\n const newDataEntry = {\n personB: personProfile,\n profileVersion,\n skillProfile,\n lorProfile,\n };\n\n setCategories(categories);\n // Append the new data entry to the existing list of personPeople for processing \"haveSkill\" data.\n const prepareDataHaveSkill = [...personPeople, newDataEntry];\n\n // Use the original personPeople data for processing \"needSkill\" data since no modifications are needed.\n const prepareDataNeedSkill = personPeople;\n\n // Concurrently process \"haveSkill\" and \"needSkill\" data for better performance.\n await Promise.all([\n processHaveSkillData(prepareDataHaveSkill, categories),\n processNeedSkillData(prepareDataNeedSkill, categories),\n ]);\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n const generateTableSkillCategory = (dataFilterSkill) => {\n const categoryColors = dataFilterSkill.categoryColors;\n const data = dataFilterSkill.data;\n // Destructure for easier access.\n const { categoryName } = constantData;\n\n // Use a single reduce function to categorize and structure the data.\n const groupedData = data.reduce((acc, item) => {\n // Extract keys for categorization.\n const categoryKey = item[categoryName]; \n\n // If the category does not exist, initialize it.\n if (!acc[categoryKey]) {\n acc[categoryKey] = {\n values: [],\n };\n }\n\n // Push the item into the category values.\n acc[categoryKey].values.push(item);\n return acc;\n }, {});\n\n // Extract keys from groupedData\n const groupedKeys = Object.keys(groupedData);\n\n let orderedCats = OrderCategory.map((key) =>\n groupedKeys.find((e) => e.name === key)\n );\n\n let orderedKeys = [];\n if (orderedCats.filter(it => it == undefined).length > 0){\n orderedKeys = [...groupedKeys];\n }else{\n //Filter and reorder the keys based on OrderCategory\n orderedKeys = OrderCategory.filter((key) =>\n groupedKeys.includes(key)\n );\n }\n\n // Construct the ordered grouped data\n const orderedGroupedData = orderedKeys.map((key) => [\n key,\n groupedData[key],\n ]);\n\n const resultData = {\n name: constantData.categoryTitleName,\n meta: { levelResponsibility: LevelResponsibility },\n description: constantData.empty,\n styles: {\n tableHeaderColor: constantData.colors.type1,\n tableHeaderBackgroundColor: constantData.colors.type2,\n },\n subCategories: orderedGroupedData.map(\n ([categoryKey, { values: categoryValues }]) => {\n const { categoryDetail, subCategoryDetail } = categoryValues[0];\n const categoryColor = categoryColors.find(it => it.category == categoryKey);\n return {\n name: categoryKey,\n meta: { levelResponsibility: LevelResponsibility },\n description: categoryDetail.description,\n styles: {\n cateColour: categoryDetail.colour,\n skillColour: subCategoryDetail.skillColour,\n colour: subCategoryDetail.colour || \"\",\n },\n people: categoryValues,\n bold: categoryColor ? categoryColor.bold : \"#69849c\",\n tint: categoryColor ? categoryColor.tint : \"#ecf0f5\"\n };\n }\n ),\n };\n\n return resultData;\n };\n\n const generateTreeMap = (skills) => {\n // Group the skills by the given category name\n const groupByCate = groupBy(skills, constantData.categoryName);\n\n // Map each group to the desired object structure\n return Object.keys(groupByCate).map((item) => ({\n label: item,\n value: groupByCate[item].length,\n description: groupByCate[item][0]?.categoryDetail?.description,\n colour: groupByCate[item][0]?.categoryDetail?.colour,\n hoverColour: groupByCate[item][0]?.subCategoryDetail?.colour,\n }));\n };\n\n // Generates bar data for given input.\n const generateBar = (data) => {\n // Use reduce to create an object where the keys are the skillCodeLevel\n // and the values are their respective counts.\n const groupedData = data.reduce((acc, item) => {\n const skillCodeLevel = `${item.lorCode} - ${item.level}`;\n\n // If the skillCodeLevel doesn't exist in the accumulator, initialize it.\n if (!acc[skillCodeLevel]) {\n acc[skillCodeLevel] = 0;\n }\n\n // Increment the count for the skillCodeLevel.\n acc[skillCodeLevel]++;\n\n return acc;\n }, {});\n\n // Convert the grouped data object to an array of {label, value} objects.\n const aggregatedData = Object.entries(groupedData).map(\n ([label, value]) => ({\n label,\n value,\n })\n );\n\n // Sort the data in descending order based on their values (counts).\n aggregatedData.sort((a, b) => b.value - a.value);\n\n return {\n maxCount: Math.max(...aggregatedData.map((item) => item.value)) + 1, // Calculate the maximum count\n source: aggregatedData,\n };\n };\n\n const generateTreeSelect = (data, name) =>\n // Using Object.entries to get both key and value of each entry in the data object\n Object.entries(data)\n .map(([category, itemsArray], categoryIdx) => {\n // Generating a Set to deduplicate the values based on the 'name' property\n // Then spread the Set back into an array for easy mapping\n const uniqueValues = [...new Set(itemsArray.map((item) => item[name]))];\n const rootData = JSON.stringify({\n isRoot: true,\n value: category,\n });\n return {\n title: category,\n value: rootData,\n key: rootData,\n\n // For each unique value, we map it to generate the 'children' array\n children: uniqueValues\n .map((uniqueValue, valueIdx) => {\n const childData = JSON.stringify({\n isRoot: false,\n value: uniqueValue,\n });\n return {\n // Fetching the 'text' property directly from the original itemsArray for each child\n title: itemsArray[valueIdx].text,\n value: childData,\n key: childData,\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title));\n\n // Filter by Requirement Name\n const optionRequirement = useMemo(() => {\n if (dataNeedSkill.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n dataNeedSkill,\n (itemA, itemB) => itemA.jobName === itemB.jobName\n );\n\n return [\n ...new Set(\n uniqueSkills.map((item) => ({\n label: item.jobName,\n value: item.jobName,\n }))\n ),\n ].sort((a, b) => a.label.localeCompare(b.label));\n }, [dataNeedSkill]);\n\n // Filter by Requirement Type\n const optionType = useMemo(() => {\n if (dataNeedSkill.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n dataNeedSkill,\n (itemA, itemB) => itemA.need === itemB.need\n );\n\n return [\n ...new Set(\n uniqueSkills.map((item) => ({\n label: item.need,\n value: item.need,\n }))\n ),\n ].sort((a, b) => a.label.localeCompare(b.label));\n }, [dataNeedSkill]);\n\n // Filter by Person Name\n const optionsName = useMemo(() => {\n if (dataHaveSkill.length === 0) return [];\n\n // Deduplicate the combined array based on the fullName.\n const uniqueSkills = distinctArray(\n dataHaveSkill,\n (itemA, itemB) => itemA.fullName === itemB.fullName\n );\n\n const groupedData = groupBy(uniqueSkills, constantData.fullName);\n\n return Object.keys(groupedData)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [dataHaveSkill]);\n\n // Filter Profile Status\n const optionProfileStatus = useMemo(() => {\n if (dataHaveSkill.length === 0) return [];\n\n const temp = dataHaveSkill.map((item) => ({\n capability: `${item.capability} (${item.approvedText})`,\n profileStatus: item.profileStatus,\n text: `${item.capability} (${item.approvedText})`,\n }));\n // Deduplicate the combined array based on the capability.\n const uniqueArray = distinctArray(\n temp,\n (itemA, itemB) => itemA.capability === itemB.capability\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueArray, constantData.profileStatusName),\n constantData.capabilityName\n );\n }, [dataHaveSkill]);\n\n // Filter Level of Skill Have\n const optionLorSkillLevel = useMemo(() => {\n // Exit early if there's no data to process.\n if (dataHaveSkill.length === 0 && dataNeedSkill.length === 0) return [];\n\n // Combine and transform both dataHaveSkill and dataNeedSkill arrays.\n const combinedSkills = [...dataHaveSkill, ...dataNeedSkill].map((item) => ({\n skillCode: `${item.skillCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.skillCode} - ${item.level}`,\n }));\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.skillCode === itemB.skillCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n constantData.skillCode\n );\n }, [dataHaveSkill, dataNeedSkill]);\n\n // Filter Level of Generic Attribute Have\n const optionGenericAttribute = useMemo(() => {\n // Exit early if there's no data to process.\n if (\n dataNeedSkill.length === 0 &&\n genericAttributeHaveSkillData.length === 0\n )\n return [];\n\n const tempUniq = _.uniq(dataNeedSkill.map((item) => item.jobLor).flat(2));\n // Combine and transform both dataHaveSkill and dataNeedSkill arrays.\n const combinedSkills = [...tempUniq, ...genericAttributeHaveSkillData].map(\n (item) => ({\n lorCode: `${item.lorCode} - ${item.level}`,\n level: `Level ${item.level}`,\n text: `${item.lorCode} - ${item.level}`,\n })\n );\n\n // Deduplicate the combined array based on the skillCode.\n const uniqueSkills = distinctArray(\n combinedSkills,\n (itemA, itemB) => itemA.lorCode === itemB.lorCode\n );\n\n // Generate the tree select structure.\n return generateTreeSelect(\n groupBy(uniqueSkills, constantData.levelName),\n constantData.lorCodeName\n );\n }, [genericAttributeHaveSkillData, dataNeedSkill]);\n\n // Data Filter => Ref By Data\n const dataFilterHaveSkill = useMemo(() => {\n const resultData = {\n data: [],\n categoryColors: [],\n genericAttribute: [],\n };\n\n if (dataHaveSkill.length) {\n resultData.data = dataHaveSkill.filter((item) => {\n // If selectedName is populated and the condition is not met, filter out\n if (selectedName.length > 0 && !selectedName.includes(item.fullName)) {\n return false;\n }\n\n // If selectedProfile is populated and the condition is not met, filter out\n if (selectedProfile.length > 0) {\n const isFound = selectedProfile\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return item.profileStatus === _.value;\n } else {\n return `${item.capability} (${item.approvedText})` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If selectedLorSkill is populated and the condition is not met, filter out\n if (selectedLorSkill.length > 0) {\n const isFound = selectedLorSkill\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.skillCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n\n dataHaveSkill.forEach((item) => {\n if (resultData.categoryColors.find(it => it.category == item.category)) {\n return false;\n }\n\n const category = categories.find(it => it.name == item.category);\n if (category == null){\n return false;\n }\n\n if (category.subCategories.length == 0){\n return false;\n }\n\n const subCategory = category.subCategories[0];\n\n resultData.categoryColors.push({\n category : category.name,\n bold : category.colour,\n tint: subCategory.skillColour\n })\n });\n }\n\n if (genericAttributeHaveSkillData.length) {\n resultData.genericAttribute = genericAttributeHaveSkillData.filter(\n (item) => {\n // If selectedName is populated and the condition is not met, filter out\n if (\n selectedName.length > 0 &&\n !selectedName.includes(item.fullName)\n ) {\n return false;\n }\n\n // If selectedGeneric is populated and the condition is not met, filter out\n if (selectedGeneric.length > 0) {\n const isFound = selectedGeneric\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.lorCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n }\n );\n }\n return resultData;\n }, [\n dataHaveSkill,\n genericAttributeNeedSkillData,\n selectedLorSkill,\n selectedGeneric,\n selectedName,\n selectedProfile,\n ]);\n\n // useMemo hook to memoize the computation of the dashboard tree map data\n // This ensures that the tree map data is only recalculated if dataFilter changes\n const dashboardTreeMapHaveSkill = useMemo(\n () => generateTreeMap(dataFilterHaveSkill.data),\n [dataFilterHaveSkill.data]\n );\n\n const dashboardTableSkillCategoryHaveSkill = useMemo(\n () => generateTableSkillCategory(dataFilterHaveSkill) ?? {},\n [dataFilterHaveSkill.data]\n ); // Recompute only if dataFilter changes\n\n const dashboardTableHaveSkill = useMemo(() => {\n const resultData = {\n generic: [],\n professional: [],\n };\n\n if (dataFilterHaveSkill.data.length > 0) {\n // Deep clone\n resultData.professional = deepClone(dataFilterHaveSkill.data);\n }\n\n return resultData;\n }, [dataFilterHaveSkill.data]);\n\n // Use useMemo to ensure we only recompute the data when `dataFilter` changes.\n const dashboardBarHaveSkill = useMemo(\n () =>\n dataFilterHaveSkill.genericAttribute.length > 0\n ? generateBar(dataFilterHaveSkill.genericAttribute)\n : {},\n [dataFilterHaveSkill.genericAttribute]\n );\n\n // Data Filter => Ref By Data\n const dataFilterSkillWeNeed = useMemo(() => {\n const resultData = {\n data: [],\n categoryColors: [],\n genericAttribute: [],\n };\n if (dataNeedSkill.length) {\n resultData.data = dataNeedSkill.filter((item) => {\n // If selectedRequirement is populated and the condition is not met, filter out\n if (\n selectedRequirement.length > 0 &&\n !selectedRequirement.includes(item.jobName)\n ) {\n return false;\n }\n\n // If selectedType is populated and the condition is not met, filter out\n if (selectedType.length > 0 && !selectedType.includes(item.need)) {\n return false;\n }\n\n //If selectedLorSkill is populated and the condition is not met, filter out\n if (selectedLorSkill.length > 0) {\n const isFound = selectedLorSkill\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.skillCode} - ${item.level}` === _.value;\n }\n });\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n });\n\n dataNeedSkill.forEach((item) => {\n if (resultData.categoryColors.find(it => it.category == item.category)) {\n return false;\n }\n\n const category = categories.find(it => it.name == item.category);\n if (category == null){\n return false;\n }\n\n if (category.subCategories.length == 0){\n return false;\n }\n\n const subCategory = category.subCategories[0];\n\n resultData.categoryColors.push({\n category : category.name,\n bold : category.colour,\n tint: subCategory.skillColour\n })\n });\n }\n\n if (genericAttributeNeedSkillData.length) {\n resultData.genericAttribute = genericAttributeNeedSkillData.filter(\n (item) => {\n //If selectedGeneric is populated and the condition is not met, filter out\n if (selectedGeneric.length > 0) {\n const isFound = selectedGeneric\n .map((_) => JSON.parse(_))\n .some((_) => {\n if (_.isRoot) {\n return `Level ${item.level}` === _.value;\n } else {\n return `${item.lorCode} - ${item.level}` === _.value;\n }\n });\n\n if (!isFound) {\n return false;\n }\n }\n\n // If all conditions are met or not applicable, include the item\n return true;\n }\n );\n }\n\n return resultData;\n }, [\n dataNeedSkill,\n genericAttributeNeedSkillData,\n selectedLorSkill,\n selectedGeneric,\n selectedRequirement,\n selectedType,\n ]);\n\n const dashboardTableSkillCategoryNeedSkill = useMemo(\n () => generateTableSkillCategory(dataFilterSkillWeNeed) ?? {},\n [dataFilterSkillWeNeed.data]\n ); // Recompute only if dataFilter changes\n\n // useMemo hook to memoize the computation of the dashboard tree map data\n // This ensures that the tree map data is only recalculated if dataFilter changes\n const dashboardTreeMapNeedSkill = useMemo(\n () => generateTreeMap(dataFilterSkillWeNeed.data),\n [dataFilterSkillWeNeed.data]\n );\n\n const dashboardTableNeedSkill = useMemo(() => {\n const resultData = {\n generic: [],\n professional: [],\n };\n\n if (dataFilterSkillWeNeed.data.length > 0) {\n // Deep clone\n resultData.professional = deepClone(dataFilterSkillWeNeed.data);\n }\n\n return resultData;\n }, [dataFilterSkillWeNeed.data]);\n\n // Use useMemo to ensure we only recompute the data when `dataFilter` changes.\n const dashboardBarNeedSkill = useMemo(\n () =>\n dataFilterSkillWeNeed.genericAttribute.length > 0\n ? generateBar(dataFilterSkillWeNeed.genericAttribute)\n : {},\n [dataFilterSkillWeNeed.genericAttribute]\n );\n\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []);\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n \n \n \n \n \n \n \n Skills We Have\n \n \n \n \n \n Skills We Need\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Generic Attributes{\" \"}\n <span className=\"vs-h-sm-h\">(Skill We Have)</span>\n \n \n \n \n \n Generic Attributes{\" \"}\n <span className=\"vs-h-sm-h\">(Skill We Need)</span>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport { SkillsComparison };\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 50%;\n }\n }\n @media (max-width: 768px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst SkillGapsFilters = ({\n objName,\n objSkillGap,\n objSkillType,\n objProfile,\n objRequirementType,\n}) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [\n objName,\n objSkillGap,\n objSkillType,\n objProfile,\n objRequirementType,\n ].some((obj) => obj?.value?.length > 0);\n }, [\n objName?.value,\n objSkillGap?.value,\n objSkillType?.value,\n objProfile?.value,\n objRequirementType?.value,\n ]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n Filter\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objName, \"magenta\", onCloseClicked)}\n {renderTags(objProfile, \"geekblue\", onCloseClicked)}\n {renderTags(objSkillGap, \"red\", onCloseClicked)}\n {renderTags(objSkillType, \"cyan\", onCloseClicked)}\n {renderTags(objRequirementType, \"purple\", onCloseClicked)}\n \n \n \n {/* Rest of the JSX structure where you'll use your FilterComponent */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default SkillGapsFilters;\n","import CategoryAPI from \"../../../../common/api/service/CategoryService\";\nimport JobService from \"../../../../common/api/service/JobService\";\nimport PersonService from \"../../../../common/api/service/PersonService\";\nimport ProfileService from \"../../../../common/api/service/ProfileService\";\nimport { LevelResponsibility } from \"../../components/config/mockdata/levels\";\nimport { OrderCategory } from \"../../components/config/mockdata/order\";\nimport SkillGapsFilters from \"../../components/filters/skillgaps\";\nimport { SkillGapTable } from \"../../components/table\";\nimport { Typography, Empty } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Spinner } from \"reactstrap\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst DivCenter = ({ Component }) => {\n return (\n
\n
\n
\n \n \n
\n
\n
\n \n );\n};\n\nconst Wrapper = styled.div`\n padding: 10px 30px;\n flex-wrap: wrap !important;\n justify-content: center;\n align-items: center;\n width: 100%;\n`;\n\nconst Container = styled.div`\n border-width: 0.5px;\n padding: 20px 30px;\n border-color: gainsboro;\n border-style: solid;\n border-radius: 10px;\n`;\n\n// Constant Data\nconst constantData = {\n titleLevel: 5,\n empty: \"\",\n stringName: \"string\",\n skillGapName: \"skillGap\",\n jobNeedName: \"jobNeed\",\n profileStatusName: \"profileStatus\",\n desirableName: \"Desirable\",\n requiredName: \"Required\",\n fullName: \"fullName\",\n requirementTypes: [\"Current\", \"Future\"],\n competencyName: \"Competency\",\n knowledgeName: \"Knowledge\",\n proficiencyName: \"Proficiency\",\n categoryName: \"category\",\n subCategoryName: \"subCategory\",\n levelName: \"level\",\n skillName: \"skill\",\n NoName: \"No\",\n GapName: \"Gap\",\n noGapName: \"no gap\",\n minorName: \"Minor\",\n majorName: \"Major\",\n characters: {\n m: \"M\",\n p: \"P\",\n na: \"NA\",\n },\n};\n\n// Define the function to compute skill gap based on the skill profile.\nconst getSkillGap = (skillProfile) => {\n if (!skillProfile) return `${constantData.majorName} ${constantData.GapName}`;\n const { m, p, na } = constantData.characters;\n if (skillProfile.stringVal === m)\n return `${constantData.NoName} ${constantData.GapName}`;\n if (skillProfile.stringVal === p && parseFloat(skillProfile.numericVal) < 1)\n return `${constantData.minorName} ${constantData.GapName} - ${constantData.proficiencyName}`;\n if (skillProfile.stringVal === na)\n return `${constantData.minorName} ${constantData.GapName} - ${constantData.proficiencyName}`;\n return `${constantData.majorName} ${constantData.GapName}`;\n};\n\nfunction SkillGaps() {\n // Data\n const [data, setData] = useState([]);\n const [isContentLoaded, setIsContentLoaded] = useState(false);\n const [isDefaultValue, setIsDefaultValue] = useState(false);\n const [isNoGap, setIsNoGap] = useState(true);\n // Selection\n const [selectedSkillType, setSelectedSkillType] = useState([]);\n const [selectedSkillGap, setSelectedSkillGap] = useState([]);\n const [selectedProfile, setSelectedProfile] = useState([]);\n const [selectedName, setSelectedName] = useState([]);\n const [selectedRequirement, setSelectedRequirement] = useState([]);\n\n // Fetch people and process\n const processJobDetailData = async (item, persons, categories) => {\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n const person = persons.find((person) => person.id === item.personId);\n const skillVersions =\n person.version_m ||\n (await ProfileService.getManagedPeopleProfileVersions(person.email));\n\n const skillVersion = skillVersions && skillVersions.length > 0 ? skillVersions[0] : null;\n\n const [job, jobSkills] = await Promise.all([\n JobService.getJob(item.jobId),\n JobService.getJobSkillProfiles(item.jobId)\n ]);\n\n let skillsProfile = [];\n\n const [skillsProfileSelfAssessed] = await Promise.all([\n person.profile_m\n ? ProfileService.getMySkillPofiles(skillVersion ? skillVersion.sfiaVersion : null, skillVersion ? skillVersion.version : null, \"Self Assessed\")\n : ProfileService.getManagedPeopleSkillPofiles(\n person.email,\n skillVersion ? skillVersion.sfiaVersion : null, \n skillVersion ? skillVersion.version : null,\n \"Self Assessed\"\n )]);\n\n if (skillsProfileSelfAssessed && skillsProfileSelfAssessed.filter(it => availableSkillCodes.includes(it.skillCode)).length > 0){\n skillsProfile.push(...skillsProfileSelfAssessed.filter(it => availableSkillCodes.includes(it.skillCode)));\n }\n\n const [skillsProfileEndorsed] = await Promise.all([\n person.profile_m\n ? ProfileService.getMySkillPofiles(skillVersion ? skillVersion.sfiaVersion : null, skillVersion ? skillVersion.version : null, \"Endorsed\")\n : ProfileService.getManagedPeopleSkillPofiles(\n person.email,\n skillVersion ? skillVersion.sfiaVersion : null, \n skillVersion ? skillVersion.version : null,\n \"Endorsed\"\n )]);\n \n if (skillsProfileEndorsed && skillsProfileEndorsed.filter(it => availableSkillCodes.includes(it.skillCode)).length > 0){\n skillsProfile.push(...skillsProfileEndorsed.filter(it => availableSkillCodes.includes(it.skillCode)));\n }\n\n return jobSkills\n .filter(it => availableSkillCodes.includes(it.skillCode))\n .map((jobSkill) => {\n const findCategory = categories.find(\n (item) => item.name === jobSkill.category\n );\n const findSubCategory = findCategory.subCategories.find(\n (item) => item.name === jobSkill.subCategory\n );\n const findSkill = findSubCategory.skills.find(\n (item) => item.name === jobSkill.skill\n );\n const findLevel = findSkill.levels.find(\n (item) => item.level === jobSkill.level\n );\n\n const getJobNeed = (val) => {\n if (val === constantData.characters.m) {\n return constantData.requiredName;\n } else if (val === constantData.characters.p) {\n return constantData.desirableName;\n } else {\n return constantData.empty;\n }\n };\n\n const matchedSkillProfile = skillsProfile.find(\n (skill) =>\n skill.level === jobSkill.level &&\n jobSkill.skillCode === skill.skillCode\n );\n\n if (matchedSkillProfile) {\n const { m, p } = constantData.characters;\n matchedSkillProfile.capability =\n {\n [m]: constantData.competencyName,\n [p]: constantData.proficiencyName,\n }[matchedSkillProfile.stringVal] || constantData.knowledgeName;\n }\n\n const selfAssessedMatchedSkillProfile = skillsProfile.find(\n (skill) =>\n skill.level === jobSkill.level &&\n jobSkill.skillCode === skill.skillCode && \n skill.profileType == \"Self Assessed\"\n );\n\n if (selfAssessedMatchedSkillProfile) {\n const { m, p } = constantData.characters;\n selfAssessedMatchedSkillProfile.capability =\n {\n [m]: constantData.competencyName,\n [p]: constantData.proficiencyName,\n }[selfAssessedMatchedSkillProfile.stringVal] || constantData.knowledgeName;\n }\n\n const endorsedMatchedSkillProfile = skillsProfile.find(\n (skill) =>\n skill.level === jobSkill.level &&\n jobSkill.skillCode === skill.skillCode && \n skill.profileType == \"Endorsed\"\n );\n\n if (endorsedMatchedSkillProfile) {\n const { m, p } = constantData.characters;\n endorsedMatchedSkillProfile.capability =\n {\n [m]: constantData.competencyName,\n [p]: constantData.proficiencyName,\n }[endorsedMatchedSkillProfile.stringVal] || constantData.knowledgeName;\n }\n\n return {\n category: findCategory.name,\n categoryDetail: {\n colour: findCategory.colour,\n description: findCategory.description,\n },\n subCategory: jobSkill.subCategory,\n subCategoryDetail: {\n skillColour: findSubCategory.skillColour,\n colour: findSubCategory.colour,\n description: findSubCategory.description,\n },\n skill: jobSkill.skill,\n skillDetail: {\n description: findSkill.description,\n },\n skillCode: jobSkill.skillCode,\n level: jobSkill.level,\n levelDetail: {\n description: findLevel.description,\n },\n jobNeed: getJobNeed(jobSkill.stringVal),\n jobName: job.name,\n jobRef: job.reference,\n jobType: item.jobType,\n fullName: `${person.firstName} ${person.lastName}`,\n position: person.position,\n email: person.email,\n jobSkill: jobSkill,\n profileStatus: !matchedSkillProfile\n ? \"Not Applicable - No Skill\"\n : matchedSkillProfile.profileType, \n skillGap: getSkillGap(matchedSkillProfile),\n matchedSkillProfile: matchedSkillProfile,\n selfAssessedProfileStatus: !selfAssessedMatchedSkillProfile\n ? \"Not Applicable - No Skill\"\n : selfAssessedMatchedSkillProfile.profileType, \n selfAssessedSkillGap: getSkillGap(selfAssessedMatchedSkillProfile),\n selfAssessedMatchedSkillProfile: selfAssessedMatchedSkillProfile,\n endorsedProfileStatus: !endorsedMatchedSkillProfile\n ? \"Not Applicable - No Skill\"\n : endorsedMatchedSkillProfile.profileType, \n endorsedSkillGap: getSkillGap(endorsedMatchedSkillProfile),\n endorsedMatchedSkillProfile: endorsedMatchedSkillProfile,\n };\n });\n };\n\n // Fetch data and process\n const processAllData = async () => {\n try {\n // Fetch the initial data.\n const [\n personPeople,\n personProfile,\n profileVersion,\n jobMatches,\n categories,\n ] = await Promise.all([\n PersonService.getPersonMyPeoples(),\n PersonService.getPersonMyProfile(),\n ProfileService.getMyProfileVersions(),\n JobService.getMyJobMatches(),\n CategoryAPI.getCategories(),\n ]);\n // Filter matches based on predefined job types.\n const filterMatches = (match) =>\n constantData.requirementTypes.includes(match.jobType);\n const validMatches = jobMatches.filter(filterMatches);\n\n // Fetch job matches for associated people.\n const childMatchesPromises = personPeople.map(({ personB }) =>\n JobService.getManagedPeopleJobMatches(personB.email)\n );\n const childMatchesResponses = await Promise.all(childMatchesPromises);\n const childMatches = childMatchesResponses.flat(3).filter(filterMatches);\n\n // Combine main and child matches, and prepare the persons list.\n const combinedMatches = [...childMatches, ...validMatches];\n const persons = [\n ...personPeople.map(({ personB }) => personB),\n { ...personProfile, version_m: profileVersion, profile_m: {} },\n ];\n\n // Flatten the job skill data.\n const resultData = await Promise.all(\n combinedMatches.map((item) =>\n processJobDetailData(item, persons, categories)\n )\n );\n\n setData(resultData.flat(2));\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n\n // Optionally, you can set an error state here if you'd like to display an error message to users.\n }\n };\n\n // Filter Data by No Gap\n const getDataFilterByNoGap = () => {\n if (data.length === 0) return [];\n if (isNoGap) {\n return data.filter(\n (item) => \n item.skillGap.toLowerCase() !== constantData.noGapName ||\n item.selfAssessedSkillGap.toLowerCase() !== constantData.noGapName || \n item.endorsedSkillGap.toLowerCase() !== constantData.noGapName\n );\n }\n return data;\n };\n\n // Filter skill gap option\n const getOptionSkillGap = () => {\n const tempData = getDataFilterByNoGap();\n if (tempData.length === 0) return [];\n return Object.keys(groupBy(tempData, constantData.skillGapName)).map(\n (item) => ({\n value: item,\n label: item,\n })\n );\n };\n\n // Filter skill type option\n const getOptionSkillType = () => {\n const tempData = getDataFilterByNoGap();\n if (tempData.length === 0) return [];\n return Object.keys(groupBy(tempData, constantData.jobNeedName)).map(\n (item) => ({\n value: item,\n label: item,\n })\n );\n };\n\n // Filter Person Profile Type option\n const getOptionProfile = () => {\n const tempData = getDataFilterByNoGap();\n if (tempData.length === 0) return [];\n let profiles = [];\n\n if (tempData.find(it => it.selfAssessedSkillGap.toLowerCase() !== constantData.noGapName)){\n profiles.push({\n value: \"Self Assessed\",\n label: \"Self Assessed\",\n });\n }\n\n if (tempData.find(it => it.endorsedSkillGap.toLowerCase() !== constantData.noGapName)){\n profiles.push({\n value: \"Endorsed\",\n label: \"Endorsed\",\n });\n }\n\n if (tempData.find(it => it.profileStatus == \"Not Applicable - No Skill\")){\n profiles.push({\n value: \"Not Applicable - No Skill\",\n label: \"Not Applicable - No Skill\",\n });\n }\n\n return profiles;\n };\n\n // Filter Person Name option\n const getOptionName = () => {\n const tempData = getDataFilterByNoGap();\n if (tempData.length === 0) return [];\n return Object.keys(groupBy(tempData, constantData.fullName)).map(\n (item) => ({\n value: item,\n label: item,\n })\n );\n };\n\n // Filter Person Profile Type option\n const getOptionRequirement = () => {\n if (constantData.requirementTypes.length === 0) return [];\n\n if (isDefaultValue === false) {\n setSelectedRequirement([constantData.requirementTypes[0]]);\n setIsDefaultValue(true);\n }\n\n return constantData.requirementTypes.map((item) => ({\n value: item,\n label: item,\n }));\n };\n\n // Get All Option\n const options = useMemo(\n () => ({\n names: getOptionName(),\n profiles: getOptionProfile(),\n skillGaps: getOptionSkillGap(),\n requirements: getOptionRequirement(),\n skillType: getOptionSkillType(),\n }),\n [data, isNoGap]\n );\n\n // Data Filter => Data\n const dataFilter = useMemo(() => {\n const tempData = getDataFilterByNoGap();\n if (tempData.length === 0) return [];\n return tempData.filter((entry) => {\n const { jobType, fullName, jobNeed, \n skillGap, selfAssessedSkillGap, endorsedSkillGap,\n profileStatus, selfAssessedProfileStatus, endorsedProfileStatus} = entry;\n\n const isRequirementSelected = !selectedRequirement.length || selectedRequirement.includes(jobType);\n const isSkillGapSelected = !selectedSkillGap.length || \n ((!selectedProfile.length || (selectedProfile.find(it => it == \"Not Applicable - No Skill\") && !selectedProfile.find(it => it == \"Self Assessed\" || it == \"Endorsed\"))) && selectedSkillGap.includes(skillGap)) ||\n ((!selectedProfile.length || selectedProfile.find(it => it == \"Self Assessed\")) && selectedSkillGap.includes(selfAssessedSkillGap)) || \n ((!selectedProfile.length || selectedProfile.find(it => it == \"Endorsed\")) && selectedSkillGap.includes(endorsedSkillGap));\n \n const isProfileSelected = !selectedProfile.length || \n (\n selectedProfile.find(it => it == \"Not Applicable - No Skill\") \n && !selectedProfile.find(it => it == \"Self Assessed\" || it == \"Endorsed\") \n && selectedProfile.includes(profileStatus)\n ) ||\n (\n selectedProfile.find(it => it == \"Self Assessed\") \n && (selectedProfile.includes(selfAssessedProfileStatus) || selfAssessedProfileStatus == \"Not Applicable - No Skill\")\n && (selfAssessedSkillGap != \"No Gap\" || (selectedSkillGap.includes(\"No Gap\") && selfAssessedSkillGap == \"No Gap\"))\n ) || \n (\n selectedProfile.find(it => it == \"Endorsed\") \n && (selectedProfile.includes(endorsedProfileStatus) || endorsedProfileStatus == \"Not Applicable - No Skill\")\n && (endorsedSkillGap != \"No Gap\" || (selectedSkillGap.includes(\"No Gap\") && endorsedSkillGap == \"No Gap\"))\n );\n\n const isNameSelected = !selectedName.length || selectedName.includes(fullName);\n const isSkillType = !selectedSkillType.length || selectedSkillType.includes(jobNeed);\n\n return (\n isRequirementSelected &&\n isSkillGapSelected &&\n isSkillType &&\n isProfileSelected &&\n isNameSelected\n );\n });\n }, [\n data,\n isNoGap,\n selectedRequirement,\n selectedSkillGap,\n selectedSkillType,\n selectedProfile,\n selectedName,\n ]);\n\n // Skills Level By Skills Count (Table) => Data Filter\n const dashboardLevelSkillCountTable = useMemo(() => {\n // If there's no data, immediately return an empty array.\n if (!dataFilter.length) return [];\n\n // Destructure for easier access.\n const { categoryName, subCategoryName, skillName, levelName } =\n constantData;\n\n // Helper function to extract style attributes.\n const extractStyles = (categoryDetail, subCategoryDetail) => ({\n colour: subCategoryDetail?.colour || \"\",\n skillColour: subCategoryDetail?.skillColour || \"\",\n cateColour: categoryDetail?.colour || \"\",\n });\n\n // Use a single reduce function to categorize and structure the data.\n const groupedData = dataFilter.reduce((acc, item) => {\n // Extract keys for categorization.\n const categoryKey = item[categoryName];\n const subCategoryKey = item[subCategoryName];\n const skillKey = item[skillName];\n const levelKey = item[levelName];\n\n // If the category does not exist, initialize it.\n if (!acc[categoryKey]) {\n acc[categoryKey] = {\n values: [],\n subCategories: {},\n };\n }\n\n // Push the item into the category values.\n acc[categoryKey].values.push(item);\n\n // Initialize sub-category if it doesn't exist.\n if (!acc[categoryKey].subCategories[subCategoryKey]) {\n acc[categoryKey].subCategories[subCategoryKey] = {\n values: [],\n skills: {},\n };\n }\n\n // Push the item into sub-category values.\n acc[categoryKey].subCategories[subCategoryKey].values.push(item);\n\n // Initialize skill within sub-category if it doesn't exist.\n if (!acc[categoryKey].subCategories[subCategoryKey].skills[skillKey]) {\n acc[categoryKey].subCategories[subCategoryKey].skills[skillKey] = {\n values: [],\n levels: {},\n };\n }\n\n const currentSkill =\n acc[categoryKey].subCategories[subCategoryKey].skills[skillKey];\n currentSkill.values.push(item);\n\n // Initialize level within skill if it doesn't exist.\n if (!currentSkill.levels[levelKey]) {\n currentSkill.levels[levelKey] = {\n values: [],\n };\n }\n\n // Push the item into skill level values.\n currentSkill.levels[levelKey].values.push(item);\n return acc;\n }, {});\n\n // Extract keys from groupedData\n const groupedKeys = Object.keys(groupedData);\n\n let orderedCats = OrderCategory.map((key) =>\n groupedKeys.find((e) => e.name === key)\n );\n\n let orderedKeys = [];\n if (orderedCats.filter(it => it == undefined).length > 0){\n orderedKeys = [...groupedKeys];\n }else{\n //Filter and reorder the keys based on OrderCategory\n orderedKeys = OrderCategory.filter((key) =>\n groupedKeys.includes(key)\n );\n }\n\n // Construct the ordered grouped data\n const orderedGroupedData = orderedKeys.map((key) => [\n key,\n groupedData[key],\n ]);\n\n // Convert the structured data into the desired output format.\n return orderedGroupedData.map(\n ([categoryKey, { values: categoryValues, subCategories }]) => {\n const { categoryDetail } = categoryValues[0];\n\n return {\n name: categoryKey,\n meta: { levelResponsibility: LevelResponsibility },\n description: categoryDetail.description,\n styles: {\n tableHeaderColor: \"white\",\n tableHeaderBackgroundColor: categoryDetail.colour || \"\",\n },\n subCategories: Object.entries(subCategories).map(\n ([subCategoryKey, { values: subCategoryValues, skills }]) => {\n const { subCategoryDetail } = subCategoryValues[0];\n const styles = extractStyles(categoryDetail, subCategoryDetail);\n\n return {\n name: subCategoryKey,\n description: subCategoryDetail.description,\n ...styles,\n skills: Object.entries(skills).map(\n ([skillKey, { values: skillValues, levels }]) => {\n const firstSkill = skillValues[0];\n\n return {\n name: `${skillKey} (${firstSkill.skillCode})`,\n description: firstSkill.skillDetail.description,\n levels: Object.entries(levels).map(\n ([levelKey, { values: levelValues }]) => ({\n lv: levelKey,\n value: levelValues.length * -1,\n description: levelValues[0].levelDetail.description,\n })\n ),\n people: skillValues.map(\n ({\n fullName,\n email,\n skill,\n skillCode,\n level,\n skillGap,\n selfAssessedSkillGap,\n endorsedSkillGap,\n jobName,\n jobType,\n matchedSkillProfile,\n }) => ({\n fullName,\n email,\n skill,\n skillCode,\n level,\n skillGap,\n selfAssessedSkillGap,\n endorsedSkillGap,\n jobName,\n jobType,\n capability: matchedSkillProfile?.capability,\n ...styles,\n })\n ),\n };\n }\n ),\n };\n }\n ),\n };\n }\n );\n }, [dataFilter]);\n\n useEffect(() => {\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n processAllData().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setIsContentLoaded(true);\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }, []);\n\n // If content is still loading, display a spinner.\n if (!isContentLoaded) {\n return } />;\n }\n\n return (\n \n \n \n {dashboardLevelSkillCountTable.length > 0 ? (\n <>\n Skills Level By Count\n {dashboardLevelSkillCountTable.map((item, index) => (\n \n ))}\n \n ) : (\n \n )}\n \n \n );\n}\nexport { SkillGaps };","import {\n ActionPlan,\n TeamBuilder,\n SkillsWeHave,\n SkillsWeNeed,\n SkillGaps,\n SkillChange,\n SkillsComparison,\n JobMatch,\n} from \"./pages\";\nimport { Col, Row } from \"antd\";\nimport \"antd/dist/antd.min.css\";\nimport React from \"react\";\nimport { Navigation } from \"react-minimal-side-navigation/lib\";\nimport { Route, Switch } from \"react-router\";\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\nimport { Container } from \"reactstrap\";\n\n/**\n * Functional component `Main` is a wrapper which registers other wrappers.\n * @returns Functional.Component\n */\nfunction TeamAnlytics(props) {\n const { path, url } = useRouteMatch();\n const { push } = useHistory();\n const routes = [\n {\n path: \"/skills/comparison\",\n itemId: \"/SfiaProfile/TeamAnalytics/skills/comparison\",\n title: \"Skills Comparison\",\n element: ,\n },\n {\n path: \"/skills/have\",\n itemId: \"/SfiaProfile/TeamAnalytics/skills/have\",\n title: \"Skills We Have\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/skills/need\",\n path: \"/skills/need\",\n title: \"Skills We Need\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/skills/gaps\",\n path: \"/skills/gaps\",\n title: \"Skill Gaps\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/team-builder\",\n path: \"/team-builder\",\n title: \"Team Builder\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/action-plan\",\n path: \"/action-plan\",\n title: \"Action Plan\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/job-match\",\n path: \"/job-match\",\n title: \"Search for Candidates\",\n element: ,\n },\n {\n itemId: \"/SfiaProfile/TeamAnalytics/skill-change\",\n path: \"/skill-change\",\n title: \"Skill Changes\",\n element: ,\n },\n ];\n\n return (\n \n \n \n {\n push(e.itemId);\n }}\n />\n \n \n \n \n {routes.map((item, index) => (\n \n {item.element}\n \n ))}\n \n \n \n );\n}\n\n/**\n * Constant which will act as selector and mount containers to DOM.\n * @returns DOM\n */\nexport default TeamAnlytics;\n","import NewAnalytics from \"../../components/trienpont\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport \"./../../custom-my-people.css\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass TeamAnalytics extends React.Component {\n static displayName = TeamAnalytics.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: true,\n contentLoading: true,\n teamAnalytics: null,\n alerts: [],\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n const manageProfileByAdminPopup = localStorage.getItem(\"manageProfileByAdminPopup\") && localStorage.getItem(\"manageProfileByAdminPopup\") == \"TRUE\" ? true : false;\n\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaManage-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n if (manageProfileByAdminPopup && !this.props.managedPeople && email) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.loading) {\n this.initData();\n }\n });\n }\n });\n } else {\n this.initData();\n }\n });\n } else {\n if (manageProfileByAdminPopup && !this.props.managedPeople && email) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.loading) {\n this.initData();\n }\n });\n }\n });\n } else {\n this.initData();\n }\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n this.props.onPerson.getPersonMyPeoplesTeamAnalytic().then(() => {\n if (!this.props.loading) {\n this.setState({\n teamAnalytics: this.props.myPeopleTeamAnalytic,\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n render() {\n const manageProfileByAdminPopup = localStorage.getItem(\"manageProfileByAdminPopup\") && localStorage.getItem(\"manageProfileByAdminPopup\") == \"TRUE\" ? true : false;\n\n const { teamAnalytics } = this.state;\n\n return (\n <>\n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n \n \n )}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n myPeopleTeamAnalytic: state.person.myPeopleTeamAnalytic,\n personManagedPeople: state.person.managedPeople,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n authMode: state.auth.authMode,\n managedPeople: state.auth.managedPeople,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TeamAnalytics);\n","import { dismisAlert, generateAlert } from \"../../../src/utils/alertUtils\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport ReactTextareaAutosize from \"react-textarea-autosize\";\nimport { Button, Col, Container, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"22px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst subHeaderStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"11px\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass Note extends React.Component {\n static displayName = Note.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: false,\n account: null,\n alerts: [],\n contentLoading: true,\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n this.setState({ loading: true });\n\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaNote-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: this.props.authLoading });\n\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.setState({ loading: true });\n\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.initData();\n }\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: this.props.authLoading });\n\n if (window.location.pathname.includes(\"/Manage\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.setState({ loading: true });\n\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n if (!this.props.loading && this.props.personManagedPeople) {\n this.initData();\n }\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n } else {\n this.initData();\n }\n } else {\n this.initData();\n }\n });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n this.setState({ loading: true });\n\n Promise.resolve(this.props.managedPeople ? this.props.onPerson.getManagedPeopleLatestAccount(this.props.managedPeople.personB.email) : this.props.onPerson.getPersonLatestAccount()).then(() => {\n if (!this.props.loading && this.props.account) {\n const account = this.props.account;\n\n this.setState({ account });\n }\n this.setState({ loading: this.props.loading });\n });\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const account = this.state.account;\n account.note = value;\n this.setState({ account });\n };\n\n submitForm = () => {\n this.setState({ loading: true });\n\n const account = this.state.account;\n\n Promise.resolve(this.props.managedPeople ? this.props.onPerson.updateManagedPeoplePersonAccountNote(account.id, account.note, this.props.managedPeople.personB.email) : this.props.onPerson.updatePersonAccountNote(account.id, account.note)).then(() => {\n if (!this.props.updating && this.props.account) {\n const account = this.props.account;\n\n this.setState({ account });\n this.generateAlert(\"success\", \"Your notes has been saved\");\n } else if (!this.props.updating && this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n this.setState({ loading: this.props.updating });\n });\n };\n\n render() {\n let isAdmin = false;\n\n const authMode = this.props.authMode;\n let authModes = authMode.split(\",\").map((item) => item.trim());\n if (authModes.filter((it) => it != \"Admin\").length == 0) {\n isAdmin = true;\n }\n\n return (\n \n \n {this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n

\n {this.props.managedPeople\n ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaNote\", \"SfiaNoteNotesFor\", \"Notes for {s1}\"), `${this.props.managedPeople.personB.firstName} ${this.props.managedPeople.personB.lastName}`)\n : this.contentTranslator(this.props.contentTranslations, \"SfiaNote\", \"SfiaNoteMyNotes\", \"My Notes\")}\n

\n

\n \n

\n \n \n \n \n \n {!isAdmin && (\n \n \n
\n \n
\n \n
\n )}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n updating: state.person.updating,\n error: state.person.error,\n account: state.person.account,\n\n personManagedPeople: state.person.managedPeople,\n managedPeople: state.auth.managedPeople,\n\n authLoading: state.auth.loading,\n authMode: state.auth.authMode,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Note);\n","import { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Col, Container, Modal, ModalBody, Row, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass EvidenceListFiltered extends React.Component {\n static displayName = EvidenceListFiltered.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: false,\n showDialog: false,\n };\n\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.showDialog !== this.props.showDialog && this.props.showDialog) {\n this.setState({ showDialog: true });\n }\n }\n\n openEditEvidenceModal = (evidence, editMode) => {\n this.setState({ showDialog: false });\n if (this.props.handleOpenEvidenceDetailModal) {\n this.props.handleOpenEvidenceDetailModal(evidence, editMode);\n }\n };\n\n togleEvidenceListModal = () => {\n this.setState({ showDialog: false });\n };\n\n render() {\n const { evidences, evidenceFilterSkillsCode, evidenceFilterLevel, evidenceFilterMode, containerConfig } = this.props;\n\n return (\n \n \n {evidences &&\n evidences.filter(\n (it) =>\n ((it.skillLevels && it.skillLevels.find((l) => l.skillCode == evidenceFilterSkillsCode && l.level == evidenceFilterLevel)) || (it.lorLevels && it.lorLevels.find((l) => l.lorCode == evidenceFilterSkillsCode && l.level == evidenceFilterLevel))) &&\n ((evidenceFilterMode == \"PROTECTED\" && !it.aiReviewed && (it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId))) ||\n (evidenceFilterMode == \"OPENED\" && !it.aiReviewed && !(it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId))) ||\n (evidenceFilterMode == \"CONFIRMED\" && it.aiReviewed))\n ).length > 0 && (\n \n {evidences\n .filter(\n (it) =>\n ((it.skillLevels && it.skillLevels.find((l) => l.skillCode == evidenceFilterSkillsCode && l.level == evidenceFilterLevel)) || (it.lorLevels && it.lorLevels.find((l) => l.lorCode == evidenceFilterSkillsCode && l.level == evidenceFilterLevel))) &&\n ((evidenceFilterMode == \"PROTECTED\" && !it.aiReviewed && (it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId))) ||\n (evidenceFilterMode == \"OPENED\" && !it.aiReviewed && !(it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId))) ||\n (evidenceFilterMode == \"CONFIRMED\" && it.aiReviewed))\n )\n .map((evidence, index) => {\n const skillLevels = [\n ...evidence.lorLevels.map((lorLevel) => {\n return lorLevel.lorCode + lorLevel.level;\n }),\n ...evidence.skillLevels.map((skillLevel) => {\n return skillLevel.skillCode + skillLevel.level;\n }),\n ];\n\n const fileName = evidence.fileName;\n\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\" && !evidence.notes.startsWith(\"Evidence created from an Action\")) {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n return (\n \n \n \n \n \n \n {evidence.fileName ? (\n \n {this.props.managedPeople ? (\n \n {evidence.label}\n \n ) : (\n \n {evidence.label}\n \n )}\n \n ) : evidence.link ? (\n \n {evidence.label}\n \n ) : (\n evidence.label\n )}\n {skillLevels.length > 0 &&
}\n {skillLevels.map((it, index) => {\n return (index > 0 ? \", \" : \"\") + it;\n })}\n \n \n {evidence.evidenceType}\n \n \n {evidence.createdOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.createdOn))}\n \n
\n
\n )}\n {evidence.completedOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.completedOn))}\n \n
\n
\n )}\n {evidence.expiryOn && (\n \n \n :{\" \"}\n \n \n {new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.expiryOn))}\n \n \n )}\n \n \n \n {!(evidence.isDigitalBadge || evidence.isNonEditable || (evidence.isEditableToCreatorOnly && evidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (evidence.lorLevels ? evidence.lorLevels : []).length + (evidence.skillLevels ? evidence.skillLevels : []).length == 1 &&\n (evidenceOption == \"Upload File\" || evidenceOption == \"Description in the Notes\") &&\n !evidence.aiReviewed &&\n !this.props.managedPeople && (\n \n this.openEditEvidenceModal(evidence, false)}\n disabled={this.props.loadingEdit}\n >\n \n \n \n \n \n \n )}\n {evidence.aiReviewed && (\n \n )}\n \n
\n {evidence.evidenceType == \"Text\" && (!evidence.notes || (evidence.notes && evidence.notes.length == 0)) && (\n \n \n
\n {evidence.text}\n \n \n
\n )}\n {evidence.notes && evidence.notes.length > 0 && (\n \n \n
\n {evidence.notes}\n \n \n
\n )}\n {evidence.isEditableToCreatorOnly && (\n \n \n
\n {`Evidence created by ${evidence.createdBy} on ${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(evidence.createdOn))}`}\n \n \n
\n )}\n \n
\n
\n
\n );\n })}\n
\n )}\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.evidence.loading,\n error: state.evidence.error,\n\n lors: state.lor.lors,\n managedPeople: state.auth.managedPeople,\n authMode: state.auth.authMode,\n personId: state.auth.personId,\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EvidenceListFiltered);\n","import React from 'react';\n\nexport default class SkillProfileGapHighlight extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n animationClass: \"fadeIn\"\n }\n }\n\n componentDidMount() {\n // if (!this.props.isFully) {\n // this.interval = setInterval(() => {\n // this.setState({ animationClass: this.state.animationClass == \"\" || this.state.animationClass == \"fadeIn\" ? \"fadeOut\" : \"fadeIn\" })\n // }, this.state.animationClass == \"fadeIn\" ? 2000 : 5000);\n // }\n }\n componentWillUnmount() {\n // if (!this.props.isFully) {\n // clearInterval(this.interval);\n // }\n }\n\n render() {\n const stopFlashAnimation = true;\n\n if (this.props.isShow) {\n const fullyColorCode = this.props.jobMatchType == \"Current\" ? \"#488ac7\" : \"#6cbb3c\";\n const gapClassName =\n this.props.reqDesValue == \"Desirable\" && this.props.jobMatchType == \"Current\" ? \"col-legend-desirable-current\" : \"col-legend-desirable-future\";\n\n return (\n {\n if (node) {\n //node.style.setProperty(\"padding\", \"0px\", \"important\");\n }\n }}\n >{this.props.children}\n )\n } else {\n return (\n {this.props.children}\n )\n }\n\n }\n}\n\n","import * as personActions from \"../../store/actions/personAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, CustomInput, Form, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass TableLorProfilesEditAtrribute extends React.Component {\n static displayName = TableLorProfilesEditAtrribute.name;\n\n constructor(props) {\n super(props);\n this.state = {\n account: null,\n attributes: [],\n lorAttributes: [],\n updating: false,\n };\n }\n\n componentDidMount() {\n this.setState({ account: this.props.account, attributes: this.props.account ? [...this.props.account.attributes] : [], lorAttributes: this.props.account ? [...this.props.account.lorAttributes] : [] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.account !== this.props.account) {\n console.log(\"TableLorProfilesEditAtrribute Account Updated\");\n this.setState({ account: this.props.account, attributes: this.props.account ? [...this.props.account.attributes] : [], lorAttributes: this.props.account ? [...this.props.account.lorAttributes] : [] });\n }\n }\n\n handleAttributeCheckedChange = (attributeId) => {\n let lorAttributes = this.state.lorAttributes;\n\n if (lorAttributes && lorAttributes.length > 0) {\n if (lorAttributes.find((it) => it.lorAttributeId == attributeId)) {\n var attribute = lorAttributes.find((it) => it.lorAttributeId == attributeId);\n var index = lorAttributes.indexOf(attribute);\n if (index !== -1) {\n lorAttributes.splice(index, 1);\n }\n } else {\n lorAttributes.push({\n lorAttributeId: attributeId,\n });\n }\n } else {\n lorAttributes = [\n {\n lorAttributeId: attributeId,\n },\n ];\n }\n\n this.setState({ lorAttributes });\n };\n\n handleSaveEditAttributeClick = () => {\n const { account, lorAttributes } = this.state;\n\n this.setState({ updating: true });\n\n this.props.onPerson\n .updatePersonAccountLorAttributes(account.id, {\n lorAttributes: lorAttributes,\n })\n .then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Lor attributes updated\");\n this.props.updateLorAttributes(this.props.lorAttributes);\n }\n }\n\n this.setState({ updating: this.props.updating });\n });\n };\n\n render() {\n const { editedLor } = this.props;\n const lorAttributes = this.state.lorAttributes;\n\n if (this.props.editAttribute) {\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n {this.state.updating ? (\n \n \n \n ) : (\n \n \n it.lorAttributeId == attribute.id) ? true : false}\n label={\n attribute.link && attribute.link != \"\" && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )\n }\n onChange={() => this.handleAttributeCheckedChange(attribute.id)}\n inline\n disabled={this.props.managedPeople}\n />\n \n );\n })}\n \n \n \n )}\n \n
\n \n
\n \n
\n \n {editedLor.attributes\n .filter((it) => !it.isHidden)\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n
\n
\n
\n
\n \n {\" \"}\n {!this.props.managedPeople && (\n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.person.updating,\n error: state.person.error,\n lorAttributes: state.person.lorAttributes,\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableLorProfilesEditAtrribute);\n","import * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Form, Input, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass LorProfilesEditComment extends React.Component {\n static displayName = LorProfilesEditComment.name;\n\n constructor(props) {\n super(props);\n this.state = {\n comment: null,\n updating: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.setState({ comment: this.props.editedLorProfile && this.props.editedLorProfile.comment });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.editedLorProfile !== this.props.editedLorProfile) {\n this.setState({ comment: this.props.editedLorProfile && this.props.editedLorProfile.comment });\n }\n }\n\n handleSaveEditCommentClick = () => {\n const { editedLorProfile, isEndorser } = this.props;\n const { comment } = this.state;\n let processSave = false;\n\n if (isEndorser) {\n if (window.confirm(\"These comments are visible to the User. Are you sure?\")) {\n processSave = true;\n }\n } else {\n processSave = true;\n }\n\n if (processSave) {\n this.setState({ updating: true });\n\n Promise.resolve(this.props.managedPeople ? this.props.onProfile.updateManagedPeopleLorProfileComment(editedLorProfile.id, comment, this.props.managedPeople.personB.email) : this.props.onProfile.updateMyLorProfileComment(editedLorProfile.id, comment)).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n editedLorProfile.comment = comment;\n this.props.generateAlert(\"success\", this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditLorCommentEnterSuccessMessage\", \"Lor profile comment updated\"));\n this.props.updateLorComment(editedLorProfile);\n }\n }\n\n this.setState({ updating: this.props.updating });\n });\n }\n };\n\n handleChangeComment = (event) => {\n const { value } = event.target;\n this.setState({ comment: value });\n };\n\n render() {\n const { comment } = this.state;\n\n if (this.props.editComment) {\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n {this.props.editedLor} {this.props.editedLorLevel}\n
\n {this.props.editedLorDescription}\n
\n \n
\n
\n
\n
\n \n \n {this.props.allowEditComment && (\n \n {\" \"}\n \n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.skillProfile.updating,\n error: state.skillProfile.error,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onProfile: bindActionCreators(skillProfileActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LorProfilesEditComment);\n","import React, { Component } from \"react\";\nimport { UncontrolledTooltip } from \"reactstrap\";\n\nexport default class TableHeader extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n render() {\n const props = this.props;\n\n return (\n \n {props.showTitle ? (\n \n \n {props.title}\n \n \n \n {props.showTitle ? \"1\" : \"\"}\n \n \n {props.showTitle ? \"2\" : \"\"}\n \n \n {props.showTitle ? \"3\" : \"\"}\n \n \n {props.showTitle ? \"4\" : \"\"}\n \n \n {props.showTitle ? \"5\" : \"\"}\n \n \n {props.showTitle ? \"6\" : \"\"}\n \n \n {props.showTitle ? \"7\" : \"\"}\n \n {props.showEdit ? (\n props.highlightGap ? (\n \n \n \n \n ) : (\n \n )\n ) : (\n props.highlightGap && \n )}\n \n ) : (\n \n \n {props.title}\n \n \n {props.title + ` - Containing ${props.itemCount} sub-categories`}\n \n \n )}\n \n );\n }\n}\n","import \"../../../src/tooltip.css\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport FormAddAction from \"../actionplan/FormAddAction\";\nimport EvidenceDetail from \"../evidence/EvidenceDetail\";\nimport EvidenceListFiltered from \"../evidence/EvidenceListFiltered\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport SkillProfileGapHighlight from \"./SkillProfileGapHighlight\";\nimport TableLorProfilesEditAtrribute from \"./TableLorProfilesEditAtrribute\";\nimport LorProfilesEditComment from \"./TableLorProfilesEditComment\";\nimport TableHeader from \"./TableProfileHeader\";\nimport { faCheckCircle, faComment, faEdit, faFile, faFileCircleCheck, faFileShield, faList, faPlusCircle, faTimesCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst tableBodyStyle = {\n fontSize: 11,\n fontFamily: \"IBMPlexSans\",\n};\n\nconst tdEditStyle = {\n padding: \"2px 10px\",\n};\n\nconst lorOrders = [\n { lor: \"Autonomy\", order: 1 },\n { lor: \"Influence\", order: 2 },\n { lor: \"Complexity\", order: 3 },\n { lor: \"Business Skills\", order: 4 },\n { lor: \"Knowledge\", order: 5 },\n { lor: \"Responsibility and Autonomy\", order: 1 },\n { lor: \"Complexity and Scope\", order: 2 },\n { lor: \"Skills\", order: 3 },\n];\n\nclass TableProfileResponsibility extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n lors: this.props.lors,\n loading: this.props.loading,\n showEditSkill: this.props.showEditSkill,\n editLorProfile: false,\n editedLorProfile: null,\n\n editComment: false,\n allowEditComment: false,\n editedLor: null,\n editedLorDescription: null,\n editedLorLevel: null,\n alerts: [],\n openAddActionDialog: false,\n openAddEvidenceDialog: false,\n account: this.props.account,\n editAttribute: false,\n showDialogEvidenceListTs: null,\n showDialogEvidenceDetailTs: null,\n };\n\n this.openEditLorProfile = this.openEditLorProfile.bind(this);\n this.togleEditLorProfile = this.togleEditLorProfile.bind(this);\n this.handleRadioClick = this.handleRadioClick.bind(this);\n this.handleSaveEditProfileClick = this.handleSaveEditProfileClick.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {}\n\n componentDidUpdate(prevProps) {\n if (prevProps.account !== this.props.account) {\n this.setState({ account: this.props.account });\n }\n }\n\n openEditLorProfile(editedLor, editedLorProfile) {\n this.setState({ editLorProfile: true, editedLor, editedLorProfile });\n }\n\n togleEditLorProfile() {\n const { editLorProfile } = this.state;\n this.setState({ editLorProfile: !editLorProfile });\n }\n\n handleRadioChange = () => {};\n\n handleRadioClick(value) {\n let editedLorProfile = this.state.editedLorProfile;\n\n if (editedLorProfile) {\n editedLorProfile.value = value;\n } else {\n editedLorProfile = {\n value,\n };\n }\n\n this.setState({ editedLorProfile });\n }\n\n handleClearProfileClick = () => {\n const { lorProfiles, editedLor, editedLorProfile } = this.state;\n\n let lorProfile = null;\n if (lorProfiles && editedLor.optional && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === editedLor.name));\n\n if (lorProfile) {\n if (lorProfile.id) {\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n\n lorProfile.edited = true;\n\n lorProfile.source = \"lorProfiles\";\n } else {\n lorProfile.level = null;\n lorProfile.numericVal = null;\n lorProfile.stringVal = null;\n lorProfile.labelVal = null;\n\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n\n lorProfile.source = \"lorProfiles\";\n }\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles, editLorProfile: false });\n }\n }\n\n if (!lorProfile) {\n this.setState({ editLorProfile: false });\n }\n };\n\n handleSaveEditProfileClick() {\n const { lors, lorProfiles, editedLor, editedLorProfile } = this.state;\n const level = lors.find((it) => it.name == editedLor.name).levels.find((level) => editedLorProfile && level.levelNumber == editedLorProfile.value);\n\n let lorProfile = null;\n if (lorProfiles && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === editedLor.name));\n\n if (lorProfile) {\n if (((lorProfile.editedNumericVal || lorProfile.editedNumericVal == 0) && lorProfile.editedNumericVal != editedLorProfile.value) || (!lorProfile.editedNumericVal && lorProfile.numericVal != editedLorProfile.value)) {\n if (lorProfile.id) {\n if (lorProfile.level == level.levelNumber) {\n // Updated back to original level\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n } else {\n lorProfile.editedLevel = level.levelNumber;\n lorProfile.editedNumericVal = editedLorProfile.value;\n lorProfile.editedStringVal = level && `${level.levelNumber}- ${level.levelName}`;\n lorProfile.editedLabelVal = level && level.description;\n lorProfile.edited = true;\n }\n } else {\n lorProfile.editedLevel = level.levelNumber;\n lorProfile.editedNumericVal = editedLorProfile.value;\n lorProfile.editedStringVal = level && `${level.levelNumber}- ${level.levelName}`;\n lorProfile.editedLabelVal = level && level.description;\n lorProfile.edited = true;\n }\n\n lorProfile.source = \"lorProfiles\";\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles, editLorProfile: false });\n } else {\n this.setState({ editLorProfile: false });\n }\n }\n }\n\n if (!lorProfile && level) {\n lorProfile = {\n lor: editedLor.name,\n lorCode: editedLor.lorCode,\n level: level.levelNumber,\n numericVal: editedLorProfile.value,\n stringVal: level && `${level.levelNumber}- ${level.levelName}`,\n labelVal: level && level.description,\n editedLevel: level.levelNumber,\n editedNumericVal: editedLorProfile.value,\n editedStringVal: level && `${level.levelNumber}- ${level.levelName}`,\n editedLabelVal: level && level.description,\n edited: true,\n source: \"lorProfiles\",\n };\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles: [...lorProfiles, lorProfile], editLorProfile: false });\n }\n }\n\n handleSelectLorLevel = (lor, level, editedLorProfile) => {\n const { lors, lorProfiles } = this.state;\n const lorLevel = lors.find((it) => it.name == lor.name).levels.find((it) => it.levelNumber == level);\n\n let lorProfile = null;\n if (lorProfiles && editedLorProfile) {\n lorProfile = lorProfiles.find((it) => (editedLorProfile.id && it.id == editedLorProfile.id) || (!it.id && it.lor === lor.name));\n\n if (lorProfile) {\n if (lorProfile.id) {\n // Update existing lor profile\n if (\n // First update\n (!lorProfile.editedNumericVal && lorProfile.numericVal != level) ||\n // Update after first update\n (lorProfile.editedNumericVal && lorProfile.editedNumericVal != level)\n ) {\n // Click on different level cell\n if (lorProfile.level == level) {\n // Updated back to original level\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n } else {\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n lorProfile.edited = true;\n }\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n } else if (\n lor.optional &&\n // First update\n ((!lorProfile.editedNumericVal && lorProfile.numericVal == level) ||\n // Update after first update\n (lorProfile.editedNumericVal && lorProfile.editedNumericVal == level))\n ) {\n // Click on same level cell, must be Optional Lor\n if (lorProfile.editedNumericVal == 0) {\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n } else {\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n }\n\n lorProfile.source = \"lorProfiles\";\n\n if (lorProfile.numericVal != lorProfile.editedNumericVal) {\n lorProfile.edited = true;\n } else {\n lorProfile.edited = false;\n }\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n }\n } else {\n // Update new selected lor profile\n if (!lorProfile.editedNumericVal || lorProfile.editedNumericVal == 0 || (lorProfile.editedNumericVal && lorProfile.editedNumericVal != level)) {\n lorProfile.level = lorLevel.levelNumber;\n lorProfile.numericVal = level;\n lorProfile.stringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.labelVal = lorLevel && lorLevel.description;\n\n lorProfile.editedLevel = lorLevel.levelNumber;\n lorProfile.editedNumericVal = level;\n lorProfile.editedStringVal = lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`;\n lorProfile.editedLabelVal = lorLevel && lorLevel.description;\n lorProfile.edited = true;\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n } else if (lorProfile.editedNumericVal && lorProfile.editedNumericVal == level) {\n lorProfile.level = null;\n lorProfile.numericVal = null;\n lorProfile.stringVal = null;\n lorProfile.labelVal = null;\n\n lorProfile.editedLevel = null;\n lorProfile.editedNumericVal = 0;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = false;\n\n lorProfile.source = \"lorProfiles\";\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles });\n }\n }\n }\n }\n\n if (!lorProfile && lorLevel) {\n lorProfile = {\n lor: lor.name,\n lorCode: lor.lorCode,\n level: lorLevel.levelNumber,\n numericVal: level,\n stringVal: lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`,\n labelVal: lorLevel && lorLevel.description,\n editedLevel: lorLevel.levelNumber,\n editedNumericVal: level,\n editedStringVal: lorLevel && `${lorLevel.levelNumber}- ${lorLevel.levelName}`,\n editedLabelVal: lorLevel && lorLevel.description,\n edited: true,\n source: \"lorProfiles\",\n };\n\n this.props.handleEditProfileSkill(lorProfile);\n this.setState({ lorProfiles: [...lorProfiles, lorProfile] });\n }\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.loading !== this.props.loading) {\n this.setState({ loading: this.props.loading });\n }\n\n if (prevProps.lors !== this.props.lors) {\n this.setState({ lors: this.props.lors });\n }\n\n if (prevProps.lorProfiles !== this.props.lorProfiles) {\n this.setState({ lorProfiles: this.props.lorProfiles });\n }\n }\n\n openEditLorComment = (editedLor, editedLorLevel, editedLorDescription, lorProfile, allowEditComment) => {\n this.setState({ editComment: true, editedLor, editedLorDescription, editedLorLevel, editedLorProfile: lorProfile, allowEditComment });\n };\n\n togleEditLorComment = () => {\n const { editComment } = this.state;\n this.setState({ editComment: !editComment });\n };\n\n updateLorComment = () => {\n this.setState({ editComment: false });\n };\n\n openEditLorAttribute = (editedLor) => {\n this.setState({ editAttribute: true, editedLor });\n };\n\n togleEditLorAttribute = () => {\n const { editAttribute } = this.state;\n this.setState({ editAttribute: !editAttribute });\n };\n\n updateLorAttributes = (attributes) => {\n const account = this.state.account;\n\n if (account) {\n account.lorAttributes = attributes;\n this.setState({ account, editAttribute: false });\n }\n };\n\n openEvidenceListModal = (skillsCode, level, filterMode) => {\n this.setState({ showDialogEvidenceListTs: new Date(), evidenceFilterSkillsCode: skillsCode, evidenceFilterLevel: level, evidenceFilterMode: filterMode });\n };\n\n openEvidenceDetailModal = (evidence, editMode) => {\n const { containerConfig } = this.props;\n\n if (editMode == null) {\n const fileName = evidence.fileName;\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\" && !evidence.notes.startsWith(\"Evidence created from an Action\")) {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n if (\n !(evidence.isDigitalBadge || evidence.isNonEditable || (evidence.isEditableToCreatorOnly && evidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (evidence.lorLevels ? evidence.lorLevels : []).length + (evidence.skillLevels ? evidence.skillLevels : []).length == 1 &&\n (evidenceOption == \"Upload File\" || evidenceOption == \"Description in the Notes\")\n ) {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode: false });\n } else {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode: true });\n }\n } else {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode });\n }\n };\n\n tableBodyResponsibility = (categoryIndex, category, categoryColor, lorColor, showProposedAction) => {\n const { lors, lorProfiles } = this.state;\n const { containerConfig, loadingGap, showEditSkill, highlightGap, selectedJobMatchType, account, showHiddenSkills, isShowJobProfile, jobLorAttributes, evidences } = this.props;\n const proposeLors = showProposedAction ? (account && account.updateProfileEvidenceProposalSkills ? account.updateProfileEvidenceProposalSkills.filter((it) => it.type == \"Lor\") : []) : [];\n\n if (lors) {\n lors.forEach((lor) => {\n const lorOrder = lorOrders.find((it) => it.lor == lor.name);\n if (lorOrder) {\n lor.order = lorOrder.order;\n } else {\n lor.order = 999;\n }\n });\n }\n\n const rows = lors\n .filter((it) => (it.category ? it.category : \"Generic Attributes\") == (category ? category : \"Generic Attributes\"))\n //.sort((a, b) => (`${a.sequence}${a.order}${a.name}` > `${b.sequence}${b.order}${b.name}` ? 1 : -1))\n .sort((a, b) => {\n if (a.sequence > b.sequence) {\n return 1;\n }\n if (a.sequence < b.sequence) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n if (a.order < b.order) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n })\n .map((lor, lorindex) => {\n const lorProfile = lorProfiles.find((x) => x.lor === lor.name) ? lorProfiles.filter((x) => x.lor === lor.name).sort((b, a) => a.level - b.level)[0] : null;\n const lorHidden = lor.isHidden && !showHiddenSkills;\n const lorOptional = lor.optional;\n\n let jobLorProfile = null;\n\n if (selectedJobMatchType.value != \"None\") {\n jobLorProfile = this.props.jobLorProfiles ? this.props.jobLorProfiles.find((it) => it.lor == lor.name) : null;\n }\n\n const levels = [1, 2, 3, 4, 5, 6, 7];\n\n let openCommentEditor = false;\n let openCommentAllowEdit = false;\n\n let selectedLorAttributes = [];\n let selectedJobLorAttributes = [];\n\n let jobLorAttributeColor = \"#002060\";\n const showJobLorAttribute = this.props.selectedJobMatchType.id ? true : false;\n if (showJobLorAttribute) {\n if (this.props.selectedJobMatchType.value == \"Current\") {\n jobLorAttributeColor = \"#002060\";\n } else {\n jobLorAttributeColor = \"#4dcaa4\";\n }\n }\n\n if (isShowJobProfile) {\n if (lor.attributes && lor.attributes.length > 0 && jobLorAttributes && jobLorAttributes.length > 0) {\n selectedLorAttributes = lor.attributes.filter((it) => !it.isHidden && jobLorAttributes.find((attribute) => it.id == attribute.lorAttributeId));\n }\n } else {\n if (lor.attributes && lor.attributes.length > 0 && this.state.account && this.state.account.lorAttributes && this.state.account.lorAttributes.length > 0) {\n selectedLorAttributes = lor.attributes.filter((it) => !it.isHidden && this.state.account.lorAttributes.find((attribute) => it.id == attribute.lorAttributeId));\n }\n\n selectedJobLorAttributes = showJobLorAttribute && jobLorAttributes ? jobLorAttributes.filter((it) => !it.isHidden && it.lorName == lor.name && it.lorCode == lor.lorCode) : [];\n }\n\n if (lorProfile) {\n const currLevel = lorProfile.edited ? (lorProfile.editedLevel ? lorProfile.editedLevel : 0) : lorProfile.level;\n\n openCommentEditor = false;\n openCommentAllowEdit = false;\n\n if (!isShowJobProfile && !showEditSkill) {\n if (\n (this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) ||\n (this.props.selectedprofileType.value == \"Self Assessed\" && this.props.managedPeople && lorProfile.comment) ||\n ((this.props.managedPeople || lorProfile.comment) && this.props.selectedprofileType.value == \"Endorsed\")\n ) {\n openCommentEditor = true;\n }\n\n if ((this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) || (this.props.managedPeople && this.props.selectedprofileType.value == \"Endorsed\")) {\n openCommentAllowEdit = true;\n }\n }\n\n let showRow = false;\n\n if (showProposedAction) {\n if (showProposedAction && proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode).length > 0) {\n const proposedLor = proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode).sort((b, a) => a.level - b.level)[0];\n if (lorProfile && proposedLor.level > lorProfile.level) {\n showRow = true;\n }\n }\n } else {\n showRow = true;\n }\n\n return (\n showRow &&\n !lorHidden && (\n \n \n \n {lor.attributes && lor.attributes.filter((it) => !it.isHidden).length > 0 ? (\n \n \n \n {selectedLorAttributes.length > 0 && (\n \n
\n {selectedLorAttributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n \n \n {attribute.link && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )}\n {index + 1 < selectedLorAttributes.length && \", \"}\n \n \n );\n })}\n
\n )}\n {selectedJobLorAttributes.length > 0 && (\n \n
\n
\n {selectedJobLorAttributes\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n \n {attribute.link && !this.props.loginWithTeams ? (\n \n \n \n {attribute.attribute}\n \n
\n
\n ) : (\n \n \n {attribute.attribute}\n \n \n )}\n
\n );\n })}\n \n \n )}\n \n {!isShowJobProfile && (\n \n this.openEditLorAttribute(lor)} />\n \n )}\n \n ) : (\n \n \n \n )}\n
\n \n \n {lor && }\n \n \n {levels.map((level, levelindex) => {\n const lorLevel = lor.levels.find((x) => x.levelNumber == level);\n const colProposed = `#f2aa84`;\n let showProposed = false;\n let proposedLor = null;\n\n if (showProposedAction && proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode && s.level == level).length > 0) {\n proposedLor = proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode).sort((b, a) => a.level - b.level)[0];\n if (lorProfile) {\n if (proposedLor.level > lorProfile.level && proposedLor.level == level) {\n showProposed = true;\n }\n } else {\n if (proposedLor.level == level) {\n showProposed = true;\n }\n }\n }\n\n var skillLevelReadOnlyEvidences =\n currLevel === level && evidences\n ? evidences.filter((it) => !it.aiReviewed && it.lorLevels && it.lorLevels.find((l) => l.lorCode == lor.lorCode && l.level == level) && (it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelEditableEvidences =\n currLevel === level && evidences\n ? evidences.filter((it) => !it.aiReviewed && it.lorLevels && it.lorLevels.find((l) => l.lorCode == lor.lorCode && l.level == level) && !(it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelConfirmedEvidences = currLevel === level && evidences ? evidences.filter((it) => it.aiReviewed && it.lorLevels && it.lorLevels.find((l) => l.lorCode == lor.lorCode && l.level == level)) : [];\n\n const numberEvidenceTypes = (skillLevelReadOnlyEvidences.length > 0 ? 1 : 0) + (skillLevelEditableEvidences.length > 0 ? 1 : 0) + (skillLevelConfirmedEvidences.length > 0 ? 1 : 0);\n const evidenceAvailable = skillLevelReadOnlyEvidences.length > 0 || skillLevelEditableEvidences.length > 0 || skillLevelConfirmedEvidences.length > 0;\n\n return (\n \n \n
\n \n showEditSkill && containerConfig.enableClickToEditLoR && ((currLevel === level && lorOptional) || currLevel != level)\n ? this.handleSelectLorLevel(lor, level, lorProfile)\n : currLevel === level &&\n openCommentEditor &&\n this.openEditLorComment(\n this.contentTranslator(this.props.contentTranslations, \"Lors\", lorProfile.lor, lorProfile.lor),\n level,\n this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description),\n lorProfile,\n openCommentAllowEdit\n )\n }\n >\n {currLevel === level && lorProfile.comment && }\n
\n {evidenceAvailable && (\n
\n \n {skillLevelEditableEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelEditableEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelEditableEvidences[0]) : this.openEvidenceListModal(lor.lorCode, level, \"OPENED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelReadOnlyEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelReadOnlyEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelReadOnlyEvidences[0]) : this.openEvidenceListModal(lor.lorCode, level, \"PROTECTED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelConfirmedEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelConfirmedEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelConfirmedEvidences[0]) : this.openEvidenceListModal(lor.lorCode, level, \"CONFIRMED\"))}\n />\n \n \n \n \n )}\n \n
\n )}\n \n \n \n {lorLevel && }\n \n {highlightGap && (\n \n {jobLorProfile && jobLorProfile.level == level ? (\n \n = jobLorProfile.level ? true : false}\n jobMatchType={selectedJobMatchType.value}\n fixWidthClass=\"td-fixwidth\"\n reqDesValue=\"Required\"\n rightBorderColor=\"#69849c\"\n >\n \n {lorLevel && }\n \n \n ) : (\n \n \n \n {lorLevel && }\n \n \n )}\n \n )}\n
\n );\n })}\n {showEditSkill && (\n \n !containerConfig.enableClickToEditLoR && this.openEditLorProfile(lor, { id: lorProfile.id, value: currLevel })}\n >\n \n \n {containerConfig.enableClickToEditLoR && (\n \n \n \n )}\n \n )}\n {highlightGap ? (\n \n {loadingGap && }\n {!loadingGap && jobLorProfile ? (\n currLevel >= jobLorProfile.level ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n {!loadingGap && jobLorProfile ? (\n currLevel >= jobLorProfile.level ? (\n \n ) : (\n \n \n
\n
\n \n
\n )\n ) : (\n \"\"\n )}\n
\n \n ) : (\n \n \n \n \n \n \n )}\n \n )\n );\n } else {\n let showRow = false;\n\n if (showProposedAction) {\n if (showProposedAction && proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode).length > 0) {\n showRow = true;\n }\n } else {\n showRow = true;\n }\n\n return (\n showRow &&\n !lorHidden && (\n \n \n \n \n \n {lor && }\n \n \n {levels.map((level, levelindex) => {\n const lorLevel = lor.levels.find((x) => x.levelNumber == level);\n const colProposed = `#f2aa84`;\n let showProposed = false;\n let proposedLor = null;\n\n if (showProposedAction && proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode && s.level == level).length > 0) {\n proposedLor = proposeLors.filter((s) => s.type == \"Lor\" && s.code == lor.lorCode).sort((b, a) => a.level - b.level)[0];\n\n if (proposedLor.level == level) {\n showProposed = true;\n }\n }\n\n return (\n \n showEditSkill && containerConfig.enableClickToEditLoR && this.handleSelectLorLevel(lor, level, null)}\n >\n \n {lorLevel && }\n \n {highlightGap && (\n \n {jobLorProfile && jobLorProfile.level == level ? (\n \n \n \n {lorLevel && }\n \n \n ) : (\n \n \n \n {lorLevel && }\n \n \n )}\n \n )}\n \n );\n })}\n {showEditSkill && (\n \n !containerConfig.enableClickToEditLoR && this.openEditLorProfile(lor, null)}\n >\n \n \n {containerConfig.enableClickToEditLoR && (\n \n \n \n )}\n \n )}\n {highlightGap && jobLorProfile ? (\n \n \n \n \n
\n
\n \n
\n \n ) : (\n \n \n \n \n \n \n )}\n \n )\n );\n }\n });\n\n return {rows};\n };\n\n handleAddAction = (lor) => {\n this.setState({ openAddActionDialog: true, actionedLor: lor });\n };\n\n handleCancelAddAction = () => {\n this.setState({ openAddActionDialog: false, actionedLor: null });\n };\n\n handleActionPlanAdded = (addedAction) => {\n this.setState({ openAddActionDialog: false, actionedLor: null });\n this.props.handleActionPlanAdded(addedAction);\n };\n\n renderModalAddAction = () => {\n const { selectedJobMatchType, actions, actionSkills, jobLorProfiles, jobSkillProfiles, lorProfiles, skillProfiles } = this.props;\n const { actionedLor, openAddActionDialog } = this.state;\n\n let selectedDefaultSkills;\n\n if (actionedLor && selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n if (jobSkillProfiles) {\n jobSkillProfiles.forEach((jobSkillProfile) => {\n const skillProfile = skillProfiles && skillProfiles.find((x) => x.skillCode == jobSkillProfile.skillCode && x.level == jobSkillProfile.level && (x.numericVal == 1 || x.stringVal == \"M\"));\n const plan = actions ? actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level)) : null;\n\n if (skillProfile || plan) {\n jobSkillProfile.actioned = true;\n } else {\n jobSkillProfile.actioned = false;\n }\n });\n }\n\n if (jobLorProfiles) {\n const gapJobLorProfiles = jobLorProfiles.filter((it) => it.lorCode == actionedLor.lorCode);\n\n if (gapJobLorProfiles.length > 0) {\n selectedDefaultSkills = [\n ...gapJobLorProfiles.map((skill) => {\n return {\n skillName: skill.lor,\n skillCode: skill.lorCode,\n skillLevel: skill.level,\n skillType: \"Lor\",\n };\n }),\n ];\n }\n\n jobLorProfiles.forEach((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions ? actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level)) : null;\n const gapJobLorProfile = gapJobLorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode);\n\n if (!gapJobLorProfile && (lorProfile || plan)) {\n jobLorProfile.actioned = true;\n } else {\n jobLorProfile.actioned = false;\n }\n });\n }\n }\n\n let optionsJob = [];\n\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches ? jobMatches.find((it) => it.jobType === \"Current\") : null;\n const futureJob = jobMatches ? jobMatches.find((it) => it.jobType === \"Future\") : null;\n\n if (currentJob) {\n optionsJob.push({\n value: currentJob.jobType + \" - \" + currentJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", currentJob.jobType, currentJob.jobType) + \" - \" + currentJob.jobTitle,\n type: currentJob.jobType,\n id: currentJob.jobId,\n });\n }\n\n if (futureJob) {\n optionsJob.push({\n value: futureJob.jobType + \" - \" + futureJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", futureJob.jobType, futureJob.jobType) + \" - \" + futureJob.jobTitle,\n type: futureJob.jobType,\n id: futureJob.jobId,\n });\n }\n\n return (\n \n \n
\n \n
\n
\n
\n );\n };\n\n renderModalEditProfile() {\n const { editedLor, editedLorProfile } = this.state;\n\n let lorProfileElement = null;\n\n if (editedLorProfile) {\n lorProfileElement = {\n id: editedLorProfile.id,\n value: editedLorProfile.value,\n };\n }\n\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n {editedLor.levels &&\n editedLor.levels.map((level, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n \n
\n \n
\n {level.levelNumber}\n \n \n \n \n this.handleRadioChange()}\n onClick={() => this.handleRadioClick(level.levelNumber)}\n />\n \n
\n
\n
\n
\n \n {\" \"}\n {editedLor && editedLor.optional && editedLorProfile && editedLorProfile.value > 0 && (\n \n {\" \"}\n \n \n )}\n \n \n
\n );\n }\n\n render() {\n const { editedLor, lors, lorProfiles } = this.state;\n const { showProposedAction, account, showHiddenSkills } = this.props;\n\n const lorCategories = [];\n\n if (lors.find((it) => !it.category)) {\n lorCategories.push({\n category: \"Generic Attributes\",\n categoryColor: \"#69849c\",\n lorColor: \"#ecf0f5\",\n });\n }\n\n lors.filter((it) => it.category).forEach((lor) => {\n if (!lorCategories.find((it) => it.category == lor.category)) {\n lorCategories.push({\n category: lor.category,\n categoryColor: lor.categoryColor,\n lorColor: lor.lorColor,\n });\n }\n });\n\n return (\n
\n \n {editedLor && this.renderModalEditProfile()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n {this.renderModalAddAction()}\n \n \n \n \n {lorCategories.map((lorCategory, index) => {\n let showCategory = false;\n\n if (showProposedAction) {\n const proposeLors = account && account.updateProfileEvidenceProposalSkills ? account.updateProfileEvidenceProposalSkills.filter((it) => it.category == (lorCategory.category ? lorCategory.category : \"Generic Attributes\")) : [];\n const matchs = lorProfiles ? lorProfiles.filter((a) => proposeLors.some((b) => b.name == a.lor && b.level > a.level)) : [];\n if (matchs.length > 0) {\n showCategory = true;\n }\n } else {\n showCategory = true;\n }\n\n const categoryLors = lors.filter((it) => (it.category ? it.category : \"Generic Attributes\") == (lorCategory.category ? lorCategory.category : \"Generic Attributes\"));\n const categoryHidden = !categoryLors.some((lor) => !lor.isHidden) && !showHiddenSkills;\n\n return (\n \n {showCategory && !categoryHidden && (\n \n \n {this.tableBodyResponsibility(index, lorCategory.category, lorCategory.categoryColor, lorCategory.lorColor, this.props.showProposedAction)}\n
\n )}\n
\n );\n })}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n managedPeople: state.auth.managedPeople,\n account: state.person.account,\n actionTypes: state.actionPlan.actionTypes,\n actionSkills: state.actionPlan.actionSkills,\n actions: state.actionPlan.actions,\n selectedProviders: state.company.selectedProviders,\n jobMatches: state.job.jobMatches,\n containerConfig: state.config.containerConfig,\n personId: state.auth.personId,\n };\n};\n\nconst mapDispatchToProps = () => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableProfileResponsibility);\n","import * as personActions from \"../../store/actions/personAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Col, CustomInput, Form, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass TableSkillProfilesEditAttribute extends React.Component {\n static displayName = TableSkillProfilesEditAttribute.name;\n\n constructor(props) {\n super(props);\n this.state = {\n account: null,\n attributes: [],\n updating: false,\n };\n }\n\n componentDidMount() {\n this.setState({ account: this.props.account, attributes: this.props.account ? [...this.props.account.attributes] : [] });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.account !== this.props.account) {\n this.setState({ account: this.props.account, attributes: this.props.account ? [...this.props.account.attributes] : [] });\n }\n }\n\n handleAttributeCheckedChange = (attributeId) => {\n let attributes = this.state.attributes;\n\n if (attributes && attributes.length > 0) {\n if (attributes.find((it) => it.skillAttributeId == attributeId)) {\n var attribute = attributes.find((it) => it.skillAttributeId == attributeId);\n var index = attributes.indexOf(attribute);\n if (index !== -1) {\n attributes.splice(index, 1);\n }\n } else {\n attributes.push({\n skillAttributeId: attributeId,\n });\n }\n } else {\n attributes = [\n {\n skillAttributeId: attributeId,\n },\n ];\n }\n\n this.setState({ attributes });\n };\n\n handleSaveEditAttributeClick = () => {\n const { account, attributes } = this.state;\n\n this.setState({ updating: true });\n\n this.props.onPerson\n .updatePersonAccountAttributes(account.id, {\n attributes,\n })\n .then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Skill attributes updated\");\n this.props.updateSkillAttributes(this.props.attributes);\n }\n }\n\n this.setState({ updating: this.props.updating });\n });\n };\n\n render() {\n const { editedCategory, editedSubCategory, editedSkill } = this.props;\n const attributes = this.state.attributes;\n\n if (this.props.editAttribute) {\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n {this.state.updating ? (\n \n \n \n ) : (\n \n \n it.skillAttributeId == attribute.id) ? true : false}\n label={\n attribute.link && attribute.link != \"\" && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )\n }\n onChange={() => this.handleAttributeCheckedChange(attribute.id)}\n inline\n disabled={this.props.managedPeople}\n />\n \n );\n })}\n \n \n \n )}\n \n
\n \n
\n \n
\n \n
\n \n
\n \n {editedSkill.attributes\n .filter((it) => !it.isHidden)\n .sort((a, b) => a.attribute > b.attribute)\n .map((attribute, index) => {\n return (\n
\n
\n
\n
\n \n {\" \"}\n {!this.props.managedPeople && (\n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.person.updating,\n error: state.person.error,\n attributes: state.person.attributes,\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n loginWithTeams: state.auth.loginWithTeams,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableSkillProfilesEditAttribute);\n","import * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, Form, Input, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass TableSkillProfilesEditComment extends React.Component {\n static displayName = TableSkillProfilesEditComment.name;\n\n constructor(props) {\n super(props);\n this.state = {\n comment: null,\n updating: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n this.setState({ comment: this.props.editedSkill && this.props.editedSkill.comment });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.editedSkill !== this.props.editedSkill) {\n this.setState({ comment: this.props.editedSkill && this.props.editedSkill.comment });\n }\n }\n\n handleSaveEditCommentClick = () => {\n const { editedSkill, isEndorser } = this.props;\n const { comment } = this.state;\n\n let processSave = false;\n\n if (isEndorser) {\n if (window.confirm(\"These comments are visible to the User. Are you sure?\")) {\n processSave = true;\n }\n } else {\n processSave = true;\n }\n\n if (processSave) {\n this.setState({ updating: true });\n\n Promise.resolve(this.props.managedPeople ? this.props.onProfile.updateManagedPeopleSkillProfileComment(editedSkill.id, comment, this.props.managedPeople.personB.email) : this.props.onProfile.updateMySkillProfileComment(editedSkill.id, comment)).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n editedSkill.comment = comment;\n this.props.generateAlert(\"success\", this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditCommentEnterSuccessMessage\", \"Skill profile comment updated\"));\n this.props.updateSkillComment(editedSkill);\n }\n }\n\n this.setState({ updating: this.props.updating });\n });\n }\n };\n\n handleChangeComment = (event) => {\n const { value } = event.target;\n this.setState({ comment: value });\n };\n\n render() {\n const { editedCategory, editedSubCategory, editedSkill } = this.props;\n const { comment } = this.state;\n\n if (this.props.editComment) {\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {editedCategory.name}\n
\n {editedSubCategory.name}\n
\n \n
\n {editedSkill.level}\n \n \n
\n \n
\n
\n
\n
\n \n \n {this.props.allowEditComment && (\n \n {\" \"}\n \n \n )}\n \n
\n );\n } else {\n return \"\";\n }\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n updating: state.skillProfile.updating,\n error: state.skillProfile.error,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onProfile: bindActionCreators(skillProfileActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableSkillProfilesEditComment);\n","import * as personActions from \"../../store/actions/personAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport FormAddAction from \"../actionplan/FormAddAction\";\nimport AddNewEvidenceForm from \"../evidence/AddNewEvidenceForm\";\nimport EvidenceDetail from \"../evidence/EvidenceDetail\";\nimport EvidenceListFiltered from \"../evidence/EvidenceListFiltered\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport SkillProfileGapHighlight from \"./SkillProfileGapHighlight\";\nimport TableSkillProfilesEditAttribute from \"./TableSkillProfilesEditAtrribute\";\nimport TableSkillProfilesEditComment from \"./TableSkillProfilesEditComment\";\nimport { faCircleQuestion } from \"@fortawesome/free-regular-svg-icons\";\nimport { faCheckCircle, faCircle, faComment, faEdit, faFile, faFileCircleCheck, faFileShield, faList, faPlusCircle, faTimesCircle, faWandMagicSparkles } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport parse from \"html-react-parser\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport Select from \"react-select\";\nimport { Button, Col, Form, FormGroup, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nfunction truncate(input) {\n // if (input.length > 400) {\n // return input.substring(0, 400) + '...';\n // }\n return input;\n}\n\nclass TableSkillProfiles extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n loading: false,\n categories: this.props.categories,\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n\n editSkill: false,\n editedCategory: null,\n editedSubCategory: null,\n editedSkill: null,\n editedSkillProfiles: null,\n editedSkillEvidence: null,\n skillValueOptions: [],\n account: null,\n editAttribute: false,\n alerts: [],\n editComment: false,\n skillLevelDescription: null,\n allowEditComment: false,\n badgeRequest: this.props.badgeRequest,\n openSuggestEditLowerLevelProfile: false,\n openAddActionDialog: false,\n openAddEvidenceDialog: false,\n pendingSaveEvidence: false,\n jobLorProfiles: this.props.jobLorProfiles ? [...this.props.jobLorProfiles] : [],\n jobSkillProfiles: this.props.jobSkillProfiles ? [...this.props.jobSkillProfiles] : [],\n showDialogEvidenceListTs: null,\n showDialogEvidenceDetailTs: null,\n };\n\n this.openEditSkillProfile = this.openEditSkillProfile.bind(this);\n this.togleEditSkillProfile = this.togleEditSkillProfile.bind(this);\n this.handleChangeSkillLevel = this.handleChangeSkillLevel.bind(this);\n this.handleSaveEditProfileClick = this.handleSaveEditProfileClick.bind(this);\n\n this.openEditSkillAttribute = this.openEditSkillAttribute.bind(this);\n this.togleEditSkillAttribute = this.togleEditSkillAttribute.bind(this);\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const skillValueOptions = [\n {\n value: \"N\",\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditSkillLevelNone\", \"None\"),\n numericVal: 0,\n labelVal: \"My skills (Current and Past) are NOT a good match (<50%) for this description\",\n },\n {\n value: \"NA\",\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditSkillLevelKnowledge\", \"Knowledge\"), //\"Previous\",\n numericVal: 0.25,\n labelVal: \"My CURRENT skills are NOT a good match to this description.
HOWEVER, it is a good match for skills from earlier in my career\",\n },\n {\n value: \"P\",\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditSkillLevelProficient\", \"Proficient\"), //\"Largely\",\n numericVal: 0.5,\n labelVal: \"I have LARGELY (50%-85% match) 'performed' the skill as described above
And I consider it a current and practiced skill\",\n },\n {\n value: \"M\",\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"EditSkillLevelCompetent\", \"Competent\"), //\"Fully\",\n numericVal: 1,\n labelVal: \"I have FULLY (>85% match) 'mastered' the skill as described above
And I consider it a current and practiced skill\",\n },\n ];\n\n this.setState({ skillValueOptions });\n\n this.initData();\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n Promise.all([this.props.managedPeople ? this.props.onPerson.getManagedPeopleLatestAccount(this.props.managedPeople.personB.email) : this.props.onPerson.getPersonLatestAccount()]).then(() => {\n if (!this.props.personLoading && this.props.account) {\n const account = this.props.account;\n this.setState({ account });\n }\n });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.loading !== this.props.loading) {\n this.setState({ loading: this.props.loading });\n }\n\n if (prevProps.badgeRequest !== this.props.badgeRequest) {\n this.setState({ badgeRequest: this.props.badgeRequest });\n }\n\n if (prevProps.categories !== this.props.categories) {\n this.setState({ categories: this.props.categories });\n }\n\n if (prevProps.lorProfiles !== this.props.lorProfiles) {\n this.setState({ lorProfiles: this.props.lorProfiles });\n }\n\n if (prevProps.skillProfiles !== this.props.skillProfiles) {\n this.setState({ skillProfiles: this.props.skillProfiles });\n }\n\n if (prevProps.jobLorProfiles !== this.props.jobLorProfiles) {\n this.setState({ jobLorProfiles: this.props.jobLorProfiles ? [...this.props.jobLorProfiles] : [] });\n }\n\n if (prevProps.jobSkillProfiles !== this.props.jobSkillProfiles) {\n this.setState({ jobSkillProfiles: this.props.jobSkillProfiles ? [...this.props.jobSkillProfiles] : [] });\n }\n\n if (prevProps.account !== this.props.account) {\n this.setState({ account: this.props.account });\n }\n }\n\n openEditSkillProfile(editedCategory, editedSubCategory, editedSkill, editedSkillProfilesSubmit, isExtraFramework) {\n const { skillValueOptions } = this.state;\n const { extraFrameworkCapabilities } = this.props;\n\n let lowerOption = null;\n if (isExtraFramework) {\n const leastOption = extraFrameworkCapabilities ? [...extraFrameworkCapabilities].sort((a, b) => a.weight - b.weight)[0] : null;\n lowerOption = {\n numericVal: leastOption.weight,\n stringVal: leastOption.capability,\n labelVal: null,\n isExtraFramework,\n };\n } else {\n const leastOption = skillValueOptions ? [...skillValueOptions].sort((a, b) => a.numericVal - b.numericVal)[0] : null;\n lowerOption = {\n numericVal: leastOption.numericVal,\n stringVal: leastOption.value,\n labelVal: leastOption.labelVal,\n isExtraFramework,\n };\n }\n\n let editedSkillProfiles = editedSkillProfilesSubmit ? JSON.parse(JSON.stringify(editedSkillProfilesSubmit)) : [];\n\n if (editedSkillProfiles && editedSkill && editedSkill.levelSelection && editedSkill.levelSelection == \"Single\") {\n let singleLevelSelectionValue = false;\n editedSkillProfiles\n .sort((a, b) => a.level - b.level)\n .map((editedSkillProfile) => {\n if (!singleLevelSelectionValue && ((editedSkillProfile.numericVal && editedSkillProfile.numericVal > 0) || (editedSkillProfile.editedNumericVal && editedSkillProfile.editedNumericVal > 0))) {\n editedSkillProfile.singleLevelSelectionChecked = true;\n singleLevelSelectionValue = true;\n } else {\n editedSkillProfile.singleLevelSelectionChecked = false;\n editedSkillProfile.editedStringVal = lowerOption.stringVal;\n editedSkillProfile.edited = true;\n editedSkillProfile.source = \"skillProfiles\";\n\n editedSkillProfile.editedNumericVal = lowerOption.numericVal;\n editedSkillProfile.editedLabelVal = lowerOption.labelVal;\n }\n });\n }\n\n this.setState({ editSkill: true, editedCategory, editedSubCategory, editedSkill, editedSkillProfiles, editExtraFrameworkSkill: isExtraFramework, editedSkillEvidence: null });\n }\n\n handleRadioChange = () => {};\n\n handleRadioSingleSelectionClick = (levelNumber) => {\n const { editedCategory, editedSubCategory, editedSkill, skillValueOptions, editExtraFrameworkSkill } = this.state;\n const { extraFrameworkCapabilities } = this.props;\n\n let lowerOption = null;\n if (editExtraFrameworkSkill) {\n const leastOption = extraFrameworkCapabilities ? [...extraFrameworkCapabilities].sort((a, b) => a.weight - b.weight)[0] : null;\n lowerOption = {\n numericVal: leastOption.weight,\n stringVal: leastOption.capability,\n labelVal: null,\n isExtraFramework: editExtraFrameworkSkill,\n };\n } else {\n const leastOption = skillValueOptions ? [...skillValueOptions].sort((a, b) => a.numericVal - b.numericVal)[0] : null;\n lowerOption = {\n numericVal: leastOption.numericVal,\n stringVal: leastOption.value,\n labelVal: leastOption.labelVal,\n isExtraFramework: editExtraFrameworkSkill,\n };\n }\n\n let editedSkillProfiles = this.state.editedSkillProfiles;\n\n if (editedSkillProfiles) {\n editedSkillProfiles.map((editedSkillProfile) => {\n editedSkillProfile.singleLevelSelectionChecked = false;\n if (editedSkillProfile.level != levelNumber) {\n editedSkillProfile.editedStringVal = lowerOption.stringVal;\n editedSkillProfile.editedLabelVal = lowerOption.labelVal;\n editedSkillProfile.editedNumericVal = lowerOption.numericVal;\n }\n });\n\n if (editedSkillProfiles.find((it) => it.level == levelNumber)) {\n let editedSkillProfile = editedSkillProfiles.find((it) => it.level == levelNumber);\n editedSkillProfile.singleLevelSelectionChecked = true;\n } else {\n var level = editedSkill.levels.find((it) => it.level == levelNumber);\n editedSkillProfiles.push({\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n skillCode: editedSkill.skillsCode,\n level: levelNumber,\n editedStringVal: lowerOption.stringVal,\n editedLabelVal: lowerOption.labelVal,\n editedNumericVal: lowerOption.numericVal,\n isExtraFramework: level && level.extraFrameworkLevelId ? true : false,\n extraFrameworkLevel: level && level.extraFrameworkLevelId ? level.extraFrameworkLevel : null,\n extraFrameworkLevelId: level && level.extraFrameworkLevelId ? level.extraFrameworkLevelId : null,\n singleLevelSelectionChecked: true,\n });\n }\n }\n\n this.setState({ editedSkillProfiles: [...editedSkillProfiles] });\n };\n\n togleEditSkillProfile() {\n const badgeCertification = this.props.badgeCertification;\n const { editSkill } = this.state;\n this.setState({ editSkill: !editSkill });\n\n if (badgeCertification) {\n let badgeRequest = this.state.badgeRequest;\n let requestCertificationEntries = badgeRequest.requestCertificationEntries ? [...badgeRequest.requestCertificationEntries] : [];\n\n requestCertificationEntries.forEach((requestCertificationEntry) => {\n requestCertificationEntry.storedStringVal = null;\n requestCertificationEntry.storedNumericVal = null;\n requestCertificationEntry.storedLabelVal = null;\n });\n\n this.setState({ badgeRequest });\n } else {\n this.setState({ editedSkillProfiles: [] });\n }\n }\n\n handleSaveEditProfileClick() {\n let { skillProfiles, editedSkillProfiles, skillValueOptions, editExtraFrameworkSkill, editedSkillEvidence } = this.state;\n const { extraFrameworkCapabilities } = this.props;\n\n let lowerOption = null;\n if (editExtraFrameworkSkill) {\n const leastOption = extraFrameworkCapabilities ? [...extraFrameworkCapabilities].sort((a, b) => a.weight - b.weight)[0] : null;\n lowerOption = {\n numericVal: leastOption.weight,\n stringVal: leastOption.capability,\n labelVal: null,\n isExtraFramework: editExtraFrameworkSkill,\n };\n } else {\n const leastOption = skillValueOptions ? [...skillValueOptions].sort((a, b) => a.numericVal - b.numericVal)[0] : null;\n lowerOption = {\n numericVal: leastOption.numericVal,\n stringVal: leastOption.value,\n labelVal: leastOption.labelVal,\n isExtraFramework: editExtraFrameworkSkill,\n };\n }\n\n const badgeCertification = this.props.badgeCertification;\n let editedProfiles = [];\n\n if (!badgeCertification && editedSkillProfiles.some((it) => it.editedStringVal && (it.editedStringVal != it.stringVal || it.edited))) {\n editedSkillProfiles\n .filter((editedSkillProfile) => editedSkillProfile.editedStringVal && (editedSkillProfile.editedStringVal != editedSkillProfile.stringVal || editedSkillProfile.edited))\n .forEach((editedSkillProfile) => {\n if (editedSkillProfile.id) {\n let skillProfile = skillProfiles.find((skillProfile) => skillProfile.id == editedSkillProfile.id);\n if (skillProfile) {\n if (editedSkillProfile.editedStringVal == editedSkillProfile.stringVal) {\n skillProfile.editedStringVal = null;\n skillProfile.edited = false;\n skillProfile.source = \"skillProfiles\";\n\n skillProfile.editedNumericVal = 0;\n skillProfile.editedLabelVal = null;\n } else {\n skillProfile.editedStringVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedStringVal : lowerOption.stringVal;\n skillProfile.edited = true;\n skillProfile.source = \"skillProfiles\";\n\n skillProfile.editedNumericVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedNumericVal : lowerOption.numericVal;\n skillProfile.editedLabelVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedLabelVal : lowerOption.labelVal;\n\n skillProfile.isExtraFramework = editedSkillProfile.isExtraFramework;\n skillProfile.extraFrameworkLevel = editedSkillProfile.extraFrameworkLevel;\n skillProfile.extraFrameworkLevelId = editedSkillProfile.extraFrameworkLevelId;\n }\n\n editedProfiles.push(skillProfile);\n }\n } else {\n if (skillProfiles.find((skillProfile) => skillProfile.skillCode == editedSkillProfile.skillCode && skillProfile.level == editedSkillProfile.level)) {\n let skillProfile = skillProfiles.find((skillProfile) => skillProfile.skillCode == editedSkillProfile.skillCode && skillProfile.level == editedSkillProfile.level);\n if (skillProfile) {\n skillProfile.editedStringVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedStringVal : lowerOption.stringVal;\n skillProfile.edited = editedSkillProfile.editedNumericVal != 0 ? true : false;\n skillProfile.source = \"skillProfiles\";\n\n skillProfile.editedNumericVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedNumericVal : lowerOption.numericVal;\n skillProfile.editedLabelVal = editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedLabelVal : lowerOption.labelVal;\n\n skillProfile.isExtraFramework = editedSkillProfile.isExtraFramework;\n skillProfile.extraFrameworkLevel = editedSkillProfile.extraFrameworkLevel;\n skillProfile.extraFrameworkLevelId = editedSkillProfile.extraFrameworkLevelId;\n\n editedProfiles.push(skillProfile);\n }\n } else {\n const skillProfile = {\n category: editedSkillProfile.category,\n subCategory: editedSkillProfile.subCategory,\n skill: editedSkillProfile.skill,\n skillCode: editedSkillProfile.skillCode,\n level: editedSkillProfile.level,\n //stringVal: editedSkillProfile.editedStringVal,\n //numericVal: editedSkillProfile.editedNumericVal,\n //labelVal: editedSkillProfile.editedLabelVal,\n editedStringVal: editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedStringVal : lowerOption.stringVal,\n editedNumericVal: editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedNumericVal : lowerOption.numericVal,\n editedLabelVal: editedSkillProfile && (editedSkillProfile.singleLevelSelectionChecked || editedSkillProfile.singleLevelSelectionChecked == null) ? editedSkillProfile.editedLabelVal : lowerOption.labelVal,\n edited: editedSkillProfile.editedNumericVal != 0 ? true : false,\n source: \"skillProfiles\",\n isExtraFramework: editedSkillProfile.isExtraFramework,\n extraFrameworkLevel: editedSkillProfile.extraFrameworkLevel,\n extraFrameworkLevelId: editedSkillProfile.extraFrameworkLevelId,\n };\n\n skillProfiles.push(skillProfile);\n editedProfiles.push(skillProfile);\n }\n }\n });\n\n this.props.handleEditProfileSkills(editedProfiles, editedSkillEvidence);\n\n this.setState({ editSkill: false, skillProfiles: [...skillProfiles] });\n } else if (badgeCertification) {\n let badgeRequest = this.state.badgeRequest;\n let requestCertificationEntries = badgeRequest.requestCertificationEntries ? [...badgeRequest.requestCertificationEntries] : [];\n\n requestCertificationEntries.forEach((requestCertificationEntry) => {\n requestCertificationEntry.edited = true;\n requestCertificationEntry.editedStringVal = requestCertificationEntry.storedStringVal;\n requestCertificationEntry.editedNumericVal = requestCertificationEntry.storedNumericVal;\n requestCertificationEntry.editedLabelVal = requestCertificationEntry.storedLabelVal;\n });\n\n this.setState(\n {\n badgeRequest,\n editSkill: false,\n },\n () => {\n setTimeout(() => {\n this.props.badgeRequestUpdated(badgeRequest);\n }, 100);\n }\n );\n } else {\n this.setState({ editSkill: false });\n }\n }\n\n handleSuggestUpdateLowerLevelProfile = (editedCategory, editedSubCategory, editedSkill) => {\n const { skillProfiles } = this.state;\n\n const skillCodeProfiles = skillProfiles ? [...skillProfiles.filter((x) => x.skillCode === editedSkill.skillsCode)] : [];\n let jobSkillProfiles = this.props.jobSkillProfiles ? this.props.jobSkillProfiles.filter((it) => it.skillCode == editedSkill.skillsCode) : [];\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n jobSkillProfile.isProvidedUpper = false;\n });\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n if (!editedCategory.isExtraFramework == true) {\n if (skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level).length == 0 && skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.stringVal != \"N\" && it.level > jobSkillProfile.level).length > 0) {\n jobSkillProfile.isProvidedUpper = true;\n }\n } else {\n if (skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level).length == 0 && skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level > jobSkillProfile.level && it.numericVal != 0).length > 0) {\n jobSkillProfile.isProvidedUpper = true;\n }\n }\n });\n\n this.setState({ openSuggestEditLowerLevelProfile: true, editedCategory, editedSubCategory, editedSkill });\n };\n\n toggleModalSuggestEditLowerLevelProfileConfirmation = () => {\n const openSuggestEditLowerLevelProfile = this.state.openSuggestEditLowerLevelProfile;\n\n this.setState({ openSuggestEditLowerLevelProfile: !openSuggestEditLowerLevelProfile });\n };\n\n renderModalSuggestEditLowerLevelProfileConfirmation = () => {\n const { openSuggestEditLowerLevelProfile, editedCategory, editedSubCategory, editedSkill, skillProfiles } = this.state;\n\n const skillCodeProfiles = skillProfiles && editedSkill ? [...skillProfiles.filter((x) => x.skillCode === editedSkill.skillsCode)] : [];\n let jobSkillProfiles = this.props.jobSkillProfiles && editedSkill ? this.props.jobSkillProfiles.filter((it) => it.skillCode == editedSkill.skillsCode) : [];\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n jobSkillProfile.isProvidedUpper = false;\n });\n\n if (editedSkill) {\n jobSkillProfiles.forEach((jobSkillProfile) => {\n if (!editedCategory.isExtraFramework == true) {\n if (\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.stringVal != \"N\" && it.level == jobSkillProfile.level).length == 0 &&\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.stringVal != \"N\" && it.level > jobSkillProfile.level).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n } else {\n if (\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.numericVal != 0 && it.level == jobSkillProfile.level).length == 0 &&\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level > jobSkillProfile.level && it.numericVal != 0).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n }\n });\n }\n\n const suggestedSkills =\n jobSkillProfiles.filter((it) => it.isProvidedUpper).length > 0\n ? jobSkillProfiles\n .filter((it) => it.isProvidedUpper)\n .map((it) => {\n return `${it.skillCode}${it.level}`;\n })\n .join(\", \")\n : \"\";\n\n return (\n \n \n
\n
\n \n \n \n {this.props.managedPeople ? `${this.props.managedPeople.name} has gaps against required skills at lower levels as follows` : \"You have gaps against required skills at lower levels as follows:\"}\n
\n {suggestedSkills}\n
\n {this.props.managedPeople ? \"Do you want to propose profile changes for these skill levels?\" : \"Do you want to add these skill levels to your profile?\"}\n \n \n
\n
\n
\n
\n \n {\n this.handleAcceptSuggestEditLowerLevelProfile();\n }}\n >\n \n \n \n \n
\n );\n };\n\n handleAcceptSuggestEditLowerLevelProfile = () => {\n const { editedCategory, editedSubCategory, editedSkill, skillValueOptions, editExtraFrameworkSkill } = this.state;\n let skillProfiles = this.state.skillProfiles;\n const { extraFrameworkCapabilities } = this.props;\n\n let topOption = null;\n if (editedCategory.isExtraFramework) {\n const leastOption = extraFrameworkCapabilities ? [...extraFrameworkCapabilities].sort((b, a) => a.weight - b.weight)[0] : null;\n topOption = {\n numericVal: leastOption.weight,\n stringVal: leastOption.capability,\n labelVal: null,\n isExtraFramework: editedCategory.isExtraFramework,\n };\n } else {\n const leastOption = skillValueOptions ? [...skillValueOptions].sort((b, a) => a.numericVal - b.numericVal)[0] : null;\n topOption = {\n numericVal: leastOption.numericVal,\n stringVal: leastOption.value,\n labelVal: leastOption.labelVal,\n isExtraFramework: editedCategory.isExtraFramework,\n };\n }\n\n const skillCodeProfiles = skillProfiles && editedSkill ? [...skillProfiles.filter((x) => x.skillCode === editedSkill.skillsCode)] : [];\n let jobSkillProfiles = this.props.jobSkillProfiles && editedSkill ? this.props.jobSkillProfiles.filter((it) => it.skillCode == editedSkill.skillsCode) : [];\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n jobSkillProfile.isProvidedUpper = false;\n });\n\n if (editedSkill) {\n jobSkillProfiles.forEach((jobSkillProfile) => {\n if (!editedCategory.isExtraFramework == true) {\n if (\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.stringVal != \"N\" && it.level == jobSkillProfile.level).length == 0 &&\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.stringVal != \"N\" && it.level > jobSkillProfile.level).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n } else {\n if (\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.numericVal != 0 && it.level == jobSkillProfile.level).length == 0 &&\n skillCodeProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level > jobSkillProfile.level && it.numericVal != 0).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n }\n });\n }\n\n let editedProfiles = [];\n jobSkillProfiles\n .filter((it) => it.isProvidedUpper)\n .forEach((jobSkillProfile) => {\n const skillLevel = editedSkill ? editedSkill.levels.find((it) => it.level == jobSkillProfile.level) : null;\n\n if (skillProfiles.find((skillProfile) => skillProfile.skillCode == jobSkillProfile.skillCode && skillProfile.level == jobSkillProfile.level)) {\n let skillProfile = skillProfiles.find((skillProfile) => skillProfile.skillCode == jobSkillProfile.skillCode && skillProfile.level == jobSkillProfile.level);\n if (skillProfile) {\n skillProfile.editedStringVal = topOption.stringVal;\n skillProfile.edited = true;\n skillProfile.source = \"skillProfiles\";\n\n skillProfile.editedNumericVal = topOption.numericVal;\n skillProfile.editedLabelVal = topOption.labelVal;\n\n skillProfile.isExtraFramework = editedCategory.isExtraFramework;\n skillProfile.extraFrameworkLevel = skillLevel ? skillLevel.extraFrameworkLevel : null;\n skillProfile.extraFrameworkLevelId = skillLevel ? skillLevel.extraFrameworkLevelId : null;\n\n editedProfiles.push(skillProfile);\n }\n } else {\n const skillProfile = {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n skillCode: jobSkillProfile.skillCode,\n level: jobSkillProfile.level,\n editedStringVal: topOption.stringVal,\n editedNumericVal: topOption.numericVal,\n editedLabelVal: topOption.labelVal,\n edited: true,\n source: \"skillProfiles\",\n isExtraFramework: editedCategory.isExtraFramework,\n extraFrameworkLevel: skillLevel ? skillLevel.extraFrameworkLevel : null,\n extraFrameworkLevelId: skillLevel ? skillLevel.extraFrameworkLevelId : null,\n };\n\n skillProfiles.push(skillProfile);\n editedProfiles.push(skillProfile);\n }\n });\n\n if (this.props.managedPeople) {\n this.props.handleManagerSuggestEditLowerLevelProfile(editedProfiles);\n } else {\n this.props.handleSuggestEditLowerLevelProfile(editedProfiles);\n }\n\n this.setState({ openSuggestEditLowerLevelProfile: false, skillProfiles: [...skillProfiles] });\n };\n\n elementSkill(skillsCode, level, levels, subCategorySkillProfiles, catColour, colour, skillColour, category, subCategory, showProposedAction, proposeSkills, showSuggestedUpdate, suggestedSkills) {\n const { badgeRequest } = this.state;\n const { showEditSkill, isShowJobProfile, badgeCertification, showEditCertify, evidences } = this.props;\n\n const skillBadgeRequest =\n badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0\n ? badgeRequest.requestCertificationEntries.find((it) => it.category == category.name && it.subCategory == subCategory.name && it.skillsCode == skillsCode && it.level == level)\n : null;\n\n const colFully = `${colour}`;\n const colLargely = `repeating-linear-gradient(45deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n const colPrevious = `repeating-linear-gradient(${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n const colUnmatched = `${skillColour}`;\n\n let colProposed = `#f2aa84`;\n let proposedCapabilityNumericVal = 0;\n const colProposedCompetent = `#f2aa84`;\n const colProposedProficient = `repeating-linear-gradient(45deg, #f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n const colProposedKnowledge = `repeating-linear-gradient(#f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n\n if (showProposedAction && proposeSkills && proposeSkills.find((s) => s.code == skillsCode && s.level == level)) {\n if (proposeSkills.find((s) => s.code == skillsCode && s.level == level).capability == \"Competent\") {\n colProposed = colProposedCompetent;\n proposedCapabilityNumericVal = 1;\n } else if (proposeSkills.find((s) => s.code == skillsCode && s.level == level).capability == \"Proficient\") {\n colProposed = colProposedProficient;\n proposedCapabilityNumericVal = 0.5;\n } else if (proposeSkills.find((s) => s.code == skillsCode && s.level == level).capability == \"Knowledge\") {\n colProposed = colProposedKnowledge;\n proposedCapabilityNumericVal = 0.25;\n }\n }\n\n let colSuggested = `#f2aa84`;\n const colSuggestedCompetent = `#f2aa84`;\n const colSuggestedProficient = `repeating-linear-gradient(45deg, #f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n const colSuggestedKnowledge = `repeating-linear-gradient(#f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n\n if (showSuggestedUpdate && suggestedSkills && suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level)) {\n if (suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level).stringVal == \"M\") {\n colSuggested = colSuggestedCompetent;\n } else if (suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level).stringVal == \"P\") {\n colSuggested = colSuggestedProficient;\n } else if (suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level).stringVal == \"NA\") {\n colSuggested = colSuggestedKnowledge;\n }\n }\n\n const colDesirable = `repeating-linear-gradient(90deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n\n const { highlightGap, selectedJobMatchType } = this.props;\n\n const jobSkillProfiles = this.props.jobSkillProfiles;\n\n const jobSkillProfile = jobSkillProfiles && jobSkillProfiles.find((it) => it.skillCode == skillsCode && it.level == level);\n\n const skillLevel = levels.filter((x) => x.level == level)[0];\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillsCode} ${level} Description`, skillLevelDescription);\n\n let openCommentEditor = false;\n let openCommentAllowEdit = false;\n\n if (!badgeCertification && subCategorySkillProfiles.filter((x) => x.level == level).length > 0) {\n const skillProfile = subCategorySkillProfiles.find((x) => x.level == level);\n const skillVal = skillProfile && (skillProfile.editedStringVal ? skillProfile.editedStringVal : skillProfile.stringVal);\n const skillNumericVal = skillProfile && (skillProfile.editedNumericVal ? skillProfile.editedNumericVal : skillProfile.numericVal);\n\n openCommentEditor = false;\n openCommentAllowEdit = false;\n\n if (!isShowJobProfile && !showEditSkill && !showEditCertify && ((skillProfile.edited && skillProfile.editedNumericVal != 0) || (!skillProfile.edited && skillProfile.numericVal != 0))) {\n if (\n (this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) ||\n (this.props.selectedprofileType.value == \"Self Assessed\" && this.props.managedPeople && skillProfile.comment) ||\n ((this.props.managedPeople || skillProfile.comment) && this.props.selectedprofileType.value == \"Endorsed\")\n ) {\n openCommentEditor = true;\n }\n\n if ((this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) || (this.props.managedPeople && this.props.selectedprofileType.value == \"Endorsed\")) {\n openCommentAllowEdit = true;\n }\n }\n\n var skillLevelReadOnlyEvidences = evidences\n ? evidences.filter((it) => !it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == level) && (it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelEditableEvidences = evidences\n ? evidences.filter((it) => !it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == level) && !(it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelConfirmedEvidences = evidences ? evidences.filter((it) => it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == level)) : [];\n\n const numberEvidenceTypes = (skillLevelReadOnlyEvidences.length > 0 ? 1 : 0) + (skillLevelEditableEvidences.length > 0 ? 1 : 0) + (skillLevelConfirmedEvidences.length > 0 ? 1 : 0);\n const evidenceAvailable = skillLevelReadOnlyEvidences.length > 0 || skillLevelEditableEvidences.length > 0 || skillLevelConfirmedEvidences.length > 0;\n\n return (\n \n s.type == \"Skill\" && s.code == skillsCode && s.level == level) && proposedCapabilityNumericVal > skillNumericVal\n ? colProposed\n : showSuggestedUpdate && suggestedSkills && suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level) && suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level).numericVal > skillNumericVal\n ? colSuggested\n : skillVal === \"M\"\n ? colFully\n : isShowJobProfile\n ? colDesirable\n : skillVal === \"P\"\n ? colLargely\n : skillVal === \"NA\"\n ? colPrevious\n : colUnmatched,\n borderRight: \"1px solid #FFFFFF\",\n borderBottom: `1px solid #dee2e6`,\n padding: \"0px\",\n }}\n >\n
\n \n openCommentEditor &&\n this.openEditSkillComment(\n {\n id: category.id,\n name: this.contentTranslator(this.props.contentTranslations, \"Categories\", category.name, category.name),\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: this.contentTranslator(this.props.contentTranslations, \"SubCategories\", subCategory.name, subCategory.name),\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillCode} ${skillProfile.level}`, skillLevel.description),\n skillProfile,\n openCommentAllowEdit\n )\n }\n >\n {skillProfile.comment && ((skillProfile.edited && skillProfile.editedNumericVal != 0) || (!skillProfile.edited && skillProfile.numericVal != 0)) ? : \" \"}\n
\n {evidenceAvailable && (\n
\n \n {skillLevelEditableEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelEditableEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelEditableEvidences[0]) : this.openEvidenceListModal(skillsCode, level, \"OPENED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelReadOnlyEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelReadOnlyEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelReadOnlyEvidences[0]) : this.openEvidenceListModal(skillsCode, level, \"PROTECTED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelConfirmedEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelConfirmedEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelConfirmedEvidences[0]) : this.openEvidenceListModal(skillsCode, level, \"CONFIRMED\"))}\n />\n \n \n \n \n )}\n \n
\n )}\n \n \n \n {highlightGap && (\n \n \n \n \n )}\n
\n );\n } else if (badgeCertification && skillBadgeRequest) {\n const skillProfile = skillBadgeRequest;\n const skillVal = skillBadgeRequest.editedStringVal ? skillBadgeRequest.editedStringVal : skillBadgeRequest.stringVal;\n\n openCommentEditor = false;\n openCommentAllowEdit = false;\n\n return (\n \n \n openCommentEditor &&\n this.openEditSkillComment(\n {\n id: category.id,\n name: this.contentTranslator(this.props.contentTranslations, \"Categories\", category.name, category.name),\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: this.contentTranslator(this.props.contentTranslations, \"SubCategories\", subCategory.name, subCategory.name),\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillsCode} ${skillProfile.level}`, skillLevel.description),\n skillProfile,\n openCommentAllowEdit\n )\n }\n >\n \n {highlightGap && (\n \n \n \n \n )}\n \n );\n } else {\n return (\n \n s.code == skillsCode && s.level == level)\n ? colProposed\n : showSuggestedUpdate && suggestedSkills && suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == level)\n ? colSuggested\n : colUnmatched\n : \"#FFFFFF\",\n borderRight: \"1px solid #FFFFFF\",\n borderBottom: `1px solid #dee2e6`,\n }}\n >\n {skillLevel && (\n \n )}\n {highlightGap &&\n (jobSkillProfile && skillLevel ? (\n \n \n {skillLevel && (\n \n )}\n \n ) : (\n \n \n {skillLevel && (\n \n )}\n \n ))}\n \n );\n }\n }\n\n elementSkillExtraFramework(skillsCode, skillLevelSelection, extraFrameworkLevelId, levels, subCategorySkillProfiles, catColour, colour, skillColour, category, subCategory, showProposedAction, proposeSkills, showSuggestedUpdate, suggestedSkills) {\n const { badgeRequest } = this.state;\n const { showEditSkill, isShowJobProfile, extraFrameworkCapabilities, badgeCertification, showEditCertify, evidences } = this.props;\n\n const colFully = `${colour}`;\n const colLargely = `repeating-linear-gradient(45deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n const colPrevious = `repeating-linear-gradient(${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n const colUnmatched = `${skillColour}`;\n\n const colDesirable = `repeating-linear-gradient(90deg, ${colour}, ${colour} 5px, ${skillColour} 5px, ${skillColour} 10px)`;\n\n const { highlightGap, selectedJobMatchType } = this.props;\n\n const jobSkillProfiles = this.props.jobSkillProfiles;\n\n const jobSkillProfile = jobSkillProfiles && jobSkillProfiles.find((it) => it.skillCode == skillsCode && it.extraFrameworkLevelId == extraFrameworkLevelId);\n\n const skillLevel = levels.filter((x) => x.extraFrameworkLevelId == extraFrameworkLevelId)[0];\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillsCode} ${extraFrameworkLevelId} Description`, skillLevelDescription);\n\n const skillBadgeRequest =\n badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0\n ? badgeRequest.requestCertificationEntries.find((it) => it.category == category.name && it.subCategory == subCategory.name && it.skillsCode == skillsCode && it.level == (skillLevel != null ? skillLevel.level : null))\n : null;\n\n let openCommentEditor = false;\n let openCommentAllowEdit = false;\n\n let colProposed = `#f2aa84`;\n let proposedCapability = \"\";\n const colProposedCompetent = `#f2aa84`;\n const colProposedProficient = `repeating-linear-gradient(45deg, #f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n const colProposedKnowledge = `repeating-linear-gradient(#f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n\n if (showProposedAction) {\n showProposedAction = false;\n\n if (skillLevelSelection == \"Single\") {\n const extraFrameworkSkillProfiles = subCategorySkillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skillCode == skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.code == skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n let maxProposeSkill = null;\n if (extraFrameworkProposeSkills.length > 0) {\n maxProposeSkill = extraFrameworkProposeSkills.sort((a, b) => b.level - a.level)[0];\n }\n\n if (skillLevel && maxProposeSkill && maxProposeSkill.level == skillLevel.level && extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n showProposedAction = true;\n } else if (\n skillLevel &&\n maxProposeSkill &&\n maxProposeSkill.level == skillLevel.level &&\n extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0\n ) {\n // Have proposed skills with better capability\n showProposedAction = true;\n } else if (skillLevel && maxProposeSkill && maxProposeSkill.level == skillLevel.level && extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n showProposedAction = true;\n }\n\n if (showProposedAction && maxProposeSkill) {\n if (maxProposeSkill.capability == \"Competent\") {\n colProposed = colProposedCompetent;\n } else if (maxProposeSkill.capability == \"Proficient\") {\n colProposed = colProposedProficient;\n } else if (maxProposeSkill.capability == \"Knowledge\") {\n colProposed = colProposedKnowledge;\n }\n }\n } else {\n if (proposeSkills && skillLevel && proposeSkills.find((s) => s.code == skillsCode && s.level == skillLevel.level)) {\n showProposedAction = true;\n proposedCapability = proposeSkills.find((s) => s.code == skillsCode && s.level == skillLevel.level).capability;\n if (proposedCapability == \"Competent\") {\n colProposed = colProposedCompetent;\n } else if (proposedCapability == \"Proficient\") {\n colProposed = colProposedProficient;\n } else if (proposedCapability == \"Knowledge\") {\n colProposed = colProposedKnowledge;\n }\n }\n }\n }\n\n let colSuggested = `#f2aa84`;\n const colSuggestedCompetent = `#f2aa84`;\n const colSuggestedProficient = `repeating-linear-gradient(45deg, #f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n const colSuggestedKnowledge = `repeating-linear-gradient(#f2aa84, #f2aa84 5px, #ffffff 5px, #ffffff 10px)`;\n\n if (showSuggestedUpdate) {\n showSuggestedUpdate = false;\n\n if (skillLevelSelection == \"Single\") {\n const extraFrameworkSkillProfiles = subCategorySkillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skillCode == skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skillCode == skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n let maxSuggestedSkill = null;\n if (extraFrameworkSuggestedSkills.length > 0) {\n maxSuggestedSkill = extraFrameworkSuggestedSkills.sort((a, b) => b.level - a.level)[0];\n }\n\n if (skillLevel && maxSuggestedSkill && maxSuggestedSkill.level == skillLevel.level && extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have suggested skills\n showSuggestedUpdate = true;\n } else if (\n skillLevel &&\n maxSuggestedSkill &&\n maxSuggestedSkill.level == skillLevel.level &&\n extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0\n ) {\n // Have suggested skills with better capability\n showSuggestedUpdate = true;\n } else if (skillLevel && maxSuggestedSkill && maxSuggestedSkill.level == skillLevel.level && extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode)).length > 0) {\n // Have suggested skills which not exist in profile skills\n showSuggestedUpdate = true;\n }\n\n if (showSuggestedUpdate && maxSuggestedSkill) {\n const skillVal = maxSuggestedSkill && (maxSuggestedSkill.editedStringVal ? maxSuggestedSkill.editedStringVal : maxSuggestedSkill.stringVal);\n\n if (extraFrameworkCapabilities && extraFrameworkCapabilities.length > 0) {\n if (extraFrameworkCapabilities.find((it) => it.capability == skillVal)) {\n extraFrameworkCapability = extraFrameworkCapabilities.find((it) => it.capability == skillVal);\n const index = extraFrameworkCapabilities.indexOf(extraFrameworkCapability);\n\n if (index == 1) {\n colSuggested = colSuggestedCompetent;\n } else if (index == 2) {\n colSuggested = colSuggestedProficient;\n } else if (index == 3) {\n colSuggested = colSuggestedKnowledge;\n }\n }\n }\n }\n } else {\n if (suggestedSkills && skillLevel && suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == skillLevel.level)) {\n showSuggestedUpdate = true;\n const suggestedSkill = suggestedSkills.find((s) => s.skillCode == skillsCode && s.level == skillLevel.level);\n const skillVal = suggestedSkill && (suggestedSkill.editedStringVal ? suggestedSkill.editedStringVal : suggestedSkill.stringVal);\n\n if (extraFrameworkCapabilities && extraFrameworkCapabilities.length > 0) {\n if (extraFrameworkCapabilities.find((it) => it.capability == skillVal)) {\n extraFrameworkCapability = extraFrameworkCapabilities.find((it) => it.capability == skillVal);\n const index = extraFrameworkCapabilities.indexOf(extraFrameworkCapability);\n\n if (index == 1) {\n colSuggested = colSuggestedCompetent;\n } else if (index == 2) {\n colSuggested = colSuggestedProficient;\n } else if (index == 3) {\n colSuggested = colSuggestedKnowledge;\n }\n }\n }\n }\n }\n }\n\n if (!badgeCertification && subCategorySkillProfiles.filter((x) => x.extraFrameworkLevelId == extraFrameworkLevelId).length > 0) {\n const skillProfile = subCategorySkillProfiles.find((x) => x.extraFrameworkLevelId == extraFrameworkLevelId);\n const skillVal = skillProfile && (skillProfile.editedStringVal ? skillProfile.editedStringVal : skillProfile.stringVal);\n\n let colBackground = colUnmatched;\n let extraFrameworkCapability;\n\n if (!isShowJobProfile) {\n if (extraFrameworkCapabilities && extraFrameworkCapabilities.length > 0) {\n if (extraFrameworkCapabilities.find((it) => it.capability == skillVal)) {\n extraFrameworkCapability = extraFrameworkCapabilities.find((it) => it.capability == skillVal);\n const index = extraFrameworkCapabilities.indexOf(extraFrameworkCapability);\n\n if (index == 0) {\n colBackground = colUnmatched;\n } else if (index == 1) {\n colBackground = colFully;\n } else if (index == 2) {\n colBackground = colLargely;\n } else if (index == 3) {\n colBackground = colPrevious;\n }\n }\n }\n } else {\n if (skillVal == \"M\") {\n colBackground = colFully;\n } else {\n colBackground = colDesirable;\n }\n }\n\n openCommentEditor = false;\n openCommentAllowEdit = false;\n\n if (!isShowJobProfile && !showEditSkill && !showEditCertify && ((skillProfile.edited && skillProfile.editedNumericVal != 0) || (!skillProfile.edited && skillProfile.numericVal != 0))) {\n if (\n (this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) ||\n (this.props.selectedprofileType.value == \"Self Assessed\" && this.props.managedPeople && skillProfile.comment) ||\n ((this.props.managedPeople || skillProfile.comment) && this.props.selectedprofileType.value == \"Endorsed\")\n ) {\n openCommentEditor = true;\n }\n\n if ((this.props.selectedprofileType.value == \"Self Assessed\" && !this.props.managedPeople) || (this.props.managedPeople && this.props.selectedprofileType.value == \"Endorsed\")) {\n openCommentAllowEdit = true;\n }\n }\n\n var skillLevelReadOnlyEvidences = evidences\n ? evidences.filter((it) => !it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == skillLevel.level) && (it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelEditableEvidences = evidences\n ? evidences.filter((it) => !it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == skillLevel.level) && !(it.isDigitalBadge || it.isNonEditable || (it.isEditableToCreatorOnly && it.createdById != this.props.personId)))\n : [];\n var skillLevelConfirmedEvidences = evidences ? evidences.filter((it) => it.aiReviewed && it.skillLevels && it.skillLevels.find((l) => l.skillCode == skillsCode && l.level == skillLevel.level)) : [];\n\n const numberEvidenceTypes = (skillLevelReadOnlyEvidences.length > 0 ? 1 : 0) + (skillLevelEditableEvidences.length > 0 ? 1 : 0) + (skillLevelConfirmedEvidences.length > 0 ? 1 : 0);\n const evidenceAvailable = skillLevelReadOnlyEvidences.length > 0 || skillLevelEditableEvidences.length > 0 || skillLevelConfirmedEvidences.length > 0;\n\n return (\n \n \n
\n \n openCommentEditor &&\n this.openEditSkillComment(\n {\n id: category.id,\n name: this.contentTranslator(this.props.contentTranslations, \"Categories\", category.name, category.name),\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: this.contentTranslator(this.props.contentTranslations, \"SubCategories\", subCategory.name, subCategory.name),\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillCode} ${skillProfile.level}`, skillLevel.description),\n skillProfile,\n openCommentAllowEdit\n )\n }\n >\n {skillProfile.comment && ((skillProfile.edited && skillProfile.editedNumericVal != 0) || (!skillProfile.edited && skillProfile.numericVal != 0)) && }\n
\n {evidenceAvailable && (\n
\n
\n \n {skillLevelEditableEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelEditableEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelEditableEvidences[0]) : this.openEvidenceListModal(skillsCode, skillLevel.level, \"OPENED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelReadOnlyEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelReadOnlyEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelReadOnlyEvidences[0]) : this.openEvidenceListModal(skillsCode, skillLevel.level, \"PROTECTED\"))}\n />\n \n \n \n \n )}\n \n \n {skillLevelConfirmedEvidences.length > 0 && (\n \n !showEditSkill && (skillLevelConfirmedEvidences.length == 1 ? this.openEvidenceDetailModal(skillLevelConfirmedEvidences[0]) : this.openEvidenceListModal(skillsCode, skillLevel.level, \"CONFIRMED\"))}\n />\n \n \n \n \n )}\n \n
\n
\n )}\n \n \n \n {highlightGap && (\n \n \n \n \n )}\n
\n );\n } else if (badgeCertification && skillBadgeRequest) {\n const skillProfile = skillBadgeRequest;\n const skillVal = skillBadgeRequest.editedStringVal ? skillBadgeRequest.editedStringVal : skillBadgeRequest.stringVal;\n\n openCommentEditor = false;\n openCommentAllowEdit = false;\n\n return (\n \n \n openCommentEditor &&\n this.openEditSkillComment(\n {\n id: category.id,\n name: this.contentTranslator(this.props.contentTranslations, \"Categories\", category.name, category.name),\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: this.contentTranslator(this.props.contentTranslations, \"SubCategories\", subCategory.name, subCategory.name),\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${skillProfile.skillsCode} ${skillProfile.level}`, skillLevel.description),\n skillProfile,\n openCommentAllowEdit\n )\n }\n >\n \n {highlightGap && (\n \n \n \n \n )}\n \n );\n } else {\n return (\n \n \n {skillLevel && (\n \n )}\n {highlightGap &&\n (jobSkillProfile && skillLevel ? (\n \n \n {skillLevel && (\n \n )}\n \n ) : (\n \n \n {skillLevel && (\n \n )}\n \n ))}\n \n );\n }\n }\n\n openEvidenceListModal = (skillsCode, level, filterMode) => {\n this.setState({ showDialogEvidenceListTs: new Date(), evidenceFilterSkillsCode: skillsCode, evidenceFilterLevel: level, evidenceFilterMode: filterMode });\n };\n\n openEvidenceDetailModal = (evidence, editMode) => {\n const { containerConfig } = this.props;\n\n if (editMode == null) {\n const fileName = evidence.fileName;\n let evidenceOption = \"Upload File\";\n\n if (fileName && fileName != \"\") {\n evidenceOption = \"Upload File\";\n } else if (evidence.link && evidence.link != \"\") {\n evidenceOption = \"Specify Link\";\n } else if (evidence.notes && evidence.notes != \"\" && !evidence.notes.startsWith(\"Evidence created from an Action\")) {\n evidenceOption = \"Description in the Notes\";\n } else if (evidence.evidenceType == \"Text\") {\n evidenceOption = \"Description in the Notes\";\n } else {\n evidenceOption = \"Specify Link\";\n }\n\n if (\n !(evidence.isDigitalBadge || evidence.isNonEditable || (evidence.isEditableToCreatorOnly && evidence.createdById != this.props.personId)) &&\n containerConfig &&\n containerConfig.enableAIEvidenceReviewer &&\n (evidence.lorLevels ? evidence.lorLevels : []).length + (evidence.skillLevels ? evidence.skillLevels : []).length == 1 &&\n (evidenceOption == \"Upload File\" || evidenceOption == \"Description in the Notes\")\n ) {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode: false });\n } else {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode: true });\n }\n } else {\n this.setState({ showDialogEvidenceDetailTs: new Date(), editedEvidence: evidence, editMode });\n }\n };\n\n renderModalEditSkill = () => {\n const { editedCategory, editedSubCategory, editedSkill, editedSkillProfiles, skillValueOptions, editExtraFrameworkSkill, badgeRequest, editedSkillEvidence } = this.state;\n const { extraFrameworkCapabilities, badgeCertification, maxNumberOfBadgeRequestSkill, editedSkillEvidences, selectedprofileType, containerConfig } = this.props;\n\n let capabilityValueOptions = [];\n\n if (editExtraFrameworkSkill) {\n capabilityValueOptions = extraFrameworkCapabilities.map((extraFrameworkCapability) => {\n return {\n value: extraFrameworkCapability.capability,\n numericVal: extraFrameworkCapability.weight,\n labelVal: extraFrameworkCapability.capability,\n label: extraFrameworkCapability.capability,\n };\n });\n }\n\n let maxNumberExceeded = false;\n let numberBadgeRequested = 0;\n\n if (badgeCertification) {\n let requestCertificationEntries = badgeRequest && badgeRequest.requestCertificationEntries ? [...badgeRequest.requestCertificationEntries] : [];\n requestCertificationEntries.forEach((requestCertificationEntry) => {\n let stringVal = requestCertificationEntry.storedStringVal ? requestCertificationEntry.storedStringVal : requestCertificationEntry.editedStringVal ? requestCertificationEntry.editedStringVal : requestCertificationEntry.stringVal ? requestCertificationEntry.stringVal : \"N\";\n\n if (stringVal != \"N\") {\n numberBadgeRequested += 1;\n }\n });\n\n maxNumberExceeded = numberBadgeRequested >= maxNumberOfBadgeRequestSkill;\n }\n\n const skillProfilesRequireEvidence =\n selectedprofileType.value == \"Self Assessed\" && editedSkillProfiles && editedSkillProfiles.length > 0\n ? editedSkillProfiles.filter((it) => (it.numericVal && it.editedNumericVal && it.editedNumericVal > it.numericVal && it.editedNumericVal >= 0.5) || (!it.numericVal && it.editedNumericVal && it.editedNumericVal >= 0.5))\n : [];\n const skillProfilesMissingEvidence = selectedprofileType.value == \"Self Assessed\" && editedSkillEvidences ? skillProfilesRequireEvidence.filter((p) => !editedSkillEvidences.find((e) => e.skillLevels.find((el) => p.skillCode == el.skillCode && p.level == el.level))) : [];\n const showEvidence = containerConfig && containerConfig.autoPromptEvidence && selectedprofileType.value == \"Self Assessed\" && skillProfilesMissingEvidence.length > 0;\n const saveButtonDisable =\n containerConfig && containerConfig.autoPromptEvidence && selectedprofileType.value == \"Self Assessed\"\n ? skillProfilesRequireEvidence.length == 0 || (skillProfilesRequireEvidence.length > 0 && editedSkillEvidence) || (skillProfilesRequireEvidence.length > 0 && editedSkillEvidences && editedSkillEvidences.length > 0 && skillProfilesMissingEvidence.length == 0)\n ? false\n : true\n : false;\n\n if (this.state.editSkill) {\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {editedSkill.levels.map((level, index) => {\n let skill = null;\n\n if (!badgeCertification) {\n skill = editedSkillProfiles.find((it) => it.skillCode == editedSkill.skillsCode && it.level == level.level);\n } else {\n skill = badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0 ? badgeRequest.requestCertificationEntries.find((it) => it.skillsCode == editedSkill.skillsCode && it.level == level.level) : null;\n }\n\n const singleLevelSelectionChecked = editedSkill.levelSelection && editedSkill.levelSelection == \"Single\" ? (skill && skill.singleLevelSelectionChecked ? true : false) : true;\n\n return (\n \n \n \n {editedSkill.levelSelection && editedSkill.levelSelection == \"Single\" && (\n \n \n \n )}\n \n \n );\n })}\n \n
\n \n
\n \n
\n \n
\n \n
\n {level.level}\n \n \n \n \n this.handleRadioChange()} onClick={() => this.handleRadioSingleSelectionClick(level.level)} />\n \n \n \n {editExtraFrameworkSkill ? (\n it.numericVal == (skill ? (skill.editedNumericVal != undefined ? skill.editedNumericVal : skill.numericVal) : 0))}\n menuPlacement={index == editedSkill.levels.length - 1 ? \"top\" : \"auto\"}\n onChange={(value) =>\n this.handleChangeSkillLevel(\n skill\n ? {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n id: skill.id,\n skillsCode: badgeCertification ? skill.skillsCode : skill.skillCode,\n skillLevel: skill.level,\n isExtraFramework: true,\n skillExtraFrameworkLevel: skill.extraFrameworkLevel,\n skillExtraFrameworkLevelId: skill.extraFrameworkLevelId,\n value: value.value,\n labelVal: value.labelVal,\n numericVal: value.numericVal,\n }\n : {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n skillsCode: editedSkill.skillsCode,\n skillLevel: level.level,\n isExtraFramework: true,\n skillExtraFrameworkLevel: level.extraFrameworkLevel,\n skillExtraFrameworkLevelId: level.extraFrameworkLevelId,\n value: value.value,\n labelVal: value.labelVal,\n numericVal: value.numericVal,\n }\n )\n }\n options={capabilityValueOptions}\n isDisabled={!singleLevelSelectionChecked || (maxNumberExceeded && (skill ? (skill.editedNumericVal != undefined ? skill.editedNumericVal : skill.numericVal) : 0) == 0)}\n />\n ) : (\n it.value == (skill ? (skill.storedStringVal ? skill.storedStringVal : skill.editedStringVal ? skill.editedStringVal : skill.stringVal ? skill.stringVal : \"N\") : \"N\"))}\n menuPlacement={index == editedSkill.levels.length - 1 ? \"top\" : \"auto\"}\n onChange={(value) =>\n this.handleChangeSkillLevel(\n skill\n ? {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n id: skill.id,\n skillsCode: badgeCertification ? skill.skillsCode : skill.skillCode,\n skillLevel: skill.level,\n value: value.value,\n labelVal: value.labelVal,\n numericVal: value.numericVal,\n }\n : {\n category: editedCategory.name,\n subCategory: editedSubCategory.name,\n skill: editedSkill.name,\n skillsCode: editedSkill.skillsCode,\n skillLevel: level.level,\n value: value.value,\n labelVal: value.labelVal,\n numericVal: value.numericVal,\n }\n )\n }\n options={badgeCertification ? skillValueOptions.filter((it) => it.value != \"NA\") : skillValueOptions}\n isDisabled={!singleLevelSelectionChecked || (maxNumberExceeded && (skill ? (skill.storedStringVal ? skill.storedStringVal : skill.editedStringVal ? skill.editedStringVal : skill.stringVal ? skill.stringVal : \"N\") : \"N\") == \"N\")}\n />\n )}\n \n
\n
\n
\n
\n \n {showEvidence && (\n \n {\" \"}\n \n )}\n {\" \"}\n \n \n
\n );\n } else {\n return \"\";\n }\n };\n\n handleChangeSkillLevel(skill) {\n const { badgeCertification } = this.props;\n let badgeRequest = this.state.badgeRequest;\n let requestCertificationEntries = badgeRequest && badgeRequest.requestCertificationEntries ? [...badgeRequest.requestCertificationEntries] : [];\n\n let editedSkillProfiles = this.state.editedSkillProfiles;\n let changedSkill = null;\n\n if (!badgeCertification) {\n if (skill.id) {\n changedSkill = editedSkillProfiles.find((it) => it.id == skill.id);\n if (changedSkill) {\n changedSkill.editedStringVal = skill.value;\n changedSkill.editedNumericVal = skill.numericVal;\n }\n } else {\n changedSkill = editedSkillProfiles.find((it) => it.skillCode == skill.skillsCode && it.level == skill.skillLevel);\n if (changedSkill) {\n changedSkill.editedStringVal = skill.value;\n changedSkill.editedNumericVal = skill.numericVal;\n } else {\n const addedSkill = {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillCode: skill.skillsCode,\n level: skill.skillLevel,\n editedStringVal: skill.value,\n editedLabelVal: skill.labelVal,\n editedNumericVal: skill.numericVal,\n isExtraFramework: skill.isExtraFramework ? skill.isExtraFramework : false,\n extraFrameworkLevel: skill.skillExtraFrameworkLevel,\n extraFrameworkLevelId: skill.skillExtraFrameworkLevelId,\n };\n\n editedSkillProfiles.push(addedSkill);\n }\n }\n\n this.setState({ editedSkillProfiles });\n } else {\n if (skill.id) {\n changedSkill = requestCertificationEntries.find((it) => it.id == skill.id);\n if (badgeRequest) {\n changedSkill.storedStringVal = skill.value;\n changedSkill.storedNumericVal = skill.numericVal;\n }\n } else {\n changedSkill = requestCertificationEntries.find((it) => it.skillsCode == skill.skillsCode && it.level == skill.skillLevel);\n if (changedSkill) {\n changedSkill.storedStringVal = skill.value;\n changedSkill.storedNumericVal = skill.numericVal;\n } else {\n const addedSkill = {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillsCode: skill.skillsCode,\n level: skill.skillLevel,\n storedStringVal: skill.value,\n storedLabelVal: skill.labelVal,\n storedNumericVal: skill.numericVal,\n isExtraFramework: skill.isExtraFramework ? skill.isExtraFramework : false,\n extraFrameworkLevel: skill.skillExtraFrameworkLevel,\n extraFrameworkLevelId: skill.skillExtraFrameworkLevelId,\n };\n\n requestCertificationEntries.push(addedSkill);\n }\n }\n badgeRequest.requestCertificationEntries = [...requestCertificationEntries];\n this.setState({ badgeRequest });\n }\n }\n\n openEditSkillAttribute(editedCategory, editedSubCategory, editedSkill) {\n this.setState({ editAttribute: true, editedCategory, editedSubCategory, editedSkill });\n }\n\n togleEditSkillAttribute() {\n const { editAttribute } = this.state;\n this.setState({ editAttribute: !editAttribute });\n }\n\n updateSkillAttributes = (attributes) => {\n const account = this.state.account;\n\n if (account) {\n account.attributes = attributes;\n this.setState({ account, editAttribute: false });\n }\n };\n\n openEditSkillComment = (editedCategory, editedSubCategory, skillLevelDescription, skillProfile, allowEditComment) => {\n this.setState({ editComment: true, editedCategory, editedSubCategory, skillLevelDescription, editedSkill: skillProfile, allowEditComment });\n };\n\n togleEditSkillComment = () => {\n const { editComment } = this.state;\n this.setState({ editComment: !editComment });\n };\n\n updateSkillComment = () => {\n this.setState({ editComment: false, editedSkill: null });\n };\n\n openSfiaGuidance = (skill) => {\n this.setState({ showSfiaGuidance: true, editedSkill: skill });\n };\n\n togleOpenSfiaGuidance = () => {\n const { showSfiaGuidance } = this.state;\n this.setState({ showSfiaGuidance: !showSfiaGuidance });\n };\n\n renderModalSfiaGuidance = () => {\n const { language } = this.props;\n const { showSfiaGuidance, editedSkill } = this.state;\n\n const guidance = showSfiaGuidance && language && editedSkill && editedSkill.guidances && editedSkill.guidances.filter((it) => it.languageId == language.id).length > 0 ? editedSkill.guidances.filter((it) => it.languageId == language.id)[0] : null;\n\n if (showSfiaGuidance && language && guidance) {\n return (\n \n {`${this.contentTranslator(this.props.contentTranslations, \"Skills\", editedSkill.name, editedSkill.name)} ${editedSkill.skillsCode} ${this.contentTranslator(\n this.props.contentTranslations,\n \"SfiaAll\",\n \"Guidance Notes\",\n \"Guidance Notes\"\n )}`}\n \n
\n
\n \n \n \n \n \n {editedSkill.levels\n .filter((it) => it.guidances && it.guidances.length > 0)\n .map((level, index) => {\n const levelGuidance = level.guidances && level.guidances.filter((it) => it.languageId == language.id).length > 0 && level.guidances.filter((it) => it.languageId == language.id)[0];\n return (\n \n \n \n );\n })}\n \n
{parse(guidance.guidance)}
\n \n {level.level} :\n \n
\n {parse(levelGuidance.guidance)}\n
\n
\n
\n
\n
\n \n \n \n
\n );\n } else {\n return \"\";\n }\n };\n\n handleAddAction = (skill) => {\n this.setState({ openAddActionDialog: true, actionedSkill: skill });\n };\n\n handleCancelAddAction = () => {\n this.setState({ openAddActionDialog: false, actionedSkill: null });\n };\n\n handleActionPlanAdded = (addedAction) => {\n this.setState({ openAddActionDialog: false, actionedSkill: null });\n this.props.handleActionPlanAdded(addedAction);\n };\n\n renderModalAddAction = () => {\n const { selectedJobMatchType, actions, actionSkills } = this.props;\n const { actionedSkill, openAddActionDialog, jobLorProfiles, jobSkillProfiles, lorProfiles, skillProfiles } = this.state;\n\n let selectedDefaultSkills;\n\n if (actionedSkill && selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n if (jobSkillProfiles) {\n const gapJobSkillProfiles = jobSkillProfiles.filter((it) => it.skillCode == actionedSkill.skillsCode && !it.isFully);\n\n if (gapJobSkillProfiles.length > 0) {\n selectedDefaultSkills = [\n ...gapJobSkillProfiles.map((skill) => {\n return {\n skillName: skill.skill,\n skillCode: skill.skillCode,\n skillLevel: skill.level,\n skillType: \"Skill\",\n };\n }),\n ];\n }\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n const skillProfile = skillProfiles && skillProfiles.find((x) => x.skillCode == jobSkillProfile.skillCode && x.level == jobSkillProfile.level && (x.numericVal == 1 || x.stringVal == \"M\"));\n const plan = actions ? actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level)) : null;\n const gapJobSkillProfile = gapJobSkillProfiles.find((it) => it.skillCode == jobSkillProfile.skillCode && it.level == jobSkillProfile.level);\n\n if (!gapJobSkillProfile && (skillProfile || plan)) {\n jobSkillProfile.actioned = true;\n } else {\n jobSkillProfile.actioned = false;\n }\n });\n }\n\n if (jobLorProfiles) {\n jobLorProfiles.forEach((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions ? actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level)) : null;\n if (lorProfile || plan) {\n jobLorProfile.actioned = true;\n } else {\n jobLorProfile.actioned = false;\n }\n });\n }\n }\n\n let optionsJob = [];\n\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches ? jobMatches.find((it) => it.jobType === \"Current\") : null;\n const futureJob = jobMatches ? jobMatches.find((it) => it.jobType === \"Future\") : null;\n\n if (currentJob) {\n optionsJob.push({\n value: currentJob.jobType + \" - \" + currentJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", currentJob.jobType, currentJob.jobType) + \" - \" + currentJob.jobTitle,\n type: currentJob.jobType,\n id: currentJob.jobId,\n });\n }\n\n if (futureJob) {\n optionsJob.push({\n value: futureJob.jobType + \" - \" + futureJob.jobTitle,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", futureJob.jobType, futureJob.jobType) + \" - \" + futureJob.jobTitle,\n type: futureJob.jobType,\n id: futureJob.jobId,\n });\n }\n\n return (\n \n \n
\n \n
\n
\n
\n );\n };\n\n handleAddEvidence = (skill) => {\n this.setState({ openAddEvidenceDialog: true, actionedSkill: skill, pendingSaveEvidence: false });\n };\n\n handleAddPendingSaveEvidence = (skill) => {\n this.setState({ openAddEvidenceDialog: true, actionedSkill: skill, pendingSaveEvidence: true });\n };\n\n handleCancelAddEvidence = () => {\n this.setState({ openAddEvidenceDialog: false, actionedSkill: null });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.setState({ openAddEvidenceDialog: false, actionedSkill: null });\n this.props.handleEvidenceAdded(addedEvidence);\n };\n\n renderModalAddEvidence = () => {\n const { selectedJobMatchType, categories, editedSkillEvidences } = this.props;\n const { actionedSkill, openAddEvidenceDialog, lorProfiles, skillProfiles, jobSkillProfiles, pendingSaveEvidence, editedSkillProfiles } = this.state;\n\n let defaultSelectedSkills;\n\n if (pendingSaveEvidence) {\n const requiredEvidenceSkills =\n editedSkillProfiles && editedSkillProfiles.length > 0 ? editedSkillProfiles.filter((it) => (it.numericVal && it.editedNumericVal && it.editedNumericVal > it.numericVal && it.editedNumericVal >= 0.5) || (!it.numericVal && it.editedNumericVal && it.editedNumericVal >= 0.5)) : [];\n defaultSelectedSkills = requiredEvidenceSkills\n .filter((p) => !editedSkillEvidences.find((e) => e.skillLevels.find((el) => p.skillCode == el.skillCode && p.level == el.level)))\n .map((skill) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skill.skill && it.skillsCode == skill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skill.skill && it.skillsCode == skill.skillCode));\n const categorySkill = subCategory && subCategory.skills.find((it) => it.name == skill.skill && it.skillsCode == skill.skillCode);\n const skillLevel = categorySkill && categorySkill.levels.find((it) => it.level == skill.level);\n\n return {\n skillLevelId: skillLevel ? skillLevel.id : null,\n skill: skill.skill,\n skillCode: skill.skillCode,\n level: skill.level,\n };\n });\n } else {\n if (actionedSkill && selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n const gapJobSkillProfiles = jobSkillProfiles.filter((it) => it.skillCode == actionedSkill.skillsCode && !it.isFully);\n\n const actionedSkillProfiles = skillProfiles && skillProfiles.filter((x) => gapJobSkillProfiles.find((it) => it.skillCode == x.skillCode && it.level == x.level) && x.skillCode == actionedSkill.skillsCode && x.stringVal != \"N\");\n if (actionedSkillProfiles.length > 0) {\n defaultSelectedSkills = actionedSkillProfiles.map((skill) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == skill.skill && it.skillsCode == skill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == skill.skill && it.skillsCode == skill.skillCode));\n const categorySkill = subCategory && subCategory.skills.find((it) => it.name == skill.skill && it.skillsCode == skill.skillCode);\n const skillLevel = categorySkill && categorySkill.levels.find((it) => it.level == skill.level);\n\n return {\n skillLevelId: skillLevel ? skillLevel.id : null,\n skill: skill.skill,\n skillCode: skill.skillCode,\n level: skill.level,\n };\n });\n }\n }\n }\n\n return (\n \n \n
\n \n
\n
\n
\n );\n };\n\n handleEvidencePendingSave = (evidence) => {\n this.setState({ openAddEvidenceDialog: false, editedSkillEvidence: evidence });\n };\n\n render() {\n const { categories, skillProfiles, editedSkill, badgeRequest } = this.state;\n const {\n language,\n showAllSkill,\n showEditSkill,\n showHiddenSkills,\n showProposedAction,\n showSuggestedUpdate,\n highlightGap,\n loadingGap,\n isShowJobProfile,\n jobSkillAttributes,\n showExtraFramework,\n extraFrameworkLevels,\n extraFrameworkCapabilities,\n badgeCertification,\n showEditCertify,\n account,\n evidences,\n } = this.props;\n\n const proposeSkills = showProposedAction ? (account && account.updateProfileEvidenceProposalSkills ? account.updateProfileEvidenceProposalSkills.filter((it) => it.type == \"Skill\") : []) : [];\n const suggestedSkills = showSuggestedUpdate ? (account && account.updateProfileSuggestionSkills ? account.updateProfileSuggestionSkills : []) : [];\n\n return (\n
\n \n \n \n \n \n {editedSkill && this.renderModalEditSkill()}\n {this.renderModalSfiaGuidance()}\n {this.renderModalSuggestEditLowerLevelProfileConfirmation()}\n {this.renderModalAddAction()}\n {this.renderModalAddEvidence()}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n {categories\n .filter((it) => (showExtraFramework ? it.isExtraFramework && it.isExtraFramework == true : !it.isExtraFramework && it.isExtraFramework != true))\n .map((category, index) => {\n var emptyLevels = [];\n for (let i = extraFrameworkLevels.length + 1; i <= 7; i++) {\n emptyLevels.push(\n \n \n \n );\n }\n\n let categoryFound = false;\n\n if (!badgeCertification && !showProposedAction && !showSuggestedUpdate) {\n categoryFound = skillProfiles.filter((x) => x.category == category.name).length > 0 ? true : false;\n } else if (!badgeCertification && showProposedAction && !showSuggestedUpdate) {\n categoryFound = proposeSkills.filter((x) => x.type == \"Skill\" && x.category == category.name).length > 0 ? true : false;\n } else if (!badgeCertification && !showProposedAction && showSuggestedUpdate) {\n categoryFound = suggestedSkills.filter((x) => x.category == category.name).length > 0 ? true : false;\n } else {\n if (badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0 && badgeRequest.requestCertificationEntries.filter((x) => x.category == category.name).length > 0) {\n categoryFound = true;\n } else if (badgeRequest && badgeRequest.requestEntries && badgeRequest.requestEntries.length > 0 && badgeRequest.requestEntries.filter((x) => x.category == category.name).length > 0) {\n categoryFound = true;\n }\n }\n\n const categoryJobSkillProfiles = this.props.jobSkillProfiles ? this.props.jobSkillProfiles.filter((it) => it.category == category.name) : [];\n\n if (categoryFound || categoryJobSkillProfiles.length > 0 || showAllSkill || showEditSkill) {\n const catSkillProfiles = skillProfiles.filter((x) => x.category == category.name && (x.stringVal !== \"N\" || x.editedStringVal));\n let categoryHasValue = false;\n\n let catSkillProfilesCodeWithValue = skillProfiles.filter((it) => it.category == category.name && (it.stringVal !== \"N\" || it.editedStringVal)).map((skill) => skill.skillCode);\n const jobCatSkillProfilesCode = categoryJobSkillProfiles.map((skill) => skill.skillCode);\n\n const categorySkills = category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills.flatMap((skill, index) => {\n return skill;\n });\n });\n\n if (!badgeCertification && !showProposedAction && !showSuggestedUpdate) {\n categoryHasValue = skillProfiles.filter((c) => c.category == category.name && (c.stringVal !== \"N\" || c.editedStringVal)).length > 0 ? true : false;\n catSkillProfilesCodeWithValue = skillProfiles.filter((it) => it.category == category.name && (it.stringVal !== \"N\" || it.editedStringVal)).map((skill) => skill.skillCode);\n } else if (!badgeCertification && showProposedAction && !showSuggestedUpdate) {\n if (showExtraFramework) {\n if (category && category.subCategories && category.subCategories.length > 0) {\n category.subCategories.forEach((subCategory) => {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkProposeSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...extraFrameworkProposeSkills.map((it) => it.code));\n }\n\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n } else {\n if (extraFrameworkProposeSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...extraFrameworkProposeSkills.map((it) => it.code));\n }\n\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n });\n }\n });\n }\n } else {\n const catProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (catProposeSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...catProposeSkills.map((catProposeSkill) => catProposeSkill.code));\n }\n\n if (catSkillProfiles.length == 0 && catProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (catSkillProfiles.filter((x) => catProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (catProposeSkills.filter((x) => !catSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n } else if (!badgeCertification && !showProposedAction && showSuggestedUpdate) {\n if (showExtraFramework) {\n if (category && category.subCategories && category.subCategories.length > 0) {\n category.subCategories.forEach((subCategory) => {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSuggestedSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...extraFrameworkSuggestedSkills.map((it) => it.code));\n }\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n } else {\n if (extraFrameworkSuggestedSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...extraFrameworkSuggestedSkills.map((it) => it.code));\n }\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n });\n }\n });\n }\n } else {\n const catSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (catSuggestedSkills.length > 0) {\n catSkillProfilesCodeWithValue.push(...catSuggestedSkills.map((catSuggestedSkill) => catSuggestedSkill.skillCode));\n }\n\n if (catSkillProfiles.length == 0 && catSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (catSkillProfiles.filter((x) => catSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (catSuggestedSkills.filter((x) => !catSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n } else {\n if (\n badgeRequest &&\n badgeRequest.requestCertificationEntries &&\n badgeRequest.requestCertificationEntries.length > 0 &&\n badgeRequest.requestCertificationEntries.filter((x) => x.category == category.name && (x.stringVal !== \"N\" || x.editedStringVal)).length > 0\n ) {\n catSkillProfilesCodeWithValue.push(...badgeRequest.requestCertificationEntries.filter((x) => x.category == category.name && (x.stringVal !== \"N\" || x.editedStringVal)).map((it) => it.skillsCode));\n categoryHasValue = true;\n } else if (badgeRequest && badgeRequest.requestEntries && badgeRequest.requestEntries.length > 0 && badgeRequest.requestEntries.filter((x) => x.category == category.name && (x.stringVal !== \"N\" || x.editedStringVal)).length > 0) {\n catSkillProfilesCodeWithValue.push(...badgeRequest.requestEntries.filter((x) => x.category == category.name && (x.stringVal !== \"N\" || x.editedStringVal)).map((it) => it.skillsCode));\n categoryHasValue = true;\n }\n }\n\n const checkedCatSkills = showAllSkill || showEditSkill ? categorySkills : categorySkills.filter((it) => catSkillProfilesCodeWithValue.includes(it.skillsCode) || jobCatSkillProfilesCode.includes(it.skillsCode));\n const categoryHidden = !checkedCatSkills.some((skill) => !skill.isHidden) && !showHiddenSkills;\n\n if (categoryHasValue || categoryJobSkillProfiles.length > 0 || showAllSkill || showEditSkill) {\n return (\n \n \n \n \n \n \n \n {!category.isExtraFramework == true ? (\n \n \n \n \n \n \n \n \n 7\n \n \n ) : (\n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n return (\n \n \n {extraFrameworkLevel.level}\n \n \n );\n })}\n {emptyLevels}\n \n )}\n\n {showEditSkill || showEditCertify ? (\n highlightGap ? (\n \n \n \n \n ) : (\n \n )\n ) : (\n highlightGap && \n )}\n \n \n \n {category.subCategories.map((subCategory, index) => {\n const subCatSkillProfiles = skillProfiles.filter((it) => it.subCategory === subCategory.name);\n\n let subCatSkillProfilesCodeWithValue = subCatSkillProfiles.filter((it) => it.stringVal !== \"N\" || it.editedStringVal).map((skill) => skill.skillCode);\n let subCategoryHasValue = false;\n\n if (!badgeCertification && !showProposedAction && !showSuggestedUpdate) {\n subCatSkillProfilesCodeWithValue = subCatSkillProfiles.filter((it) => it.stringVal !== \"N\" || it.editedStringVal).map((skill) => skill.skillCode);\n subCategoryHasValue = subCatSkillProfiles.filter((c) => c.stringVal !== \"N\" || c.editedStringVal).length > 0 ? true : false;\n } else if (!badgeCertification && showProposedAction && !showSuggestedUpdate) {\n if (showExtraFramework) {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter(\n (x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal)\n );\n const extraFrameworkProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n }\n });\n }\n } else {\n const subCatProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.subCategory == subCategory.name)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (subCatSkillProfiles.length == 0 && subCatProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (subCatSkillProfiles.filter((x) => subCatProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (subCatProposeSkills.filter((x) => !subCatSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n }\n } else if (!badgeCertification && !showProposedAction && showSuggestedUpdate) {\n if (showExtraFramework) {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter(\n (x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal)\n );\n const extraFrameworkSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n }\n });\n }\n } else {\n const subCatSuggestedSkills = suggestedSkills\n .filter((x) => x.subCategory == subCategory.name)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (subCatSkillProfiles.length == 0 && subCatSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n subCategoryHasValue = true;\n } else if (subCatSkillProfiles.filter((x) => subCatSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n subCategoryHasValue = true;\n } else if (subCatSuggestedSkills.filter((x) => !subCatSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n subCategoryHasValue = true;\n }\n }\n } else {\n if (badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0 && badgeRequest.requestCertificationEntries.filter((x) => x.subCategory == subCategory.name).length > 0) {\n subCategoryHasValue = true;\n } else if (badgeRequest && badgeRequest.requestEntries && badgeRequest.requestEntries.length > 0 && badgeRequest.requestEntries.filter((x) => x.subCategory == subCategory.name).length > 0) {\n subCategoryHasValue = true;\n }\n }\n\n const subCatSkillsCodes = subCategory.skills.map((it) => {\n return it.skillsCode;\n });\n\n const subCatJobSkillProfiles = this.props.jobSkillProfiles ? this.props.jobSkillProfiles.filter((it) => subCatSkillsCodes.some((skill) => skill == it.skillCode)) : [];\n const jobSubCatSkillProfilesCode = subCatJobSkillProfiles.map((skill) => skill.skillCode);\n\n const checkedSubCatSkills = showAllSkill || showEditSkill ? subCategory.skills : subCategory.skills.filter((it) => subCatSkillProfilesCodeWithValue.includes(it.skillsCode) || jobSubCatSkillProfilesCode.includes(it.skillsCode));\n const subCategoryHidden = !checkedSubCatSkills.some((skill) => !skill.isHidden) && !showHiddenSkills;\n\n if (subCategoryHasValue || subCatJobSkillProfiles.length > 0 || showAllSkill || showEditSkill) {\n return (\n \n \n \n \n \n \n \n {subCategory.skills.map((skill, elIndex) => {\n const skillHidden = skill.isHidden && !showHiddenSkills;\n const showGuidance = language && skill.guidances && skill.guidances.length > 0 ? true : false;\n const subCatDetailSkillProfiles = skillProfiles.filter((x) => x.skillCode === skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n\n let hasValue = false;\n\n if (!badgeCertification && !showProposedAction && !showSuggestedUpdate) {\n hasValue = subCatDetailSkillProfiles.length > 0 ? true : false;\n } else if (!badgeCertification && showProposedAction && !showSuggestedUpdate) {\n if (showExtraFramework) {\n const extraFrameworkSkillProfiles = skillProfiles.filter(\n (x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal)\n );\n const extraFrameworkProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n }\n } else {\n if (proposeSkills.filter((x) => x.type == \"Skill\" && x.code == skill.skillsCode && x.name == skill.name).length > 0) {\n const subCatDetailProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.code == skill.skillsCode && x.name == skill.name)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (subCatDetailSkillProfiles.length == 0 && subCatDetailProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (subCatDetailSkillProfiles.filter((x) => subCatDetailProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (subCatDetailProposeSkills.filter((x) => !subCatDetailSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n }\n }\n } else if (!badgeCertification && !showProposedAction && showSuggestedUpdate) {\n if (showExtraFramework) {\n const extraFrameworkSkillProfiles = skillProfiles.filter(\n (x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal)\n );\n const extraFrameworkSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n }\n } else {\n if (suggestedSkills.filter((x) => x.skillCode == skill.skillsCode && x.skill == skill.name).length > 0) {\n const subCatDetailSuggestedSkills = suggestedSkills\n .filter((x) => x.skillCode == skill.skillsCode && x.skill == skill.name)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (subCatDetailSkillProfiles.length == 0 && subCatDetailSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n hasValue = true;\n } else if (subCatDetailSkillProfiles.filter((x) => subCatDetailSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n hasValue = true;\n } else if (subCatDetailSuggestedSkills.filter((x) => !subCatDetailSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n hasValue = true;\n }\n }\n }\n } else {\n if (badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0 && badgeRequest.requestCertificationEntries.filter((x) => x.skillsCode == skill.skillsCode).length > 0) {\n hasValue = true;\n } else if (badgeRequest && badgeRequest.requestEntries && badgeRequest.requestEntries.length > 0 && badgeRequest.requestEntries.filter((x) => x.skillsCode == skill.skillsCode).length > 0) {\n hasValue = true;\n }\n }\n\n let jobSkillProfiles = this.props.jobSkillProfiles ? this.props.jobSkillProfiles.filter((it) => it.skillCode == skill.skillsCode) : [];\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n jobSkillProfile.isFully = false;\n jobSkillProfile.isPartially = false;\n jobSkillProfile.isProvidedUpper = false;\n });\n\n jobSkillProfiles.forEach((jobSkillProfile) => {\n if (!category.isExtraFramework == true) {\n if (subCatDetailSkillProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level && (it.numericVal == 1 || it.stringVal == \"M\")).length > 0) {\n jobSkillProfile.isFully = true;\n } else if (subCatDetailSkillProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level && jobSkillProfile.stringVal == \"P\").length > 0) {\n jobSkillProfile.isPartially = true;\n }\n\n if (\n subCatDetailSkillProfiles.filter((it) => ((it.stringVal != null && it.stringVal != \"N\") || it.editedStringVal != \"N\") && it.level == jobSkillProfile.level).length == 0 &&\n subCatDetailSkillProfiles.filter((it) => ((it.stringVal != null && it.stringVal != \"N\") || it.editedStringVal != \"N\") && it.level > jobSkillProfile.level).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n } else {\n const topExtraFrameworkCapability = [...extraFrameworkCapabilities].sort((a, b) => b.weight - a.weight)[0];\n if (subCatDetailSkillProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level && it.numericVal == topExtraFrameworkCapability.weight).length > 0) {\n jobSkillProfile.isFully = true;\n } else if (subCatDetailSkillProfiles.filter((it) => !it.editedStringVal).filter((it) => it.level == jobSkillProfile.level && it.numericVal != 0).length > 0) {\n jobSkillProfile.isPartially = true;\n }\n\n if (\n skill.levelSelection != \"Single\" &&\n subCatDetailSkillProfiles.filter((it) => it.level == jobSkillProfile.level && it.numericVal != 0).length == 0 &&\n subCatDetailSkillProfiles.filter((it) => it.level > jobSkillProfile.level && it.numericVal != 0).length > 0\n ) {\n jobSkillProfile.isProvidedUpper = true;\n }\n }\n });\n\n let gapStatus = \"\";\n let showWandSuggestion = false;\n let showAddEvidence = false;\n\n // empty is show red crossed circle\n // partial is show yellow circle\n // full is show green check circle\n\n if (jobSkillProfiles.length > 0) {\n if (jobSkillProfiles.filter((it) => it.stringVal == \"M\" && !it.isFully).length > 0) {\n gapStatus = \"empty\";\n } else {\n if (jobSkillProfiles.filter((it) => it.isFully || it.isPartially || (!it.isFully && !it.isPartially)).length > 0) {\n if (jobSkillProfiles.filter((it) => !it.isFully).length > 0) {\n gapStatus = \"partial\";\n } else {\n gapStatus = \"full\";\n }\n } else {\n gapStatus = \"empty\";\n }\n }\n\n if (jobSkillProfiles.filter((it) => it.isPartially && skillProfiles.find((x) => x.stringVal != \"N\" && it.skillCode == x.skillCode && it.level == x.level)).length > 0) {\n showAddEvidence = true;\n } else {\n if (jobSkillProfiles.filter((it) => (it.isFully || it.isPartially || (!it.isFully && !it.isPartially)) && skillProfiles.find((x) => x.stringVal != \"N\" && it.skillCode == x.skillCode && it.level == x.level)).length > 0) {\n if (jobSkillProfiles.filter((it) => !it.isFully && skillProfiles.find((x) => x.stringVal != \"N\" && it.skillCode == x.skillCode && it.level == x.level)).length > 0) {\n showAddEvidence = true;\n }\n } else {\n showAddEvidence = false;\n }\n }\n\n if (account && !account.updateProfileSuggested && this.props.selectedprofileType.value == \"Self Assessed\" && jobSkillProfiles.filter((it) => it.isProvidedUpper).length > 0) {\n showWandSuggestion = true;\n }\n }\n\n let jobSkillAttributeColor = \"#002060\";\n const showJobSkillAttribute = this.props.selectedJobMatchType.id ? true : false;\n if (showJobSkillAttribute) {\n if (this.props.selectedJobMatchType.value == \"Current\") {\n jobSkillAttributeColor = \"#002060\";\n } else {\n jobSkillAttributeColor = \"#4dcaa4\";\n }\n }\n\n let selectedSkillAttributes = [];\n let selectedJobSkillAttributes = [];\n\n if (isShowJobProfile) {\n if (skill.attributes && skill.attributes.length > 0 && jobSkillAttributes && jobSkillAttributes.length > 0) {\n selectedSkillAttributes = skill.attributes.filter((it) => !it.isHidden && jobSkillAttributes.find((attribute) => it.id == attribute.skillAttributeId));\n }\n } else {\n if (skill.attributes && skill.attributes.length > 0 && this.state.account && this.state.account.attributes && this.state.account.attributes.length > 0) {\n selectedSkillAttributes = skill.attributes.filter((it) => !it.isHidden && this.state.account.attributes.find((attribute) => it.id == attribute.skillAttributeId));\n }\n\n selectedJobSkillAttributes = showJobSkillAttribute && jobSkillAttributes ? jobSkillAttributes.filter((it) => !it.isHidden && it.skillName == skill.name && it.skillCode == skill.skillsCode) : [];\n }\n\n var emptySkillLevels = [];\n for (let i = extraFrameworkLevels.length + 1; i <= 7; i++) {\n emptySkillLevels.push(\n \n {this.elementSkillExtraFramework(\n skill.skillsCode,\n skill.levelSelection,\n `emptyLevel${subCategory.id}${skill.id}${i}`,\n skill.levels,\n subCatDetailSkillProfiles,\n category.colour,\n subCategory.colour,\n subCategory.skillColour,\n category,\n subCategory,\n showProposedAction,\n proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n }),\n showSuggestedUpdate,\n suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n })\n )}\n \n );\n }\n\n const levelIterator = [1, 2, 3, 4, 5, 6, 7];\n\n return (\n 0 || showAllSkill || showEditSkill) ? \"\" : \"none\" }}>\n \n \n this.openEditSkillAttribute(\n {\n id: category.id,\n name: category.name,\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: subCategory.name,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n skill\n )\n }\n />\n \n )}\n \n ) : (\n \n \n \n \n {showGuidance ? (\n \n this.openSfiaGuidance(skill)} />\n \n ) : (\n
\n )}\n \n )}\n \n \n \n \n
\n \n {!category.isExtraFramework == true ? (\n \n {levelIterator.map((level) => {\n return this.elementSkill(\n skill.skillsCode,\n level,\n skill.levels,\n subCatDetailSkillProfiles,\n category.colour,\n subCategory.colour,\n subCategory.skillColour,\n category,\n subCategory,\n showProposedAction,\n proposeSkills,\n showSuggestedUpdate,\n suggestedSkills\n );\n })}\n \n ) : (\n \n {extraFrameworkLevels.map((extraFrameworkLevel, levelIndex) => {\n return this.elementSkillExtraFramework(\n skill.skillsCode,\n skill.levelSelection,\n extraFrameworkLevel.id,\n skill.levels,\n subCatDetailSkillProfiles,\n category.colour,\n subCategory.colour,\n subCategory.skillColour,\n category,\n subCategory,\n showProposedAction,\n proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n }),\n showSuggestedUpdate,\n suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n })\n );\n })}\n {emptySkillLevels}\n \n )}\n {(showEditSkill || showEditCertify) && (\n \n )}\n {highlightGap ? (\n \n {loadingGap && }\n {!loadingGap ? (\n gapStatus == \"empty\" ? (\n \n ) : gapStatus == \"partial\" ? (\n \n ) : gapStatus == \"full\" ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n {!loadingGap ? (\n gapStatus == \"empty\" ? (\n \n ) : gapStatus == \"partial\" ? (\n \n ) : gapStatus == \"full\" ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n {!loadingGap && (gapStatus == \"empty\" || gapStatus == \"partial\") && (\n \n
\n
\n \n {showAddEvidence && (\n \n {\" \"}\n \n \n )}\n
\n )}\n
\n {!loadingGap && showWandSuggestion ? (\n \n this.handleSuggestUpdateLowerLevelProfile(\n {\n id: category.id,\n name: category.name,\n isExtraFramework: category.isExtraFramework && category.isExtraFramework == true ? true : false,\n },\n {\n id: subCategory.id,\n name: subCategory.name,\n },\n skill,\n skillProfiles ? [...skillProfiles.filter((x) => x.skillCode === skill.skillsCode)] : []\n )\n }\n />\n ) : (\n \n )}\n \n \n \n \n ) : (\n
\n )}\n \n );\n })}\n \n );\n }\n })}\n \n \n \n \n \n );\n } else {\n return ;\n }\n } else {\n return ;\n }\n })}\n
\n 1\n \n 2\n \n 3\n \n 4\n \n 5\n \n 6\n
\n \n {hasValue && skill.attributes && skill.attributes.filter((it) => !it.isHidden).length > 0 ? (\n \n \n \n {!badgeCertification && selectedSkillAttributes.length > 0 && (\n \n
\n {selectedSkillAttributes\n .sort((a, b) => (a.attribute > b.attribute ? 1 : -1))\n .map((attribute, index) => {\n return (\n \n \n {attribute.link && !this.props.loginWithTeams ? (\n \n {attribute.attribute}\n \n ) : (\n attribute.attribute\n )}\n {index + 1 < selectedSkillAttributes.length && \", \"}\n \n \n );\n })}\n
\n )}\n {!badgeCertification && selectedJobSkillAttributes.length > 0 && (\n \n
\n
\n {selectedJobSkillAttributes\n .sort((a, b) => (a.attribute > b.attribute ? 1 : -1))\n .map((attribute, index) => {\n return (\n \n {attribute.link && !this.props.loginWithTeams ? (\n \n \n \n {attribute.attribute}\n \n
\n
\n ) : (\n \n \n {attribute.attribute}\n \n \n )}\n
\n );\n })}\n \n \n )}\n \n {showGuidance ? (\n \n this.openSfiaGuidance(skill)} />\n \n ) : (\n
\n )}\n {!isShowJobProfile && !badgeCertification && (\n
\n {skill.skillsCode}\n \n it.edited).length > 0 ? \" btn-warning-edit\" : \" btnEdit-Style\"}`}\n onClick={() =>\n this.openEditSkillProfile(\n {\n id: category.id,\n name: category.name,\n colour: category.colour,\n },\n {\n id: subCategory.id,\n name: subCategory.name,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n },\n skill,\n skillProfiles ? [...skillProfiles.filter((x) => x.skillCode === skill.skillsCode)] : [],\n category.isExtraFramework && category.isExtraFramework == true ? true : false\n )\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n language: state.language.language,\n personLoading: state.person.loading,\n personError: state.person.error,\n account: state.person.account,\n contentTranslations: state.content.contentTranslations,\n managedPeople: state.auth.managedPeople,\n loginWithTeams: state.auth.loginWithTeams,\n actionTypes: state.actionPlan.actionTypes,\n actionSkills: state.actionPlan.actionSkills,\n actions: state.actionPlan.actions,\n selectedProviders: state.company.selectedProviders,\n jobMatches: state.job.jobMatches,\n containerConfig: state.config.containerConfig,\n personId: state.auth.personId,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableSkillProfiles);\n","import * as authActions from \"../../store/actions/authAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport TableProfileResponsibility from \"./TableProfileResponsibility\";\nimport TableSkillProfiles from \"./TableSkillProfiles\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Container, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass TableProfile extends React.Component {\n static displayName = TableProfile.name;\n\n constructor(props) {\n super(props);\n this.state = {\n lorProfiles: this.props.lorProfiles,\n skillProfiles: this.props.skillProfiles,\n lors: this.props.lors,\n lorLoading: this.props.lorLoading,\n isTopSkillProfileLegendInViewport: true,\n };\n }\n\n componentDidMount() {\n document.addEventListener(\"scroll\", this.checkSkillProfileLegendInViewport);\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"scroll\", this.checkSkillProfileLegendInViewport);\n }\n\n checkSkillProfileLegendInViewport = () => {\n let isTopSkillProfileLegendInViewport = this.state.isTopSkillProfileLegendInViewport;\n\n //get how much pixels left to scrolling our ReactElement\n const topLegendTop = this.topSkillProfileLegendElement.getBoundingClientRect().top;\n isTopSkillProfileLegendInViewport = topLegendTop <= 0 ? false : true;\n this.setState({ isTopSkillProfileLegendInViewport });\n\n if (this.props.updateFloatingLegendStatus) {\n this.props.updateFloatingLegendStatus(!isTopSkillProfileLegendInViewport ? true : false);\n }\n };\n\n componentDidUpdate(prevProps) {\n if (prevProps.lorLoading !== this.props.lorLoading) {\n this.setState({ lorLoading: this.props.lorLoading });\n }\n\n if (prevProps.lors !== this.props.lors) {\n this.setState({ lors: this.props.lors });\n }\n\n if (prevProps.lorProfiles !== this.props.lorProfiles) {\n this.setState({ lorProfiles: this.props.lorProfiles });\n }\n\n if (prevProps.skillProfiles !== this.props.skillProfiles) {\n this.setState({ skillProfiles: this.props.skillProfiles });\n }\n }\n\n render() {\n let setRefTopLegend = (el) => {\n this.topSkillProfileLegendElement = el;\n };\n\n const { selectedJobMatchType, extraFrameworkCapabilities, extraFrameworkLevels, jobSkillProfiles, categories, account, badgeCertification, badgeRequest } = this.props;\n const { skillProfiles } = this.state;\n const extraFrameworkAvailable = this.props.categories.filter((it) => it.isExtraFramework && it.isExtraFramework == true).length > 0 ? true : false;\n\n let showProposedActionExtraFramework = false;\n if (this.props.showProposedAction && extraFrameworkAvailable && extraFrameworkCapabilities) {\n const proposeSkills = account && account.updateProfileEvidenceProposalSkills ? account.updateProfileEvidenceProposalSkills.filter((it) => it.type == \"Skill\") : [];\n\n categories\n .filter((it) => it.isExtraFramework && it.isExtraFramework == true)\n .forEach((category) => {\n const categoryFound = proposeSkills.filter((x) => x.type == \"Skill\" && x.category == category.name).length > 0 ? true : false;\n\n if (categoryFound) {\n let categoryHasValue = false;\n if (category && category.subCategories && category.subCategories.length > 0) {\n category.subCategories.forEach((subCategory) => {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkProposeSkills = proposeSkills\n .filter((x) => x.type == \"Skill\" && x.category == category.name && x.subCategory == subCategory.name && x.name == skill.name && x.code == skill.skillsCode)\n .map((it) => {\n return {\n capability: it.capability,\n numericVal: it.capability == \"Competent\" ? 1 : it.capability == \"Proficient\" ? 0.5 : it.capability == \"Knowledge\" ? 0.25 : 0,\n category: it.category,\n code: it.code,\n id: it.id,\n level: it.level,\n name: it.name,\n subCategory: it.subCategory,\n type: it.type,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkProposeSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkProposeSkills.some((y) => x.skillCode == y.code && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkProposeSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.code == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n });\n }\n });\n }\n\n if (categoryHasValue) {\n showProposedActionExtraFramework = true;\n }\n }\n });\n }\n\n let showSuggestedUpdateExtraFramework = false;\n if (this.props.showSuggestedUpdate && extraFrameworkAvailable && extraFrameworkCapabilities) {\n const suggestedSkills = account && account.updateProfileSuggestionSkills ? account.updateProfileSuggestionSkills : [];\n\n categories\n .filter((it) => it.isExtraFramework && it.isExtraFramework == true)\n .forEach((category) => {\n const categoryFound = suggestedSkills.filter((x) => x.category == category.name).length > 0 ? true : false;\n\n if (categoryFound) {\n let categoryHasValue = false;\n if (category && category.subCategories && category.subCategories.length > 0) {\n category.subCategories.forEach((subCategory) => {\n if (subCategory.skills && subCategory.skills.length > 0) {\n subCategory.skills.forEach((skill) => {\n const extraFrameworkSkillProfiles = skillProfiles.filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode && (x.stringVal !== \"N\" || x.editedStringVal));\n const extraFrameworkSuggestedSkills = suggestedSkills\n .filter((x) => x.category == category.name && x.subCategory == subCategory.name && x.skill == skill.name && x.skillCode == skill.skillsCode)\n .map((it) => {\n return {\n numericVal: it.numericVal,\n category: it.category,\n subCategory: it.subCategory,\n id: it.id,\n skill: it.skill,\n skillCode: it.skillCode,\n level: it.level,\n };\n });\n\n if (skill.levelSelection == \"Single\") {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && (y.level > x.level || (x.level == y.level && y.numericVal > x.numericVal)))).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n } else {\n if (extraFrameworkSkillProfiles.length == 0 && extraFrameworkSuggestedSkills.length > 0) {\n // No profile skills but have proposed skills\n categoryHasValue = true;\n } else if (extraFrameworkSkillProfiles.filter((x) => extraFrameworkSuggestedSkills.some((y) => x.skillCode == y.skillCode && x.level == y.level && y.numericVal > x.numericVal)).length > 0) {\n // Have proposed skills with better capability\n categoryHasValue = true;\n } else if (extraFrameworkSuggestedSkills.filter((x) => !extraFrameworkSkillProfiles.some((y) => x.skillCode == y.skillCode && x.level == y.level)).length > 0) {\n // Have proposed skills which not exist in profile skills\n categoryHasValue = true;\n }\n }\n });\n }\n });\n }\n\n if (categoryHasValue) {\n showSuggestedUpdateExtraFramework = true;\n }\n }\n });\n }\n\n const extraFrameworkSkills = categories\n ? categories\n .filter((it) => it.isExtraFramework == true)\n .flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills.flatMap((skill, index) => {\n return { skillsCode: skill.skillsCode, isHidden: skill.isHidden };\n });\n });\n })\n : [];\n\n let extraFrameworkSkillProfilesCodeWithValue = [];\n if (!badgeCertification) {\n extraFrameworkSkillProfilesCodeWithValue = skillProfiles.filter((it) => it.isExtraFramework && it.isExtraFramework == true && (it.stringVal !== \"N\" || it.editedStringVal)).map((skill) => skill.skillCode);\n } else if (badgeCertification && badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0) {\n extraFrameworkSkillProfilesCodeWithValue = badgeRequest.requestCertificationEntries.map((skill) => skill.skillsCode);\n } else if (badgeCertification && badgeRequest && badgeRequest.requestEntries && badgeRequest.requestEntries.length > 0) {\n extraFrameworkSkillProfilesCodeWithValue = badgeRequest.requestEntries.map((skill) => skill.skillsCode);\n }\n\n const checkedExtraFrameworkSkills = this.props.showDetail || this.props.showEdit ? extraFrameworkSkills : extraFrameworkSkills.filter((it) => extraFrameworkSkillProfilesCodeWithValue.includes(it.skillsCode));\n const extraFrameworkHidden = !checkedExtraFrameworkSkills.some((skill) => !skill.isHidden) && !this.props.showHidden;\n\n return (\n \n {!this.props.badgeCertification && this.props.selectedprofileType && !this.props.showSuggestedUpdate && (\n \n )}\n \n \n \n \n \n {this.props.isShowJobProfile ? (\n \n \n \n \n ) : (\n \n \n \n \n {selectedJobMatchType && selectedJobMatchType.value != \"None\" && (\n \n \n \n \n )}\n \n )}\n \n \n \n \n \n \n \n {this.props.isShowJobProfile ? (\n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {selectedJobMatchType && selectedJobMatchType.value == \"Current\" && (\n \n \n \n \n )}\n {selectedJobMatchType && selectedJobMatchType.value == \"Future\" && (\n \n \n \n \n )}\n \n )}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {this.props.selectedprofileType && (\n \n )}\n {this.props.selectedprofileType &&\n (!this.props.showProposedAction || showProposedActionExtraFramework) &&\n (!this.props.showSuggestedUpdate || showSuggestedUpdateExtraFramework) &&\n extraFrameworkAvailable &&\n extraFrameworkCapabilities &&\n extraFrameworkCapabilities.length > 0 &&\n ((skillProfiles && skillProfiles.filter((it) => it.isExtraFramework && it.isExtraFramework == true && it.numericVal > 0).length > 0) ||\n (jobSkillProfiles && jobSkillProfiles.filter((it) => it.isExtraFramework && it.isExtraFramework == true && it.stringVal != \"N\").length > 0) ||\n this.props.showDetail ||\n this.props.showEdit) && (\n \n \n \n \n \n {extraFrameworkCapabilities.map((extraFrameworkCapability, index) => {\n return (\n \n );\n })}\n {selectedJobMatchType && selectedJobMatchType.value != \"None\" && (\n \n \n \n \n )}\n \n \n \n {extraFrameworkCapabilities.map((extraFrameworkCapability, index) => {\n return index == 0 ? (\n \n ) : index == 1 ? (\n \n ) : index == 2 ? (\n \n ) : index == 3 ? (\n \n ) : (\n \"\"\n );\n })}\n {selectedJobMatchType && selectedJobMatchType.value == \"Current\" && (\n \n \n \n \n )}\n {selectedJobMatchType && selectedJobMatchType.value == \"Future\" && (\n \n \n \n \n )}\n \n \n
\n \n \n {extraFrameworkCapability.capability}\n \n \n \n \n
\n \n
\n )}\n
 
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n account: state.person.account,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TableProfile);\n","import * as authActions from \"../../store/actions/authAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport * as lorActions from \"../../store/actions/lorAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport TableProfile from \"./TableProfile\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Label, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst buttonStyle = {\n marginLeft: \"10px\",\n};\n\nconst labelCaptionStyle = {\n fontWeight: \"bold\",\n};\n\nclass JobsProfile extends React.Component {\n static displayName = JobsProfile.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n contentLoading: true,\n jobLoading: true,\n alerts: [],\n showMoreDetail: false,\n showFloatingLegend: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n const {\n match: { params },\n } = this.props;\n\n var jobId = params.jobId;\n\n this.props.onAuth.authCheckState().then(() => {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaProfile-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n });\n\n this.props.onJob.getJob(jobId).then(() => {\n if (this.props.job) {\n Promise.all([\n this.props.onLor.getLors(),\n this.props.onCategory.getCategories(),\n this.props.onCategory.getExtraFrameworkCapabilities(),\n this.props.onCategory.getExtraFrameworkLevels(),\n this.props.onJob.getJobLorProfiles(jobId),\n this.props.onJob.getJobSkillProfiles(jobId),\n this.props.onJob.getJobSkillAttributes(jobId),\n this.props.onJob.getJobLorAttributes(jobId),\n ])\n .then(() => {\n this.setState({ jobLoading: this.props.jobLoading || this.props.lorLoading || this.props.categoryLoading });\n })\n .catch(() => {\n this.setState({\n jobLoading: false,\n });\n });\n } else {\n this.setState({ jobLoading: this.props.jobLoading });\n }\n });\n }\n\n this.setState({ loading: this.props.loading });\n });\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n handleChangeShowDetail = () => {\n this.setState({\n showDetail: !this.state.showDetail,\n });\n };\n\n handleChangeShowMoreDetail = () => {\n this.setState({\n showMoreDetail: !this.state.showMoreDetail,\n });\n };\n\n updateFloatingLegendStatus = (showFloatingLegend) => {\n this.setState({ showFloatingLegend });\n };\n\n render() {\n const { job } = this.props;\n const { showMoreDetail } = this.state;\n\n return (\n \n \n {!this.state.loading && !this.state.jobLoading && !this.state.contentLoading ? (\n \n {job ? (\n \n \n \n {job &&

{this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileJobSkillRequirement\", \"Skill Requirement - {s1}\"), `${job.name}`)}

}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {showMoreDetail && (\n \n {job.department && job.department != \"\" && (\n \n \n \n \n )}\n {job.location && job.location != \"\" && (\n \n \n \n \n )}\n {job.fte && (\n \n \n \n \n )}\n {job.keyAccountibilities && job.keyAccountibilities != \"\" && (\n \n \n \n \n )}\n {job.keyProcesses && job.keyProcesses != \"\" && (\n \n \n \n \n )}\n {job.educationRequirements && job.educationRequirements != \"\" && (\n \n \n \n \n )}\n {job.otherRequirements && job.otherRequirements != \"\" && (\n \n \n \n \n )}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n ) : (\n \n

Job detail not found

\n
\n )}\n
\n ) : (\n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n token: state.auth.token,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n jobLoading: state.job.loading,\n jobError: state.job.error,\n jobLoading: state.job.loading,\n job: state.job.job,\n\n jobLorProfiles: state.job.jobLorProfiles,\n jobSkillProfiles: state.job.jobSkillProfiles,\n jobSkillAttributes: state.job.jobSkillAttributes,\n jobLorAttributes: state.job.jobLorAttributes,\n\n lorLoading: state.lor.loading,\n lors: state.lor.lors,\n\n categoryLoading: state.category.loading,\n categories: state.category.categories,\n extraFrameworkCapabilities: state.category.extraFrameworkCapabilities,\n extraFrameworkLevels: state.category.extraFrameworkLevels,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JobsProfile);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass ValueGroupAPI {\n static getValuesByGroupName(groupName, languageId) {\n return axios\n .get(`/valueGroups/getvalues?groupName=${groupName}${languageId ? `&languageId=${languageId}` : \"\"}`)\n .then((res) => {\n const response = res.data;\n return response;\n })\n .catch((err) => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default ValueGroupAPI;\n","import ValueGroupAPI from \"./../../common/api/service/ValueGroupService\";\nimport * as CONSTANTS from \"./../../common/constant\";\nimport * as actionTypes from \"./actionTypes\";\n\nexport const getSeniorityOptionsStart = () => {\n return {\n type: actionTypes.GET_SENIORITY_VALUES_START,\n };\n};\n\nexport const getSeniorityOptionsSuccess = (values) => {\n return {\n type: actionTypes.GET_SENIORITY_VALUES_SUCCESS,\n values,\n };\n};\n\nexport const getSeniorityOptionsFail = () => {\n return {\n type: actionTypes.GET_SENIORITY_VALUES_FAIL,\n };\n};\n\nexport const getSeniorityOptions = (languageId) => {\n return (dispatch) => {\n dispatch(getSeniorityOptionsStart());\n\n return ValueGroupAPI.getValuesByGroupName(CONSTANTS.OPTIONS_SENIORITY_GROUP_NAME, languageId)\n .then((res) => {\n dispatch(getSeniorityOptionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getSeniorityOptionsFail(err));\n });\n };\n};\n\nexport const getContractTypeOptionsStart = () => {\n return {\n type: actionTypes.GET_CONTRACT_TYPE_VALUES_START,\n };\n};\n\nexport const getContractTypeOptionsSuccess = (values) => {\n return {\n type: actionTypes.GET_CONTRACT_TYPE_VALUES_SUCCESS,\n values,\n };\n};\n\nexport const getContractTypeOptionsFail = () => {\n return {\n type: actionTypes.GET_CONTRACT_TYPE_VALUES_FAIL,\n };\n};\n\nexport const getContractTypeOptions = (languageId) => {\n return (dispatch) => {\n dispatch(getContractTypeOptionsStart());\n\n return ValueGroupAPI.getValuesByGroupName(CONSTANTS.OPTIONS_CONTRACT_TYPE_GROUP_NAME, languageId)\n .then((res) => {\n dispatch(getContractTypeOptionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getContractTypeOptionsFail(err));\n });\n };\n};\n\nexport const getYearRangeJobOptionsStart = () => {\n return {\n type: actionTypes.GET_YEAR_RANGE_JOB_VALUES_START,\n };\n};\n\nexport const getYearRangeJobOptionsSuccess = (values) => {\n return {\n type: actionTypes.GET_YEAR_RANGE_JOB_VALUES_SUCCESS,\n values,\n };\n};\n\nexport const getYearRangeJobOptionsFail = () => {\n return {\n type: actionTypes.GET_YEAR_RANGE_JOB_VALUES_FAIL,\n };\n};\n\nexport const getYearRangeJobOptions = (languageId) => {\n return (dispatch) => {\n dispatch(getYearRangeJobOptionsStart());\n\n return ValueGroupAPI.getValuesByGroupName(CONSTANTS.OPTIONS_YEAR_RANGE_JOB_GROUP_NAME, languageId)\n .then((res) => {\n dispatch(getYearRangeJobOptionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getYearRangeJobOptionsFail(err));\n });\n };\n};\n\nexport const getYearRangeOrgOptionsStart = () => {\n return {\n type: actionTypes.GET_YEAR_RANGE_ORG_VALUES_START,\n };\n};\n\nexport const getYearRangeOrgOptionsSuccess = (values) => {\n return {\n type: actionTypes.GET_YEAR_RANGE_ORG_VALUES_SUCCESS,\n values,\n };\n};\n\nexport const getYearRangeOrgOptionsFail = () => {\n return {\n type: actionTypes.GET_YEAR_RANGE_ORG_VALUES_FAIL,\n };\n};\n\nexport const getYearRangeOrgOptions = (languageId) => {\n return (dispatch) => {\n dispatch(getYearRangeOrgOptionsStart());\n\n return ValueGroupAPI.getValuesByGroupName(CONSTANTS.OPTIONS_YEAR_RANGE_ORG_GROUP_NAME, languageId)\n .then((res) => {\n dispatch(getYearRangeOrgOptionsSuccess(res));\n })\n .catch((err) => {\n dispatch(getYearRangeOrgOptionsFail(err));\n });\n };\n};\n","import * as personActions from \"../../store/actions/personAction\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-card-profile.css\";\nimport axios from \"axios\";\nimport React, { Fragment } from \"react\";\nimport ReactCrop from \"react-image-crop\";\nimport \"react-image-crop/dist/ReactCrop.css\";\nimport { connect } from \"react-redux\";\nimport { Modal, ModalBody, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass UpdateProfilePicture extends React.Component {\n static displayName = UpdateProfilePicture.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n src: null,\n crop: {\n unit: \"%\",\n x: 5,\n y: 5,\n width: 90,\n aspect: 16 / 16,\n },\n updating: false,\n alerts: [],\n };\n\n this.imageRef = React.createRef();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.showModal !== this.props.showModal) {\n this.setState({ showModal: true });\n }\n\n if (prevProps.src !== this.props.src) {\n this.setState({ src: this.props.src });\n }\n }\n\n toggleModal = () => {\n this.setState({\n showModal: !this.state.showModal,\n });\n };\n\n onSelectFile = (e) => {\n if (e.target.files && e.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => this.setState({ src: reader.result }));\n reader.readAsDataURL(e.target.files[0]);\n }\n };\n\n // If you setState the crop in here you should return false.\n onImageLoaded = (image) => {\n this.imageRef = image;\n };\n\n onCropComplete = (crop) => {\n this.makeClientCrop(crop);\n };\n\n onCropChange = (crop, percentCrop) => {\n // You could also use percentCrop:\n // this.setState({ crop: percentCrop });\n this.setState({ crop });\n };\n\n async makeClientCrop(crop) {\n if (this.imageRef && crop.width && crop.height) {\n const croppedImageUrl = await this.getCroppedImg(this.imageRef, crop, \"newFile.jpeg\");\n this.setState({ croppedImageUrl });\n }\n }\n\n getCroppedImg(image, crop, fileName) {\n const canvas = document.createElement(\"canvas\");\n const pixelRatio = window.devicePixelRatio;\n const scaleX = image.naturalWidth / image.width;\n const scaleY = image.naturalHeight / image.height;\n const ctx = canvas.getContext(\"2d\");\n\n canvas.width = crop.width * pixelRatio * scaleX;\n canvas.height = crop.height * pixelRatio * scaleY;\n\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n ctx.imageSmoothingQuality = \"high\";\n\n ctx.drawImage(image, crop.x * scaleX, crop.y * scaleY, crop.width * scaleX, crop.height * scaleY, 0, 0, crop.width * scaleX, crop.height * scaleY);\n\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n if (!blob) {\n //reject(new Error('Canvas is empty'));\n console.error(\"Canvas is empty\");\n return;\n }\n blob.name = fileName;\n window.URL.revokeObjectURL(this.fileUrl);\n this.fileUrl = window.URL.createObjectURL(blob);\n resolve(this.fileUrl);\n },\n \"image/jpeg\",\n 1\n );\n });\n }\n\n uploadImage = () => {\n const blobUrl = this.state.croppedImageUrl;\n const config = { responseType: \"blob\" };\n\n Promise.resolve(axios.get(blobUrl, config)).then((response) => {\n const file = new File([response.data], \"filename.jpg\");\n this.setState({ updating: true });\n this.props.onPerson.uploadPersonProfilePicture(file).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n } else {\n this.props.pictureUpdated();\n this.setState({ showModal: false });\n }\n }\n this.setState({ updating: this.props.updating });\n });\n });\n };\n\n selectPicture = () => {\n this.imageRef.current.click();\n };\n\n handleChange = (event) => {\n if (event.target.files && event.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n this.setState({ src: reader.result });\n });\n reader.readAsDataURL(event.target.files[0]);\n }\n };\n\n render() {\n const { crop, croppedImageUrl, src } = this.state;\n\n return (\n \n \n \n \n {src && (\n
\n
\n \n
\n
\n {this.state.updating ? (\n \n ) : (\n \n \n    \n \n \n )}\n
\n
\n )}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n person: state.person.person,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UpdateProfilePicture);\n","import * as groupValueActions from \"../../store/actions/groupValueAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport \"./../../custom-card-profile.css\";\nimport UpdateProfilePicture from \"./UpdateProfilePicture\";\nimport { faPencilAlt, faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Input, Modal, ModalBody, Row, Spinner, Table, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\n//import sampleProfile from '../../assets/img/lgo/sample-profile.png';\n\nconst cardProfileStyle = {\n fontFamily: \"IBMPlexSans\",\n fontSize: \"11px\",\n color: \"#2B2B2B\",\n};\n\nclass CardProfile extends React.Component {\n static displayName = CardProfile.name;\n constructor(props) {\n super(props);\n\n this.state = {\n person: null,\n account: null,\n showModal: false,\n modal: false,\n setModal: false,\n loading: false,\n editMode: false,\n seniorityOptions: [],\n //optionSeniority: CONSTANTS.OPTIONS_SENIORITY,\n contractTypeOptions: [],\n //optionEmploymentContract: CONSTANTS.OPTIONS_EMPLOYMENT_CONTRACT,\n yearRangeJobOptions: [],\n //optionTimeInCurrentRole: CONSTANTS.OPTIONS_TIME_IN_CURRENT_ROLE,\n yearRangeOrgOptions: [],\n //optionTimeInOrganisation: CONSTANTS.OPTIONS_TIME_IN_ORGANISATION,\n form: {\n firstName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n seniority: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n employmentContract: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n timeInCurrentRole: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n timeInOrganisation: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n recentOrCurrentRole: {\n validation: {\n required: true,\n },\n value: \"\",\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n salutation: {\n validation: {\n required: false,\n },\n value: \"\",\n valid: true,\n isValidFormat: false,\n touched: false,\n },\n allowNotifications: {\n validation: {\n required: false,\n },\n value: false,\n valid: true,\n isValidFormat: false,\n touched: false,\n },\n },\n isFormValid: false,\n updating: false,\n showProfilePictureModal: null,\n selectedPicture: null,\n profilePicture: null,\n };\n\n this.initData = this.initData.bind(this);\n this.startEdit = this.startEdit.bind(this);\n this.cancelEdit = this.cancelEdit.bind(this);\n this.submitEdit = this.submitEdit.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.imageRef = React.createRef();\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n initData() {\n if (this.props.managedPeople) {\n this.setState({ loading: true });\n const person = this.props.managedPeople.personB;\n\n let account;\n if (person.accounts && person.accounts.length > 0) {\n account = person.accounts.sort((a, b) => b.createdOn > a.createdOn)[0];\n }\n\n this.setState({ person, account, loading: false });\n\n this.props.onPerson.downloadManagedPersonProfilePicture(person.email).then(() => {\n if (this.props.profilePicture) {\n this.setState({ profilePicture: this.props.profilePicture });\n }\n });\n } else {\n this.setState({ loading: true });\n this.props.onPerson.getPersonMyProfile().then(() => {\n if (!this.props.loading && this.props.person) {\n const person = this.props.person;\n\n let account;\n if (person.accounts && person.accounts.length > 0) {\n account = person.accounts.sort((a, b) => b.createdOn > a.createdOn)[0];\n }\n\n this.setState({ person, account });\n }\n this.setState({ loading: this.props.loading });\n });\n\n this.props.onPerson.downloadPersonProfilePicture().then(() => {\n if (this.props.profilePicture) {\n this.setState({ profilePicture: this.props.profilePicture });\n }\n });\n }\n\n Promise.all([\n this.props.onGroupValue.getSeniorityOptions(this.props.language ? this.props.language.id : null),\n this.props.onGroupValue.getContractTypeOptions(this.props.language ? this.props.language.id : null),\n this.props.onGroupValue.getYearRangeJobOptions(this.props.language ? this.props.language.id : null),\n this.props.onGroupValue.getYearRangeOrgOptions(this.props.language ? this.props.language.id : null),\n ])\n .then(() => {\n this.setState({\n seniorityOptions: this.props.seniorityOptions ? this.props.seniorityOptions : [],\n contractTypeOptions: this.props.contractTypeOptions ? this.props.contractTypeOptions : [],\n yearRangeJobOptions: this.props.yearRangeJobOptions ? this.props.yearRangeJobOptions : [],\n yearRangeOrgOptions: this.props.yearRangeOrgOptions ? this.props.yearRangeOrgOptions : [],\n });\n })\n .catch((err) => {});\n }\n\n pictureUpdated = () => {\n if (this.props.managedPeople) {\n this.props.onPerson.downloadManagedPersonProfilePicture(person.email).then(() => {\n if (this.props.profilePicture) {\n this.setState({ profilePicture: this.props.profilePicture });\n }\n });\n } else {\n this.props.onPerson.downloadPersonProfilePicture().then(() => {\n if (this.props.profilePicture) {\n this.setState({ profilePicture: this.props.profilePicture });\n }\n });\n }\n };\n\n startEdit() {\n if (!this.state.editMode) {\n const { person, account } = this.state;\n\n let form = {\n firstName: {\n validation: {\n required: true,\n },\n value: person.firstName,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n lastName: {\n validation: {\n required: true,\n },\n value: person.lastName,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n accountId: {\n validation: {\n required: true,\n },\n value: account.id,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n seniority: {\n validation: {\n required: true,\n },\n value: account.seniority,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n employmentContract: {\n validation: {\n required: true,\n },\n value: account.employmentContract,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n timeInCurrentRole: {\n validation: {\n required: true,\n },\n value: account.timeInCurrentRole,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n timeInOrganisation: {\n validation: {\n required: true,\n },\n value: account.timeInOrganisation,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n recentOrCurrentRole: {\n validation: {\n required: true,\n },\n value: account.recentOrCurrentRole ? account.recentOrCurrentRole.replace(\"\", \"\") : \"\",\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n\n salutation: {\n validation: {\n required: false,\n },\n value: person.salutation,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n allowNotifications: {\n validation: {\n required: false,\n },\n value: person.allowNotifications,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n };\n\n this.setState({ form, editMode: true, isFormValid: true });\n }\n }\n\n cancelEdit() {\n this.setState({ editMode: false });\n }\n\n submitEdit() {\n this.setState({ updating: true });\n const person = {\n firstName: this.state.form.firstName.value,\n lastName: this.state.form.lastName.value,\n accountId: this.state.form.accountId.value,\n seniority: this.state.form.seniority.value,\n\n employmentContract: this.state.form.employmentContract.value,\n timeInCurrentRole: this.state.form.timeInCurrentRole.value,\n timeInOrganisation: this.state.form.timeInOrganisation.value,\n\n position: this.state.form.recentOrCurrentRole.value,\n recentOrCurrentRole: this.state.form.recentOrCurrentRole.value,\n\n salutation: this.state.form.salutation.value,\n allowNotifications: this.state.form.allowNotifications.value,\n };\n\n this.props.onPerson.updatePersonMyProfile(person).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.props.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.props.generateAlert(\"success\", \"Profile updated\");\n\n const person = this.props.person;\n\n let account;\n if (person.accounts && person.accounts.length > 0) {\n account = person.accounts.sort((a, b) => b.createdOn > a.createdOn)[0];\n }\n\n this.setState({ person, account, editMode: false });\n }\n }\n this.setState({ updating: this.props.updating });\n });\n }\n\n eventClick = () => {\n this.setState({\n showModal: null,\n });\n };\n\n toggleModal = () => {\n this.setState({\n showModal: !this.state.showModal,\n editMode: false,\n updating: false,\n });\n };\n\n showUploadProfilePicture = () => {\n this.imageRef.current.click();\n };\n\n handlePictureChange = (event) => {\n if (event.target.files && event.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n this.setState({ showProfilePictureModal: new Date(), selectedPicture: reader.result });\n });\n reader.readAsDataURL(event.target.files[0]);\n }\n };\n\n render() {\n const { person, account, form } = this.state;\n\n return (\n
\n \n \n {person && (\n \n \n \n \n \n
\n \"Profile\n {!this.props.managedPeople && (\n
\n \n \n \n \n
\n )}\n
\n

\n \n {person.firstName} {person.lastName}\n \n

\n

{person.position}

\n

\n

\n {!this.props.managedPeople &&\n (this.state.editMode ? (\n \n \n
\n \n
\n ) : (\n \n \n \n \n \n \n ))}\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.updating ? (\n
\n \n
\n ) : (\n \n {this.state.editMode && (\n \n \n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n
\n \n \n \n
\n \n \n \n
\n \n \n {this.state.editMode ? (\n \n {this.state.seniorityOptions.map((obj, index) => (\n \n ))}\n \n ) : (\n account && account.seniority\n )}\n
\n \n \n {this.state.editMode ? (\n \n {this.state.contractTypeOptions.map((obj, index) => (\n \n ))}\n \n ) : (\n account && account.employmentContract\n )}\n
\n \n \n {this.state.editMode ? (\n \n {this.state.yearRangeJobOptions.map((obj, index) => (\n \n ))}\n \n ) : (\n account && account.timeInCurrentRole\n )}\n
\n \n \n {this.state.editMode ? (\n \n {this.state.yearRangeOrgOptions.map((obj, index) => (\n \n ))}\n \n ) : (\n account && account.timeInOrganisation\n )}\n
\n \n \n {this.state.editMode ? (\n \n ) : account && account.recentOrCurrentRole ? (\n account.recentOrCurrentRole.replace(\"\", \"\")\n ) : (\n \"\"\n )}\n
\n \n
\n
\n
\n
\n )}\n
\n \"Profile\n {!this.props.managedPeople && (\n
\n \n \n \n \n
\n )}\n
\n {this.state.loading ? (\n \n ) : (\n person && (\n
\n

\n \n {person.firstName} {person.lastName}\n \n

\n

{person.position ? person.position.replace(\"\", \"\") : \"\"}

\n

\n \n \n \n \n

\n
\n )\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.person.loading,\n error: state.person.error,\n person: state.person.person,\n profilePicture: state.person.profilePicture,\n updating: state.person.updating,\n seniorityOptions: state.groupValue.seniorityOptions,\n contractTypeOptions: state.groupValue.contractTypeOptions,\n yearRangeJobOptions: state.groupValue.yearRangeJobOptions,\n yearRangeOrgOptions: state.groupValue.yearRangeOrgOptions,\n\n managedPeople: state.auth.managedPeople,\n language: state.language.language,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onPerson: bindActionCreators(personActions, dispatch),\n onGroupValue: bindActionCreators(groupValueActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CardProfile);\n","import * as jobActions from \"../../store/actions/jobAction\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { SkillsTxTable } from \"../common/SkillsTxTable\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, Container, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Progress, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst containerStyle = {\n fontSize: \"11px\",\n fontFamily: \"IBMPlexSans-Light\",\n};\n\nconst titleStyle = {\n fontSize: \"13px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst subTitleStyle = {\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst buttonStyle = {\n width: \"70px\",\n height: \"25px\",\n};\n\nconst futureRequirementCheckLink = {\n textDecoration: \"underline\",\n color: \"#007bff\",\n};\n\nclass SkillProgress extends React.Component {\n static displayName = SkillProgress.name;\n constructor(props) {\n super(props);\n this.state = {\n jobLoading: false,\n jobUpdating: false,\n selectedCurrentJob: this.props.currentJob,\n selectedFutureJob: this.props.futureJob,\n editJob: false,\n jobMatches: [],\n searchJobName: \"\",\n byPassFutureRequirementCheck: false,\n showFutureRequirementCheckDialog: false,\n mode: \"Assign\",\n selectedJobMatch: null,\n showJobVacanciesConfirmation: false,\n jobVacancyEnquireyComment: null,\n sendSelfAssessedProfileOnVacancy: false,\n sendEndorsedProfileOnVacancy: false,\n };\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n const { selectedCurrentJob, selectedFutureJob } = this.state;\n\n const jobMatches = [\n {\n id: \"None\",\n jobTitle: \"None\",\n currentSelected: false,\n futureSelected: !selectedFutureJob,\n },\n ...this.props.jobMatches,\n ];\n\n jobMatches\n .filter((it) => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n jobMatch.futureSelected = false;\n jobMatch.disabled = false;\n\n if (selectedCurrentJob && jobMatch.id == selectedCurrentJob.id) {\n jobMatch.currentSelected = true;\n }\n\n if (selectedFutureJob && jobMatch.id == selectedFutureJob.id) {\n jobMatch.futureSelected = true;\n }\n });\n\n jobMatches.forEach((it) => {\n it.jobTitleSort = it.id == \"None\" ? \" \" + it.jobTitle : it.jobTitle;\n });\n\n this.setState({ jobMatches: jobMatches.sort((a, b) => a.jobTitleSort > b.jobTitleSort) });\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobMatches !== this.props.jobMatches) {\n const { selectedCurrentJob, selectedFutureJob } = this.state;\n\n const jobMatches = [\n {\n id: \"None\",\n jobTitle: \"None\",\n currentSelected: false,\n futureSelected: !selectedFutureJob,\n },\n ...this.props.jobMatches,\n ];\n\n jobMatches\n .filter((it) => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n jobMatch.futureSelected = false;\n jobMatch.disabled = false;\n\n if (selectedCurrentJob && jobMatch.id == selectedCurrentJob.id) {\n jobMatch.currentSelected = true;\n }\n\n if (selectedFutureJob && jobMatch.id == selectedFutureJob.id) {\n jobMatch.futureSelected = true;\n }\n });\n\n jobMatches.forEach((it) => {\n it.jobTitleSort = it.id == \"None\" ? \" \" + it.jobTitle : it.jobTitle;\n });\n\n this.setState({ jobMatches: jobMatches.sort((a, b) => a.jobTitleSort > b.jobTitleSort) });\n }\n }\n\n openEditJob = (mode) => {\n const { jobMatches } = this.state;\n let selectedCurrentJob = this.props.currentJob;\n let selectedFutureJob = this.props.futureJob;\n\n jobMatches\n //.filter(it => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n\n if (selectedCurrentJob && jobMatch.id == selectedCurrentJob.id) {\n jobMatch.currentSelected = true;\n } else if (!selectedCurrentJob && jobMatch.id == \"None\") {\n jobMatch.currentSelected = true;\n }\n });\n\n jobMatches.forEach((jobMatch) => {\n jobMatch.futureSelected = false;\n\n if (selectedFutureJob && jobMatch.id == selectedFutureJob.id) {\n jobMatch.futureSelected = true;\n } else if (!selectedFutureJob && jobMatch.id == \"None\") {\n jobMatch.futureSelected = true;\n }\n });\n\n if (!selectedCurrentJob) {\n selectedCurrentJob = jobMatches.find((it) => it.id == \"None\");\n }\n\n if (!selectedFutureJob) {\n selectedFutureJob = jobMatches.find((it) => it.id == \"None\");\n }\n\n this.setState({\n editJob: true,\n selectedCurrentJob,\n selectedFutureJob,\n jobMatches,\n byPassFutureRequirementCheck: false,\n mode: mode,\n });\n };\n\n togleEditJob = () => {\n const { editJob, jobLoading } = this.state;\n if (!jobLoading) {\n this.setState({ editJob: !editJob });\n }\n };\n\n changeSelectedCurrentJob = (row) => {\n const { jobMatches } = this.state;\n\n jobMatches\n //.filter(it => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n\n if (jobMatch.id == row.id) {\n jobMatch.currentSelected = true;\n }\n });\n\n this.setState({ selectedCurrentJob: row, jobMatches });\n };\n\n changeSelectedFutureJob = (row) => {\n const { jobMatches } = this.state;\n\n jobMatches.forEach((jobMatch) => {\n jobMatch.futureSelected = false;\n\n if (jobMatch.id == row.id) {\n jobMatch.futureSelected = true;\n }\n });\n\n this.setState({ selectedFutureJob: row, jobMatches });\n };\n\n componentDidUpdate(prevProps) {\n const { selectedCurrentJob, selectedFutureJob } = this.state;\n\n if (prevProps.jobMatches !== this.props.jobMatches) {\n const propJobMatches = this.props.jobMatches.filter((it) => it.jobType != \"Proposed\");\n\n const jobMatches = [\n {\n id: \"None\",\n jobTitle: \"None\",\n currentSelected: false,\n futureSelected: !selectedFutureJob,\n },\n ...propJobMatches.sort((a, b) => a.jobTitle > b.jobTitle),\n ];\n\n jobMatches\n .filter((it) => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n jobMatch.futureSelected = false;\n jobMatch.disabled = false;\n\n if (selectedCurrentJob && jobMatch.id == selectedCurrentJob.id) {\n jobMatch.currentSelected = true;\n }\n\n if (selectedFutureJob && jobMatch.id == selectedFutureJob.id) {\n jobMatch.futureSelected = true;\n }\n });\n\n jobMatches.forEach((it) => {\n it.jobTitleSort = it.id == \"None\" ? \" \" + it.jobTitle : it.jobTitle;\n });\n\n this.setState({ jobMatches: jobMatches.sort((a, b) => a.jobTitleSort > b.jobTitleSort) });\n }\n\n if (prevProps.forceOpenEditJob !== this.props.forceOpenEditJob) {\n if (this.props.forceOpenEditJob) {\n this.openEditJob();\n }\n }\n }\n\n handleSaveEditJobClick = () => {\n const { currentJob, futureJob } = this.props;\n const { selectedCurrentJob, selectedFutureJob, byPassFutureRequirementCheck } = this.state;\n\n const data = {\n oldCurrentJobMatchId: currentJob ? currentJob.id : null,\n newCurrentJobMatchId: selectedCurrentJob ? selectedCurrentJob.id : null,\n oldFutureJobMatchId: futureJob ? futureJob.id : null,\n newFutureJobMatchId: selectedFutureJob ? selectedFutureJob.id : null,\n managedPeopleEmail: this.props.managedPeople ? this.props.managedPeople.personB.email : null,\n };\n\n if (data.oldFutureJobMatchId && data.oldFutureJobMatchId != data.newFutureJobMatchId && byPassFutureRequirementCheck == false) {\n this.setState({ showFutureRequirementCheckDialog: true });\n } else {\n this.setState({ jobUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onJob.updateManagedPeopleJobMatches(data) : this.props.onJob.updateMyJobMatches(data)).then(() => {\n if (!this.props.jobUpdating) {\n if (this.props.jobError) {\n this.props.generateAlert(\"danger\", this.props.jobError);\n }\n }\n\n if (this.props.jobMatchesUpdated) {\n this.setState({ editJob: false });\n this.props.handleJobMatchesUpdated();\n }\n\n this.setState({ jobUpdating: this.props.jobUpdating });\n });\n }\n };\n\n handleSearchByJobName = (event) => {\n const { selectedCurrentJob, selectedFutureJob } = this.state;\n const { name, value } = event.target;\n\n const jobMatches = [\n {\n id: \"None\",\n jobTitle: \"None\",\n currentSelected: false,\n futureSelected: !selectedFutureJob,\n },\n ...this.props.jobMatches,\n ];\n\n jobMatches\n .filter((it) => it.id != \"None\")\n .forEach((jobMatch) => {\n jobMatch.currentSelected = false;\n jobMatch.futureSelected = false;\n jobMatch.disabled = false;\n\n if (selectedCurrentJob && jobMatch.id == selectedCurrentJob.id) {\n jobMatch.currentSelected = true;\n }\n\n if (selectedFutureJob && jobMatch.id == selectedFutureJob.id) {\n jobMatch.futureSelected = true;\n }\n });\n\n jobMatches.forEach((it) => {\n it.jobTitleSort = it.id == \"None\" ? \" \" + it.jobTitle : it.jobTitle;\n });\n\n this.setState({ searchJobName: value, jobMatches: jobMatches.sort((a, b) => a.jobTitleSort > b.jobTitleSort).filter((it) => it.jobTitle.toLowerCase().includes(value.toLowerCase())) });\n };\n\n handleEnquireVacancy = (selectedJobMatch) => {\n this.setState({ editJob: false, showJobVacanciesConfirmation: true, jobVacancyEnquireyComment: \"\", selectedJobMatch });\n };\n\n togleModalJobVacancyEnquiry = () => {\n this.setState({ showJobVacanciesConfirmation: !this.state.showJobVacanciesConfirmation, editJob: true });\n };\n\n handleConfirmJobVacancyEnquiry = () => {\n const { selectedJobMatch, jobVacancyEnquireyComment, sendSelfAssessedProfileOnVacancy, sendEndorsedProfileOnVacancy } = this.state;\n this.setState({ jobUpdating: true });\n this.props.onJob.enquireJobVacancy(selectedJobMatch.jobId, jobVacancyEnquireyComment, sendSelfAssessedProfileOnVacancy, sendEndorsedProfileOnVacancy).then(() => {\n if (!this.props.jobUpdating) {\n if (this.props.jobError) {\n this.props.generateAlert(\"danger\", this.props.jobError);\n } else {\n this.setState({ showJobVacanciesConfirmation: false, sendSelfAssessedProfileOnVacancy: false, sendEndorsedProfileOnVacancy: false });\n this.props.generateAlert(\"success\", \"Job vacancy enquiry sent\");\n }\n }\n this.setState({ jobUpdating: this.props.jobUpdating });\n });\n };\n\n handleUpdateJobVacancyEnquireyCommentChange = () => {\n const { value } = event.target;\n\n this.setState({\n jobVacancyEnquireyComment: value,\n });\n };\n\n renderModalJobVacancyEnquiry = () => {\n const { profileTypes } = this.props;\n const { jobUpdating, selectedJobMatch } = this.state;\n return (\n \n \n \n \n \n {this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"VacanciesSkillRequirementDialogTitle\", \"You are about to send an enquiry to {s1}, {s2} regarding {s3}.\"),\n selectedJobMatch ? selectedJobMatch.jobVacancyOwner : \"\",\n selectedJobMatch ? selectedJobMatch.jobVacancyOwnerEmail : \"\",\n selectedJobMatch ? selectedJobMatch.jobTitle : \"\"\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {profileTypes && profileTypes.includes(\"Self Assessed\") && (\n \n \n \n \n \n \n \n )}\n {profileTypes && profileTypes.includes(\"Endorsed\") && (\n \n \n \n \n \n \n \n )}\n \n \n \n \n {\" \"}\n \n \n \n );\n };\n\n renderModalEditJob = () => {\n const { currentJob, futureJob, currAssessment, account, contentTranslations } = this.props;\n const { selectedCurrentJob, selectedFutureJob, jobMatches, mode, jobUpdating } = this.state;\n\n const changeSelectedCurrentJob = this.changeSelectedCurrentJob;\n const changeSelectedFutureJob = this.changeSelectedFutureJob;\n const handleEnquireVacancy = this.handleEnquireVacancy;\n const contentTranslator = this.contentTranslator;\n\n jobMatches.forEach((it) => {\n it.jobTitleSort = it.id == \"None\" ? \" \" + it.jobTitle : it.jobTitle;\n });\n\n const columns = [\n {\n id: \"jobTitleSort\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"AssignSkillRequirementFieldJobName\", \"Name\"),\n selector: (row) => row.jobTitleSort,\n sortable: true,\n width: !(account && account.latestEndorsedProfileVersion) ? \"64%\" : \"52%\",\n format: function (row, index) {\n return row.id != \"None\" ? (\n \n {row.jobTitle}\n \n ) : (\n row.jobTitle\n );\n },\n },\n {\n id: \"jobVacancy\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"AssignSkillRequirementFieldVacancies\", \"Vacancies\"),\n selector: (row) => row.jobVacancy,\n sortable: true,\n width: \"12%\",\n center: true,\n omit: mode != \"Vacancy\",\n },\n {\n id: \"matchPercentValidated\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"AssignSkillRequirementFieldEndorsed\", \"Endorsed\"),\n selector: (row) => row.matchPercentValidated,\n sortable: true,\n width: \"12%\",\n center: true,\n format: function (row, index) {\n return row.matchPercentValidated != undefined ? `${(Math.round(row.matchPercentValidated * 100) / 100).toFixed(2)}%` : \"\";\n },\n omit: !(account && account.latestEndorsedProfileVersion),\n },\n {\n id: \"matchPercentSelf\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"AssignSkillRequirementFieldSelfAssessed\", \"Self Assessed\"),\n selector: (row) => row.matchPercentSelf,\n sortable: true,\n width: \"12%\",\n center: true,\n format: function (row, index) {\n return row.matchPercentSelf != undefined ? `${(Math.round(row.matchPercentSelf * 100) / 100).toFixed(2)}%` : \"\";\n },\n },\n {\n id: \"currentSelected\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\"),\n selector: (row) => row.currentSelected,\n sortable: true,\n width: \"12%\",\n center: true,\n format: function (row, index) {\n if ((currAssessment && currAssessment.hasCurrentJobLocked == false) || row.currentSelected == true) {\n return (\n \n \n \n );\n } else {\n return \"\";\n }\n },\n omit: mode != \"Assign\",\n },\n {\n id: \"futureSelected\",\n name: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\"),\n selector: (row) => row.futureSelected,\n sortable: true,\n width: \"12%\",\n center: true,\n format: function (row, index) {\n if ((currAssessment && currAssessment.hasFutureJobLocked == false) || row.futureSelected == true) {\n return (\n \n \n \n );\n } else {\n return \"\";\n }\n },\n omit: mode != \"Assign\",\n },\n {\n id: \"jobShowAsVacancy\",\n name: \"Enquire\",\n selector: (row) => row.jobShowAsVacancy,\n sortable: false,\n width: \"12%\",\n center: true,\n format: function (row, index) {\n return (\n \n );\n },\n omit: mode != \"Vacancy\",\n },\n ];\n\n return (\n \n \n {mode == \"Assign\" ? : }\n \n \n \n \n \n {mode == \"Assign\" ? (\n NOTE: - The list will often include your job or role. But could also include SFIA Views and/or industry profiles. – DO NOT assign the same for both Current & Future.\"\n />\n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n it.jobShowAsVacancy && it.jobVacancy >= 1)} fixedHeader={true} fixedHeaderScrollHeight=\"400px\" progressPending={this.state.jobLoading}>\n \n \n \n {mode == \"Assign\" && (\n \n {\" \"}\n this.handleSaveEditJobClick()}\n disabled={\n this.state.jobLoading ||\n jobUpdating ||\n (currentJob && selectedCurrentJob && currentJob.id == selectedCurrentJob.id && futureJob && selectedFutureJob && futureJob.id == selectedFutureJob.id\n ? true\n : selectedFutureJob && selectedCurrentJob.id == selectedFutureJob.id && (selectedCurrentJob.id != \"None\" || selectedFutureJob.id != \"None\"))\n }\n >\n {!jobUpdating ? (\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"AssignSkillRequirementButtonSave\", \"Save changes\")\n ) : (\n \n \n \n )}\n \n \n )}\n \n \n );\n };\n\n togleFutureRequirementCheckDialog = () => {\n const showFutureRequirementCheckDialog = this.state.showFutureRequirementCheckDialog;\n this.setState({ showFutureRequirementCheckDialog: !showFutureRequirementCheckDialog });\n };\n\n handleConfirmFutureRequirementCheck = () => {\n this.setState(\n {\n showFutureRequirementCheckDialog: false,\n byPassFutureRequirementCheck: true,\n },\n () => {\n this.handleSaveEditJobClick();\n }\n );\n };\n\n renderFutureRequirementCheckDialog = () => {\n const { showFutureRequirementCheckDialog } = this.state;\n\n return (\n \n \n \n \n \n
\n \n \n \n You can click here for details.
Note: You may need to use the Show More Requirement Detail button.\"\n ),\n this.state.selectedFutureJob ? `openFutureRequirementDetail(\"${window.location.pathname.toLowerCase().includes(\"sfiaprofile/\") ? \"\" : \"SfiaProfile/\"}JobProfile/${this.state.selectedFutureJob.jobId}\");` : \"openFutureRequirementDetail(null);\"\n ),\n }}\n >\n
\n \n
\n
\n
\n \n {\n this.handleConfirmFutureRequirementCheck();\n }}\n >\n \n \n \n \n
\n );\n };\n\n handleSendSelfAssessedProfileOnVacancyCheckedChanged = () => {\n const sendSelfAssessedProfileOnVacancy = this.state.sendSelfAssessedProfileOnVacancy;\n this.setState({ sendSelfAssessedProfileOnVacancy: !sendSelfAssessedProfileOnVacancy });\n };\n\n handleSendEndorsedProfileOnVacancyCheckedChanged = () => {\n const sendEndorsedProfileOnVacancy = this.state.sendEndorsedProfileOnVacancy;\n this.setState({ sendEndorsedProfileOnVacancy: !sendEndorsedProfileOnVacancy });\n };\n\n render() {\n const editJob = this.state.editJob;\n const { isSelfAssessOk, currentJob, futureJob, isEndorseOk } = this.props;\n const { jobMatches } = this.state;\n\n return (\n \n {editJob && this.renderModalEditJob()}\n {this.renderFutureRequirementCheckDialog()}\n {this.renderModalJobVacancyEnquiry()}\n \n \n \n \n \n \n {(!currentJob || (currentJob && currentJob.isEditable) || (futureJob && futureJob.isEditable)) && (!this.props.managedPeople || (this.props.managedPeople && this.props.managedPeople.relationshipType == \"Line Manager\" ? true : false)) && (\n \n {this.props.containerConfig && this.props.containerConfig.internalJobMarket && !this.props.managedPeople && jobMatches && jobMatches.find((it) => it.jobShowAsVacancy == true && it.jobVacancy >= 1) && (\n \n \n   \n \n )}\n \n \n \n \n \n )}\n \n
\n \n \n \n \n \n \n \n \n \n {currentJob ? this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\") + \" - \" + currentJob.jobTitle : this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\")}\n \n {currentJob ? (\n \n \n \n \n \n

{`${(Math.round(currentJob.matchPercentSelf * 100) / 100).toFixed(2)}%`}

\n \n
\n ) : (\n \n \n \n )}\n
\n \n \n {futureJob ? this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\") + \" - \" + futureJob.jobTitle : this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\")}\n \n {futureJob ? (\n \n \n \n \n \n

{`${(Math.round(futureJob.matchPercentSelf * 100) / 100).toFixed(2)}%`}

\n \n
\n ) : (\n \n \n \n )}\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n {currentJob ? this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\") + \" - \" + currentJob.jobTitle : this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\")}\n \n {currentJob ? (\n \n \n \n \n \n

{`${(Math.round(currentJob.matchPercentValidated * 100) / 100).toFixed(2)}%`}

\n \n
\n ) : (\n \n \n \n )}\n
\n \n \n {futureJob ? this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\") + \" - \" + futureJob.jobTitle : this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\")}\n \n {futureJob ? (\n \n \n \n \n \n

{`${(Math.round(futureJob.matchPercentValidated * 100) / 100).toFixed(2)}%`}

\n \n
\n ) : (\n \n \n \n )}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n jobLoading: state.job.loading,\n jobUpdating: state.job.isUpdating,\n jobError: state.job.error,\n jobMatchesUpdated: state.job.jobMatchesUpdated,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n\n currAssessment: state.config.currAssessment,\n containerConfig: state.config.containerConfig,\n account: state.person.account,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SkillProgress);\n","import * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as companyActions from \"../../store/actions/companyAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport changeInput from \"../../utils/changeInput\";\nimport { generateRandomString, parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport { faCircle as farCircle } from \"@fortawesome/free-regular-svg-icons\";\nimport { faAdjust, faCheck, faCircle, faExclamationCircle, faInfoCircle, faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { connect } from \"react-redux\";\nimport Combobox from \"react-widgets/Combobox\";\nimport { Button, ButtonGroup, Col, Container, CustomInput, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst containerStyle = {\n fontSize: \"11px\",\n fontFamily: \"IBMPlexSans-Light\",\n};\n\nconst titleStyle = {\n fontSize: \"13px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nclass SkillStep extends React.Component {\n static displayName = SkillStep.name;\n\n constructor(props) {\n super(props);\n this.state = {\n optionsStatus: [\n { label: \"Todo\", value: \"ToDo\" },\n { label: \"In Progress\", value: \"InProgress\" },\n { label: \"Done\", value: \"Done - self verified\" },\n ],\n loading: true,\n loadingFull: false,\n actions: [],\n poppedUpAction: null,\n showActionPlanDetail: false,\n optionsActionSkills: [],\n showActionPlanEdit: false,\n editedAction: null,\n form: {\n id: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n status: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n actionType: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n name: {\n validation: {\n required: true,\n },\n value: null,\n valid: false,\n isValidFormat: false,\n touched: false,\n },\n targetCompletionOn: {\n validation: {\n required: this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false,\n isDateTime: true,\n },\n value: null,\n valid: !(this.props.containerConfig && this.props.containerConfig ? this.props.containerConfig.actionTargetCompletionDateIsMandatory : false),\n isValidFormat: true,\n touched: false,\n },\n description: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n link: {\n validation: {\n required: false,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n duration: {\n validation: {\n required: false,\n isNumeric: true,\n },\n value: null,\n valid: true,\n isValidFormat: true,\n touched: false,\n },\n },\n isFormValid: false,\n selectedJob: null,\n optionsJob: [],\n jobLorProfiles: [],\n jobSkillProfiles: [],\n selectedSkills: [],\n pickedOtherSkills: [],\n selectedOtherSkill: \"\",\n selectedOtherSkills: [],\n actionPlanUpdating: false,\n };\n\n this.initData = this.initData.bind(this);\n this.handleSkillCheckedChange = this.handleSkillCheckedChange.bind(this);\n this.handleChangeOtherSkill = this.handleChangeOtherSkill.bind(this);\n this.handleAddOtherSkill = this.handleAddOtherSkill.bind(this);\n this.handleOtherSkillCheckedChange = this.handleOtherSkillCheckedChange.bind(this);\n this.handleSubmitEdit = this.handleSubmitEdit.bind(this);\n this.handleSubmitDelete = this.handleSubmitDelete.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n this.generateRandomString = generateRandomString.bind(this);\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.newActionPlanAdded !== this.props.newActionPlanAdded && this.props.newActionPlanAdded) {\n this.refreshActions();\n }\n }\n\n refreshActions = () => {\n Promise.all([this.props.managedPeople ? this.props.onActionPlan.getManagedPeopleActions(this.props.managedPeople.personB.email) : this.props.onActionPlan.getMyActions()])\n .then(() => {\n if (!this.props.loading) {\n if (this.props.error) {\n this.setState({ loading: false });\n } else {\n const actions = this.props.actions;\n this.setState({ actions });\n\n if (actions && actions.length > 0) {\n let selectedJob = null;\n\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n if (currentJob) {\n selectedJob = currentJob;\n } else if (futureJob) {\n selectedJob = futureJob;\n }\n\n const actionSkills = this.props.actionSkills;\n\n let categories = this.props.categories;\n let jobLorProfiles = this.props.jobLorProfiles;\n let jobSkillProfiles = this.props.jobSkillProfiles;\n\n const lorProfiles = this.props.lorProfiles;\n const skillProfiles = this.props.skillProfiles;\n\n categories = categories.map((category) => {\n return {\n id: category.id,\n name: category.name,\n description: category.description,\n colour: category.colour,\n sfiaVersion: category.sfiaVersion,\n subCategories: category.subCategories.map((subCategory) => {\n return {\n id: subCategory.id,\n name: subCategory.name,\n description: subCategory.description,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n skills: subCategory.skills.map((skill) => {\n let skillNameShown = false;\n\n return {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n levels: skill.levels.map((level) => {\n const skillProfile = skillProfiles.find((x) => x.skillCode == skill.skillsCode && x.level == level.level);\n const jobSkillProfile = selectedJob ? jobSkillProfiles.find((x) => x.jobId == selectedJob.id && x.skillCode == skill.skillsCode && x.level == level.level) : null;\n\n if (jobSkillProfile && skillProfile) {\n if (skillProfile.numericVal == 1 || skillProfile.stringVal == \"M\") {\n jobSkillProfile.actioned = true;\n }\n }\n\n const action = actions.find((actions) => actions.skills.some((it) => it.code == skill.skillsCode && it.level == level.level));\n\n level = {\n skillNameShown: false,\n show: false,\n id: level.id,\n level: level.level,\n description: level.description,\n skillProfile: skillProfile,\n jobSkillProfile: jobSkillProfile,\n action: action,\n };\n\n if (!skillNameShown) {\n if ((level.skillProfile && level.jobSkillProfile) || (!level.skillProfile && level.jobSkillProfile) || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n }\n\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile)) {\n level.show = true;\n }\n\n return level;\n }),\n };\n }),\n };\n }),\n };\n });\n\n jobLorProfiles.map((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level));\n if (lorProfile || plan) {\n jobLorProfile.actioned = true;\n }\n });\n\n jobSkillProfiles.map((jobSkillProfile) => {\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level));\n if (plan) {\n jobSkillProfile.actioned = true;\n }\n });\n\n actionSkills.forEach((actionSkill) => {\n actionSkill.skills.forEach((skill) => {\n if (\n actions.filter((x) => x.skills.some((y) => y.code == skill.skillCode && y.level == skill.skillLevel)).length > 0 ||\n jobLorProfiles.filter((it) => it.lorCode == skill.skillCode && it.level == skill.skillLevel).length > 0 ||\n jobSkillProfiles.filter((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel).length > 0\n ) {\n skill.actioned = true;\n }\n });\n });\n\n if (selectedJob) {\n jobLorProfiles = jobLorProfiles ? jobLorProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n jobSkillProfiles = jobSkillProfiles ? jobSkillProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n }\n\n this.setState({\n categories,\n optionsActionTypes: this.props.actionTypes,\n optionsActionSkills: actionSkills,\n jobLorProfiles,\n jobSkillProfiles,\n lorProfiles,\n skillProfiles,\n });\n }\n }\n }\n\n this.setState({ loading: this.props.loading });\n })\n .catch((err) => {\n console.log(\"err\", err);\n this.setState({ loading: false });\n });\n };\n\n initData() {\n this.setState({ pickedOtherSkills: [], selectedOtherSkills: [], loadingFull: true });\n\n Promise.all([\n this.props.onActionPlan.getActionTypes(),\n this.props.onActionPlan.getActionSkills(),\n this.props.onCompany.getSelectedProviderCompanies(),\n this.props.managedPeople ? this.props.onActionPlan.getManagedPeopleActions(this.props.managedPeople.personB.email) : this.props.onActionPlan.getMyActions(),\n ])\n .then(() => {\n if (!this.props.loading && !this.props.companyLoading) {\n if (this.props.error) {\n this.setState({ loading: false });\n } else {\n const actions = this.props.actions;\n this.setState({ actions });\n\n if (actions && actions.length > 0) {\n Promise.all([\n //this.props.managedPeople ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email) : this.props.onJob.getMyJobMatches(),\n this.props.managedPeople ? this.props.onJob.getManagedPeopleJobLorProfiles(this.props.managedPeople.personB.email) : this.props.onJob.getJobLorProfiles(null),\n this.props.managedPeople ? this.props.onJob.getManagedPeopleJobSkillProfiles(this.props.managedPeople.personB.email) : this.props.onJob.getJobSkillProfiles(null),\n ])\n .then(() => {\n if (\n !this.props.jobLoading\n //&& !this.props.jobMatchesLoading\n ) {\n let optionsJob = [];\n let selectedJob = null;\n\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n if (currentJob) {\n optionsJob.push({\n value: currentJob.jobType + \" - \" + currentJob.jobTitle,\n label: currentJob.jobType + \" - \" + currentJob.jobTitle,\n type: currentJob.jobType,\n id: currentJob.jobId,\n });\n }\n\n if (futureJob) {\n optionsJob.push({\n value: futureJob.jobType + \" - \" + futureJob.jobTitle,\n label: futureJob.jobType + \" - \" + futureJob.jobTitle,\n type: futureJob.jobType,\n id: futureJob.jobId,\n });\n }\n\n if (optionsJob.length > 0) {\n selectedJob = optionsJob[0];\n }\n\n const actionSkills = this.props.actionSkills;\n\n let categories = this.props.categories;\n\n let jobLorProfiles = this.props.jobLorProfiles; // ? this.props.jobLorProfiles.filter(x => x.jobId == selectedJob.id) : [];\n let jobSkillProfiles = this.props.jobSkillProfiles; // ? this.props.jobSkillProfiles.filter(x => x.jobId == selectedJob.id) : [];\n\n Promise.all([\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyLorProfile(null, null, null),\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMySkillProfile(null, null, null),\n ])\n .then(() => {\n if (!this.props.loadingProfile && !this.props.loadingLor) {\n if (this.props.errorLor || this.props.categoryError) {\n this.setState({ loading: false });\n } else {\n const lorProfiles = this.props.lorProfiles;\n const skillProfiles = this.props.skillProfiles;\n\n categories = categories.map((category) => {\n return {\n id: category.id,\n name: category.name,\n description: category.description,\n colour: category.colour,\n sfiaVersion: category.sfiaVersion,\n subCategories: category.subCategories.map((subCategory) => {\n return {\n id: subCategory.id,\n name: subCategory.name,\n description: subCategory.description,\n colour: subCategory.colour,\n skillColour: subCategory.skillColour,\n skills: subCategory.skills.map((skill) => {\n let skillNameShown = false;\n\n return {\n id: skill.id,\n name: skill.name,\n skillsCode: skill.skillsCode,\n description: skill.description,\n levels: skill.levels.map((level) => {\n const skillProfile = skillProfiles.find((x) => x.skillCode == skill.skillsCode && x.level == level.level);\n const jobSkillProfile = selectedJob ? jobSkillProfiles.find((x) => x.jobId == selectedJob.id && x.skillCode == skill.skillsCode && x.level == level.level) : null;\n\n if (jobSkillProfile && skillProfile) {\n if (skillProfile.numericVal == 1 || skillProfile.stringVal == \"M\") {\n jobSkillProfile.actioned = true;\n }\n }\n\n const action = actions.find((actions) => actions.skills.some((it) => it.code == skill.skillsCode && it.level == level.level));\n\n level = {\n skillNameShown: false,\n show: false,\n id: level.id,\n level: level.level,\n description: level.description,\n skillProfile: skillProfile,\n jobSkillProfile: jobSkillProfile,\n action: action,\n };\n\n if (!skillNameShown) {\n if ((level.skillProfile && level.jobSkillProfile) || (!level.skillProfile && level.jobSkillProfile) || this.state.showAllSkill) {\n level.skillNameShown = true;\n skillNameShown = true;\n }\n }\n\n if ((level.skillProfile && level.jobSkillProfile && level.skillProfile.numericVal < 1) || (!level.skillProfile && level.jobSkillProfile)) {\n level.show = true;\n }\n\n return level;\n }),\n };\n }),\n };\n }),\n };\n });\n\n jobLorProfiles.map((jobLorProfile) => {\n const lorProfile = lorProfiles.find((it) => it.lorCode == jobLorProfile.lorCode && it.level >= jobLorProfile.level);\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobLorProfile.lorCode && skill.level >= jobLorProfile.level));\n if (lorProfile || plan) {\n jobLorProfile.actioned = true;\n }\n });\n\n jobSkillProfiles.map((jobSkillProfile) => {\n const plan = actions.find((it) => it.skills.some((skill) => skill.code == jobSkillProfile.skillCode && skill.level == jobSkillProfile.level));\n if (plan) {\n jobSkillProfile.actioned = true;\n }\n });\n\n actionSkills.forEach((actionSkill) => {\n actionSkill.skills.forEach((skill) => {\n if (\n actions.filter((x) => x.skills.some((y) => y.code == skill.skillCode && y.level == skill.skillLevel)).length > 0 ||\n jobLorProfiles.filter((it) => it.lorCode == skill.skillCode && it.level == skill.skillLevel).length > 0 ||\n jobSkillProfiles.filter((it) => it.skillCode == skill.skillCode && it.level == skill.skillLevel).length > 0\n ) {\n skill.actioned = true;\n }\n });\n });\n\n if (selectedJob) {\n jobLorProfiles = jobLorProfiles ? jobLorProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n jobSkillProfiles = jobSkillProfiles ? jobSkillProfiles.filter((x) => x.jobId == selectedJob.id) : [];\n }\n\n this.setState({\n categories,\n optionsActionTypes: this.props.actionTypes,\n optionsActionSkills: actionSkills,\n jobLorProfiles,\n jobSkillProfiles,\n lorProfiles,\n skillProfiles,\n });\n }\n }\n\n this.setState({\n loadingFull: this.props.loadingProfile || this.props.loadingLor,\n });\n })\n .catch((err) => {\n console.log(\"err\", err);\n this.setState({ loadingFull: false });\n });\n }\n })\n .catch((err) => {\n console.log(\"err\", err);\n this.setState({ loading: false });\n });\n }\n }\n }\n\n this.setState({\n loading: this.props.loading || this.props.companyLoading,\n });\n })\n .catch((err) => {\n console.log(\"err\", err);\n this.setState({ loading: false });\n });\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n handleChange = (event) => {\n const { name, value } = event.target;\n\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n handleChangeDate = (name, value) => {\n const updateState = changeInput(this.state.form, name, value);\n\n this.setState({\n form: updateState.form,\n isFormValid: updateState.valid,\n });\n };\n\n renderEmptyAction(x) {\n let rows = [];\n for (var i = 0; i < x; i++) {\n rows.push(\n \n \n \n \n \n

\n \n

\n \n
\n );\n }\n return {rows};\n }\n\n openActionDetail = (action) => {\n this.setState({ poppedUpAction: action, showActionPlanDetail: true });\n };\n\n togleActionPlanDetailModal = () => {\n const showActionPlanDetail = this.state.showActionPlanDetail;\n this.setState({ showActionPlanDetail: !showActionPlanDetail });\n };\n\n handleHideAction = (action) => {\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.updateHideAction(action.id).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n //this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError);\n } else {\n this.setState({ showActionPlanEdit: false });\n this.togleActionPlanDetailModal();\n this.initData();\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n };\n\n modalActionPlanDetail() {\n const { poppedUpAction } = this.state;\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n {!this.props.managedPeople && (\n {\n this.handleHideAction(poppedUpAction);\n }}\n disabled={this.state.loadingFull || this.state.actionPlanUpdating}\n >\n Hide\n \n )}\n
\n
\n {(!this.props.managedPeople || (this.props.managedPeople && this.props.managedPeople.relationshipType == \"Line Manager\" ? true : false)) && (\n {\n this.togleActionPlanDetailModal();\n this.openActionPlanEditModal(poppedUpAction);\n }}\n disabled={this.state.loadingFull || this.state.actionPlanUpdating}\n >\n \n \n )}\n  \n \n
\n
\n
\n
\n );\n }\n\n openActionPlanEditModal = (action) => {\n let form = this.state.form;\n\n form.id.value = action.id;\n form.id.valid = true;\n form.id.isValidFormat = true;\n\n form.status.value = action.status;\n form.status.valid = true;\n form.status.isValidFormat = true;\n\n form.actionType.value = action.actionType;\n form.actionType.valid = true;\n form.actionType.isValidFormat = true;\n\n form.name.value = action.name;\n form.name.valid = true;\n form.name.isValidFormat = true;\n\n form.targetCompletionOn.value = action.targetCompletionOn;\n form.targetCompletionOn.valid = form.targetCompletionOn.validation.required ? (action.targetCompletionOn ? true : false) : true;\n form.targetCompletionOn.isValidFormat = form.targetCompletionOn.validation.required ? (action.targetCompletionOn ? true : false) : true;\n\n form.description.value = action.description;\n form.link.value = action.link;\n form.duration.value = action.duration;\n\n this.setState({\n editedAction: action,\n showActionPlanEdit: true,\n form,\n isFormValid: form.targetCompletionOn.valid,\n selectedSkills: action.skills.map((skill) => {\n return {\n id: skill.id,\n skillName: skill.name,\n skillCode: skill.code,\n skillLevel: skill.level,\n skillType: skill.type,\n };\n }),\n });\n };\n\n togleActionPlanEditModal = () => {\n const showActionPlanEdit = this.state.showActionPlanEdit;\n this.setState({ showActionPlanEdit: !showActionPlanEdit });\n };\n\n modalEditActionPlan() {\n const { form, editedAction, optionsActionTypes, optionsActionSkills, selectedSkills, pickedOtherSkills, selectedOtherSkills, jobLorProfiles, jobSkillProfiles } = this.state;\n const { lors, categories, showHiddenSkills } = this.props;\n\n const availableLorCodes = lors\n ? lors\n .filter((it) => !it.isHidden)\n .flatMap((lor, index) => {\n return lor.lorCode;\n })\n : [];\n\n const availableSkillCodes = categories\n ? categories.flatMap((category, index) => {\n return category.subCategories.flatMap((subCategory, index) => {\n return subCategory.skills\n .filter((it) => !it.isHidden)\n .flatMap((skill, index) => {\n return skill.skillsCode;\n });\n });\n })\n : [];\n\n let optionsStatus = [\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusTodo\", \"Todo\"), value: \"ToDo\" },\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusInProgress\", \"In Progress\"), value: \"InProgress\" },\n { label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusDone\", \"Done\"), value: \"Done - self verified\" },\n ];\n\n if (editedAction && editedAction.interventionId && editedAction.actionType == \"Accredited Badge Issuing Action\" && editedAction.status == \"IssueBadge\" && !optionsStatus.find((it) => it.value == \"IssueBadge\")) {\n optionsStatus.push({ label: this.contentTranslator(this.props.contentTranslations, \"SfiaPlan\", \"SfiaPlanStatusIssueBadge\", \"Issue Badge\"), value: \"IssueBadge\" });\n }\n\n let editedOptionsActionTypes = optionsActionTypes ? [...optionsActionTypes] : [];\n\n if (editedAction && !editedOptionsActionTypes.find((it) => it.name == editedAction.actionType)) {\n editedOptionsActionTypes.push({\n name: editedAction.actionType,\n });\n }\n\n let spreadedActionSkills = [];\n if (optionsActionSkills) {\n spreadedActionSkills = [].concat.apply(\n [],\n optionsActionSkills\n .filter((it) => it.skills.some((skill) => !skill.selected && !skill.actioned && (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(skill.skillCode)))))\n .map((it, groupIndex) => {\n return it.skills\n .filter((skill) => !skill.selected && !skill.actioned)\n .map((skill) => {\n return {\n groupIndex,\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLabel: skill.skillLabel,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n };\n });\n })\n );\n }\n\n return (\n \n \n \n \n \n {this.state.actionPlanUpdating ? (\n
\n \n
\n ) : (\n
\n \n \n \n \n this.handleChange({\n target: {\n name: \"status\",\n value: value.value,\n },\n })\n }\n data={optionsStatus}\n textField=\"label\"\n dataKey=\"value\"\n value={optionsStatus.find((it) => it.value == form.status.value)}\n defaultValue={optionsStatus.find((it) => it.value == form.status.value)}\n style={{ fontSize: \"1rem\", fontFamily: \"IBMPlexSans\" }}\n />\n \n \n \n \n \n {editedOptionsActionTypes && (\n \n this.handleChange({\n target: {\n name: \"actionType\",\n value: value.name,\n },\n })\n }\n value={editedOptionsActionTypes.find((it) => it.name == form.actionType.value)}\n data={editedOptionsActionTypes}\n textField=\"name\"\n dataKey=\"name\"\n defaultValue={editedOptionsActionTypes.find((it) => it.name == form.actionType.value)}\n style={{ fontSize: \"1rem\", fontFamily: \"IBMPlexSans\" }}\n readOnly={editedAction && editedAction.interventionId}\n />\n )}\n \n \n \n \n \n \n \n \n \n \n \n this.handleChangeDate(\"targetCompletionOn\", value)} className=\"form-control\" isClearable />\n {form && !form.targetCompletionOn.valid && Target date is mandatory}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {selectedSkills\n .filter((it) => ![...jobLorProfiles.map((it) => it.lorCode + it.level), ...jobSkillProfiles.map((it) => it.skillCode + it.level)].includes(it.skillCode + it.skillLevel))\n .map((selectedSkill, index) => {\n let tooltipDescription = \"\";\n if (selectedSkill.skillType == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == selectedSkill.skillName && it.skillsCode == selectedSkill.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == selectedSkill.skillLevel);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${selectedSkill.skillCode} ${selectedSkill.skillLevel} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == selectedSkill.skillCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == selectedSkill.skillLevel) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n \n {selectedSkill.skillCode}\n {selectedSkill.skillLevel}\n {\" - \"}\n {selectedSkill.skillType == \"Skill\"\n ? this.contentTranslator(this.props.contentTranslations, \"Skills\", selectedSkill.skillName, selectedSkill.skillName)\n : this.contentTranslator(this.props.contentTranslations, \"Lors\", selectedSkill.skillName, selectedSkill.skillName)}{\" \"}\n {selectedSkill.skillLevel}\n
\n }\n onChange={() => this.handleSkillCheckedChange(selectedSkill.skillName, selectedSkill.skillCode, selectedSkill.skillLevel, selectedSkill.skillType)}\n inline\n disabled={editedAction && editedAction.interventionId}\n />\n \n \n
\n );\n })}\n {selectedSkills.find((it) => ![...jobLorProfiles.map((it) => it.lorCode + it.level), ...jobSkillProfiles.map((it) => it.skillCode + it.level)].includes(it.skillCode + it.skillLevel)) &&
 
}\n {jobLorProfiles &&\n jobLorProfiles\n .filter((it) => (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))) && (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.lorCode && skill.skillLevel >= it.level)))\n .sort((a, b) => (a.lorCode + a.level > b.lorCode + b.level ? 1 : -1))\n .map((jobLorProfile, index) => {\n const lor = lors.find((it) => it.lorCode == jobLorProfile.lorCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == jobLorProfile.level) : null;\n\n return (\n \n
\n it.skillCode == jobLorProfile.lorCode && it.skillLevel == jobLorProfile.level && !it.removed)}\n label={\n
\n {jobLorProfile.lorCode}\n {jobLorProfile.level}\n {\" - \"}\n {this.contentTranslator(this.props.contentTranslations, \"Lors\", jobLorProfile.lor, jobLorProfile.lor)} {jobLorProfile.level}\n
\n }\n onChange={() => this.handleSkillCheckedChange(jobLorProfile.lor, jobLorProfile.lorCode, jobLorProfile.level, \"Lor\")}\n inline\n disabled={editedAction && editedAction.interventionId}\n />\n
\n \n {lorLevel && }\n \n
\n );\n })}\n {jobLorProfiles && jobLorProfiles.find((it) => (showHiddenSkills || (!showHiddenSkills && availableLorCodes.includes(it.lorCode))) && (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.lorCode && skill.skillLevel >= it.level))) && (\n
 
\n )}\n {jobSkillProfiles &&\n jobSkillProfiles\n .filter((it) => (showHiddenSkills || (!showHiddenSkills && availableSkillCodes.includes(it.skillCode))) && (!it.actioned || selectedSkills.some((skill) => skill.skillCode == it.skillCode && skill.skillLevel == it.level)))\n .sort((a, b) => (a.skillCode + a.level > b.skillCode + b.level ? 1 : -1))\n .map((jobSkillProfile, index) => {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == jobSkillProfile.skill && it.skillsCode == jobSkillProfile.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == jobSkillProfile.level);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n skillLevelDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${jobSkillProfile.skillCode} ${jobSkillProfile.level} Description`, skillLevelDescription);\n\n return (\n \n
\n it.skillCode == jobSkillProfile.skillCode && it.skillLevel == jobSkillProfile.level && !it.removed)}\n label={\n
\n {jobSkillProfile.skillCode}\n {jobSkillProfile.level}\n {\" - \"}\n {this.contentTranslator(this.props.contentTranslations, \"Skills\", jobSkillProfile.skill, jobSkillProfile.skill)} {jobSkillProfile.level}\n
\n }\n onChange={() => this.handleSkillCheckedChange(jobSkillProfile.skill, jobSkillProfile.skillCode, jobSkillProfile.level, \"Skill\")}\n inline\n disabled={editedAction && editedAction.interventionId}\n />\n
\n \n
\n );\n })}\n \n
\n {!(editedAction && editedAction.interventionId) && (\n \n \n \n \n {pickedOtherSkills && pickedOtherSkills.length > 0 && (\n \n {pickedOtherSkills.map((pickedSkill, index) => {\n let tooltipDescription = \"\";\n\n if (pickedSkill.skillType == \"Skill\") {\n const category = categories.find((it) => it.subCategories.some((subCategory) => subCategory.skills.some((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode)));\n const subCategory = category && category.subCategories.find((it) => it.skills.some((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode));\n const skill = subCategory && subCategory.skills.find((it) => it.name == pickedSkill.skillName && it.skillsCode == pickedSkill.skillCode);\n const skillLevel = skill && skill.levels.find((it) => it.level == pickedSkill.skillLevel);\n\n let skillLevelDescription = skillLevel ? skillLevel.description : \"\";\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"SkillLevels\", `${pickedSkill.skillCode} ${pickedSkill.skillLevel} Description`, skillLevelDescription);\n } else {\n const lor = lors.find((it) => it.lorCode == pickedSkill.skillCode);\n const lorLevel = lor ? lor.levels.find((x) => x.levelNumber == pickedSkill.skillLevel) : null;\n\n if (lorLevel) {\n tooltipDescription = this.contentTranslator(this.props.contentTranslations, \"LorLevels\", `${lor.name} ${lorLevel.levelName} Description`, lorLevel.description);\n }\n }\n\n return (\n \n
\n it.skillCode == pickedSkill.skillCode && it.skillLevel == pickedSkill.skillLevel)}\n label={\n
\n {pickedSkill.skillCode}\n {pickedSkill.skillLevel}\n {\" - \"}\n {pickedSkill.skillType == \"Skill\"\n ? this.contentTranslator(this.props.contentTranslations, \"Skills\", pickedSkill.skillName, pickedSkill.skillName)\n : this.contentTranslator(this.props.contentTranslations, \"Lors\", pickedSkill.skillName, pickedSkill.skillName)}{\" \"}\n {pickedSkill.skillLevel}\n
\n }\n onChange={() => this.handleOtherSkillCheckedChange(pickedSkill.skillName, pickedSkill.skillCode, pickedSkill.skillLevel, pickedSkill.skillType)}\n inline\n />\n
\n \n
\n );\n })}\n
\n \n )}\n
\n \n \n a.groupIndex - b.groupIndex)}\n onSelect={(value) =>\n this.handleChangeOtherSkill({\n target: {\n value: value.skillCode + \"-\" + value.skillLevel,\n },\n })\n }\n onChange={(value) => {\n value == \"\" &&\n this.handleChangeOtherSkill({\n target: {\n value: \"\",\n },\n });\n }}\n textField=\"skillLabel\"\n groupBy=\"skillName\"\n filter=\"contains\"\n placeholder={this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"OutstandingActionEditSelectSkillPlaceholder\", \"Select skill\")}\n autoSelectMatches={true}\n value={spreadedActionSkills.find((value) => value.skillCode + \"-\" + value.skillLevel == this.state.selectedOtherSkill)}\n style={{ fontSize: \"14px\", fontFamily: \"IBMPlexSans\", width: \"100%\" }}\n />\n \n \n \n \n \n \n \n \n
\n )}\n \n \n \n \n \n \n
\n )}\n
\n \n \n \n \n
\n );\n }\n\n handleSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedSkills = this.state.selectedSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n\n if (unSelectedSkill.id) {\n if (unSelectedSkill.removed) {\n unSelectedSkill.removed = false;\n } else {\n unSelectedSkill.removed = true;\n }\n\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills[index].removed = unSelectedSkill.removed;\n }\n\n this.setState({ selectedSkills });\n } else {\n const index = selectedSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedSkills.splice(index, 1);\n }\n\n this.setState({ selectedSkills });\n }\n } else {\n this.setState({ selectedSkills: [...selectedSkills, selectedSkill] });\n }\n }\n\n handleChangeOtherSkill = (event) => {\n this.setState({ selectedOtherSkill: event.target.value });\n };\n\n handleAddOtherSkill() {\n const selectedOtherSkill = this.state.selectedOtherSkill;\n let { optionsActionSkills, pickedOtherSkills, selectedOtherSkills } = this.state;\n\n if (selectedOtherSkill && selectedOtherSkill !== \"\") {\n let optionsActionSkill = optionsActionSkills.find((it) => it.skills.some((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill));\n if (optionsActionSkill) {\n let skill = optionsActionSkill.skills.find((skill) => `${skill.skillCode}-${skill.skillLevel}` == selectedOtherSkill);\n if (skill) {\n skill.selected = true;\n\n pickedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n\n selectedOtherSkills.push({\n skillName: skill.skillName,\n skillCode: skill.skillCode,\n skillLevel: skill.skillLevel,\n skillType: skill.skillType,\n });\n }\n\n this.setState({ optionsActionSkills, selectedOtherSkill: \"\", pickedOtherSkills, selectedOtherSkills });\n }\n }\n }\n\n handleOtherSkillCheckedChange(skillName, skillCode, skillLevel, skillType) {\n let selectedOtherSkills = this.state.selectedOtherSkills;\n\n const selectedSkill = {\n skillName,\n skillCode,\n skillLevel,\n skillType,\n };\n\n if (selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel)) {\n const unSelectedSkill = selectedOtherSkills.find((it) => it.skillName == skillName && it.skillCode == skillCode && it.skillLevel == skillLevel);\n const index = selectedOtherSkills.indexOf(unSelectedSkill);\n if (index !== -1) {\n selectedOtherSkills.splice(index, 1);\n }\n\n this.setState({ selectedOtherSkills });\n } else {\n this.setState({ selectedOtherSkills: [...selectedOtherSkills, selectedSkill] });\n }\n }\n\n handleSubmitEdit() {\n const { editedAction, selectedSkills, selectedOtherSkills } = this.state;\n\n const actionRequest = {\n personEmail: this.props.managedPeople && this.props.managedPeople.personB.email,\n actionType: this.state.form.actionType.value,\n name: this.state.form.name.value,\n description: this.state.form.description.value,\n status: this.state.form.status.value,\n targetCompletionOn: this.state.form.targetCompletionOn.value,\n duration: this.state.form.duration.value,\n link: this.state.form.link.value,\n skills: [...selectedSkills.filter((it) => !it.removed), ...selectedOtherSkills.filter((it) => !it.removed)].map((skill) => {\n return {\n id: skill.id ? skill.id : null,\n name: skill.skillName,\n code: skill.skillCode,\n level: skill.skillLevel,\n type: skill.skillType,\n };\n }),\n };\n\n this.setState({ actionPlanUpdating: true });\n Promise.resolve(this.props.managedPeople ? this.props.onActionPlan.updateManagedPeopleAction(editedAction.id, actionRequest) : this.props.onActionPlan.updateAction(editedAction.id, actionRequest)).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n console.log(\"this.props.actionPlanUpdatingError\", this.props.actionPlanUpdatingError);\n //this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError);\n } else {\n this.setState({ showActionPlanEdit: false });\n //this.props.handleActionPlanUpdated(this.props.updatedAction);\n this.initData();\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n\n handleSubmitDelete() {\n const { editedAction } = this.state;\n\n const deletedId = editedAction.id;\n\n this.setState({ actionPlanUpdating: true });\n this.props.onActionPlan.deleteAction(deletedId).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n console.log(\"this.props.actionPlanUpdatingError\", this.props.actionPlanUpdatingError);\n //this.props.generateAlert(\"danger\", this.props.actionPlanUpdatingError);\n } else {\n this.setState({ showActionPlanEdit: false });\n //this.props.handleActionPlanDeleted(deletedId);\n this.initData();\n }\n }\n this.setState({ actionPlanUpdating: this.props.actionPlanUpdating });\n });\n }\n\n render() {\n const { loading, actions } = this.state;\n\n return (\n \n \n \n \n \n \n \n \n {this.modalActionPlanDetail()}\n {this.modalEditActionPlan()}\n {loading ? (\n \n \n
\n \n
\n \n
\n ) : actions && actions.length > 0 ? (\n \n
\n {actions\n .filter((it) => !it.status.toLowerCase().includes(\"done\") && !it.hidden)\n .sort((a, b) => new Date(a.targetCompletionOn) - new Date(b.targetCompletionOn))\n .map((action, index) => {\n const row = action;\n return (\n \n \n {action.targetCompletionOn && new Date() > new Date(action.targetCompletionOn) && }\n {(!action.targetCompletionOn || (action.targetCompletionOn && new Date() <= new Date(action.targetCompletionOn))) && (\n \n )}\n \n \n

\n \n {row.targetCompletionOn\n ? this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"OutstandingActionWithDueDate\", \"You have an action due by {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(row.targetCompletionOn))\n )\n : this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"OutstandingActionNoDueDate\", \"You have an action with no due date\")}\n \n \n {action.name}\n \n    \n this.openActionDetail(row)} />\n \n {action.name}\n \n

\n \n
\n );\n })}\n {this.renderEmptyAction(3 - actions.length)}\n
\n
\n ) : (\n \n \n \n \n \n \n

\n \n

\n \n
\n {this.renderEmptyAction(2)}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.actionPlan.loading,\n error: state.actionPlan.error,\n actions: state.actionPlan.actions,\n actionTypes: state.actionPlan.actionTypes,\n actionSkills: state.actionPlan.actionSkills,\n\n companyLoading: state.company.loading,\n\n jobMatchesLoading: state.job.jobMatchesLoading,\n jobLoading: state.job.loading,\n jobMatches: state.job.jobMatches,\n jobLorProfiles: state.job.jobLorProfiles,\n jobSkillProfiles: state.job.jobSkillProfiles,\n\n loadingProfile: state.skillProfile.loading,\n errorProfile: state.skillProfile.error,\n skillProfiles: state.skillProfile.skillProfiles,\n\n profileTypes: state.skillProfile.profileTypes,\n\n loadingLor: state.skillProfile.lorLoading,\n errorLor: state.skillProfile.lorError,\n lorProfiles: state.skillProfile.lorProfiles,\n\n categories: state.category.categories,\n categoryLoading: state.category.loading,\n categoryError: state.category.error,\n\n lors: state.lor.lors,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SkillStep);\n","import * as jobActions from \"../../store/actions/jobAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport CardProfile from \"./CardProfile\";\nimport SkillProgress from \"./SkillProgress\";\nimport SkillStep from \"./SkillStep\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass Profile extends React.Component {\n static displayName = Profile.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedOptCurrentJob: null,\n selectedOptFutureJob: null,\n selectedOptEndorseCurrentJob: null,\n selectedOptEndorseFutureJob: null,\n jobMatches: [],\n currentJob: null,\n futureJob: null,\n optionCurrentJobs: [],\n optionFutureJobs: [],\n endorseCurrentJob: null,\n endorseFutureJob: null,\n loading: false,\n error: null,\n alerts: [],\n profileTypes: [],\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n this.initData();\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.jobMatches !== this.props.jobMatches) {\n this.setState({ jobMatches: this.props.jobMatches });\n }\n\n if (prevProps.profileUpdatingSuccess !== this.props.profileUpdatingSuccess || prevProps.copyProfileSuccess !== this.props.copyProfileSuccess) {\n if (this.props.profileUpdatingSuccess || this.props.copyProfileSuccess) {\n console.log(\"RePopulate Job Matches\");\n Promise.resolve(this.props.managedPeople ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email) : this.props.onJob.getMyJobMatches()).then(() => {\n if (!this.props.loading && !this.props.error) {\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n const stateJobMatches = this.state.jobMatches;\n const stateCurrentJob = stateJobMatches && stateJobMatches.find((it) => it.jobType === \"Current\");\n\n if (stateCurrentJob) {\n const index = stateJobMatches.indexOf(stateCurrentJob);\n if (index > -1) {\n stateJobMatches.splice(index, 1);\n }\n }\n\n stateJobMatches.push(currentJob);\n\n const stateFutureJob = stateJobMatches && stateJobMatches.find((it) => it.jobType === \"Future\");\n\n if (stateFutureJob) {\n const index = stateJobMatches.indexOf(stateFutureJob);\n if (index > -1) {\n stateJobMatches.splice(index, 1);\n }\n }\n\n stateJobMatches.push(futureJob);\n\n this.setState({ jobMatches: [...stateJobMatches], currentJob, futureJob });\n }\n });\n\n Promise.resolve(this.props.managedPeople ? this.props.onPerson.getManagedPeopleLatestAccount(this.props.managedPeople.personB.email) : this.props.onPerson.getPersonLatestAccount());\n }\n }\n\n if (prevProps.endorsedProfileCopyingSuccessNotif !== this.props.endorsedProfileCopyingSuccessNotif) {\n if (this.props.endorsedProfileCopyingSuccessNotif) {\n console.log(\"RePopulate Job Matches after Copy Endorsed profile\");\n this.props.onJob.getMyJobMatches().then(() => {\n if (!this.props.loading && !this.props.error) {\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n const stateJobMatches = this.state.jobMatches;\n const stateCurrentJob = stateJobMatches && stateJobMatches.find((it) => it.jobType === \"Current\");\n\n if (stateCurrentJob) {\n const index = stateJobMatches.indexOf(stateCurrentJob);\n if (index > -1) {\n stateJobMatches.splice(index, 1);\n }\n }\n\n stateJobMatches.push(currentJob);\n\n const stateFutureJob = stateJobMatches && stateJobMatches.find((it) => it.jobType === \"Future\");\n\n if (stateFutureJob) {\n const index = stateJobMatches.indexOf(stateFutureJob);\n if (index > -1) {\n stateJobMatches.splice(index, 1);\n }\n }\n\n stateJobMatches.push(futureJob);\n\n this.setState({ jobMatches: [...stateJobMatches], currentJob, futureJob });\n }\n });\n\n this.props.onSkillProfile.clearCopyEndorsedNotif();\n }\n }\n }\n\n initData() {\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileTypes(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyProfileTypes()).then(() => {\n if (!this.props.skillProfileLoading) {\n if (this.props.skillProfileError) {\n this.setState({ loading: false });\n } else {\n this.setState({ profileTypes: this.props.profileTypes });\n\n this.props.onJob.getJobs().then(() => {\n let optionCurrentJobs = [{ label: \"Current\", value: null }];\n let optionFutureJobs = [{ label: \"Future\", value: null }];\n\n if (this.props.jobs) {\n optionCurrentJobs.push(...this.props.jobs.map((job) => ({ label: job.name, value: job.id })));\n\n optionFutureJobs.push(...this.props.jobs.map((job) => ({ label: job.name, value: job.id })));\n }\n\n this.setState({ optionCurrentJobs, optionFutureJobs });\n Promise.resolve(\n this.props.managedPeople\n ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email, false)\n : this.props.onJob.getMyJobMatches(this.props.containerConfig && this.props.containerConfig.internalJobMarket ? true : false)\n ).then(() => {\n if (!this.props.loading && !this.props.error) {\n const currentJob = this.props.jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = this.props.jobMatches.find((it) => it.jobType === \"Future\");\n const jobMatches = this.props.jobMatches.filter((it) => it.jobType != \"Proposed\");\n this.setState({ jobMatches, currentJob, futureJob });\n }\n\n this.setState({ loading: this.props.loading });\n });\n });\n }\n }\n });\n }\n\n handleChangeCurrentJob = (selectedOptCurrentJob) => {\n this.setState({ selectedOptCurrentJob });\n console.log(`Opt selected:`, selectedOptCurrentJob);\n };\n\n handleChangeFutureJob = (selectedOptFutureJob) => {\n this.setState({ selectedOptFutureJob });\n console.log(`Opt selected:`, selectedOptFutureJob);\n };\n\n handleChangeEndorseCurrentJob = (value) => {\n this.setState({ selectedOptEndorseCurrentJob: value });\n console.log(`Opt selected:`, value);\n };\n\n handleChangeEndorseFutureJob = (value) => {\n this.setState({ selectedOptEndorseFutureJob: value });\n console.log(`Opt selected:`, value);\n };\n\n handleJobMatchesUpdated = () => {\n this.setState({ loading: true });\n Promise.resolve(\n this.props.managedPeople\n ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email, false)\n : this.props.onJob.getMyJobMatches(this.props.containerConfig && this.props.containerConfig.internalJobMarket ? true : false)\n ).then(() => {\n if (!this.props.loading && !this.props.error) {\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n this.setState({ jobMatches, currentJob, futureJob });\n }\n\n this.setState({ loading: this.props.loading });\n });\n };\n\n render() {\n return (\n \n \n \n \n \n \n \n {this.state.loading && (\n
\n \n
\n )}\n {!this.state.loading && (\n \n \n \n \n \n \n \n \n )}\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.job.jobMatchesLoading,\n error: state.job.error,\n jobMatches: state.job.jobMatches,\n jobs: state.job.jobs,\n\n lorProfileLoading: state.skillProfile.loading,\n lorProfileError: state.skillProfile.error,\n profileTypes: state.skillProfile.profileTypes,\n\n profileUpdatingSuccess: state.skillProfile.profileUpdatingSuccess,\n endorsedProfileCopyingSuccessNotif: state.skillProfile.endorsedProfileCopyingSuccessNotif,\n copyProfileSuccess: state.skillProfile.copyProfileSuccess,\n\n managedPeople: state.auth.managedPeople,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onJob: bindActionCreators(jobActions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Profile);\n","import CustomSelect from \"../global/customselect\";\nimport {\n FilterTwoTone,\n FilterFilled,\n CloseCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Row, Col, Button, Tag, Typography, Divider } from \"antd\";\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport styled from \"styled-components\";\n\nconst { Title } = Typography;\n\nconst WrapperFilter = styled.div`\n .anticon {\n vertical-align: 0.125em;\n }\n .card-c {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n padding: 35px;\n\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 20px;\n background-color: rgba(255, 255, 255, 0.45);\n box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.25);\n\n backdrop-filter: blur(15px);\n }\n\n .slide {\n transition: all 0.5s ease-in-out;\n transform-origin: left top;\n animation: slide 0.5s;\n @keyframes slide {\n 0% {\n transform: scaleY(0);\n }\n 100% {\n transform: scaleY(1);\n }\n }\n }\n\n .mt-20 {\n margin-top: 20px;\n }\n .mt-10 {\n margin-top: 10px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .font-small {\n font-size: 13px;\n }\n\n .ml-5-c {\n margin-left: 5px;\n }\n .mb-10 {\n margin-bottom: 5px;\n }\n\n .rotate-90 {\n transform: rotate(90deg);\n transition: transform 0.5s;\n }\n .rotate-0 {\n transform: rotate(0deg);\n transition: transform 0.5s;\n }\n\n @media (max-width: 1280px) {\n .col-sm-cm {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n }\n @media (max-width: 760px) {\n .col-sm-cm-m {\n max-width: 100% !important;\n flex: 0 0 100%;\n }\n .sm-mt-10 {\n margin-top: 10px;\n }\n }\n`;\n\n// Helper function to render tags based on the object and its color.\nconst renderTags = (obj, color, onCloseClicked, isTree = false) => {\n return obj?.value?.map((item, index) => (\n \n {/* Check if item is a string or needs to be parsed */}\n {isTree ? JSON.parse(item).value : item}\n onCloseClicked(obj, item)}\n style={{ color: \"darkred\" }}\n />\n \n ));\n};\n\nconst renderFilter = (Component, isExpand) => (\n \n);\n\nconst MenteeRequestFilters = ({ objStatus, contentTranslations, contentTranslator }) => {\n // Local state to manage the expand/collapse feature.\n const [isExpand, setIsExpand] = useState(false);\n\n // Function to remove a selected filter.\n const onCloseClicked = useCallback((obj, currentValue) => {\n // Filter out the selected value and update the state.\n const updatedValue = obj.value.filter((value) => value !== currentValue);\n obj.setValue(updatedValue);\n });\n\n // useMemo to determine if any filter is selected.\n const hasFilter = useMemo(() => {\n return [objStatus].some((obj) => obj?.value?.length > 0);\n }, [objStatus?.value]);\n\n return (\n \n \n {/* Rest of the JSX structure where you'll use your button */}\n \n setIsExpand((state) => !state)}\n >\n {contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableFilter\", \"Filter\")}\n \n \n {/* Rest of the JSX structure where you'll use your renderTags */}\n \n {/* Render tags for each filter type */}\n {renderTags(objStatus, \"magenta\", onCloseClicked)}\n \n \n \n {/* Rest of the JSX structure where you'll use your CustomSelect */}\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default MenteeRequestFilters;\n","import {\n CheckCircleTwoTone,\n CloseCircleTwoTone,\n CheckOutlined,\n CloseOutlined,\n} from \"@ant-design/icons\";\nimport { Table, Typography, Empty, Tooltip, Input, Tag, Row } from \"antd\";\nimport React, { useMemo } from \"react\";\nimport styled from \"styled-components\";\n\nconst constantData = {\n titleLevel: 5,\n pageSize: 10,\n rangeColors: [\n {\n color: \"green\",\n label: \"80 - 100\",\n isMatch: (val) => val >= 80,\n },\n {\n color: \"cyan\",\n label: \"60 - 79\",\n isMatch: (val) => val >= 60,\n },\n {\n color: \"gold\",\n label: \"40 - 59\",\n isMatch: (val) => val >= 40,\n },\n {\n color: \"orange\",\n label: \"20 - 39\",\n isMatch: (val) => val >= 20,\n },\n {\n color: \"volcano\",\n label: \"1 - 19\",\n isMatch: (val) => val >= 0,\n },\n {\n color: \"red\",\n label: \"0\",\n isMatch: (val) => val === 0,\n },\n ],\n};\n\nconst DivCenter = ({ Component, title }) => {\n return (\n \n
\n {title}\n \n
\n \n );\n};\n\nconst { Title } = Typography;\n\nconst { TextArea } = Input;\n\nconst WrapperTable = styled.div`\n margin-top: 20px;\n margin-bottom: 40px;\n\n .ant-table-container table > thead > tr:first-child th {\n text-align: center;\n }\n\n .ant-table-container table tr .ant-table-cell-row-hover {\n background: rgb(116, 226, 177, 0.2) !important;\n }\n\n .ant-table-container table > thead > tr:first-child th:first-child {\n border-top-left-radius: 14px;\n }\n\n .ant-table-container table > thead > tr:first-child th:last-child {\n border-top-right-radius: 14px;\n }\n\n .ant-table-content > table {\n table-layout: auto;\n border-color: gainsboro;\n border-style: solid;\n border-top-left-radius: 14px;\n border-top-right-radius: 14px;\n border-width: 0.5px;\n }\n .mr-10 {\n margin-right: 10px;\n }\n .grid {\n display: grid;\n }\n\n @media (max-width: 1680px) {\n .cell-cm {\n width: 150px;\n }\n }\n\n @media (max-width: 1580px) {\n .cell-cm {\n width: 100px;\n }\n }\n\n @media (max-width: 1480px) {\n .cell-cm {\n width: 60px;\n }\n }\n @media (max-width: 1280px) {\n .cell-cm {\n width: auto;\n }\n }\n`;\n\nconst WrapperSubCell = styled.div`\n width: auto;\n text-wrap: wrap;\n`;\n\nconst ContainerTable = styled.div`\n margin-top: 20px;\n margin-left: 10px;\n margin-right: 10px;\n\n .circle {\n border-radius: 10px;\n width: 10px;\n height: 10px;\n }\n\n .ml-10 {\n margin-left: 10px;\n }\n\n .pd-10 {\n padding: 10px;\n }\n\n .flex {\n display: flex;\n }\n\n .font-sm {\n font-size: small;\n }\n\n .item-center {\n align-items: center;\n }\n\n .btn-danger {\n background-color: red;\n color: white;\n }\n\n .btn-success {\n background-color: #52c41a;\n color: white;\n }\n\n .label-danger {\n color: red;\n text-decoration: underline;\n }\n\n .label-success {\n color: #52c41a;\n text-decoration: underline;\n }\n\n .btn-disabled {\n color: rgba(0, 0, 0, 0.25) !important;\n border-color: #d9d9d9 !important;\n background: #f5f5f5 !important;\n }\n`;\n\nconst createCenteredTextColumnHeader = (title) => (\n {title}\n);\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredTextColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n {text ?? \"-\"}\n ), // Centering the text\n});\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredArrayColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text?.join(\", \") ?? \"-\"}\n \n ), // Centering the text\n});\n\n// Helper function to generate a table column that centers its text content.\n// This avoids repetition for multiple columns that require similar formatting.\nconst createCenteredArrayTagColumn = (title, dataIndex, sorterFunction) => ({\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text?.length > 0\n ? text.map((item, index) => (\n \n {item}\n \n ))\n : \"-\"}\n \n ), // Centering the text\n});\n\nconst createCenteredButtonColumn = (\n title,\n dataIndex,\n onDeny,\n onAccept,\n sorterFunction,\n contentTranslations, contentTranslator\n) => {\n const onClicked = (record, func) => {\n if (func != null) {\n func(record);\n }\n };\n\n const render = (record, text) => {\n switch (text?.toLowerCase()) {\n case \"accepted\":\n return (\n \n
\n \n
{text}
\n
\n
\n );\n case \"denied\":\n return (\n \n
\n \n
{text}
\n
\n
\n );\n case \"requested\":\n return (\n
\n \n onClicked(record, onAccept)}\n twoToneColor=\"#52c41a\"\n />\n \n \n onClicked(record, onDeny)}\n />\n \n
\n );\n default:\n return;\n }\n };\n\n return {\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n //sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text, record) => (\n \n {text ? render(record, text) : \"-\"}\n \n ), // Centering the text\n };\n};\n\nconst createCenteredNumberColumn = (\n title,\n dataIndex,\n sorterFunction,\n isResponsive = false,\n isCenter = true\n) => {\n const getColor = (val) =>\n constantData.rangeColors.find((item) => item.isMatch(val))?.color;\n\n return {\n title: createCenteredTextColumnHeader(title), // Column header\n dataIndex, // Data key\n key: dataIndex, // Key for React's list rendering\n sorter: (a, b) => sorterFunction(a[dataIndex], b[dataIndex]), // Sorting function for the column\n render: (text) => (\n \n {text !== undefined && text !== null ? (\n {text}%\n ) : (\n \"-\"\n )}\n \n ), // Centering the text\n };\n};\n\n// Utility function to compare text values array\nconst sortByTextArray = (a, b) => {\n // Determine the minimum length between the two current arrays\n const minLength = Math.min(a.length, b.length);\n\n // Iterate over the elements up to the minimum length\n for (let i = 0; i < minLength; i++) {\n // Only proceed to string conversion and comparison if elements are different\n // This saves performance by avoiding unnecessary operations\n if (a[i] !== b[i]) {\n // Convert current elements to strings and make them lowercase\n // for case-insensitive comparison\n const elemA = a[i].toString().toLowerCase();\n const elemB = b[i].toString().toLowerCase();\n\n // Compare the elements and determine their order\n if (elemA < elemB) return -1; // b comes before a\n if (elemA > elemB) return 1; // b comes after a\n }\n }\n\n // If all compared elements are equal, then compare array lengths\n // The shorter array comes first\n return a.length - b.length;\n};\n\n// Utility function to compare text values\nconst sortByText = (a, b) => (a ?? \"\").localeCompare(b ?? \"\");\n\n// Utility function to compare number values\nconst sortByNumber = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n\n// Utility function to transform data source for tables\n// This maps over the data and transforms it to have keys and all the item properties.\nconst transformDataSource = (data) =>\n data.map((item, index) => ({\n key: `${index + 1}`,\n ...item,\n }));\n\n// Utility function to generate column definitions based on type and need status\n// This will return the appropriate columns based on whether it's a professional or generic skill and if it's a needed skill.\nconst getColumnDefinitions = (onDeny, onAccept, contentTranslations, contentTranslator) => {\n const tempColum = [\n createCenteredTextColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableName\", \"Name\"), \"name\", sortByText),\n createCenteredTextColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableEmail\", \"Email\"), \"email\", sortByText),\n createCenteredNumberColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableMatchPercent\", \"Match %\"), \"matchedSkillPercent\", sortByNumber),\n createCenteredArrayTagColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableSkills\", \"Skills\"), \"skills\", sortByTextArray),\n createCenteredArrayColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableProfiles\", \"Profiles\"), \"preferences\", sortByTextArray),\n createCenteredButtonColumn(\n contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableStatus\", \"Status\"),\n \"mentorStatus\",\n onDeny,\n onAccept,\n sortByText,\n contentTranslations, contentTranslator\n ),\n createCenteredTextColumn(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableComment\", \"Comment\"), \"comment\", sortByText),\n ];\n return tempColum;\n};\n\nconst MenteeTable = ({\n data = [],\n pageSize = constantData.pageSize,\n onDeny,\n onAccept,\n contentTranslations,\n contentTranslator\n}) => {\n // useMemo will recompute the memoized value (`tableData`) only when one of the dependencies\n // in the dependency array changes. This optimization helps avoid expensive calculations on\n // every render when the relevant data hasn't changed.\n\n const tableData = useMemo(() => {\n // Early return when content is not loaded; avoids processing empty or undefined data.\n if (data.length < 1) return { dataSource: [], columns: [] };\n\n // Call `transformDataSource` to process the raw data into the desired structure/format\n // for use by the table. This might include converting dates to a specific format,\n // reshaping objects, adding additional fields, etc.\n const dataSource = transformDataSource(data);\n\n // Retrieve column definitions, which could depend on various factors such as user role,\n // specific permissions, feature flags, etc. This function is also responsible for\n // integrating interactive elements like checkboxes into the columns, setting up the\n // appropriate handlers, and defining how they interact with the component's state.\n const columns = getColumnDefinitions(onDeny, onAccept, contentTranslations, contentTranslator);\n\n // The useMemo hook returns an object containing the processed `dataSource` and `columns`,\n // ready for consumption by a table component (e.g., in a setup).\n return { dataSource, columns };\n\n // Dependency array: the memoized value will only recompute if `data`, `stateCheckbox`, or\n // are computationally expensive or if the data volume is large.\n }, [data]);\n\n // Create a copy of the listExpand array\n return (\n // Container for the entire table component\n \n {data.length > 0 ? (\n // Conditionally render the table or a 'No Data' message based on the length of the 'data' array\n // If 'data' has elements, render the table and associated components\n
\n {/* Wrapper for styling and layout of the table */}\n \n {/* Ant Design Table component displaying data */}\n \n {tableData.dataSource.length > 0 && (\n \n {constantData.rangeColors.map((item, index) => {\n return (\n
\n {contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestRange\", \"Range\")}:\n \n {item.label}\n \n
\n );\n })}\n
\n )}\n
\n
\n ) : (\n // If 'data' is empty, render a centered 'No Data' message\n } // Ant Design Empty component with a description\n />\n )}\n
\n );\n};\n\nexport default MenteeTable;\n","import { CloseCircleTwoTone, CheckCircleTwoTone } from \"@ant-design/icons\";\nimport { Button, Row, Input, Collapse, Descriptions } from \"antd\";\nimport React, { useCallback, useState, useEffect, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst { Panel } = Collapse;\n\nconst ContainerConfirm = styled.div`\n padding: 5px;\n width: 400px;\n\n .btn-danger {\n background-color: red;\n color: white;\n }\n\n .btn-success {\n background-color: #52c41a;\n color: white;\n }\n`;\n\nconst { TextArea } = Input;\n\n// Wrapping the component with React.memo to prevent unnecessary re-renders.\n// This is useful when the parent component renders often but props for AcceptDenyModal don't change.\nconst AcceptDenyModal = ({ open, onCancel, onOk, data, contentTranslations, contentTranslator }) => {\n const [comment, setComment] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n\n const [state, setState] = useImmer({\n contentTranslations: contentTranslations\n });\n\n const handleCancel = (event) => {\n onCancel?.(event); // Optional chaining ensures that onAccept is called only if it's provided.\n // Removed setIsOpen as we are now directly using the 'open' prop for controlling visibility.\n setIsOpen(false);\n };\n\n const handleOk = (event) => {\n onOk?.(event, comment); // Similar to handleOk, using optional chaining for onOk.\n // Removed setIsOpen as we are now directly using the 'open' prop for controlling visibility.\n setIsOpen(false);\n };\n\n // Handler for when the comment input field value changes\n const onCommentChanged = useCallback((event) => {\n // Update the comment in the modal's data\n setComment(event.target.value);\n }); // No dependencies since it doesn't rely on external state or props\n\n // Compute the state for Accept/Deny display based on the modal's data\n const modalValid = useMemo(() => {\n // Default state when data is undefined\n if (data === undefined) {\n return { title: \"\", text: \"\", isCommentRequired: false };\n }\n\n // Determine the title and text based on whether it's an Accept or Deny action\n const title = data.isAccept ? contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationAcceptTitle\", \"Accept request\") : contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationDenyTitle\", \"Deny request\");\n const okButton = data.isAccept ? contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationButtonAccept\", \"Accept\") : contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationButtonDeny\", \"Deny\");\n const cancelButton = contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationButtonCancel\", \"Cancel\");\n const text = data.isAccept \n ? contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationAcceptMessage\", \"Before accepting this request you must provide some comments for the requester. This will be included in the confirmation email.\") \n : contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestConfirmationDenyMessage\", \"Before denying this request you must provide some comments for the requester. This will be included in the denial email. Please fully explain the reasons.\");\n\n // Determine if the comment is required (it is required if it's empty)\n const isCommentRequired = comment.trim() === \"\";\n\n return { title, okButton, cancelButton, text, isCommentRequired };\n }, [data, comment]); // Depend on data as it’s the only piece of state used\n\n // Determine the button class name based on the validation state and modal type (accept/deny)\n const okButtonClassName =\n modalValid.isCommentRequired === true ||\n (data?.isAccept ? \"btn-success\" : \"btn-danger\");\n\n useEffect(() => {\n setIsOpen(open);\n if (open === true) {\n setComment(\"\");\n }\n }, [open]);\n\n // Return null to render nothing if the modal is not open.\n // This is an early return pattern, a common optimization in React for conditional rendering\n if (!isOpen) return null;\n\n return (\n // ContainerConfirm is a wrapper component, likely styled, for the modal content.\n \n {/* Row is a layout component, probably from a UI library, for arranging items in a row.\n The 'gutter' prop likely adds spacing between the columns in the row. */}\n \n
\n {data?.isAccept ? (\n \n ) : (\n \n )}\n
\n
\n
\n {/* Another Row for action buttons, with increased gutter spacing and\n additional styling for centering and top margin. */}\n \n
\n {modalValid.text} {/* Display additional text/instructions */}\n
\n
\n {/* Another Row for action buttons, with increased gutter spacing and\n additional styling for centering and top margin. */}\n \n \n \n \n \n {data?.data.name ?? \"-\"}\n \n \n {data?.data.email ?? \"-\"}\n \n \n {data?.data.matchedSkillPercent\n ? `${data.data.matchedSkillPercent} %`\n : \"-\"}\n \n \n {data?.data.skills.join(\", \") ?? \"-\"}\n \n \n {data?.data.preferences.join(\", \") ?? \"-\"}\n \n \n \n \n \n {/* Another Row for action buttons, with increased gutter spacing and\n additional styling for centering and top margin. */}\n \n {/* Text area for the user to input a comment. Shows an error status if a comment is required but not provided. */}\n \n \n \n {/* Button component for the 'OK' action, styled as a primary and success button, with a right margin.\n 'handleOk' is a function that will be called when this button is clicked. */}\n \n {modalValid.okButton}\n \n {/* Another Button for the 'Cancel' action, styled as a primary and danger button.\n 'handleCancel' is a function that will be called when this button is clicked. */}\n \n {modalValid.cancelButton}\n \n \n
\n );\n};\n\nexport default AcceptDenyModal;\n","import PersonService from \"../../../../../common/api/service/PersonService\";\nimport MenteeRequestFilters from \"../../filters/menteerequest\";\nimport MenteeTable from \"../../table/mentee\";\nimport AcceptDenyModal from \"../acceptdeny\";\nimport ConfirmModal from \"../confirm\";\nimport { CaretRightOutlined } from \"@ant-design/icons\";\nimport { Modal, Spin, notification, Collapse, Alert, Col, Row } from \"antd\";\nimport { groupBy } from \"lodash\";\nimport React, { useEffect, useCallback, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst { Panel } = Collapse;\n\nconst ContainerCenter = styled.div`\n text-align: -webkit-center;\n`;\n\nconst MenteeRequestModal = ({ showDialog, contentTranslations, contentTranslator, parameterizedString}) => {\n const [selectedStatus, setSelectedStatus] = useState([]);\n\n const [state, setState] = useImmer({\n showDialog: false,\n dataValue: [],\n rawData: [],\n isShowConfirm: false,\n isShowComment: false,\n isLoading: false,\n isEdit: false,\n commentData: undefined,\n contentTranslations: contentTranslations\n });\n\n const setDefaultData = () => {\n setState((draft) => {\n draft.showDialog = true;\n draft.dataValue = [];\n draft.isShowComment = false;\n draft.isEdit = false;\n draft.isLoading = true;\n draft.rawData = [];\n draft.commentData = undefined;\n });\n setSelectedStatus([]);\n };\n\n const toFixedIfNecessary = (value, dp) => {\n return +parseFloat(value).toFixed(dp);\n };\n\n const processDataAsync = async (isSetStatus = false) => {\n try {\n const dataMenteeRequests = await PersonService.getMenteeRequests();\n\n dataMenteeRequests.map((item) => {\n item.matchedSkillPercent = item.matchedSkillPercent ? toFixedIfNecessary(item.matchedSkillPercent * 100, 2) : item.matchedSkillPercent\n })\n\n setState((draft) => {\n draft.rawData =\n dataMenteeRequests?.map((item) => {\n return {\n ...item,\n name: `${item.firstName} ${item.lastName}`,\n };\n }) ?? [];\n });\n\n //dataMenteeRequests.length\n if (isSetStatus && dataMenteeRequests.length > 0) {\n setSelectedStatus([\"Requested\"]);\n }\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n // Optionally, you can set an error state to display an error message to users.\n }\n };\n\n const onToggleDialogModal = () => {\n const showDialog = state.showDialog;\n setState((draft) => {\n draft.showDialog = !showDialog;\n draft.isLoading = false;\n });\n };\n\n const onCommentOkClicked = useCallback(async (e, comment) => {\n setState((draft) => {\n draft.isShowComment = false;\n draft.isLoading = true;\n });\n try {\n const dataUpdate = {\n personId: state.commentData.data.personId,\n accept: state.commentData.isAccept,\n comment: comment,\n };\n await PersonService.updateMenteeRequests(dataUpdate);\n await processDataAsync();\n notification[state.commentData.isAccept ? \"success\" : \"error\"]({\n message: state.commentData.isAccept \n ? parameterizedString(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestAcceptedNotification\", \"{s1}'s request was accepted.\"), state.commentData.data.name)\n : parameterizedString(contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestDeniedNotification\", \"{s1}'s request was denied.\"), state.commentData.data.name),\n description: state.commentData.isAccept ? contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestNotificationDescription\", \"Please log out and log in again to load new relationship data.\") : null,\n });\n } catch (error) {\n // Optionally, you can set an error state to display an error message to users.\n notification[\"error\"]({\n message: \"error\",\n description: error?.errData?.Message ?? error?.errStatus,\n });\n } finally {\n setState((draft) => {\n draft.commentData = undefined;\n draft.isLoading = false;\n });\n }\n });\n\n const onCommentCancelClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowComment = false;\n draft.isShowConfirm = false;\n draft.commentData = undefined;\n });\n });\n\n const openShowConfirm = (record, isAccept) => {\n // Open the modal and set its data\n setState((draft) => {\n draft.isShowComment = false;\n draft.isShowConfirm = true;\n draft.commentData = { data: record, isAccept: isAccept };\n });\n };\n\n // Handler for when Accept or Deny button is clicked\n const onConfirmOkClicked = useCallback((record) => {\n // Open the modal and set its data\n setState((draft) => {\n draft.isShowComment = true;\n draft.isShowConfirm = false;\n });\n }); // No dependencies since it doesn't rely on external state or props\n\n // Handler for when Accept or Deny button is clicked\n const onConfirmCancelClicked = useCallback(\n (record) => {\n // Open the modal and set its data\n setState((draft) => {\n draft.isShowComment = false;\n draft.isShowConfirm = false;\n });\n }\n //openShowConfirm(record, true)\n ); // No dependencies since it doesn't rely on external state or props\n\n // Handler for when Accept or Deny button is clicked\n const onAcceptClicked = useCallback((record) =>\n openShowConfirm(record, true)\n ); // No dependencies since it doesn't rely on external state or props\n\n // Handler for when Accept or Deny button is clicked\n const onDenyClicked = useCallback((record) => openShowConfirm(record, false)); // No dependencies since it doesn't rely on external state or props\n\n // Filter by Status\n const optionsStatus = useMemo(() => {\n if (state.rawData?.length === 0) return [];\n\n const dataGroup = groupBy(state.rawData, \"mentorStatus\");\n\n return Object.keys(dataGroup)\n .map((item) => ({\n label: item,\n value: item,\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n }, [state.rawData]);\n\n const tableData = useMemo(() => {\n let resultData = [];\n if (state.rawData?.length === 0) return resultData;\n\n return state.rawData.filter((item) => {\n // If selectedStatus is populated and the condition is not met, filter out\n if (\n selectedStatus.length > 0 &&\n !selectedStatus.includes(item.mentorStatus)\n ) {\n return false;\n }\n // If all conditions are met or not applicable, include the item\n return true;\n });\n }, [state.rawData, selectedStatus]);\n\n useEffect(() => {\n if (showDialog) {\n setDefaultData();\n\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n\n // Fetch and process all data\n processDataAsync(true).then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setState((draft) => {\n draft.isLoading = false;\n });\n }\n });\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }\n }, [showDialog]);\n\n if (state.showDialog === false) return null;\n\n // ... rest of the logic and JSX\n return (\n {\n setDefaultData();\n onToggleDialogModal();\n }\n : null\n }\n width={state.isShowComment || state.isShowConfirm ? \"fit-content\" : \"60%\"}\n style={{ borderRadius: \"20px\" }}\n footer={null}\n >\n \n \n \n Accept this mentor request !\") : contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableDenyPopupMessage\", \"You are about to Deny this mentor request !\"),\n }}\n > \n \n }\n msg={contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableAcceptDenyPopupNotes\", \"This will trigger an email to the requester with your details.\")}\n questionText={contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeRequestTableAcceptDenyPopupProceedText\", \"Do you want to proceed ?\")}\n >\n \n {state.isShowComment == false && state.isShowConfirm == false && (\n
\n {state.rawData.length > 0 && (\n <>\n
\n \n
\n \n
\n \n \n \n \n )}\n \n {tableData.length > 0 && (\n (\n \n )}\n className=\"site-collapse-custom-collapse mt-4\"\n >\n \n
Match : Your match to their skill gaps
Skills : Skills you can help
Profiles : Their Preferences that match your profile
Status : Status of mentor. Denied, Requested, Accepted
\"),\n }}\n >\n \n \n \n )}\n \n )}\n \n \n );\n};\nexport default MenteeRequestModal;\n","import PersonService from \"../../../../../common/api/service/PersonService\";\nimport MentorTable from \"../../table/mentor\";\nimport ConfirmModal from \"../confirm\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { Button, Modal, Spin, notification, Row, Col, Alert } from \"antd\";\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport styled from \"styled-components\";\nimport { useImmer } from \"use-immer\";\n\nconst ContainerCenter = styled.div`\n text-align: -webkit-center;\n`;\n\nconst MentorProfileModal = ({ showDialog, contentTranslations, contentTranslator, data, onClose }) => {\n const [state, setState] = useImmer({\n showDialog: false,\n dataValue: [],\n isShowConfirm: false,\n isShowNotMentor: false,\n isLoading: false,\n isEdit: false,\n rawData: [],\n isUpdate: false,\n contentTranslations: contentTranslations\n });\n\n const setDefaultData = () => {\n setState((draft) => {\n draft.showDialog = true;\n draft.dataValue = [];\n draft.isShowConfirm = false;\n draft.isShowNotMentor = false;\n draft.isEdit = false;\n draft.isLoading = true;\n draft.rawData = [];\n draft.isUpdate = false;\n });\n };\n\n const processDataAsync = async () => {\n try {\n const dataPersonPersonMyProfile =\n await PersonService.getPersonMyMentorProfiles();\n setState((draft) => {\n draft.rawData = dataPersonPersonMyProfile.map((item) => {\n return {\n id: item.id,\n selected: item.selected,\n mentorPreferenceId: item.mentorPreferenceId,\n name: item.preference,\n };\n });\n });\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n // Optionally, you can set an error state to display an error message to users.\n }\n };\n\n const processUpdateBecomeMentorAsync = async () => {\n try {\n const dataBecomeMentor = await PersonService.updateBecomeMentor();\n if (dataBecomeMentor?.isMentor) {\n await processDataAsync();\n } else {\n setState((draft) => {\n draft.isShowNotMentor = true;\n });\n }\n } catch (error) {\n // Log the error if fetching fails\n console.error(\"Failed to fetch action plan data:\", error);\n // Optionally, you can set an error state to display an error message to users.\n }\n };\n\n const onToggleDialogModal = () => {\n const showDialog = state.showDialog;\n setState((draft) => {\n draft.showDialog = !showDialog;\n draft.isLoading = false;\n });\n };\n\n const onSaveClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = true;\n });\n });\n\n const onOkClicked = useCallback(async (e) => {\n setState((draft) => {\n draft.isLoading = true;\n draft.isShowConfirm = false;\n });\n try {\n const listUpdate = state.dataValue.map((item) => {\n return {\n id: item.id,\n mentorPreferenceId: item.mentorPreferenceId,\n selected: item.isChecked ?? false,\n };\n });\n await PersonService.updatePersonMyMentorProfiles(listUpdate);\n if (!state.isUpdate) {\n onClose(!state.isUpdate);\n }\n setDefaultData();\n onToggleDialogModal();\n\n notification[\"success\"]({\n message: contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMentorProfileSuccessTitle\", \"Success !\"),\n description: contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMentorProfileSuccessDescription\", \"Your mentor profile has been updated.\"),\n });\n } catch (error) {\n // Optionally, you can set an error state to display an error message to users.\n setState((draft) => {\n draft.isLoading = false;\n });\n notification[\"error\"]({\n message: \"error\",\n description: error?.errData?.title,\n });\n }\n });\n\n const onCancelClicked = useCallback((e) => {\n setState((draft) => {\n draft.isShowConfirm = false;\n });\n });\n\n const onValueChanged = useCallback((val) => {\n setState((draft) => {\n if (!draft.isEdit) {\n draft.isEdit = true;\n }\n draft.dataValue = val ?? [];\n });\n });\n\n useEffect(() => {\n if (showDialog) {\n setDefaultData();\n // This variable helps us ensure that we don't call `setIsContentLoaded` if the component has unmounted before our asynchronous operation completes.\n let isMounted = true;\n const isMentor = data?.isMentor ?? false;\n if (isMentor) {\n // Fetch and process all data\n processDataAsync().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setState((draft) => {\n draft.isLoading = false;\n draft.isUpdate = isMentor;\n });\n }\n });\n } else {\n processUpdateBecomeMentorAsync().then(() => {\n if (isMounted) {\n // Only set the loading state to false if the component is still mounted\n setState((draft) => {\n draft.isLoading = false;\n });\n }\n });\n }\n\n // The cleanup function for the effect\n return () => {\n // If the component unmounts, we set isMounted to false to prevent any state updates after unmounting.\n isMounted = false;\n };\n }\n }, [showDialog]);\n\n if (state.showDialog === false) return null;\n\n // ... rest of the logic and JSX\n return (\n {\n setDefaultData();\n onToggleDialogModal();\n }\n : null\n }\n width={\n state.isShowConfirm || state.isShowNotMentor ? \"fit-content\" : \"60%\"\n }\n style={{ borderRadius: \"20px\" }}\n footer={null}\n >\n \n {state.isShowConfirm == false &&\n state.isShowNotMentor == false &&\n state.isLoading == false &&\n state.rawData.length > 0 && (\n \n
\n \n \n \n \n {state.isUpdate ? contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMentorProfileDialogButtonUpdate\", \"Update\") : contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMentorProfileDialogButtonSave\", \"Save\")}\n \n \n \n )}\n \n \n {\n setDefaultData();\n onToggleDialogModal();\n }}\n isCancel={false}\n okText={contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeProfileNotMentorConfirmButtonOk\", \"Ok, Understand\")}\n titleText={contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeProfileNotMentorDialogTitle\", \"You cannot set up mentor profile for now.\")}\n msg={contentTranslator(contentTranslations, \"SfiaProfile\", \"SfiaProfileMenteeProfileNotMentorDialogMessage\", \"You can be a mentor as soon as you have more than 4 Business skills.\")}\n >\n \n {state.isShowConfirm == false && state.isShowNotMentor == false && (\n \n )}\n \n \n );\n};\nexport default MentorProfileModal;\n","import \"../../../src/custom-skill-profile.css\";\nimport MenteeRequestModal from \"../../components/trienpont/components/modals/menteerequest\";\nimport MentorProfileModal from \"../../components/trienpont/components/modals/mentorprofile\";\nimport * as actionPlanActions from \"../../store/actions/actionPlanAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport * as lorActions from \"../../store/actions/lorAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as skillProfileActions from \"../../store/actions/skillProfileAction\";\nimport * as adminBadgeRequestActions from \"../../store/admin/actions/adminBadgeRequestActions\";\nimport * as adminPersonActions from \"../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { AlertDialog } from \"../AlertDialog\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport TableProfile from \"./TableProfile\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport Select from \"react-select\";\nimport { Alert, Button, Col, Container, Form, FormGroup, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip, Input, Table } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst FileDownload = require(\"js-file-download\");\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"32px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst subHeaderStyle = {\n fontFamily: \"IBMPlexSans-Light\",\n fontSize: \"11px\",\n};\n\nconst ddHeaderStyle = {\n fontsize: \"14px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst buttonStyle = {\n marginLeft: \"3px\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass SfiaSkills extends React.Component {\n static displayName = SfiaSkills.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n profileUpdating: this.props.profileUpdating,\n profileUpdatingSuccess: this.props.profileUpdatingSuccess,\n profileUpdatingError: this.props.profileUpdatingError,\n udpatedSkills: this.props.udpatedSkills,\n\n showDetail: false,\n showHidden: false,\n showEdit: false,\n proposedUpdateLowerLevelMode: false,\n loading: false,\n\n selectedJobMatchType: null,\n loadingGap: false,\n highlightGap: false,\n jobMatchTypes: [],\n jobGaps: [],\n profileTypeOptions: [],\n selectedEndorsementStatus: {\n value: \"\",\n label: \"None\",\n },\n endorsementStatusOptions: [\n {\n value: \"\",\n label: \"None\",\n },\n {\n value: \"For Review\",\n label: \"For Review\",\n },\n {\n value: \"Reviewed\",\n label: \"Reviewed\",\n },\n {\n value: \"Approved\",\n label: \"Approved\",\n },\n ],\n selectedprofileType: null,\n profileVersions: [],\n selectedProfileVersion: null,\n willCreateNewVersion: false,\n createNewVersion: false,\n\n lorLoading: false,\n lors: [],\n lorProfiles: [],\n\n skillLoading: false,\n categories: this.props.categories,\n extraFrameworkCapabilities: this.props.extraFrameworkCapabilities,\n extraFrameworkLevels: this.props.extraFrameworkLevels,\n skillProfiles: [],\n skillProfilesEdit: [],\n editCount: 0,\n\n latestUpdatedLorProfiles: null,\n latestUpdatedSkillProfiles: null,\n\n alerts: [],\n\n account: null,\n showLoadingPanel: false,\n showMakeLatestDialog: false,\n showApproveEndorsementDialog: false,\n showMentorProfileDialog: false,\n showMenteeRequestDialog: false,\n\n showRequestApprovalFirstDialog: false,\n requestApprovalComment: null,\n showRequestApprovalSecondDialog: false,\n requestApprovalUpdating: false,\n\n showPostponedReasonDialog: false,\n\n badgeRequest: this.props.managedPeople && this.props.managedPeople.personB && this.props.managedPeople.personB.badgeRequest,\n showEditCertify: false,\n\n showMaxBadgeExceed: false,\n updateBadgeRequest: false,\n showSubmitBadgeConfirmation: false,\n showApproveBadgeConfirmation: false,\n showProposedAction: false,\n processActionProposal: false,\n showAcceptActionProposalConfirmation: false,\n showRejectActionProposalConfirmation: false,\n acceptRejectActionProposalComment: \"\",\n showSuggestedUpdate: false,\n processUpdateProfileSuggestion: false,\n showAcceptUpdateProfileSuggestionConfirmation: false,\n showRejectUpdateProfileSuggestionConfirmation: false,\n acceptRejectUpdateProfileSuggestionComment: \"\",\n showFloatingLegend: false,\n editedSkillEvidences: [],\n };\n\n this.initData = this.initData.bind(this);\n this.fetchSkillProfiles = this.fetchSkillProfiles.bind(this);\n this.handleEditProfileSkill = this.handleEditProfileSkill.bind(this);\n this.handleEditProfileSkills = this.handleEditProfileSkills.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n\n this.mySkillProfileWrapper = React.createRef();\n this.parameterizedString = parameterizedString.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const selectedJobMatchType = {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"MatchNone\", \"None\"),\n value: \"None\",\n };\n\n this.setState({ selectedJobMatchType, categories: this.props.categories });\n\n if (this.props.badgeCertification) {\n if (this.state.badgeRequest) {\n if (!(this.state.badgeRequest && this.state.badgeRequest.requestCertificationEntries && this.state.badgeRequest.requestCertificationEntries.length > 0)) {\n this.setState({ showEditCertify: true });\n }\n }\n }\n\n this.initData();\n\n const params = new URLSearchParams(this.props.location.search);\n const isOpenMentee = params.get(\"mentee\")?.toLowerCase() === \"true\" ?? false;\n if (isOpenMentee === true) {\n this.handleOpenMenteeRequest();\n this.props.history.replace({\n search: \"\",\n });\n }\n }\n\n componentWillUnmount() {\n if (this.connection) {\n this.connection.stop();\n }\n\n this.setState = () => {\n return;\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.profileUpdating !== this.props.profileUpdating) {\n this.setState({ profileUpdating: this.props.profileUpdating });\n }\n\n if (prevProps.profileUpdatingSuccess !== this.props.profileUpdatingSuccess || prevProps.profileUpdatingError !== this.props.profileUpdatingError || prevProps.udpatedSkills !== this.props.udpatedSkills) {\n this.setState({\n profileUpdatingSuccess: this.props.profileUpdatingSuccess,\n profileUpdatingError: this.props.profileUpdatingError,\n udpatedSkills: this.props.udpatedSkills,\n });\n\n if (this.props.profileUpdatingSuccess && this.props.udpatedSkills) {\n const udpatedSkills = this.props.udpatedSkills;\n const { selectedProfileVersion, profileVersions, lorProfiles, skillProfiles } = this.state;\n\n const lorProfileResponses = udpatedSkills ? udpatedSkills.lorProfileResponses : [];\n const skillProfileResponses = udpatedSkills ? udpatedSkills.skillProfileResponses : [];\n const profileType = localStorage.getItem(\"profileType\");\n\n let version = null;\n if (lorProfileResponses.length > 0) {\n version = {\n version: lorProfileResponses[0].version,\n sfiaVersion: lorProfileResponses[0].sfiaVersion,\n createdOn: lorProfileResponses[0].createdOn,\n };\n } else if (skillProfileResponses.length > 0) {\n version = {\n version: skillProfileResponses[0].version,\n sfiaVersion: skillProfileResponses[0].sfiaVersion,\n createdOn: skillProfileResponses[0].createdOn,\n };\n }\n\n if (version.sfiaVersion != (selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null) || version.version != (selectedProfileVersion ? selectedProfileVersion.version : null)) {\n this.setState({\n profileVersions: [\n {\n value: `Version ${version.version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${version.version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(version.createdOn))}${profileType == \"Self Assessed\" && version.approved ? ` (Approved)` : \"\"}`,\n version: version.version,\n sfiaVersion: version.sfiaVersion,\n createdOn: version.createdOn,\n },\n ...profileVersions,\n ],\n selectedProfileVersion: {\n value: `Version ${version.version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${version.version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(version.createdOn))}`,\n version: version.version,\n sfiaVersion: version.sfiaVersion,\n createdOn: version.createdOn,\n },\n lorProfiles: [...lorProfileResponses],\n skillProfiles: [...skillProfileResponses],\n latestUpdatedLorProfiles: [...lorProfileResponses],\n latestUpdatedSkillProfiles: [...skillProfileResponses],\n });\n } else {\n if (lorProfileResponses) {\n lorProfiles\n .filter((it) => it.editedNumericVal)\n .forEach((lorProfile) => {\n if (lorProfileResponses.find((lorProfileResponse) => lorProfileResponse.id === lorProfile.id)) {\n const lorProfileResponse = lorProfileResponses.find((lorProfileResponse) => lorProfileResponse.id === lorProfile.id);\n lorProfile.numericVal = lorProfileResponse.numericVal;\n lorProfile.stringVal = lorProfileResponse.stringVal;\n lorProfile.labelVal = lorProfileResponse.labelVal;\n\n lorProfile.editedNumericVal = null;\n lorProfile.editedStringVal = null;\n lorProfile.editedLabelVal = null;\n lorProfile.edited = null;\n }\n });\n\n lorProfileResponses\n .filter(\n (it) =>\n !lorProfiles\n .map((lorProfile) => {\n return lorProfile.id;\n })\n .includes(it.id)\n )\n .forEach((lorProfile) => {\n lorProfiles.push(lorProfile);\n });\n\n this.setState({ lorProfiles: [...lorProfiles], latestUpdatedLorProfiles: [...lorProfiles] });\n }\n\n if (skillProfileResponses) {\n skillProfiles\n .filter((it) => it.editedNumericVal)\n .forEach((skillProfile) => {\n if (skillProfileResponses.find((skillProfileResponse) => skillProfileResponse.id === skillProfile.id || (skillProfileResponse.skillCode === skillProfile.skillCode && skillProfileResponse.level === skillProfile.level))) {\n const skillProfileResponse = skillProfileResponses.find((skillProfileResponse) => skillProfileResponse.id === skillProfile.id || (skillProfileResponse.skillCode === skillProfile.skillCode && skillProfileResponse.level === skillProfile.level));\n\n skillProfile.id = skillProfileResponse.id;\n skillProfile.numericVal = skillProfileResponse.numericVal;\n skillProfile.stringVal = skillProfileResponse.stringVal;\n skillProfile.labelVal = skillProfileResponse.labelVal;\n\n skillProfile.editedNumericVal = null;\n skillProfile.editedStringVal = null;\n skillProfile.editedLabelVal = null;\n skillProfile.edited = null;\n }\n });\n\n skillProfileResponses\n .filter(\n (it) =>\n !skillProfiles\n .map((skillProfile) => {\n return skillProfile.id;\n })\n .includes(it.id)\n )\n .forEach((skillProfile) => {\n skillProfiles.push(skillProfile);\n });\n\n this.setState({ skillProfiles: [...skillProfiles], latestUpdatedSkillProfiles: [...skillProfiles] });\n }\n }\n\n this.setState({\n selectedEndorsementStatus: {\n value: \"\",\n label: \"None\",\n },\n });\n\n this.props.onPerson.clearManagePeopleEndorsedStatus();\n if (this.props.managedPeople) {\n this.props.onAdminPerson.updatePersonEndorsement({\n personId: this.props.managedPeople.personB.id,\n latestStatus: \"\",\n endorsedById: null,\n endorsedBy: null,\n lastUpdatedById: this.props.managedPeople.personA.id,\n lastUpdatedBy: `${this.props.managedPeople.personA.firstName} ${this.props.managedPeople.personA.lastName}`,\n lastUpdated: version.createdOn,\n lastUpdatedVersion: version.version,\n lastReviewedById: null,\n lastReviewedBy: null,\n lastReviewed: null,\n lastReviewedVersion: null,\n lastApprovedById: null,\n lastApprovedBy: null,\n lastApproved: null,\n lastApprovedVersion: null,\n assessorId: this.props.managedPeople.personB.assessorId,\n assessorName: this.props.managedPeople.personB.assessorName,\n });\n }\n }\n\n if (this.props.profileUpdatingError) {\n this.generateAlert(\"danger\", this.props.profileUpdatingError);\n }\n\n if (this.props.profileUpdatingSuccess || this.props.profileUpdatingError) {\n setTimeout(() => {\n this.props.onSkillProfile.clearUpdateMySkillProfile();\n }, alertAutoHideInterval);\n }\n }\n\n if (prevProps.jobMatchesUpdated !== this.props.jobMatchesUpdated && this.props.jobMatchesUpdated) {\n this.handleChangeSkill({\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"MatchNone\", \"None\"),\n value: \"None\",\n });\n this.initData();\n }\n\n if (prevProps.forceOpenEditProfile !== this.props.forceOpenEditProfile) {\n if (this.props.forceOpenEditProfile) {\n this.setState({ showEdit: true, willCreateNewVersion: true });\n this.scroll(this.mySkillProfileWrapper);\n }\n }\n\n if (prevProps.account !== this.props.account && this.props.account) {\n this.setState({ account: this.props.account });\n }\n\n if (prevProps.managedPeople !== this.props.managedPeople && this.props.managedPeople) {\n const badgeRequest = this.props.managedPeople && this.props.managedPeople.personB && this.props.managedPeople.personB.badgeRequest;\n this.setState({ badgeRequest });\n\n if (this.props.badgeCertification) {\n if (badgeRequest) {\n if (!(badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.length > 0)) {\n this.setState({ showEditCertify: true });\n }\n }\n }\n }\n }\n\n initData() {\n const { profileUpdating, endorsementStatusOptions } = this.state;\n\n if (!profileUpdating) {\n this.setState({ loading: true });\n\n if (this.props.managedPeople) {\n const endorsementStatus = endorsementStatusOptions.find((it) => it.value == this.props.managedPeople.endorsementStatus);\n this.setState({ selectedEndorsementStatus: endorsementStatus });\n }\n\n Promise.all([\n this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileTypes(this.props.managedPeople.personB.email) : this.props.onSkillProfile.getMyProfileTypes(),\n this.props.managedPeople ? this.props.onPerson.getManagedPeopleLatestAccount(this.props.managedPeople.personB.email) : this.props.onPerson.getPersonLatestAccount(),\n ])\n .then(() => {\n if (!(this.props.skillProfileLoading && this.props.personLoading)) {\n if (this.props.skillProfileError || this.props.personError) {\n this.setState({ loading: false });\n } else {\n this.setState({ account: this.props.account });\n let profileType = null;\n\n let profileTypes = this.props.profileTypes;\n\n if ((this.props.isEndorser || this.props.manageEndorsements) && this.props.managedPeople) {\n if (!profileTypes.includes(\"Endorsed\")) {\n profileTypes.push(\"Endorsed\");\n }\n }\n\n if (this.props.allowSkipSurvey == true) {\n if (!profileTypes.includes(\"Self Assessed\")) {\n profileTypes.push(\"Self Assessed\");\n }\n }\n\n if (profileTypes.length > 0) {\n const lastProfileType = localStorage.getItem(\"profileType\");\n\n if (lastProfileType) {\n if (profileTypes.includes(lastProfileType)) {\n profileType = lastProfileType;\n } else {\n profileType = profileTypes[0];\n }\n } else {\n profileType = profileTypes[0];\n }\n\n if (profileType) {\n localStorage.setItem(\"profileType\", profileType);\n }\n\n const profileTypeOptions = [\n ...profileTypes.map((it) => {\n return {\n value: it,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", it.replace(\" \", \"\"), it),\n };\n }),\n ];\n\n this.setState({\n profileTypeOptions: [...profileTypeOptions],\n selectedprofileType: {\n value: profileType,\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", profileType.replace(\" \", \"\"), profileType),\n },\n });\n }\n\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileVersions(this.props.managedPeople.personB.email, profileType) : this.props.onSkillProfile.getMyProfileVersions(profileType)).then(() => {\n if (!this.props.skillProfileLoading) {\n if (this.props.skillProfileError) {\n this.setState({ loading: false });\n } else {\n let selectedProfileVersion = null;\n if (this.props.profileVersions.length > 0) {\n selectedProfileVersion = {\n version: this.props.profileVersions[0].version,\n sfiaVersion: this.props.profileVersions[0].sfiaVersion,\n };\n\n this.setState({\n profileVersions: this.props.profileVersions.map((it) => {\n return {\n value: `Version ${it.version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${it.version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(it.createdOn))}${profileType == \"Self Assessed\" && it.approved ? ` (Approved)` : \"\"}`,\n version: it.version,\n sfiaVersion: it.sfiaVersion,\n createdOn: it.createdOn,\n };\n }),\n\n selectedProfileVersion: {\n value: `Version ${this.props.profileVersions[0].version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${this.props.profileVersions[0].version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(this.props.profileVersions[0].createdOn))}`,\n version: this.props.profileVersions[0].version,\n sfiaVersion: this.props.profileVersions[0].sfiaVersion,\n createdOn: this.props.profileVersions[0].createdOn,\n },\n });\n\n this.props.selectVersion(this.props.profileVersions[0].version);\n }\n\n const jobMatchTypes = [\n {\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"MatchNone\", \"None\"),\n value: \"None\",\n },\n ];\n\n Promise.resolve(this.props.managedPeople ? this.props.onJob.getManagedPeopleJobMatches(this.props.managedPeople.personB.email) : this.props.onJob.getMyJobMatches(this.props.containerConfig && this.props.containerConfig.internalJobMarket ? true : false)).then(() => {\n if (!this.props.jobLoading) {\n if (this.props.jobError) {\n this.setState({ loading: false });\n } else {\n const jobMatches = this.props.jobMatches;\n const currentJob = jobMatches.find((it) => it.jobType === \"Current\");\n const futureJob = jobMatches.find((it) => it.jobType === \"Future\");\n\n if (currentJob) {\n jobMatchTypes.push({\n value: \"Current\",\n label: `${this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Current\", \"Current\")} - ${currentJob.jobTitle}`,\n id: currentJob.jobId,\n });\n }\n\n if (futureJob) {\n jobMatchTypes.push({\n value: \"Future\",\n label: `${this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"Future\", \"Future\")} - ${futureJob.jobTitle}`,\n id: futureJob.jobId,\n });\n }\n\n this.setState({\n loading: false,\n jobMatchTypes,\n });\n this.fetchSkillProfiles(profileType, selectedProfileVersion);\n }\n }\n });\n }\n }\n });\n }\n }\n })\n .catch((err) => {\n console.log(\"catch error\", err);\n this.setState({\n loading: false,\n });\n });\n }\n }\n\n fetchSkillProfiles(profileType, selectedProfileVersion) {\n this.setState({ lorLoading: true, skillLoading: true });\n\n Promise.all([\n this.props.onLor.getLors(),\n\n this.props.managedPeople\n ? this.props.onSkillProfile.getManagedPeopleLorProfile(this.props.managedPeople.personB.email, selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version, profileType)\n : this.props.onSkillProfile.getMyLorProfile(selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version, profileType),\n\n this.props.managedPeople\n ? this.props.onSkillProfile.getManagedPeopleSkillProfile(this.props.managedPeople.personB.email, selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version, profileType)\n : this.props.onSkillProfile.getMySkillProfile(selectedProfileVersion && selectedProfileVersion.sfiaVersion, selectedProfileVersion && selectedProfileVersion.version, profileType),\n\n this.props.managedPeople ? this.props.onEvidence.getEvidencesByManagedPeopleAccountId(this.props.managedPeople.personB.email) : this.props.onEvidence.getEvidencesByAccountId(),\n ])\n .then(() => {\n if (!this.props.lorLoading && !this.props.lorError && !this.props.lorProfileLoading && !this.props.lorProfileError && !this.props.loadingEvidence && !this.props.errorEvidence) {\n this.setState({\n lors: this.props.lors,\n lorProfiles: this.props.lorProfiles,\n evidences: this.props.evidences,\n });\n }\n\n if (!this.props.skillProfileLoading && !this.props.skillProfileError) {\n const skillProfiles = this.props.skillProfiles;\n\n this.setState({\n skillProfiles,\n });\n }\n\n this.setState({\n lorLoading: this.props.lorLoading || this.props.lorProfileLoading,\n skillLoading: this.props.categoryLoading || this.props.skillProfileLoading,\n });\n })\n .catch(() => {\n this.setState({\n lorLoading: false,\n skillLoading: false,\n });\n });\n }\n\n handleChangeShowHidden = () => {\n const showHidden = !this.state.showHidden;\n this.props.handleChangeShowHidden(showHidden);\n this.setState({ showHidden });\n };\n\n handleChangeShowDetail = () => {\n this.setState({\n showDetail: !this.state.showDetail,\n });\n };\n\n handleCreateNewVersion = () => {\n this.setState({ willCreateNewVersion: true, createNewVersion: true, lorProfiles: [], skillProfiles: [], showEdit: true });\n };\n\n handleChangeShowEdit = () => {\n let willCreateNewVersion = false;\n\n if (!this.state.showEdit) {\n willCreateNewVersion = true;\n this.setState({ showEdit: !this.state.showEdit, willCreateNewVersion, createNewVersion: false, editCount: 0 });\n } else if (this.state.skillProfilesEdit.length > 0 && this.state.editCount > 0) {\n if (window.confirm(\"You have some updates, are you sure to cancel the updates?\")) {\n let { lorProfiles, skillProfiles, createNewVersion } = this.state;\n\n if (createNewVersion) {\n lorProfiles = this.props.lorProfiles;\n skillProfiles = this.props.skillProfiles;\n } else {\n if (lorProfiles) {\n lorProfiles.forEach((it) => {\n it.edited = false;\n it.editedLabelVal = false;\n it.editedLevel = null;\n it.editedNumericVal = null;\n it.editedStringVal = null;\n });\n }\n\n if (skillProfiles) {\n skillProfiles.forEach((it) => {\n it.edited = false;\n it.editedLabelVal = null;\n it.editedNumericVal = null;\n it.editedStringVal = null;\n });\n }\n }\n\n this.setState({\n skillProfilesEdit: [],\n editCount: 0,\n createNewVersion: false,\n showEdit: !this.state.showEdit,\n proposedUpdateLowerLevelMode: false,\n lorProfiles: lorProfiles.filter((it) => it.id),\n skillProfiles: skillProfiles.filter((it) => it.id),\n });\n }\n } else {\n this.setState({\n showEdit: !this.state.showEdit,\n proposedUpdateLowerLevelMode: false,\n willCreateNewVersion,\n createNewVersion: false,\n lorProfiles: this.props.lorProfiles\n ? this.props.lorProfiles && this.props.lorProfiles.length > 0\n ? this.props.lorProfiles\n : this.state.latestUpdatedLorProfiles\n ? this.state.latestUpdatedLorProfiles && this.state.latestUpdatedLorProfiles.length > 0\n ? this.state.latestUpdatedLorProfiles\n : this.props.lorProfiles\n : []\n : this.state.latestUpdatedLorProfiles\n ? this.state.latestUpdatedLorProfiles\n : [],\n skillProfiles: this.props.skillProfiles\n ? this.props.skillProfiles && this.props.skillProfiles.length > 0\n ? this.props.skillProfiles\n : this.state.latestUpdatedSkillProfiles\n ? this.state.latestUpdatedSkillProfiles && this.state.latestUpdatedSkillProfiles.length > 0\n ? this.state.latestUpdatedSkillProfiles\n : this.props.skillProfiles\n : []\n : this.state.latestUpdatedSkillProfiles\n ? this.state.latestUpdatedSkillProfiles\n : [],\n });\n }\n };\n\n handleEditProfileSkill(profileEdit) {\n let { skillProfilesEdit, createNewVersion } = this.state;\n\n let oriProfileEdit = skillProfilesEdit.find(\n (it) => (it.id && it.id === profileEdit.id && it.source == profileEdit.source) || (!it.id && it.source == profileEdit.source && ((it.lorCode && it.lorCode === profileEdit.lorCode) || (it.skillCode && it.skillCode === profileEdit.skillCode && it.level === profileEdit.level)))\n );\n\n if (oriProfileEdit) {\n oriProfileEdit.numericVal = profileEdit.numericVal;\n oriProfileEdit.editedNumericVal = profileEdit.editedNumericVal;\n oriProfileEdit.editedLabelVal = profileEdit.editedLabelVal;\n\n const editCount = createNewVersion ? skillProfilesEdit.filter((it) => it.editedNumericVal != 0).length : skillProfilesEdit.filter((it) => (it.id && it.edited) || (!it.id && it.editedNumericVal != 0)).length;\n this.setState({ skillProfilesEdit: skillProfilesEdit, editCount });\n } else {\n skillProfilesEdit = [...skillProfilesEdit, profileEdit];\n\n const editCount = createNewVersion ? skillProfilesEdit.filter((it) => it.editedNumericVal != 0).length : skillProfilesEdit.filter((it) => (it.id && it.edited) || (!it.id && it.editedNumericVal != 0)).length;\n this.setState({ skillProfilesEdit, editCount });\n }\n }\n\n handleEditProfileSkills(profilesEdit, editedSkillEvidence) {\n let { skillProfilesEdit, createNewVersion, editedSkillEvidences, selectedprofileType } = this.state;\n\n profilesEdit.forEach((profileEdit) => {\n let oriProfileEdit = skillProfilesEdit.find(\n (it) => (it.id && it.id === profileEdit.id && it.source == profileEdit.source) || (!it.id && it.source == profileEdit.source && ((it.lorCode && it.lorCode === profileEdit.lorCode) || (it.skillCode && it.skillCode === profileEdit.skillCode && it.level === profileEdit.level)))\n );\n\n if (oriProfileEdit) {\n oriProfileEdit.numericVal = profileEdit.numericVal;\n oriProfileEdit.editedNumericVal = profileEdit.editedNumericVal;\n oriProfileEdit.editedLabelVal = profileEdit.editedLabelVal;\n } else {\n skillProfilesEdit = [...skillProfilesEdit, profileEdit];\n }\n });\n\n if (editedSkillEvidence) {\n editedSkillEvidences = [...editedSkillEvidences, editedSkillEvidence];\n }\n\n const editCount = createNewVersion ? skillProfilesEdit.filter((it) => it.editedNumericVal != 0).length : skillProfilesEdit.filter((it) => (it.id && it.edited) || (!it.id && it.editedNumericVal != 0)).length;\n\n if (selectedprofileType.value == \"Self Assessed\") {\n const skillProfilesRequireEvidence =\n skillProfilesEdit && skillProfilesEdit.length > 0\n ? skillProfilesEdit.filter((it) => (it.source == \"skillProfiles\" && it.numericVal && it.editedNumericVal && it.editedNumericVal > it.numericVal && it.editedNumericVal >= 0.5) || (!it.numericVal && it.editedNumericVal && it.editedNumericVal >= 0.5))\n : [];\n const unNeededEvidences = editedSkillEvidences.filter((e) => e.skillLevels.filter((el) => skillProfilesRequireEvidence.find((p) => p.skillCode == el.skillCode && p.level == el.level)).length == 0);\n if (unNeededEvidences.length > 0) {\n unNeededEvidences.forEach((unNeededEvidence) => {\n const index = editedSkillEvidences.indexOf(unNeededEvidence);\n editedSkillEvidences.splice(index, 1);\n });\n }\n }\n\n this.setState({ skillProfilesEdit: skillProfilesEdit, editCount, editedSkillEvidences: [...editedSkillEvidences] });\n }\n\n handlePrintReport = () => {\n const endorsed = this.state.selectedprofileType.value == \"Endorsed\" ? true : false;\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.printManagedPeopleProfile(this.props.managedPeople.personB.email, endorsed) : this.props.onSkillProfile.printMyProfile(endorsed)).then(() => {\n if (!this.props.loadingPrint && !this.props.skillProfileError) {\n if (this.props.printData) {\n let firstName = localStorage.getItem(\"firstName\");\n let lastName = localStorage.getItem(\"lastName\");\n\n if (this.props.managedPeople) {\n firstName = this.props.managedPeople.personB.firstName;\n lastName = this.props.managedPeople.personB.lastName;\n }\n\n let reportFormat = \"PDF\";\n if (this.props.selfAssessedProfileReportFormat) {\n reportFormat = this.props.selfAssessedProfileReportFormat;\n }\n\n FileDownload(\n this.props.printData,\n firstName && lastName ? `${firstName}${lastName}_SkillsTx_${endorsed ? \"Endorsed\" : \"Individual\"}_Skills_Profile.${reportFormat == \"PDF\" ? \"pdf\" : \"docx\"}` : `SkillsTx_${endorsed ? \"Endorsed\" : \"Individual\"}_Skills_Profile.${reportFormat == \"PDF\" ? \"pdf\" : \"docx\"}`\n );\n }\n }\n });\n };\n\n handleExportProfile = () => {\n if (window.confirm(`You are about to export the currently selected version of your skill profile.\\nAre you sure?`)) {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Export Profile\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onPerson.downloadPersonMyProfile().then(() => {\n if (!this.props.loadingExport && !this.props.error) {\n if (this.props.exportData) {\n let firstName = localStorage.getItem(\"firstName\");\n let lastName = localStorage.getItem(\"lastName\");\n\n FileDownload(\n this.props.exportData,\n firstName && lastName\n ? `SkillsTX_${firstName} ${lastName}_${this.state.selectedprofileType.value}_v${this.state.selectedProfileVersion.version}_${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(this.state.selectedProfileVersion.createdOn))}.json`\n : \"Person Profile.json\"\n );\n }\n }\n\n this.setState({ showLoadingPanel: this.props.loadingExport });\n });\n }\n };\n\n handleEmailReport = () => {\n this.props.onSkillProfile.emailMyProfileReport().then(() => {\n if (!this.props.loadingPrint && !this.props.skillProfileError) {\n this.generateAlert(\"success\", \"Your report is being generated and will be emailed to you within a few minutes.\");\n }\n });\n };\n\n handleSaveSkillUpdate = () => {\n let personId = localStorage.getItem(\"personId\");\n\n if (this.props.managedPeople && (this.props.isEndorser || this.props.manageEndorsements)) {\n personId = this.props.managedPeople.personB.id;\n }\n\n const { selectedprofileType, selectedProfileVersion, willCreateNewVersion, skillProfilesEdit, lorProfiles, skillProfiles, editedSkillEvidences } = this.state;\n\n if (willCreateNewVersion) {\n lorProfiles.forEach((profile) => {\n if (!skillProfilesEdit.find((it) => it.id == profile.id) || !profile.id) {\n skillProfilesEdit.push({\n sfiaVersion: selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null,\n version: selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1,\n createdOn: new Date(),\n updatedOn: new Date(),\n personId: profile.personId,\n roleId: profile.roleId,\n role: profile.role,\n lor: profile.lor,\n lorCode: profile.lorCode,\n level: profile.level * 1,\n stringVal: profile.stringVal,\n numericVal: profile.numericVal,\n labelVal: profile.labelVal,\n profileType: profile.profileType,\n isEditable: profile.isEditable,\n source: \"lorProfiles\",\n });\n }\n });\n\n skillProfiles.forEach((profile) => {\n if (!skillProfilesEdit.find((it) => it.id == profile.id)) {\n skillProfilesEdit.push({\n sfiaVersion: selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null,\n version: selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1,\n createdOn: new Date(),\n updatedOn: new Date(),\n personId: profile.personId,\n roleId: profile.roleId,\n role: profile.role,\n category: profile.category,\n subCategory: profile.subCategory,\n skill: profile.skill,\n skillCode: profile.skillCode,\n level: profile.level,\n stringVal: profile.stringVal,\n numericVal: profile.numericVal,\n labelVal: profile.labelVal,\n profileType: profile.profileType,\n isEditable: profile.isEditable,\n source: \"skillProfiles\",\n isExtraFramework: profile.isExtraFramework,\n extraFrameworkLevel: profile.extraFrameworkLevel,\n extraFrameworkLevelId: profile.extraFrameworkLevelId,\n });\n }\n });\n\n skillProfilesEdit.forEach((skillProfile) => {\n skillProfile.id = null;\n skillProfile.personId = personId;\n skillProfile.sfiaVersion = selectedProfileVersion ? selectedProfileVersion.sfiaVersion : null;\n skillProfile.version = selectedProfileVersion ? selectedProfileVersion.version * 1 + 1 : 1;\n skillProfile.profileType = selectedprofileType.value;\n skillProfile.createdOn = new Date();\n skillProfile.updatedOn = new Date();\n skillProfile.isEditable = true;\n\n if (skillProfile.editedStringVal) {\n skillProfile.stringVal = skillProfile.editedStringVal;\n skillProfile.numericVal = skillProfile.editedNumericVal;\n skillProfile.labelVal = skillProfile.editedLabelVal;\n }\n });\n } else {\n skillProfilesEdit.forEach((skillProfile) => {\n if (!skillProfile.id) {\n skillProfile.personId = personId;\n skillProfile.sfiaVersion = selectedProfileVersion.sfiaVersion;\n skillProfile.version = selectedProfileVersion.version;\n skillProfile.profileType = selectedprofileType.value;\n skillProfile.createdOn = selectedProfileVersion.createdOn;\n skillProfile.updatedOn = new Date();\n skillProfile.isEditable = true;\n } else {\n skillProfile.updatedOn = new Date();\n }\n });\n }\n\n if (editedSkillEvidences && editedSkillEvidences.length > 0) {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Save evidences\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onEvidence.addEvidences(editedSkillEvidences).then(() => {\n if (!this.props.addEvidenceInProgress) {\n if (this.props.evidenceError) {\n this.generateAlert(\"danger\", this.props.evidenceError.errData.Message);\n } else {\n (this.props.managedPeople || this.props.isEndorser) && this.props.manageEndorsements\n ? this.props.onSkillProfile.updateManagedPeopleProfile(\n this.props.managedPeople.personB.email,\n skillProfilesEdit.filter((it) => it.id || it.editedNumericVal != 0)\n )\n : this.props.onSkillProfile.updateMySkillProfile(skillProfilesEdit.filter((it) => it.id || it.editedNumericVal != 0));\n\n if (lorProfiles) {\n lorProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n if (skillProfiles) {\n skillProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n this.setState({\n skillProfilesEdit: [],\n showEdit: !this.state.showEdit,\n lorProfiles,\n skillProfiles,\n });\n }\n }\n this.setState({ showLoadingPanel: this.props.addEvidenceInProgress });\n });\n } else {\n (this.props.managedPeople || this.props.isEndorser) && this.props.manageEndorsements\n ? this.props.onSkillProfile.updateManagedPeopleProfile(\n this.props.managedPeople.personB.email,\n skillProfilesEdit.filter((it) => it.id || it.editedNumericVal != 0)\n )\n : this.props.onSkillProfile.updateMySkillProfile(skillProfilesEdit.filter((it) => it.id || it.editedNumericVal != 0));\n\n if (lorProfiles) {\n lorProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n if (skillProfiles) {\n skillProfiles.forEach((it) => {\n it.edited = false;\n });\n }\n\n this.setState({\n skillProfilesEdit: [],\n showEdit: !this.state.showEdit,\n lorProfiles,\n skillProfiles,\n });\n }\n };\n\n handleChangeProfile = (selectedprofileType) => {\n this.setState({ selectedprofileType });\n\n const profileType = selectedprofileType.value;\n\n localStorage.setItem(\"profileType\", profileType);\n\n Promise.resolve(this.props.managedPeople ? this.props.onSkillProfile.getManagedPeopleProfileVersions(this.props.managedPeople.personB.email, profileType) : this.props.onSkillProfile.getMyProfileVersions(profileType)).then(() => {\n if (this.props.error) {\n this.setState({ loading: false });\n } else {\n let selectedProfileVersion = null;\n if (this.props.profileVersions.length > 0) {\n selectedProfileVersion = {\n version: this.props.profileVersions[0].version,\n sfiaVersion: this.props.profileVersions[0].sfiaVersion,\n };\n\n this.props.selectVersion(this.props.profileVersions[0].version);\n\n this.setState(\n {\n profileVersions: this.props.profileVersions.map((it) => {\n return {\n value: `Version ${it.version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${it.version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(it.createdOn))}`,\n version: it.version,\n sfiaVersion: it.sfiaVersion,\n createdOn: it.createdOn,\n };\n }),\n selectedProfileVersion: {\n value: `Version ${this.props.profileVersions[0].version}`,\n label: `${profileType == \"Self Assessed\" || this.props.manageEndorsements || this.props.manageSelfAssessed ? `v${this.props.profileVersions[0].version} - ` : \"\"}${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(this.props.profileVersions[0].createdOn))}`,\n version: this.props.profileVersions[0].version,\n sfiaVersion: this.props.profileVersions[0].sfiaVersion,\n createdOn: this.props.profileVersions[0].createdOn,\n },\n },\n () => {\n this.fetchSkillProfiles(profileType, selectedProfileVersion);\n }\n );\n } else {\n this.props.selectVersion(null);\n\n this.setState(\n {\n profileVersions: [],\n selectedProfileVersion: null,\n },\n () => {\n this.fetchSkillProfiles(profileType, null);\n }\n );\n }\n\n this.setState({ loading: false });\n }\n });\n };\n\n handleChangeSkill = (selectedJobMatchType) => {\n if (selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n this.setState({ loadingGap: true, highlightGap: selectedJobMatchType.value != \"None\" });\n\n Promise.all([this.props.onJob.getJobLorProfiles(selectedJobMatchType.id), this.props.onJob.getJobSkillProfiles(selectedJobMatchType.id), this.props.onJob.getJobSkillAttributes(selectedJobMatchType.id), this.props.onJob.getJobLorAttributes(selectedJobMatchType.id)])\n .then(() => {\n if (!this.props.jobLoading && !this.props.jobError) {\n this.setState({\n jobLorProfiles: this.props.jobLorProfiles,\n jobSkillProfiles: this.props.jobSkillProfiles.filter((it) => it.stringVal != \"N\"),\n jobSkillAttributes: this.props.jobSkillAttributes,\n jobLorAttributes: this.props.jobLorAttributes,\n });\n }\n\n this.setState({\n loadingGap: this.props.jobLoading,\n selectedJobMatchType,\n highlightGap: selectedJobMatchType.value != \"None\",\n });\n })\n .catch(() => {\n this.setState({\n loadingGap: false,\n });\n });\n } else {\n this.setState({\n selectedJobMatchType,\n highlightGap: selectedJobMatchType.value != \"None\",\n jobLorProfiles: [],\n jobSkillProfiles: [],\n });\n }\n };\n\n handleChangeVersion = (selectedProfileVersion) => {\n this.setState({ selectedProfileVersion });\n\n this.props.selectVersion(selectedProfileVersion.version);\n\n this.fetchSkillProfiles(this.state.selectedprofileType.value, {\n version: selectedProfileVersion.version,\n sfiaVersion: selectedProfileVersion.sfiaVersion,\n });\n };\n\n handleCopyEndorsedProfile = () => {\n if (window.confirm(`Are you sure?`)) {\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Copy Endorsed Profile\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onSkillProfile.copyEndorsedProfile().then(() => {\n if (!this.props.endorsedProfileCopying) {\n if (this.props.endorsedProfileCopyingError) {\n this.generateAlert(\"danger\", this.props.endorsedProfileCopyingError.errData.Message);\n } else if (this.props.endorsedProfileCopyingSuccess) {\n this.generateAlert(\"success\", \"Endorsed profile has been successfully copied\");\n this.initData();\n }\n\n this.setState({ showLoadingPanel: false });\n }\n });\n }\n };\n\n handleRequestAccountApproval = () => {\n this.setState({ showRequestApprovalFirstDialog: true });\n };\n\n handleRequestApprovalCommentChange = (event) => {\n const { value } = event.target;\n\n this.setState({\n requestApprovalComment: value,\n });\n };\n\n togleRequestApprovalFirstModal = () => {\n const showRequestApprovalFirstDialog = this.state.showRequestApprovalFirstDialog;\n this.setState({ showRequestApprovalFirstDialog: !showRequestApprovalFirstDialog });\n };\n\n renderRequestApprovalFirstConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleFirstConfirmRequestApproval();\n }}\n disabled={!(this.state.requestApprovalComment && this.state.requestApprovalComment != \"\")}\n >\n \n \n \n \n \n );\n };\n\n handleFirstConfirmRequestApproval = () => {\n this.setState({ showRequestApprovalFirstDialog: false, showRequestApprovalSecondDialog: true });\n };\n\n closeRequestApprovalSecondModal = () => {\n this.setState({ showRequestApprovalFirstDialog: true, showRequestApprovalSecondDialog: false });\n };\n\n renderRequestApprovalSecondConfirmation = () => {\n return (\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleConfirmRequestApproval();\n }}\n disabled={this.state.requestApprovalUpdating}\n >\n \n \n \n \n \n );\n };\n\n handleConfirmRequestApproval = () => {\n this.setState({ requestApprovalUpdating: true });\n\n const account = this.state.account;\n\n this.props.onPerson.personAccountRequestApproval(account.id, this.state.requestApprovalComment).then(() => {\n if (!this.props.personUpdating) {\n if (this.props.personError) {\n this.generateAlert(\"danger\", this.props.personError.errData.Message);\n } else if (this.props.account) {\n this.generateAlert(\"success\", \"Approval sent\");\n this.setState({ account: this.props.account, showRequestApprovalSecondDialog: false, requestApprovalComment: null });\n }\n }\n\n this.setState({ requestApprovalUpdating: this.props.personUpdating });\n });\n };\n\n handleShowPostponedReason = () => {\n this.setState({ showPostponedReasonDialog: true });\n\n const account = this.state.account;\n if (account && account.isApprovalPostponedShown == false) {\n this.props.onPerson.personAccountShowPostponeComment(account.id);\n }\n\n account.isApprovalPostponedShown = true;\n };\n\n togleShowPostponedReason = () => {\n const showPostponedReasonDialog = this.state.showPostponedReasonDialog;\n this.setState({ showPostponedReasonDialog: !showPostponedReasonDialog });\n };\n\n renderPostponedReasonDialog = () => {\n const { selectedprofileType, account } = this.state;\n const { currAssessment, person } = this.props;\n let showApprovalPostponed = false;\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Self Assessed\") {\n if (account && currAssessment && currAssessment.enableApprovalRequest && (account.isApprovalRequested || account.isApprovalPostponed)) {\n showApprovalPostponed = account.isApprovalPostponed ? account.isApprovalPostponed : false;\n }\n }\n\n return (\n \n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n );\n };\n\n renderLoadingPanel() {\n if (this.state.showLoadingPanel) {\n return (\n \n {this.state.loadingPanelHeader}\n \n {this.state.loadingPanelBody}\n \n \n );\n } else {\n return \"\";\n }\n }\n\n scroll(ref) {\n ref.current.scrollIntoView({ behavior: \"smooth\" });\n }\n\n handleShowMakeLatestConfirmation = () => {\n this.setState({ showMakeLatestDialog: true });\n };\n\n togleMakeLatestProfileModal = () => {\n const showMakeLatestDialog = this.state.showMakeLatestDialog;\n\n this.setState({ showMakeLatestDialog: !showMakeLatestDialog });\n };\n\n handleConfirmMakeLatestProfile = () => {\n const { selectedProfileVersion, selectedprofileType } = this.state;\n this.setState({ showMakeLatestDialog: false, showLoadingPanel: true, loadingPanelHeader: \"Make Profile Latest\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onSkillProfile.copyProfile(selectedProfileVersion.version, selectedprofileType.value).then(() => {\n if (!this.props.copyProfile) {\n if (this.props.copyProfileError) {\n this.generateAlert(\"danger\", this.props.copyProfileError.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Profile has been successfully made as latest\");\n this.initData();\n }\n\n this.setState({ showLoadingPanel: false });\n }\n });\n };\n\n renderMakeLatestProfileConfirmation = () => {\n return (\n \n Make Latest Profile Confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleConfirmMakeLatestProfile();\n }}\n >\n \n \n \n \n \n );\n };\n\n handleChangeEndorsementStatus = (selectedStatus) => {\n const selectedEndorsementStatus = this.state.selectedEndorsementStatus;\n\n if (\n selectedStatus.value != selectedEndorsementStatus.value &&\n ((selectedStatus.value != \"\" && selectedEndorsementStatus.value == \"\") ||\n (selectedStatus.value == \"For Review\" && selectedEndorsementStatus.value == \"\") ||\n (selectedStatus.value == \"Reviewed\" && selectedEndorsementStatus.value != \"Approved\") ||\n (selectedStatus.value == \"Approved\" && selectedEndorsementStatus.value != \"Approved\"))\n ) {\n if (selectedStatus.value == \"Approved\") {\n this.setState({ showApproveEndorsementDialog: true });\n } else {\n this.setState({ updateEndorsedStatus: true, showLoadingPanel: true, loadingPanelHeader: \"Update Endorsed Status\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onSkillProfile.updateEndorsedStatus(this.props.managedPeople.personB.email, selectedStatus.value).then(() => {\n if (!this.props.updateEndorsedStatus) {\n if (this.props.updateEndorsedStatusError) {\n this.generateAlert(\"danger\", this.props.updateEndorsedStatusError.errData.Message);\n } else {\n this.props.onAdminPerson.updatePersonEndorsement(this.props.updatedPersonEndorsement);\n this.props.onPerson.updateManagePeopleEndorsedStatus(selectedStatus.value);\n this.generateAlert(\"success\", \"Update Endorsed status successful\");\n }\n }\n\n this.setState({ showLoadingPanel: this.props.updateEndorsedStatus, updateEndorsedStatus: this.props.updateEndorsedStatus });\n this.setState({ selectedEndorsementStatus: selectedStatus });\n });\n }\n }\n };\n\n togleApproveEndorsementModal = () => {\n const showApproveEndorsementDialog = this.state.showApproveEndorsementDialog;\n\n this.setState({ showApproveEndorsementDialog: !showApproveEndorsementDialog });\n };\n\n handleConfirmApproveEndorsement = () => {\n this.setState({ showApproveEndorsementDialog: false, updateEndorsedStatus: true, showLoadingPanel: true, loadingPanelHeader: \"Approved Endorsement\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onSkillProfile.updateEndorsedStatus(this.props.managedPeople.personB.email, \"Approved\").then(() => {\n if (!this.props.updateEndorsedStatus) {\n if (this.props.updateEndorsedStatusError) {\n this.generateAlert(\"danger\", this.props.updateEndorsedStatusError.errData.Message);\n this.setState({ showApproveEndorsementDialog: true });\n } else {\n this.props.onAdminPerson.updatePersonEndorsement(this.props.updatedPersonEndorsement);\n this.props.onPerson.updateManagePeopleEndorsedStatus(\"Approved\");\n this.props.endorsedProfileApproved();\n this.generateAlert(\"success\", \"Approved Endorsement successful\");\n }\n }\n\n this.setState({ showLoadingPanel: this.props.updateEndorsedStatus, updateEndorsedStatus: this.props.updateEndorsedStatus });\n this.setState({ selectedEndorsementStatus: { value: \"Approved\", label: \"Approved\" } });\n });\n };\n\n handleOpenMenteeRequest = () => {\n this.setState({ showMenteeRequestDialog: new Date() });\n };\n\n handleOpenMentorProfile = () => {\n this.setState({ showMentorProfileDialog: new Date() });\n };\n\n handleCloseMentorProfile = (val) => {\n if (!this.props.managedPeople && this.state.selectedprofileType && this.state.selectedprofileType.value == \"Self Assessed\") {\n if (\n this.state.account &&\n this.props.currAssessment &&\n this.props.currAssessment.enableFindMentor &&\n val && //isMentor\n this.state.account.canBeMentor\n ) {\n this.setState({\n //showBeMentor: true,\n account: {\n ...this.state.account,\n isMentor: val,\n },\n });\n }\n }\n // this.setState({\n // account: { ...this.state.account, isMentor: val },\n // });\n };\n\n renderMenteeRequest = () => {\n return ;\n };\n\n renderMentorProfile = () => {\n return ;\n };\n\n renderApproveEndorsementConfirmation = () => {\n return (\n \n Approved Endorsement Confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleConfirmApproveEndorsement();\n }}\n >\n OK\n \n \n \n \n );\n };\n\n handleTogleEditBadgeRequest = () => {\n const showEditCertify = this.state.showEditCertify;\n this.setState({ showEditCertify: !showEditCertify });\n };\n\n badgeRequestUpdated = (badgeRequest) => {\n this.setState({ badgeRequest });\n\n const maxNumberOfBadgeRequestSkill = this.props.maxNumberOfBadgeRequestSkill;\n let requestCertificationEntries = badgeRequest && badgeRequest.requestCertificationEntries ? [...badgeRequest.requestCertificationEntries] : [];\n let numberBadgeRequested = 0;\n requestCertificationEntries.forEach((requestCertificationEntry) => {\n let stringVal = requestCertificationEntry.storedStringVal ? requestCertificationEntry.storedStringVal : requestCertificationEntry.editedStringVal ? requestCertificationEntry.editedStringVal : requestCertificationEntry.stringVal ? requestCertificationEntry.stringVal : \"N\";\n\n if (stringVal != \"N\") {\n numberBadgeRequested += 1;\n }\n });\n\n if (numberBadgeRequested >= maxNumberOfBadgeRequestSkill) {\n this.setState({ showMaxBadgeExceed: true });\n }\n };\n\n togleMaxBadgeExceedConfirmation = () => {\n const showMaxBadgeExceed = this.state.showMaxBadgeExceed;\n this.setState({ showMaxBadgeExceed: !showMaxBadgeExceed });\n };\n\n renderMaxBadgeExceedConfirmation = () => {\n return (\n \n Maximum badge request reached\n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleSaveBadgeRequest();\n }}\n >\n Save\n \n {\n this.handleApproveBadgeRequest();\n }}\n >\n Save and Approve\n \n \n \n \n );\n };\n\n handleSaveBadgeRequest = () => {\n const badgeRequest = this.state.badgeRequest;\n this.setState({ showMaxBadgeExceed: false, updateBadgeRequest: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Save badge request update\", loadingPanelBody: \"Please wait ...\" });\n\n badgeRequest.status = \"Assessed\";\n\n this.props.onAdminBadgeRequest.updateBadgeRequestCertificationEntries(badgeRequest.id, badgeRequest).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.setState({ showMaxBadgeExceed: true });\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n badgeRequest.requestCertificationEntries = this.props.updatedBadgeRequest.requestCertificationEntries ? [...this.props.updatedBadgeRequest.requestCertificationEntries] : [];\n this.setState({ showEditCertify: false, badgeRequest });\n this.props.onConfig.getContainerConfig().then(() => {});\n this.generateAlert(\"success\", \"Badge request certification entries updated\");\n }\n }\n\n this.setState({ updateBadgeRequest: this.props.badgeRequestUpdating, showLoadingPanel: this.props.badgeRequestUpdating });\n });\n };\n\n handleApproveBadgeRequest = () => {\n this.setState({ showApproveBadgeConfirmation: true });\n };\n\n togleSubmitBadgesConfirmation = () => {\n const showSubmitBadgeConfirmation = this.state.showSubmitBadgeConfirmation;\n this.setState({ showSubmitBadgeConfirmation: !showSubmitBadgeConfirmation });\n };\n\n renderSubmitBadgesConfirmation = () => {\n return (\n \n Submit badges confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleSubmitBadgeRequest();\n }}\n >\n Confirm\n \n \n \n \n );\n };\n\n handleSubmitBadgeRequest = () => {\n const badgeRequest = this.state.badgeRequest;\n this.setState({ showSubmitBadgeConfirmation: false, updateBadgeRequest: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Submit for badges\", loadingPanelBody: \"Please wait ...\" });\n\n this.props.onAdminBadgeRequest.submitBadgeRequestCertification(badgeRequest.id).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.setState({ showSubmitBadgeConfirmation: true });\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n badgeRequest.assessedDate = this.props.updatedBadgeRequest.assessedDate;\n badgeRequest.certificationSubmitted = this.props.updatedBadgeRequest.certificationSubmitted;\n\n this.setState({ badgeRequest });\n this.generateAlert(\"success\", \"Certification badges submitted.\");\n }\n }\n\n this.setState({ updateBadgeRequest: this.props.badgeRequestUpdating, showLoadingPanel: this.props.badgeRequestUpdating });\n });\n };\n\n closeWindow = () => {\n window.close();\n };\n\n togleApproveBadgesConfirmation = () => {\n const showApproveBadgeConfirmation = this.state.showApproveBadgeConfirmation;\n this.setState({ showApproveBadgeConfirmation: !showApproveBadgeConfirmation });\n };\n\n renderApproveBadgesConfirmation = () => {\n return (\n \n Approve badges confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n {\n this.handleConfirmApproveBadgeRequest();\n }}\n >\n Approve\n \n \n \n \n );\n };\n\n handleConfirmApproveBadgeRequest = () => {\n const badgeRequest = this.state.badgeRequest;\n this.setState({ showMaxBadgeExceed: false, updateBadgeRequest: true, showApproveBadgeConfirmation: false });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Approve badge request update\", loadingPanelBody: \"Please wait ...\" });\n\n badgeRequest.status = \"Approved\";\n\n this.props.onAdminBadgeRequest.updateBadgeRequestCertificationEntries(badgeRequest.id, badgeRequest).then(() => {\n if (!this.props.badgeRequestUpdating) {\n if (this.props.badgeRequestError) {\n this.setState({ showMaxBadgeExceed: true });\n this.generateAlert(\"danger\", this.props.badgeRequestError.errData.Message);\n } else {\n badgeRequest.requestCertificationEntries = this.props.updatedBadgeRequest.requestCertificationEntries ? [...this.props.updatedBadgeRequest.requestCertificationEntries] : [];\n this.setState({ showEditCertify: false, badgeRequest });\n this.generateAlert(\"success\", \"Badge request certification entries approved\");\n }\n }\n\n this.setState({ updateBadgeRequest: this.props.badgeRequestUpdating, showLoadingPanel: this.props.badgeRequestUpdating });\n });\n };\n\n handleViewProposedAction = () => {\n let { lorProfiles, skillProfiles, selectedJobMatchType, selectedProfileVersion, profileVersions } = this.state;\n\n if (selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n this.handleChangeSkill({\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"MatchNone\", \"None\"),\n value: \"None\",\n });\n }\n\n let latestVersion = null;\n\n if (profileVersions && profileVersions.length > 0) {\n latestVersion = profileVersions[0];\n }\n\n if (latestVersion && selectedProfileVersion && latestVersion.version != selectedProfileVersion.version) {\n this.handleChangeVersion(latestVersion);\n }\n\n this.setState({ showProposedAction: true, showDetail: false, showEdit: false, skillProfilesEdit: [], editCount: 0, createNewVersion: false, lorProfiles: lorProfiles.filter((it) => it.id), skillProfiles: skillProfiles.filter((it) => it.id) });\n };\n\n handleCancelViewProposedAction = () => {\n this.setState({ showProposedAction: false });\n };\n\n handleActionProposalCommentChange = (event) => {\n const { value } = event.target;\n\n this.setState({\n acceptRejectActionProposalComment: value,\n });\n };\n\n handleAcceptActionProposal = () => {\n this.setState({ showAcceptActionProposalConfirmation: true, acceptRejectActionProposalComment: \"\" });\n };\n\n togleAcceptActionProposal = () => {\n const showAcceptActionProposalConfirmation = this.state.showAcceptActionProposalConfirmation;\n this.setState({ showAcceptActionProposalConfirmation: !showAcceptActionProposalConfirmation });\n };\n\n renderAcceptActionProposalConfirmation = () => {\n return (\n \n Accept proposal confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleConfirmAcceptActionProposal();\n }}\n disabled={this.state.processActionProposal || !(this.state.acceptRejectActionProposalComment && this.state.acceptRejectActionProposalComment != \"\")}\n >\n Accept\n \n \n \n \n );\n };\n\n handleConfirmAcceptActionProposal = () => {\n const acceptRejectActionProposalComment = this.state.acceptRejectActionProposalComment;\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.setState({ showAcceptActionProposalConfirmation: false, processActionProposal: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Accept update profile and evidence from action proposal\", loadingPanelBody: \"Please wait ...\" });\n this.props.onActionPlan.acceptUpdateProfileActionProposal(this.props.account.updateProfileEvidenceProposedActionId, acceptRejectActionProposalComment, timezoneOffset).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n this.setState({ showAcceptActionProposalConfirmation: true });\n } else {\n this.generateAlert(\"success\", \"Update profile and evidence from action proposal accepted.\");\n this.setState({ showProposedAction: false });\n this.initData();\n }\n }\n this.setState({ processActionProposal: this.props.actionPlanUpdating, showLoadingPanel: this.props.actionPlanUpdating });\n });\n };\n\n handleRejectActionProposal = () => {\n this.setState({ showRejectActionProposalConfirmation: true, acceptRejectActionProposalComment: \"\" });\n };\n\n togleRejectActionProposal = () => {\n const showRejectActionProposalConfirmation = this.state.showRejectActionProposalConfirmation;\n this.setState({ showRejectActionProposalConfirmation: !showRejectActionProposalConfirmation });\n };\n\n renderRejectActionProposalConfirmation = () => {\n return (\n \n Reject proposal confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleConfirmRejectActionProposal();\n }}\n disabled={this.state.processActionProposal || !(this.state.acceptRejectActionProposalComment && this.state.acceptRejectActionProposalComment != \"\")}\n >\n Reject\n \n \n \n \n );\n };\n\n handleConfirmRejectActionProposal = () => {\n const acceptRejectActionProposalComment = this.state.acceptRejectActionProposalComment;\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.setState({ showRejectActionProposalConfirmation: false, processActionProposal: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Reject update profile and evidence from action proposal\", loadingPanelBody: \"Please wait ...\" });\n this.props.onActionPlan.rejectUpdateProfileActionProposal(this.props.account.updateProfileEvidenceProposedActionId, acceptRejectActionProposalComment, timezoneOffset).then(() => {\n if (!this.props.actionPlanUpdating) {\n if (this.props.actionPlanUpdatingError) {\n this.generateAlert(\"danger\", this.props.actionPlanUpdatingError.errData.Message);\n this.setState({ showRejectActionProposalConfirmation: true });\n } else {\n this.generateAlert(\"success\", \"Update profile and evidence from action proposal rejected.\");\n this.setState({ showProposedAction: false });\n this.initData();\n }\n }\n this.setState({ processActionProposal: this.props.actionPlanUpdating, showLoadingPanel: this.props.actionPlanUpdating });\n });\n };\n\n handleViewSuggestedUpdate = () => {\n let { lorProfiles, skillProfiles, selectedJobMatchType, selectedProfileVersion, profileVersions } = this.state;\n\n if (selectedJobMatchType && selectedJobMatchType.value != \"None\") {\n this.handleChangeSkill({\n label: this.contentTranslator(this.props.contentTranslations, \"SfiaAll\", \"MatchNone\", \"None\"),\n value: \"None\",\n });\n }\n\n let latestVersion = null;\n\n if (profileVersions && profileVersions.length > 0) {\n latestVersion = profileVersions[0];\n }\n\n if (latestVersion && selectedProfileVersion && latestVersion.version != selectedProfileVersion.version) {\n this.handleChangeVersion(latestVersion);\n }\n\n this.setState({ showSuggestedUpdate: true, showDetail: false, showEdit: false, skillProfilesEdit: [], editCount: 0, createNewVersion: false, lorProfiles: lorProfiles.filter((it) => it.id), skillProfiles: skillProfiles.filter((it) => it.id) });\n };\n\n handleCancelSuggestedUpdate = () => {\n this.setState({ showSuggestedUpdate: false });\n };\n\n handleUpdateProfileSuggestionCommentChange = (event) => {\n const { value } = event.target;\n\n this.setState({\n acceptRejectUpdateProfileSuggestionComment: value,\n });\n };\n\n handleAcceptUpdateProfileSuggestion = () => {\n this.setState({ showAcceptUpdateProfileSuggestionConfirmation: true, acceptRejectUpdateProfileSuggestionComment: \"\" });\n };\n\n togleAcceptUpdateProfileSuggestion = () => {\n const showAcceptUpdateProfileSuggestionConfirmation = this.state.showAcceptUpdateProfileSuggestionConfirmation;\n this.setState({ showAcceptUpdateProfileSuggestionConfirmation: !showAcceptUpdateProfileSuggestionConfirmation });\n };\n\n renderAcceptUpdateProfileSuggestionConfirmation = () => {\n return (\n \n Accept suggestion confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleConfirmAcceptUpdateProfileSuggestion();\n }}\n disabled={this.state.processUpdateProfileSuggestion || !(this.state.acceptRejectUpdateProfileSuggestionComment && this.state.acceptRejectUpdateProfileSuggestionComment != \"\")}\n >\n Accept\n \n \n \n \n );\n };\n\n handleConfirmAcceptUpdateProfileSuggestion = () => {\n const acceptRejectUpdateProfileSuggestionComment = this.state.acceptRejectUpdateProfileSuggestionComment;\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.setState({ showAcceptUpdateProfileSuggestionConfirmation: false, processUpdateProfileSuggestion: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Accept update profile suggestion\", loadingPanelBody: \"Please wait ...\" });\n this.props.onSkillProfile.acceptUpdateProfileSuggestion(this.props.account.updateProfileSuggestionId, acceptRejectUpdateProfileSuggestionComment, timezoneOffset).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n this.setState({ showAcceptUpdateProfileSuggestionConfirmation: true });\n } else {\n this.generateAlert(\"success\", \"Update profile suggestion accepted.\");\n this.setState({ showSuggestedUpdate: false });\n this.initData();\n }\n }\n this.setState({ processUpdateProfileSuggestion: this.props.updating, showLoadingPanel: this.props.updating });\n });\n };\n\n handleRejectUpdateProfileSuggestion = () => {\n this.setState({ showRejectUpdateProfileSuggestionConfirmation: true, acceptRejectUpdateProfileSuggestionComment: \"\" });\n };\n\n togleRejectUpdateProfileSuggestion = () => {\n const showRejectUpdateProfileSuggestionConfirmation = this.state.showRejectUpdateProfileSuggestionConfirmation;\n this.setState({ showRejectUpdateProfileSuggestionConfirmation: !showRejectUpdateProfileSuggestionConfirmation });\n };\n\n renderRejectUpdateProfileSuggestionConfirmation = () => {\n return (\n \n Reject proposal confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleConfirmRejectUpdateProfileSuggestion();\n }}\n disabled={this.state.processUpdateProfileSuggestion || !(this.state.acceptRejectUpdateProfileSuggestionComment && this.state.acceptRejectUpdateProfileSuggestionComment != \"\")}\n >\n Reject\n \n \n \n \n );\n };\n\n handleConfirmRejectUpdateProfileSuggestion = () => {\n const acceptRejectUpdateProfileSuggestionComment = this.state.acceptRejectUpdateProfileSuggestionComment;\n const timezoneOffset = (new Date().getTimezoneOffset() * -1) / 60;\n\n this.setState({ showRejectUpdateProfileSuggestionConfirmation: false, processUpdateProfileSuggestion: true });\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Reject update profile suggestion\", loadingPanelBody: \"Please wait ...\" });\n this.props.onSkillProfile.rejectUpdateProfileSuggestion(this.props.account.updateProfileSuggestionId, acceptRejectUpdateProfileSuggestionComment, timezoneOffset).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n this.setState({ showRejectUpdateProfileSuggestionConfirmation: true });\n } else {\n this.generateAlert(\"success\", \"Update profile suggestion rejected.\");\n this.setState({ showSuggestedUpdate: false });\n this.initData();\n }\n }\n this.setState({ processUpdateProfileSuggestion: this.props.updating, showLoadingPanel: this.props.updating });\n });\n };\n\n updateFloatingLegendStatus = (showFloatingLegend) => {\n this.setState({ showFloatingLegend });\n };\n\n handleSuggestEditLowerLevelProfile = (editedProfiles) => {\n let willCreateNewVersion = false;\n\n if (!this.state.showEdit) {\n willCreateNewVersion = true;\n this.setState({ showEdit: !this.state.showEdit, willCreateNewVersion, createNewVersion: false, editCount: 0 });\n }\n\n this.handleEditProfileSkills(editedProfiles);\n };\n\n handleManagerSuggestEditLowerLevelProfile = (editedProfiles) => {\n if (!this.state.proposedUpdateLowerLevelMode) {\n this.setState({ proposedUpdateLowerLevelMode: true, editCount: 0 });\n } else {\n this.setState({ proposedUpdateLowerLevelMode: true });\n }\n\n this.handleEditProfileSkills(editedProfiles);\n };\n\n handleCancelProposeUpdateLowerLevel = () => {\n if (this.state.skillProfilesEdit.length > 0 && this.state.editCount > 0) {\n let { lorProfiles, skillProfiles } = this.state;\n\n if (window.confirm(\"You have some updates, are you sure to cancel the updates?\")) {\n this.setState({\n skillProfilesEdit: [],\n editCount: 0,\n createNewVersion: false,\n proposedUpdateLowerLevelMode: false,\n lorProfiles: lorProfiles.filter((it) => it.id),\n skillProfiles: skillProfiles.filter((it) => it.id),\n });\n }\n } else {\n this.setState({\n proposedUpdateLowerLevelMode: false,\n lorProfiles: this.props.lorProfiles\n ? this.props.lorProfiles && this.props.lorProfiles.length > 0\n ? this.props.lorProfiles\n : this.state.latestUpdatedLorProfiles\n ? this.state.latestUpdatedLorProfiles && this.state.latestUpdatedLorProfiles.length > 0\n ? this.state.latestUpdatedLorProfiles\n : this.props.lorProfiles\n : []\n : this.state.latestUpdatedLorProfiles\n ? this.state.latestUpdatedLorProfiles\n : [],\n skillProfiles: this.props.skillProfiles\n ? this.props.skillProfiles && this.props.skillProfiles.length > 0\n ? this.props.skillProfiles\n : this.state.latestUpdatedSkillProfiles\n ? this.state.latestUpdatedSkillProfiles && this.state.latestUpdatedSkillProfiles.length > 0\n ? this.state.latestUpdatedSkillProfiles\n : this.props.skillProfiles\n : []\n : this.state.latestUpdatedSkillProfiles\n ? this.state.latestUpdatedSkillProfiles\n : [],\n });\n }\n };\n\n handleProposeUpdateProfileSuggestion = () => {\n this.setState({ showProposeUpdateProfileSuggestionConfirmation: true, acceptRejectUpdateProfileSuggestionComment: \"\" });\n };\n\n togleProposeUpdateProfileSuggestion = () => {\n const showProposeUpdateProfileSuggestionConfirmation = this.state.showProposeUpdateProfileSuggestionConfirmation;\n this.setState({ showProposeUpdateProfileSuggestionConfirmation: !showProposeUpdateProfileSuggestionConfirmation });\n };\n\n renderProposeUpdateProfileSuggestionConfirmation = () => {\n return (\n \n Propose suggestion confirmation\n \n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.handleConfirmProposeUpdateProfileSuggestion();\n }}\n disabled={this.state.processUpdateProfileSuggestion || !(this.state.acceptRejectUpdateProfileSuggestionComment && this.state.acceptRejectUpdateProfileSuggestionComment != \"\")}\n >\n Ok\n \n \n \n \n );\n };\n\n handleConfirmProposeUpdateProfileSuggestion = () => {\n const { skillProfilesEdit } = this.state;\n\n if (this.props.managedPeople) {\n const skills = skillProfilesEdit.map((skill) => {\n return {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillCode: skill.skillCode,\n level: skill.level,\n stringVal: skill.editedStringVal,\n numericVal: skill.editedNumericVal,\n labelVal: skill.editedLabelVal,\n isExtraFramework: skill.isExtraFramework,\n extraFrameworkLevel: skill.extraFrameworkLevel,\n extraFrameworkLevelId: skill.extraFrameworkLevelId,\n };\n });\n\n this.setState({ showProposeUpdateProfileSuggestionConfirmation: false, processUpdateProfileSuggestion: true, showLoadingPanel: true, loadingPanelHeader: \"Submit update profile suggestion\", loadingPanelBody: \"Please wait ...\" });\n\n let { lorProfiles, skillProfiles } = this.state;\n\n this.props.onSkillProfile.submitUpdateProfileSuggestion(this.props.managedPeople.personB.email, this.state.acceptRejectUpdateProfileSuggestionComment, skills).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n this.setState({ showProposeUpdateProfileSuggestionConfirmation: true });\n } else {\n this.generateAlert(\"success\", \"Update profile suggestion submitted\");\n\n this.setState({\n skillProfilesEdit: [],\n editCount: 0,\n createNewVersion: false,\n proposedUpdateLowerLevelMode: false,\n lorProfiles: lorProfiles.filter((it) => it.id),\n skillProfiles: skillProfiles.filter((it) => it.id),\n });\n\n this.initData();\n }\n }\n\n this.setState({ processUpdateProfileSuggestion: this.props.updating, showLoadingPanel: this.props.updating });\n });\n }\n };\n\n handleSubmitProposeUpdateLowerLevel = () => {\n const { skillProfilesEdit } = this.state;\n\n if (this.props.managedPeople) {\n const skills = skillProfilesEdit.map((skill) => {\n return {\n category: skill.category,\n subCategory: skill.subCategory,\n skill: skill.skill,\n skillCode: skill.skillCode,\n level: skill.level,\n stringVal: skill.editedStringVal,\n numericVal: skill.editedNumericVal,\n labelVal: skill.editedLabelVal,\n isExtraFramework: skill.isExtraFramework,\n extraFrameworkLevel: skill.extraFrameworkLevel,\n extraFrameworkLevelId: skill.extraFrameworkLevelId,\n };\n });\n\n this.setState({ showLoadingPanel: true, loadingPanelHeader: \"Submit update profile suggestion\", loadingPanelBody: \"Please wait ...\" });\n\n let { lorProfiles, skillProfiles } = this.state;\n\n this.props.onSkillProfile.submitUpdateProfileSuggestion(this.props.managedPeople.personB.email, skills).then(() => {\n if (!this.props.updating) {\n if (this.props.error) {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n } else {\n this.generateAlert(\"success\", \"Update profile suggestion submitted\");\n\n this.setState({\n skillProfilesEdit: [],\n editCount: 0,\n createNewVersion: false,\n proposedUpdateLowerLevelMode: false,\n lorProfiles: lorProfiles.filter((it) => it.id),\n skillProfiles: skillProfiles.filter((it) => it.id),\n });\n\n this.initData();\n }\n }\n\n this.setState({ showLoadingPanel: this.props.updating });\n });\n }\n };\n\n handleEvidenceAdded = (addedEvidence) => { \n const evidences = this.state.evidences;\n this.setState({ evidences: [...evidences, addedEvidence] });\n this.props.handleEvidenceAdded(addedEvidence);\n }\n\n handleEvidenceDeleted = (deletedId) => {\n const evidences = this.state.evidences;\n const deletedEvidence = evidences.find((it) => it.id == deletedId);\n\n if (deletedEvidence) {\n this.setState({\n evidences: [...evidences.filter((it) => it.id != deletedId)],\n });\n }\n };\n\n handleEvidenceUpdated = (updatedEvidence) => {\n const evidences = this.state.evidences;\n const editedEvidence = evidences.find((it) => it.id == updatedEvidence.id);\n\n if (editedEvidence) {\n const updatedEvidenceIndex = evidences.indexOf(editedEvidence);\n evidences[updatedEvidenceIndex] = updatedEvidence;\n }\n this.setState({ evidences: [...evidences] });\n };\n\n render() {\n const manageEndorsementOperation = localStorage.getItem(\"manageEndorsementOperation\");\n const { skillProfilesEdit, editCount, selectedprofileType, selectedProfileVersion, profileVersions, account, createNewVersion, lors, selectedEndorsementStatus, endorsementStatusOptions, badgeRequest, showEditCertify, updateBadgeRequest, showProposedAction, showSuggestedUpdate } = this.state;\n const { person, lorProfiles } = this.props;\n\n const currAssessment = this.props.currAssessment;\n\n let allowRequestApproval = false;\n let showRequestApprovalButton = false;\n let showApprovalPending = false;\n let showApprovalPostponed = false;\n let showReRequestApproval = false;\n let showCopyEndorsedButton = false;\n let showMakeLatestButton = false;\n let showMakeSelfAssessedButton = false;\n let showMakeNewVersionButton = false;\n let showEndorsementStatus = false;\n let showBeMentor = false;\n let showMenteeRequest = false;\n\n if (!this.props.managedPeople && this.state.profileTypeOptions.find((it) => it.value == \"Endorsed\") && selectedprofileType && selectedprofileType.value == \"Self Assessed\") {\n showCopyEndorsedButton = true;\n }\n\n let latestVersion = null;\n\n if (profileVersions && profileVersions.length > 0) {\n latestVersion = profileVersions[0];\n }\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Self Assessed\" && latestVersion && latestVersion.version != selectedProfileVersion.version) {\n showMakeLatestButton = true;\n }\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Endorsed\" && latestVersion && latestVersion.version == selectedProfileVersion.version && this.state.profileTypeOptions.length == 1) {\n showMakeSelfAssessedButton = true;\n }\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Self Assessed\" && latestVersion && latestVersion.version == selectedProfileVersion.version) {\n showMakeNewVersionButton = true;\n }\n\n if (\n manageEndorsementOperation &&\n manageEndorsementOperation != \"HIDE\" &&\n this.props.managedPeople &&\n this.props.managedPeople.endorsementStatus != \"Approved\" &&\n selectedprofileType &&\n selectedprofileType.value == \"Endorsed\" &&\n latestVersion &&\n latestVersion.version == selectedProfileVersion.version\n ) {\n showEndorsementStatus = true;\n }\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Self Assessed\") {\n if (\n account &&\n currAssessment &&\n currAssessment.enableApprovalRequest &&\n (currAssessment.adminSelfAssessedApproverFound ||\n (currAssessment.allowApprovals == 1 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\")) ||\n (currAssessment.allowApprovals == 2 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || it.relationshipType == \"Team Leader\")) ||\n (currAssessment.allowApprovals == 3 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Mentor\" && it.status == \"Accepted\")) ||\n (currAssessment.allowApprovals == 4 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || (it.relationshipType == \"Mentor\" && it.status == \"Accepted\"))) ||\n (currAssessment.allowApprovals == 5 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || it.relationshipType == \"Team Leader\" || (it.relationshipType == \"Mentor\" && it.status == \"Accepted\"))))\n ) {\n allowRequestApproval = true;\n }\n\n if (\n account &&\n currAssessment &&\n currAssessment.enableApprovalRequest &&\n !account.isApprovalRequested &&\n !account.isApprovalPostponed &&\n (currAssessment.adminSelfAssessedApproverFound ||\n (currAssessment.allowApprovals == 1 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\")) ||\n (currAssessment.allowApprovals == 2 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || it.relationshipType == \"Team Leader\")) ||\n (currAssessment.allowApprovals == 3 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Mentor\" && it.status == \"Accepted\")) ||\n (currAssessment.allowApprovals == 4 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || (it.relationshipType == \"Mentor\" && it.status == \"Accepted\"))) ||\n (currAssessment.allowApprovals == 5 && person && person.upRelationships && person.upRelationships.find((it) => it.relationshipType == \"Line Manager\" || it.relationshipType == \"Team Leader\" || (it.relationshipType == \"Mentor\" && it.status == \"Accepted\"))))\n ) {\n if (!account.updateProfileEvidenceProposed) {\n showRequestApprovalButton = true;\n }\n } else {\n if (account && currAssessment && currAssessment.enableApprovalRequest && account.approvals && account.approvals.length > 0 && account.approvals.filter((it) => !it.isFramework && it.approvedVersion == account.latestProfileVersion).length > 0) {\n showApprovalPending = false;\n } else if (account && currAssessment && currAssessment.enableApprovalRequest) {\n if (account.isApprovalRequested || account.isApprovalPostponed) {\n showApprovalPending = true;\n }\n\n showApprovalPostponed = account.isApprovalPostponed ? account.isApprovalPostponed : false;\n showReRequestApproval = account.isApprovalPostponedShown && account.isApprovalPostponedShown == false ? false : account.isApprovalPostponedShown && account.isApprovalPostponedShown == true ? true : false;\n }\n }\n }\n\n if (!this.props.managedPeople && selectedprofileType && selectedprofileType.value == \"Self Assessed\") {\n if (\n account &&\n currAssessment &&\n currAssessment.enableFindMentor &&\n //!account.isMentor &&\n account.canBeMentor\n ) {\n showBeMentor = true;\n }\n if (account && currAssessment && currAssessment.enableFindMentor && account.isMentor) {\n showMenteeRequest = true;\n }\n }\n\n let enableSave = false;\n if (skillProfilesEdit.length != 0 && editCount > 0) {\n const visibleLors = lors\n .filter((it) => !it.isHidden && !it.optional)\n .map((it) => {\n return {\n lor: it.name,\n lorCode: it.lorCode,\n };\n });\n\n if (!createNewVersion) {\n let lorProfilesAdded = lors\n .map((lor) => {\n const lorSkillProfileEdit = skillProfilesEdit.find((it) => it.source == \"lorProfiles\" && it.lorCode == lor.lorCode);\n return { lor: lor.name, lorCode: lor.lorCode, numericVal: lorSkillProfileEdit ? (lorSkillProfileEdit.numericVal ? lorSkillProfileEdit.numericVal : lorSkillProfileEdit.editedNumericVal) : null };\n })\n .filter((it) => it.numericVal);\n\n let lorProfileCodes = lorProfiles\n ? lorProfiles.map((it) => {\n return {\n lor: it.lor,\n lorCode: it.lorCode,\n };\n })\n : [];\n\n lorProfilesAdded.forEach((x) => {\n if (!lorProfileCodes.find((y) => x.lor == y.lor && x.lorCode == y.lorCode)) {\n lorProfileCodes.push({\n lor: x.lor,\n lorCode: x.lorCode,\n });\n }\n });\n\n const missingLors = visibleLors.filter((it) => !lorProfileCodes.find((l) => l.lor == it.lor && l.lorCode == it.lorCode));\n enableSave = missingLors.length == 0;\n } else {\n let lorProfilesAdded = lors\n .map((lor) => {\n const lorSkillProfileEdit = skillProfilesEdit.find((it) => it.source == \"lorProfiles\" && it.lorCode == lor.lorCode);\n return { lor: lor.name, lorCode: lor.lorCode, numericVal: lorSkillProfileEdit ? lorSkillProfileEdit.numericVal : null };\n })\n .filter((it) => it.numericVal);\n\n const missingLors = visibleLors.filter((it) => !lorProfilesAdded.find((l) => l.lor == it.lor && l.lorCode == it.lorCode));\n enableSave = missingLors.length == 0 && skillProfilesEdit.filter((it) => it.source == \"skillProfiles\" && it.editedNumericVal != 0).length > 0;\n }\n }\n\n let showApproveEndorsement = false;\n if (manageEndorsementOperation == \"APPROVE\" && this.props.managedPeople && this.props.managedPeople.isEndorser) {\n showApproveEndorsement = true;\n }\n\n return (\n \n {this.state.profileUpdating && (\n \n \n \n )}\n {!this.state.profileUpdating && this.state.profileUpdatingSuccess && (\n
\n \n
\n )}\n {!this.state.profileUpdating && !this.state.profileUpdatingSuccess && this.state.profileUpdatingError && (\n
\n \n
\n )}\n \n {this.renderLoadingPanel()}\n {this.renderRequestApprovalFirstConfirmation()}\n {this.renderRequestApprovalSecondConfirmation()}\n {this.renderPostponedReasonDialog()}\n {this.renderMakeLatestProfileConfirmation()}\n {this.renderApproveEndorsementConfirmation()}\n {this.renderMaxBadgeExceedConfirmation()}\n {this.renderSubmitBadgesConfirmation()}\n {this.renderApproveBadgesConfirmation()}\n {this.renderMentorProfile()}\n {this.renderMenteeRequest()}\n {this.renderAcceptActionProposalConfirmation()}\n {this.renderRejectActionProposalConfirmation()}\n {this.renderAcceptUpdateProfileSuggestionConfirmation()}\n {this.renderRejectUpdateProfileSuggestionConfirmation()}\n {this.renderProposeUpdateProfileSuggestionConfirmation()}\n \n \n
\n

\n {!this.props.badgeCertification ? : \"Select or edit skills for issuing badges\"}\n

\n

\n \n

\n \n \n \n {!this.props.managedPeople && this.props.account && this.props.account.updateProfileEvidenceProposed && this.state.selectedprofileType && this.state.selectedprofileType.value == \"Self Assessed\" ? (\n \n {!showProposedAction && (\n \n )}\n {showProposedAction && (\n \n )}\n \n ) : (\n !this.props.managedPeople &&\n this.props.account &&\n this.props.account.updateProfileSuggested &&\n this.state.selectedprofileType &&\n this.state.selectedprofileType.value == \"Self Assessed\" && (\n \n {!showSuggestedUpdate && (\n \n )}\n {showSuggestedUpdate && (\n \n )}\n \n )\n )}\n \n \n {!this.props.badgeCertification && (\n \n \n \n \n \n \n

\n \n

\n \n \n \n

\n \n

\n
\n {!showProposedAction && !showSuggestedUpdate && (\n \n {skillProfilesEdit.length > 0 && editCount > 0 && (\n \n )}\n {showMenteeRequest && (\n \n )}\n {showBeMentor && (\n \n )}\n {showEndorsementStatus && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showRequestApprovalButton && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showApprovalPending && !showApprovalPostponed && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showApprovalPending && showApprovalPostponed && showReRequestApproval && allowRequestApproval && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showApprovalPending && showApprovalPostponed && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showCopyEndorsedButton && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showMakeNewVersionButton && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showMakeLatestButton && (\n \n )}\n {this.props.managedPeople != true && !this.state.showEdit && showMakeSelfAssessedButton && (\n \n )}\n {this.props.containerConfig && this.props.containerConfig.allowShowHiddenSkills && (\n \n )}\n \n {!this.props.managedPeople && this.state.selectedprofileType && this.state.selectedprofileType.value == \"Self Assessed\" && !this.state.selectedProfileVersion && (\n \n )}\n {this.props.managedPeople && this.state.selectedprofileType && this.state.selectedprofileType.value == \"Endorsed\" && (this.props.isEndorser || this.props.manageEndorsements) && !this.state.selectedProfileVersion && (\n \n )}\n {this.state.showEdit && (\n \n )}\n {this.state.selectedprofileType &&\n ((!this.props.managedPeople && this.state.selectedprofileType.value == \"Self Assessed\") ||\n (this.props.managedPeople && this.state.selectedprofileType.value == \"Endorsed\" && (!showApproveEndorsement || this.props.managedPeople.endorsementStatus == \"Approved\") && (this.props.isEndorser || this.props.manageEndorsements))) &&\n this.state.selectedProfileVersion &&\n this.state.selectedProfileVersion.sfiaVersion == this.state.profileVersions[0].sfiaVersion &&\n this.state.selectedProfileVersion.version == this.state.profileVersions[0].version && (\n \n )}\n {this.state.proposedUpdateLowerLevelMode && (\n \n \n \n )}\n {currAssessment &&\n currAssessment.allowUserExportSelfAssessedProfile &&\n !this.props.managedPeople &&\n this.state.selectedprofileType &&\n this.state.selectedprofileType.value == \"Self Assessed\" &&\n this.state.selectedProfileVersion &&\n this.state.selectedProfileVersion.sfiaVersion == this.state.profileVersions[0].sfiaVersion &&\n this.state.selectedProfileVersion.version == this.state.profileVersions[0].version && (\n \n )}\n \n \n )}\n {showProposedAction && (\n \n \n \n \n \n )}\n {showSuggestedUpdate && (\n \n \n \n \n \n )}\n
\n
\n \n {this.state.proposedUpdateLowerLevelMode\n ? this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SkillProfileSuggestedSkillsCount\", \"You have {s1} pending Proposed skill changes.\"), editCount)\n : this.parameterizedString(this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SkillProfileUpdatedSkillsCount\", \"You have {s1} pending skill changes.\"), editCount)}\n \n
\n
\n \n \n \n \n \n \n \n {this.state.account.isMentor ? (\n \n ) : (\n \n )}\n \n \n
\n

\n \n

\n it.value != \"Approved\")}\n isDisabled={this.state.showEdit || this.state.updateEndorsedStatus}\n />\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.showDetail || this.state.showEdit\n ? this.props.managedPeople\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonHideDetailManagedTooltip\", \"Compress profile to show selected skills only\")\n : this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonHideDetailTooltip\", \"Compress your profile to show your selected skills only\")\n : this.props.managedPeople\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonShowDetailManagedTooltip\", \"Expand profile to show complete framework\")\n : this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonShowDetailTooltip\", \"Expand your profile to show the full framework\")}\n \n \n {this.state.showEdit ? (\n \n ) : (\n \n )}\n \n {this.state.showEdit ? (\n \n ) : (\n \n )}\n \n \n \n \n {!this.state.showEdit && (\n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonEditProfileTooltip\", \"Open your profile in EDIT mode so you can make changes\")}\n \n )}\n \n \n \n \n \n \n \n \n {this.props.managedPeople\n ? this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonPrintManagedTooltip\", \"Generate and download a report of your profile\")\n : this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonPrintTooltip\", \"Generate and download a report of your profile\")}\n \n
\n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonAcceptProposalTooltip\", \"Click here to Accept the changes and send a notification to person who proposed the changes\")}\n \n \n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonRejectProposalTooltip\", \"Click here to Reject the changes and send a notification to person who proposed the changes\")}\n \n \n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonProposalCancelTooltip\", \"Click here to cancel and return to your profile WITHOUT accepting or rejecting the changes.\")}\n \n
\n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonAcceptSuggestionTooltip\", \"Click here to Accept the changes\")}\n \n \n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonRejectSuggestionTooltip\", \"Click here to Reject the changes\")}\n \n \n \n \n {this.contentTranslator(this.props.contentTranslations, \"SfiaProfileTooltip\", \"SkillProfileButtonSuggestionCancelTooltip\", \"Click here to cancel and return to your profile WITHOUT accepting or rejecting the changes.\")}\n \n
\n \n )}\n \n \n )}\n {this.props.badgeCertification && (\n \n \n {!this.state.loading && (\n \n \n \n {!showEditCertify && badgeRequest && badgeRequest.status != \"Approved\" && !badgeRequest.certificationSubmitted && (\n \n )}\n {showEditCertify && (\n \n \n {badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.filter((it) => it.id).length > 0 && (\n \n )}\n \n )}\n {badgeRequest && badgeRequest.status != \"Approved\" && !badgeRequest.certificationSubmitted && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.filter((it) => it.id).length > 0 && (\n \n )}\n {/* {badgeRequest && !badgeRequest.certificationSubmitted && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.filter((it) => it.id).length > 0 && (\n \n )} */}\n {badgeRequest && badgeRequest.certificationSubmitted && (\n \n )}\n \n \n
\n \n \n this.handleSaveBadgeRequest()}\n disabled={updateBadgeRequest || !(badgeRequest && badgeRequest.requestCertificationEntries && badgeRequest.requestCertificationEntries.filter((it) => it.edited).length > 0)}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n )}\n
\n
\n )}\n {this.state.loading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n \n \n \n \n \n \n \n \n \n {this.state.selectedJobMatchType && this.state.selectedJobMatchType.value != \"None\" && (\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.selectedJobMatchType && this.state.selectedJobMatchType.value == \"Current\" && (\n \n \n \n \n )}\n {this.state.selectedJobMatchType && this.state.selectedJobMatchType.value == \"Future\" && (\n \n \n \n \n )}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n let showApprovedProfileOnly = localStorage.getItem(\"showApprovedProfileOnly\");\n let profileType = localStorage.getItem(\"profileType\");\n\n return {\n jobMatchTypes: state.job.jobMatchTypes,\n\n profileTypes: state.skillProfile.profileTypes,\n profileVersions: state.skillProfile.profileVersions ? (showApprovedProfileOnly && showApprovedProfileOnly == \"TRUE\" && profileType == \"Self Assessed\" ? state.skillProfile.profileVersions.filter((it) => it.approved == true) : state.skillProfile.profileVersions) : null,\n lorProfileLoading: state.skillProfile.loading,\n lorProfileError: state.skillProfile.error,\n lorProfiles: state.skillProfile.lorProfiles,\n lorLoading: state.lor.loading,\n lorError: state.lor.error,\n lors: state.lor.lors,\n\n skillProfileLoading: state.skillProfile.loading,\n skillProfileError: state.skillProfile.error,\n skillProfiles: state.skillProfile.skillProfiles,\n\n loadingPrint: state.skillProfile.loadingPrint,\n printData: state.skillProfile.printData,\n\n categoryLoading: state.category.loading,\n categoryError: state.category.error,\n extraFrameworkCapabilities: state.category.extraFrameworkCapabilities,\n extraFrameworkLevels: state.category.extraFrameworkLevels,\n categories: state.category.categories,\n\n profileUpdating: state.skillProfile.profileUpdating,\n profileUpdatingSuccess: state.skillProfile.profileUpdatingSuccess,\n profileUpdatingError: state.skillProfile.profileUpdatingError,\n udpatedSkills: state.skillProfile.udpatedSkills,\n\n updating: state.skillProfile.updating,\n error: state.skillProfile.error,\n\n updateEndorsedStatus: state.skillProfile.updateEndorsedStatus,\n updateEndorsedStatusError: state.skillProfile.updateEndorsedStatusError,\n updatedPersonEndorsement: state.skillProfile.updatedPersonEndorsement,\n\n endorsedProfileCopying: state.skillProfile.endorsedProfileCopying,\n endorsedProfileCopyingSuccess: state.skillProfile.endorsedProfileCopyingSuccess,\n endorsedProfileCopyingError: state.skillProfile.endorsedProfileCopyingError,\n\n copyProfile: state.skillProfile.copyProfile,\n copyProfileError: state.skillProfile.copyProfileError,\n\n jobGaps: state.job.jobGaps,\n jobLoading: state.job.jobMatchesLoading,\n jobError: state.job.error,\n jobMatches: state.job.jobMatches,\n jobLorProfiles: state.job.jobLorProfiles,\n jobSkillProfiles: state.job.jobSkillProfiles,\n jobSkillAttributes: state.job.jobSkillAttributes,\n jobLorAttributes: state.job.jobLorAttributes,\n jobMatchesUpdated: state.job.jobMatchesUpdated,\n\n personLoading: state.person.loading,\n personError: state.person.error,\n personUpdating: state.person.updating,\n account: state.person.account,\n person: state.person.person,\n loadingExport: state.person.loadingExport,\n exportData: state.person.exportData,\n\n managedPeople: state.auth.managedPeople,\n contentTranslations: state.content.contentTranslations,\n isEndorser: state.auth.isEndorser,\n manageEndorsements: state.auth.manageEndorsements,\n manageSelfAssessed: state.auth.manageSelfAssessed,\n manageSelfProfiles: state.auth.manageSelfProfiles,\n jobProfileReportFormat: state.auth.jobProfileReportFormat,\n selfAssessedProfileReportFormat: state.auth.selfAssessedProfileReportFormat,\n allowSkipSurvey: state.auth.allowSkipSurvey,\n\n currAssessment: state.config.currAssessment,\n badgeRequestError: state.adminBadgeRequest.error,\n badgeRequestUpdating: state.adminBadgeRequest.isUpdating,\n updatedBadgeRequest: state.adminBadgeRequest.updatedBadgeRequest,\n\n actionPlanUpdating: state.actionPlan.actionPlanUpdating,\n actionPlanUpdatingError: state.actionPlan.actionPlanUpdatingError,\n\n containerConfig: state.config.containerConfig,\n\n evidenceError: state.evidence.error,\n addEvidenceInProgress: state.evidence.updateInProgress,\n addedEvidences: state.evidence.updatedEvidences,\n loadingEvidence: state.evidence.loading,\n evidences: state.evidence.evidences,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onLor: bindActionCreators(lorActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onAdminBadgeRequest: bindActionCreators(adminBadgeRequestActions, dispatch),\n onActionPlan: bindActionCreators(actionPlanActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(SfiaSkills));\n","import * as authActions from \"../../store/actions/authAction\";\nimport * as categoryActions from \"../../store/actions/categoryAction\";\nimport * as configActions from \"../../store/actions/configAction\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as evidenceActions from \"../../store/actions/evidenceAction\";\nimport * as personActions from \"../../store/actions/personAction\";\nimport * as adminPersonActions from \"../../store/admin/actions/adminPersonActions\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport StepProfile from \"../profile/StepProfile\";\nimport ContentTranslator from \"./../translator/ContentTranslator\";\nimport Profile from \"./Profile\";\nimport SfiaSkills from \"./SfiaSkills\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Alert, Button, Col, Container, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, UncontrolledTooltip } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nconst step1 = process.env.REACT_APP_SKILLPROFILE_STEP_1;\nconst step2 = process.env.REACT_APP_SKILLPROFILE_STEP_2;\nconst step3 = process.env.REACT_APP_SKILLPROFILE_STEP_3;\n\nconst step1Hover = process.env.REACT_APP_SKILLPROFILE_STEP_1_HOVER;\nconst step2Hover = process.env.REACT_APP_SKILLPROFILE_STEP_2_HOVER;\nconst step3Hover = process.env.REACT_APP_SKILLPROFILE_STEP_3_HOVER;\n\nclass SkillsProfile extends React.Component {\n static displayName = SkillsProfile.name;\n\n constructor(props) {\n super(props);\n this.state = {\n forceOpenEditProfile: false,\n forceOpenEditJob: false,\n stepData: {\n step1: {\n desc: step1,\n hover: step1Hover,\n },\n step2: {\n desc: step2,\n hover: step2Hover,\n },\n step3: {\n desc: step3,\n hover: step3Hover,\n },\n currentStep: null,\n },\n loading: true,\n contentLoading: true,\n categoryLoading: true,\n selectedVersion: null,\n showApproveDialog: false,\n approveInProgress: false,\n comment: null,\n showPostponeDialog: false,\n postponeComment: null,\n postponeType: null,\n showConfirmPostponeDialog: false,\n alerts: [],\n endorsedProfileApproved: null,\n maxNumberOfBadgeRequestSkill: 6,\n showHidden: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n componentDidMount() {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaProfile-SfiaProfileTooltip-Lors-Skills\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n const stepData = {\n step1: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep1Description\", step1),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep1Hover\", step1Hover),\n },\n step2: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep2Description\", step2),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep2Hover\", step2Hover),\n },\n step3: {\n desc: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep3Description\", step3),\n hover: this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileStep3Hover\", step3Hover),\n },\n currentStep: null,\n };\n\n this.setState({ stepData });\n\n this.props.onAuth.authCheckState().then(() => {\n if (!this.props.currAssessment) {\n this.props.onConfig.getCurrAssessment().then(() => {});\n }\n\n if (window.location.pathname.includes(\"/Manage\") || window.location.pathname.includes(\"/Certify\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n this.setState({ loading: this.props.personLoading });\n });\n } else {\n this.setState({ loading: this.props.personLoading });\n }\n });\n } else {\n this.setState({ loading: this.props.loading });\n }\n } else {\n this.setState({ loading: this.props.loading });\n }\n\n Promise.all([this.props.onCategory.getExtraFrameworkCapabilities(), this.props.onCategory.getExtraFrameworkLevels(), this.props.onCategory.getCategories(false, this.props.language ? this.props.language.id : null), this.props.onEvidence.getEvidenceTypes()]).then(() => {\n this.setState({ categoryLoading: this.props.categoryLoading });\n });\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n if (!this.props.currAssessment) {\n this.props.onConfig.getCurrAssessment().then(() => {});\n }\n\n if (window.location.pathname.includes(\"/Manage\") || window.location.pathname.includes(\"/Certify\")) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n\n if (!this.props.managedPeople || !(this.props.managedPeople && this.props.managedPeople.personB.email.toLowerCase() == email.toLowerCase())) {\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople).then(() => {\n this.setState({ loading: this.props.personLoading });\n });\n } else {\n this.setState({ loading: this.props.personLoading });\n }\n });\n } else {\n this.setState({ loading: this.props.loading });\n }\n } else {\n this.setState({ loading: this.props.loading });\n }\n\n Promise.all([this.props.onCategory.getExtraFrameworkCapabilities(), this.props.onCategory.getExtraFrameworkLevels(), this.props.onCategory.getCategories(false, this.props.language ? this.props.language.id : null), this.props.onEvidence.getEvidenceTypes()]).then(() => {\n this.setState({ categoryLoading: this.props.categoryLoading });\n });\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.profileUpdatingSuccess !== this.props.profileUpdatingSuccess || prevProps.profileUpdatingError !== this.props.profileUpdatingError || prevProps.udpatedSkills !== this.props.udpatedSkills) {\n this.setState({\n profileUpdatingSuccess: this.props.profileUpdatingSuccess,\n profileUpdatingError: this.props.profileUpdatingError,\n udpatedSkills: this.props.udpatedSkills,\n });\n\n if (this.props.profileUpdatingSuccess && this.props.udpatedSkills) {\n const udpatedSkills = this.props.udpatedSkills;\n const lorProfileResponses = udpatedSkills ? udpatedSkills.lorProfileResponses : [];\n const skillProfileResponses = udpatedSkills ? udpatedSkills.skillProfileResponses : [];\n\n if ((lorProfileResponses && lorProfileResponses.find((it) => it.profileType == \"Endorsed\")) || (skillProfileResponses && skillProfileResponses.find((it) => it.profileType == \"Endorsed\"))) {\n const query = new URLSearchParams(this.props.location.search);\n const email = query.get(\"email\");\n this.props.onPerson.getPersonMyPeopleByEmail(email).then(() => {\n if (!this.props.personLoading && this.props.personManagedPeople) {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople);\n }\n\n this.setState({ loading: this.props.personLoading });\n });\n }\n }\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n selectVersion = (selectedVersion) => {\n this.setState({ selectedVersion });\n };\n\n approveProfile = () => {\n const { managedPeople } = this.props;\n\n if (managedPeople) {\n const managedPeopleAccount = managedPeople.personB.accounts && managedPeople.personB.accounts.length > 0 ? managedPeople.personB.accounts[0] : null;\n if (managedPeopleAccount) {\n const approvedOn = new Date();\n\n const approval = {\n accountId: managedPeopleAccount.id,\n email: managedPeople.personB.email,\n approvedVersion: this.state.selectedVersion,\n comment: this.state.comment,\n approvedBy: localStorage.getItem(\"firstName\") + \" \" + localStorage.getItem(\"lastName\"),\n approvedOn: approvedOn,\n };\n\n this.setState({ approveInProgress: true });\n this.props.onPerson.approveMyPeopleProfile(approval).then(() => {\n if (!this.props.personUpdating) {\n if (this.props.personError) {\n this.generateAlert(\"danger\", this.props.personError.errData.Message);\n } else {\n managedPeopleAccount.approvals = [approval];\n this.props.onAdminPerson.updatePersonSelfAssessedApproved({\n personId: managedPeople.personB.id,\n selfAssessedLastApprovedOn: approvedOn,\n selfAssessedLastApprovedBy: localStorage.getItem(\"firstName\") + \" \" + localStorage.getItem(\"lastName\"),\n selfAssessedLastApprovedById: this.props.personId,\n selfAssessedLastApprovedVersion: this.state.selectedVersion,\n });\n\n this.setState({ showApproveDialog: false });\n }\n }\n\n this.setState({ approveInProgress: this.props.personUpdating });\n });\n }\n }\n };\n\n showApprovalModal = () => {\n this.setState({ showApproveDialog: true });\n };\n\n togleShowApprovalModal = () => {\n const showApproveDialog = this.state.showApproveDialog;\n this.setState({ showApproveDialog: !showApproveDialog });\n };\n\n handleCommentChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({\n comment: value,\n });\n };\n\n renderApprovalDialog = () => {\n return (\n \n \n \n \n \n {this.state.approveInProgress ? (\n
\n \n
\n ) : (\n
\n \n \n \n \n \n \n \n \n
\n )}\n
\n \n \n \n \n
\n );\n };\n\n step1Clicked = () => {\n this.setState({ forceOpenEditProfile: new Date() });\n };\n\n step2Clicked = () => {\n this.setState({ forceOpenEditJob: new Date() });\n };\n\n step3Clicked = () => {\n this.props.history.push(\"/SfiaProfile/ActionPlan\");\n };\n\n endorsedProfileApproved = () => {\n if (this.props.managedPeople) {\n this.props.onPerson.getPersonMyPeopleByEmail(this.props.managedPeople.personB.email).then(() => {\n this.props.onAuth.myPeopleSetManagedRelationship(this.props.personManagedPeople);\n this.setState({ endorsedProfileApproved: new Date() });\n });\n }\n };\n\n showPostponeModal = () => {\n this.setState({ showPostponeDialog: true });\n };\n\n togleShowPostponeModal = () => {\n const showPostponeDialog = this.state.showPostponeDialog;\n this.setState({ showPostponeDialog: !showPostponeDialog });\n };\n\n handlePostponeCommentChange = (event) => {\n const { name, value } = event.target;\n\n this.setState({\n postponeComment: value,\n });\n };\n\n renderPostponeDialog = () => {\n return (\n \n \n \n \n \n {this.state.approveInProgress ? (\n
\n \n
\n ) : (\n
\n \n \n \n \n \n \n \n \n
\n )}\n
\n \n \n \n \n \n
\n );\n };\n\n postponeProfile = (postponeType) => {\n this.setState({ postponeType, showPostponeDialog: false, showConfirmPostponeDialog: true });\n };\n\n closeConfirmPostponeModal = () => {\n this.setState({ showPostponeDialog: true, showConfirmPostponeDialog: false });\n };\n\n renderConfirmPostponeDialog = () => {\n return (\n \n \n {this.state.approveInProgress ? (\n
\n \n
\n ) : (\n
\n \n \n \n
\n )}\n
\n \n \n \n \n
\n );\n };\n\n confirmPostponeProfile = () => {\n const { managedPeople } = this.props;\n\n if (managedPeople) {\n const managedPeopleAccount = managedPeople.personB.accounts && managedPeople.personB.accounts.length > 0 ? managedPeople.personB.accounts[0] : null;\n if (managedPeopleAccount) {\n const approval = {\n accountId: managedPeopleAccount.id,\n email: managedPeople.personB.email,\n type: this.state.postponeType,\n comment: this.state.postponeComment,\n };\n\n this.setState({ approveInProgress: true });\n this.props.onPerson.postponeApproveMyPeopleProfile(approval).then(() => {\n if (!this.props.personUpdating) {\n if (this.props.personError) {\n this.generateAlert(\"danger\", this.props.personError.errData.Message);\n } else {\n managedPeopleAccount.isApprovalPostponed = true;\n\n this.props.onAdminPerson.updatePersonSelfAssessedPostPoned({\n personId: managedPeople.personB.id,\n approvalPostponedOn: new Date(),\n approvalPostponedBy: localStorage.getItem(\"firstName\") + \" \" + localStorage.getItem(\"lastName\"),\n approvalPostponedById: this.props.personId,\n approvalPostponedType: this.state.postponeType,\n approvalPostponedComment: this.state.postponeComment,\n });\n\n this.setState({ showConfirmPostponeDialog: false });\n }\n }\n\n this.setState({ approveInProgress: this.props.personUpdating });\n });\n }\n }\n };\n\n handleActionPlanAdded = (addedAction) => {\n this.generateAlert(\"success\", \"Action plan added\");\n this.setState({ newActionPlanAdded: new Date(), addedAction });\n };\n\n handleEvidenceAdded = (addedEvidence) => {\n this.generateAlert(\"success\", \"New Evidence added\");\n };\n\n handleChangeShowHidden = (showHidden) => {\n this.setState({\n showHidden: showHidden,\n });\n };\n\n render() {\n const { managedPeople, account } = this.props;\n let approval = null;\n let managedPeopleAccount = null;\n\n let showApprove = false;\n let profileIsPostponed = false;\n let showEndorser = false;\n let endorsedBy = null;\n let endorsedVersion = null;\n let endorseCreatedAt = null;\n let endorseApprovedAt = null;\n const currAssessment = this.props.currAssessment;\n\n if (account && managedPeople) {\n if (managedPeople.personB.accounts && managedPeople.personB.accounts.length > 0) {\n const managedPeopleAccount = managedPeople.personB.accounts[0];\n if (\n managedPeopleAccount.requireApproval &&\n currAssessment &&\n (managedPeople.relationshipType == \"Admin\" ||\n (currAssessment.allowApprovals == 1 && managedPeople.relationshipType == \"Line Manager\") ||\n (currAssessment.allowApprovals == 2 && (managedPeople.relationshipType == \"Line Manager\" || managedPeople.relationshipType == \"Team Leader\")) ||\n (currAssessment.allowApprovals == 3 && (managedPeople.relationshipType == \"Mentor\" || managedPeople.relationshipType == \"Team Leader\")) ||\n (currAssessment.allowApprovals == 4 && (managedPeople.relationshipType == \"Line Manager\" || managedPeople.relationshipType == \"Mentor\")) ||\n (currAssessment.allowApprovals == 5 && (managedPeople.relationshipType == \"Line Manager\" || managedPeople.relationshipType == \"Team Leader\" || managedPeople.relationshipType == \"Mentor\")))\n ) {\n showApprove = true;\n profileIsPostponed = managedPeopleAccount.isApprovalPostponed;\n }\n }\n\n if ((managedPeople.relationshipType == \"Endorser\" || managedPeople.relationshipType == \"Admin\") && managedPeople.personB.accounts && managedPeople.personB.accounts.length > 0) {\n const managedPeopleAccount = managedPeople.personB.accounts[0];\n if (managedPeopleAccount.latestEndorsedProfileVersion) {\n showEndorser = true;\n endorsedBy = managedPeopleAccount.latestEndorsedProfileBy;\n endorsedVersion = managedPeopleAccount.latestEndorsedProfileVersion;\n endorseCreatedAt = managedPeopleAccount.latestEndorsedProfileCreatedOn;\n endorseApprovedAt = managedPeopleAccount.latestEndorsedProfileApprovedOn;\n }\n } else {\n if (account && account.latestEndorsedProfileVersion) {\n showEndorser = true;\n endorsedBy = account.latestEndorsedProfileBy;\n endorsedVersion = account.latestEndorsedProfileVersion;\n endorseCreatedAt = account.latestEndorsedProfileCreatedOn;\n endorseApprovedAt = account.latestEndorsedProfileApprovedOn;\n }\n }\n } else {\n if (account && currAssessment && currAssessment.enableApprovalRequest) {\n showApprove = true;\n }\n }\n\n if (managedPeople) {\n managedPeopleAccount = managedPeople.personB.accounts && managedPeople.personB.accounts.length > 0 ? managedPeople.personB.accounts[0] : null;\n if (managedPeopleAccount && managedPeopleAccount.approvals && managedPeopleAccount.approvals.length > 0 && managedPeopleAccount.approvals.filter((it) => !it.isFramework && it.approvedVersion == managedPeopleAccount.latestSelfAssessedProfileVersion).length > 0) {\n approval = managedPeopleAccount.approvals.filter((it) => !it.isFramework && it.approvedVersion == managedPeopleAccount.latestSelfAssessedProfileVersion).sort((b, a) => new Date(a.approvedOn) - new Date(b.approvedOn))[0];\n }\n } else {\n if (account && account.approvals && account.approvals.filter((it) => !it.isFramework && it.approvedVersion == account.latestSelfAssessedProfileVersion).length > 0) {\n approval = account.approvals.filter((it) => !it.isFramework && it.approvedVersion == account.latestSelfAssessedProfileVersion).sort((b, a) => new Date(a.approvedOn) - new Date(b.approvedOn))[0];\n }\n\n if (account && account.latestEndorsedProfileVersion) {\n showEndorser = true;\n endorsedBy = account.latestEndorsedProfileBy;\n endorsedVersion = account.latestEndorsedProfileVersion;\n endorseCreatedAt = account.latestEndorsedProfileCreatedOn;\n endorseApprovedAt = account.latestEndorsedProfileApprovedOn;\n }\n }\n\n return (\n \n \n {this.renderApprovalDialog()}\n {this.renderPostponeDialog()}\n {this.renderConfirmPostponeDialog()}\n {!this.state.loading && !this.state.categoryLoading && !this.state.contentLoading ? (\n \n \n \n

\n {this.props.managedPeople && ` for ${this.props.managedPeople.personB.firstName} ${this.props.managedPeople.personB.lastName}`}\n

\n \n {(this.props.hasPeoples || this.props.isEndorser || this.props.manageEndorsements || this.props.manageSelfAssessed) && managedPeople ? (\n \n {(showApprove || showEndorser) && (\n
\n {showApprove && (\n \n {approval ? (\n \n \n {`v${approval.approvedVersion} ${\n approval.updatedOn || approval.createdOn\n ? approval.updatedOn\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.updatedOn))}) `\n : approval.createdOn\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.createdOn))}) `\n : \"\"\n : \"\"\n }`}\n {approval.approvedBy\n ? this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileApprovedBy\", \"Approved by {s1} on {s2}\"),\n approval.approvedBy,\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.approvedOn))\n )\n : this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileApprovedOn\", \"Approved on {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.approvedOn))\n )}\n \n \n {approval.comment}\n \n \n ) : managedPeopleAccount && managedPeopleAccount.isApprovalRequested && showApprove ? (\n \n {this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileApprovalRequestedOn\", \"Approval requested on {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(managedPeopleAccount.approvalRequestSentOn))\n )}\n \n ) : (\n \n \n \n )}\n \n )}\n {showEndorser && (\n \n \n {`v${endorsedVersion} ${\n endorseCreatedAt || endorseApprovedAt\n ? endorseCreatedAt\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseCreatedAt))}) `\n : endorseApprovedAt\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))}) `\n : \"\"\n : \"\"\n }`}\n {endorsedBy\n ? this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileEndorsedBy\", \"Endorsed By {s1} on {s2}\"),\n endorsedBy,\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))\n )\n : this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileEndorsedOn\", \"Endorsed on {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))\n )}\n \n \n )}\n
\n )}\n {!approval && showApprove && !this.props.badgeCertification && (\n \n
\n \n  \n \n
\n
\n )}\n
\n ) : (\n \n \n {approval && (\n \n \n {`v${approval.approvedVersion} ${\n approval.updatedOn || approval.createdOn\n ? approval.updatedOn\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.updatedOn))}) `\n : approval.createdOn\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.createdOn))}) `\n : \"\"\n : \"\"\n }`}\n {approval.approvedBy\n ? this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileApprovedBy\", \"Approved by {s1} on {s2}\"),\n approval.approvedBy,\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.approvedOn))\n )\n : this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileApprovedOn\", \"Approved on {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(approval.approvedOn))\n )}\n \n \n {approval.comment}\n \n \n )}\n {showEndorser && (\n \n \n {`v${endorsedVersion} ${\n endorseCreatedAt || endorseApprovedAt\n ? endorseCreatedAt\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseCreatedAt))}) `\n : endorseApprovedAt\n ? `(${new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))}) `\n : \"\"\n : \"\"\n }`}\n {endorsedBy\n ? this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileEndorsedBy\", \"Endorsed By {s1} on {s2}\"),\n endorsedBy,\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))\n )\n : this.parameterizedString(\n this.contentTranslator(this.props.contentTranslations, \"SfiaProfile\", \"SfiaProfileEndorsedOn\", \"Endorsed on {s1}\"),\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n }).format(new Date(endorseApprovedAt))\n )}\n \n \n )}\n \n \n )}\n
\n {!managedPeople && }\n \n \n
\n ) : (\n
\n \n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n loading: state.auth.loading,\n token: state.auth.token,\n personId: state.auth.personId,\n\n personLoading: state.person.loading,\n account: state.person.account,\n personUpdating: state.person.updating,\n personError: state.person.error,\n\n personManagedPeople: state.person.managedPeople,\n managedPeople: state.auth.managedPeople,\n\n extraFrameworkCapabilities: state.category.extraFrameworkCapabilities,\n extraFrameworkLevels: state.category.extraFrameworkLevels,\n categories: state.category.categories,\n categoryLoading: state.category.loading,\n categoryError: state.category.error,\n\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n manageEndorsements: state.auth.manageEndorsements,\n manageSelfAssessed: state.auth.manageSelfAssessed,\n manageSelfProfiles: state.auth.manageSelfProfiles,\n currAssessment: state.config.currAssessment,\n\n profileUpdating: state.skillProfile.profileUpdating,\n profileUpdatingSuccess: state.skillProfile.profileUpdatingSuccess,\n profileUpdatingError: state.skillProfile.profileUpdatingError,\n udpatedSkills: state.skillProfile.udpatedSkills,\n manageEndorsementOperation: state.skillProfile.manageEndorsementOperation,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onPerson: bindActionCreators(personActions, dispatch),\n onCategory: bindActionCreators(categoryActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n onEvidence: bindActionCreators(evidenceActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SkillsProfile);\n","import { dismisAlert, generateAlert } from \"../../../src/utils/alertUtils\";\nimport * as contentActions from \"../../store/actions/contentAction\";\nimport * as authActions from \"../../store/actions/authAction\";\nimport * as jobActions from \"../../store/actions/jobAction\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapperLg } from \"../common/ContentWrapperLg\";\nimport \"./../../custom-my-people.css\";\nimport React from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Container, Spinner, Table } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst headerStyle = {\n color: \"#2B2B2B\",\n fontSize: \"22px\",\n fontFamily: \"IBMPlexSans-Bold\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass Requirements extends React.Component {\n static displayName = Requirements.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: false,\n contentLoading: true,\n jobs: [],\n alerts: [],\n };\n\n this.initData = this.initData.bind(this);\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n if (this.props.language) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-SfiaProfileMenu-SfiaManage\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: this.props.authLoading });\n this.initData();\n });\n });\n } else {\n this.props.onAuth.authCheckState().then(() => {\n this.setState({ loading: this.props.authLoading });\n this.initData();\n });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initData() {\n this.setState({ loading: true });\n this.props.onJob.getOwnedJobs().then(() => {\n if (!this.props.loading) {\n const jobs = this.props.jobs ? this.props.jobs.sort((a, b) => (`${a.name}` > `${b.name}` ? 1 : -1)) : [];\n this.setState({\n jobs,\n });\n }\n this.setState({ loading: this.props.loading });\n });\n }\n\n render() {\n const { jobs } = this.state;\n\n return (\n \n \n {this.state.loading || this.state.contentLoading ? (\n
\n \n
\n ) : (\n \n

\n Manage Requirements\n

\n \n \n \n \n \n \n \n \n {this.props.loading && (\n \n \n \n )}\n {jobs.map((job, index) => {\n return (\n \n \n \n \n );\n })}\n \n
\n Requirement Name\n \n Unique Reference\n
\n \n
\n {job.name}\n {job.reference}
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n\n authLoading: state.auth.loading,\n\n loading: state.job.loading,\n error: state.job.error,\n jobs: state.job.jobs,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onJob: bindActionCreators(jobActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Requirements);\n","import ActionPlan from \"../components/actionplan/ActionPlan\";\nimport ManageJobProfile from \"../components/admin/jobs/ManageJobProfile\";\nimport NavSecondary from \"../components/common/NavSecondary\";\nimport DigitalWallet from \"../components/digitalwallet/DigitalWallet\";\nimport Evidence from \"../components/evidence/Evidence\";\nimport EvidenceDownload from \"../components/evidence/EvidenceDownload\";\nimport MyLeaders from \"../components/myleaders/MyLeaders\";\nimport MyPeople from \"../components/mypeople/MyPeople\";\nimport TeamAnalytics from \"../components/mypeople/TeamAnalytics\";\nimport Note from \"../components/note/Note\";\nimport JobsProfile from \"../components/profile/JobsProfile\";\nimport SkillsProfile from \"../components/profile/SkillsProfile\";\nimport Requirements from \"../components/requirements/Requirements\";\nimport React from \"react\";\nimport { isMobile } from \"react-device-detect\";\nimport { connect } from \"react-redux\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { Container, Modal, ModalBody } from \"reactstrap\";\n\nclass ProfilePage extends React.Component {\n static displayName = ProfilePage.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n showRotate: false,\n };\n }\n\n componentDidMount() {\n window.addEventListener(\"resize\", this.checkDeviceOrientation);\n this.checkDeviceOrientation();\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n checkDeviceOrientation = () => {\n if (window.matchMedia(\"(orientation: portrait)\").matches && isMobile) {\n this.setState({ showRotate: true });\n } else if (window.matchMedia(\"(orientation: landscape)\").matches) {\n this.setState({ showRotate: false });\n }\n };\n\n closeRotateModal = () => {\n this.setState({ showRotate: false });\n };\n\n renderRotateNotification = () => {\n return (\n this.closeRotateModal()}>\n \n
\n \n
\n PLEASE ROTATE YOUR DEVICE\n
\n (OR CLICK TO CONTINUE)\n
\n
\n
\n );\n };\n\n render() {\n return (\n \n {this.renderRotateNotification()}\n \n \n \n \n \n \n } />\n \n \n \n } />\n } />\n \n \n \n } />\n } />\n {this.props.hasRelationships && this.props.containerConfig && this.props.containerConfig.allowUserSeeTheirRelationships && } />}\n \n \n \n } />\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n hasRelationships: state.auth.hasRelationships,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ProfilePage);\n","import ErrorHandler from \"./../errorResponseHandler\";\nimport Instance from \"./AxiosInstance\";\n\nexport const axios = Instance.apiInstance();\n\nclass SurveyAPI {\n static getMySurveys(assessmentId) {\n return axios\n .get(`/surveys/mysurveys?assessmentId=${assessmentId}`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static selectRole(assessmentId, roleId) {\n return axios\n .post(`/surveys/mysurveys/selectrole?assessmentId=${assessmentId}&roleId=${roleId}`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static getSurveyQuestion(componentGroupId, elementId) {\n return axios\n .get(`/surveys/question?componentGroupId=${componentGroupId}&elementId=${elementId}`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static answerQuestion(body) {\n return axios\n .post(`/surveys/question/answer`, body)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static skipQuestion(body) {\n return axios\n .post(`/surveys/question/skip`, body)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static completeSurvey() {\n return axios\n .post(`/surveys/mysurveys/complete`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n\n static resetMySurvey() {\n return axios\n .post(`/surveys/mysurveys/reset`)\n .then(res => {\n const response = res.data;\n return response;\n })\n .catch(err => {\n throw ErrorHandler(err);\n });\n }\n}\n\nexport default SurveyAPI;","import * as actionTypes from \"./actionTypes\";\n\nimport SurveyAPI from \"./../../common/api/service/SurveyService\";\n\nexport const getMySurveysStart = () => {\n return {\n type: actionTypes.GET_MY_SURVEYS_START,\n };\n};\n\nexport const getMySurveysSuccess = (surveys, surveyRoles) => {\n return {\n type: actionTypes.GET_MY_SURVEYS_SUCCESS,\n surveys,\n surveyRoles\n };\n};\n\nexport const getMySurveysFail = error => {\n return {\n type: actionTypes.GET_MY_SURVEYS_FAIL,\n error: error,\n };\n};\n\nexport const getMySurveys = (assessmentId) => {\n return dispatch => {\n dispatch(getMySurveysStart());\n\n return SurveyAPI.getMySurveys(assessmentId)\n .then(res => {\n if (res.type && res.type == \"Role Selection\") {\n dispatch(getMySurveysSuccess([], res.roles));\n } else {\n dispatch(getMySurveysSuccess(res, []));\n }\n })\n .catch(err => {\n dispatch(getMySurveysFail(err));\n });\n };\n};\n\nexport const mySurveySelectRoleStart = () => {\n return {\n type: actionTypes.MY_SURVEYS_SELECT_ROLE_START,\n };\n};\n\nexport const mySurveySelectRoleSuccess = () => {\n return {\n type: actionTypes.MY_SURVEYS_SELECT_ROLE_SUCCESS,\n };\n};\n\nexport const mySurveySelectRoleFail = error => {\n return {\n type: actionTypes.MY_SURVEYS_SELECT_ROLE_FAIL,\n error: error,\n };\n};\n\nexport const mySurveySelectRole = (assessmentId, roleId) => {\n return dispatch => {\n dispatch(mySurveySelectRoleStart());\n\n return SurveyAPI.selectRole(assessmentId, roleId)\n .then(res => {\n dispatch(mySurveySelectRoleSuccess());\n })\n .catch(err => {\n dispatch(mySurveySelectRoleFail(err));\n });\n };\n};\n\nexport const getSurveyQuestionStart = () => {\n return {\n type: actionTypes.GET_SURVEY_QUESTION_START,\n };\n};\n\nexport const getSurveyQuestionSuccess = (question) => {\n return {\n type: actionTypes.GET_SURVEY_QUESTION_SUCCESS,\n question\n };\n};\n\nexport const getSurveyQuestionFail = error => {\n return {\n type: actionTypes.GET_SURVEY_QUESTION_FAIL,\n error: error,\n };\n};\n\nexport const getSurveyQuestion = (componentGroupId, elementId) => {\n return dispatch => {\n dispatch(getSurveyQuestionStart());\n\n return SurveyAPI.getSurveyQuestion(componentGroupId, elementId)\n .then(res => {\n dispatch(getSurveyQuestionSuccess(res));\n })\n .catch(err => {\n dispatch(getSurveyQuestionFail(err));\n });\n };\n};\n\nexport const answerQuestionStart = () => {\n return {\n type: actionTypes.ANSWER_QUESTION_START,\n };\n};\n\nexport const answerQuestionSuccess = (answerResult) => {\n return {\n type: actionTypes.ANSWER_QUESTION_SUCCESS,\n answerResult\n };\n};\n\nexport const answerQuestionFail = error => {\n return {\n type: actionTypes.ANSWER_QUESTION_FAIL,\n error: error,\n };\n};\n\nexport const answerQuestion = (answer) => {\n return dispatch => {\n dispatch(answerQuestionStart());\n\n return SurveyAPI.answerQuestion(answer)\n .then(res => {\n dispatch(answerQuestionSuccess(res));\n })\n .catch(err => {\n dispatch(answerQuestionFail(err));\n });\n };\n};\n\nexport const skipQuestionStart = () => {\n return {\n type: actionTypes.SKIP_QUESTION_START,\n };\n};\n\nexport const skipQuestionSuccess = (answerResult) => {\n return {\n type: actionTypes.SKIP_QUESTION_SUCCESS,\n answerResult\n };\n};\n\nexport const skipQuestionFail = error => {\n return {\n type: actionTypes.SKIP_QUESTION_FAIL,\n error: error,\n };\n};\n\nexport const skipQuestion = (answer) => {\n return dispatch => {\n dispatch(skipQuestionStart());\n\n return SurveyAPI.skipQuestion(answer)\n .then(res => {\n dispatch(skipQuestionSuccess(res));\n })\n .catch(err => {\n dispatch(skipQuestionFail(err));\n });\n };\n};\n\nexport const completeMySurveyStart = () => {\n return {\n type: actionTypes.COMPLETE_MY_SURVEYS_START,\n };\n};\n\nexport const completeMySurveySuccess = () => {\n return {\n type: actionTypes.COMPLETE_MY_SURVEYS_SUCCESS,\n };\n};\n\nexport const completeMySurveyFail = error => {\n return {\n type: actionTypes.COMPLETE_MY_SURVEYS_FAIL,\n error: error,\n };\n};\n\nexport const completeMySurvey = () => {\n return dispatch => {\n dispatch(completeMySurveyStart());\n\n return SurveyAPI.completeSurvey()\n .then(res => {\n dispatch(completeMySurveySuccess(res));\n })\n .catch(err => {\n dispatch(completeMySurveyFail(err));\n });\n };\n};\n\nexport const resetMySurveyStart = () => {\n return {\n type: actionTypes.RESET_MY_SURVEYS_START,\n };\n};\n\nexport const resetMySurveySuccess = () => {\n return {\n type: actionTypes.RESET_MY_SURVEYS_SUCCESS,\n };\n};\n\nexport const resetMySurveyFail = error => {\n return {\n type: actionTypes.RESET_MY_SURVEYS_FAIL,\n error: error,\n };\n};\n\nexport const resetMySurvey = () => {\n return dispatch => {\n dispatch(resetMySurveyStart());\n\n return SurveyAPI.resetMySurvey()\n .then(res => {\n dispatch(resetMySurveySuccess(res));\n })\n .catch(err => {\n dispatch(resetMySurveyFail(err));\n });\n };\n};","import * as authActions from \"../../store/actions/authAction\";\nimport * as surveyActions from \"../../store/actions/surveyAction\";\nimport { ContentWrapper } from \"../common/ContentWrapper\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\nimport { Userpilot } from \"userpilot\";\n\nconst userPilotToken = process.env.REACT_APP_USER_PILOT_TOKEN;\nUserpilot.initialize(userPilotToken);\n\nclass Survey extends Component {\n static displayName = Survey.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n invalidToken: false,\n surveys: [],\n };\n }\n\n componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n const token = query.get(\"token\");\n\n const isAuthenticated = this.props.isAuthenticated;\n\n if (!isAuthenticated) {\n if (!token) {\n this.props.history.push(\"/\");\n } else {\n this.props.onAuth.signInUseToken(token).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n Userpilot.identify(this.props.loginResult.personId, { name: `${this.props.loginResult.firstName} ${this.props.loginResult.lastName}`, email: this.props.loginResult.email });\n\n Promise.resolve(\n this.props.onAuth.signInSuccess(\n this.props.loginResult.token,\n this.props.email,\n this.props.assessmentId,\n this.props.jobProfileReportFormat,\n this.props.selfAssessedProfileReportFormat,\n this.props.hasPeoples,\n this.props.isEndorser,\n this.props.authMode,\n this.props.loginResult.personId,\n this.props.ownJobs,\n this.props.manageEndorsements,\n this.props.manageCertifications,\n this.props.loginWithMembee,\n this.props.loginWithTeams,\n this.props.receiveLicenseNotification,\n this.props.lastActiveUserNotification,\n this.props.allowSkipSurvey,\n this.props.manageSelfAssessed,\n this.props.manageSelfProfiles,\n this.props.hasRelationships\n )\n ).then(() => {\n this.props.history.push(`/survey/assessment/${this.props.assessmentId}`);\n });\n } else {\n this.props.history.push(`/login`);\n }\n }\n this.setState({ loading: this.props.loading });\n });\n }\n } else {\n this.setState({ loading: false });\n this.props.history.push(`/survey/assessment/${this.props.assessmentId}`);\n }\n }\n\n invalidToken() {\n return (\n \n \n \n \n \n Error!!! Invalid authentication token\n

\n \n
\n
\n
\n );\n }\n\n render() {\n return (\n
\n {this.state.loading ? (\n
\n \n \n
\n \n
\n \n
\n
\n ) : (\n {!this.props.isAuthenticated && this.invalidToken()}\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n assessmentId: state.auth.assessmentId,\n jobProfileReportFormat: state.auth.jobProfileReportFormat,\n selfAssessedProfileReportFormat: state.auth.selfAssessedProfileReportFormat,\n authMode: state.auth.authMode,\n loading: state.auth.loading,\n error: state.auth.error,\n email: state.auth.email,\n loginResult: state.auth.loginResult,\n hasPeoples: state.auth.hasPeoples,\n isEndorser: state.auth.isEndorser,\n ownJobs: state.auth.ownJobs,\n hasRelationships: state.auth.hasRelationships,\n\n manageEndorsements: state.auth.manageEndorsements,\n manageCertifications: state.auth.manageCertifications,\n manageSelfAssessed: state.auth.manageSelfAssessed,\n manageSelfProfiles: state.auth.manageSelfProfiles,\n loginWithMembee: state.auth.loginWithMembee,\n loginWithTeams: state.auth.loginWithTeams,\n receiveLicenseNotification: state.auth.receiveLicenseNotification,\n lastActiveUserNotification: state.auth.lastActiveUserNotification,\n allowSkipSurvey: state.auth.allowSkipSurvey,\n\n loadingSurvey: state.survey.loading,\n errorSurvey: state.survey.error,\n surveys: state.survey.surveys,\n surveyRoles: state.survey.surveyRoles,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onSurvey: bindActionCreators(surveyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Survey);\n","import { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapper } from \"../common/ContentWrapper\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport React, { Component } from \"react\";\nimport { withRouter } from \"react-router\";\nimport { Link } from \"react-router-dom\";\nimport StarRatings from \"react-star-ratings\";\nimport { Button, Col, Container, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Spinner, Table } from \"reactstrap\";\n\nclass ListSurvey extends Component {\n static displayName = ListSurvey.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n showConfirmTutorial: false,\n selectedSurvey: null,\n surveyRating: 0,\n surveyComment: null,\n };\n this.togleConfirmTutorialModal = this.togleConfirmTutorialModal.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {}\n\n selectSurvey = (survey) => {\n const surveys = this.props.surveys;\n const started = surveys && surveys.some((it) => it.elements.some((it) => it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0))));\n\n let element = null;\n\n if (survey.elements.find((it) => it.lastOpened)) {\n element = survey.elements.sort((b, a) => new Date(a.lastOpened) - new Date(b.lastOpened)).filter((it) => it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0)) && it.lastOpened)[0];\n } else {\n element = survey.elements.sort((a, b) => a.displaySequence - b.displaySequence).filter((it) => !(it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0))))[0];\n }\n\n if (!started) {\n this.setState({ selectedSurvey: survey, showConfirmTutorial: true });\n } else {\n this.props.history.push(`/survey/question/${survey.componentGroupId}/${element.elementId}`);\n }\n };\n\n togleConfirmTutorialModal() {\n const showConfirmTutorial = this.state.showConfirmTutorial;\n this.setState({ showConfirmTutorial: !showConfirmTutorial });\n }\n\n showTutorial = () => {\n const selectedSurvey = this.state.selectedSurvey;\n\n if (selectedSurvey && selectedSurvey.assessmentTutorialUrl && selectedSurvey.assessmentTutorialUrl != \"\") {\n window.open(selectedSurvey.assessmentTutorialUrl);\n } else {\n window.open(\"https://skillstx.com/skillstx-personal-user-guide/\");\n }\n };\n\n tutorialWatched = () => {\n const survey = this.state.selectedSurvey;\n const element = survey.elements.sort((a, b) => a.displaySequence - b.displaySequence).filter((it) => !(it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0))))[0];\n\n this.props.history.push(`/survey/question/${survey.componentGroupId}/${element.elementId}`);\n };\n\n modalConfirmTutorial() {\n return (\n \n \n \n \n \n Have you attended an awareness session or watched the tutorial?\"),\n }}\n />\n \n \n \n \n \n \n );\n }\n\n renderTableBody(surveys) {\n const rows = surveys.map((row, index) => {\n const completed = row.elements && row.elements.length > 0 ? (row.elements.filter((it) => !it.assessmentPersonResultId || !(it.valueId || (it.values && it.values.length > 0))).length > 0 ? false : true) : true;\n\n const started = row.elements && row.elements.length > 0 ? (row.elements.filter((it) => it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0))).length > 0 ? true : false) : false;\n\n return (\n \n {row.moduleName}\n \n \n \n {row.elements ? row.elements.length : 0}\n {row.timeEstimate}\n \n \n \n \n \n \n );\n });\n\n return {rows};\n }\n\n changeRating = (newRating) => {\n this.setState({ surveyRating: newRating });\n };\n\n handleChangeComment = (event) => {\n const { value } = event.target;\n this.setState({ surveyComment: value });\n };\n\n renderRoleSelection() {\n const { surveyRoles } = this.props;\n\n const rows = surveyRoles.map((role, index) => {\n return (\n
\n {index === 0 ? \"\" :
}\n \n \n \n \n \n \n
\n \n

\n \n \n this.props.selectRole(role.id)}\n >\n {this.props.inProgress && this.props.selectedRoleId && this.props.selectedRoleId == role.id ? (\n \n ) : (\n \n )}\n \n \n
\n
\n );\n });\n\n return rows;\n }\n\n render() {\n const { surveys, surveyRoles } = this.props;\n\n const completionDateTarget = surveys && surveys.length > 0 && surveys[0].surveyCompletionTargetDate;\n const showSurveyRating = surveys && surveys.length > 0 && surveys[0].showSurveyRating;\n const assessmentName = surveys && surveys.length > 0 && surveys[0].assessmentName;\n\n let isComplete = false;\n\n if (surveys && surveys.length > 0) {\n const unAnswerred = surveys.filter((it) => it.elements.some((it) => !(it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0)))));\n if (unAnswerred.length == 0) {\n isComplete = true;\n }\n }\n\n return (\n \n {this.modalConfirmTutorial()}\n {isComplete && (\n \n \n \n \n {showSurveyRating && (\n \n

{!this.props.loginWithTeams ? : \"Please take a moment to rate your survey experience\"}

\n
\n \n
\n

\n \n

\n

\n \n

\n
\n )}\n {!this.props.loginWithTeams ? (\n \n Create account

Please create an account to enable access to view and maintain your Skills Profile

\"),\n }}\n >

\n
\n \n this.props.createAccount(\n showSurveyRating\n ? {\n postRating: true,\n surveyRating: this.state.surveyRating >= 0 ? this.state.surveyRating : null,\n surveyComment: this.state.surveyComment,\n }\n : {\n postRating: false,\n }\n )\n }\n >\n \n \n    \n {this.props.samlEnabled && this.props.defaultCompany && this.props.samlEnabled == \"TRUE\" && (\n \n this.props.submitRating(\n showSurveyRating\n ? {\n postRating: true,\n surveyRating: this.state.surveyRating >= 0 ? this.state.surveyRating : null,\n surveyComment: this.state.surveyComment,\n }\n : {\n postRating: false,\n }\n )\n }\n >\n {`Proceed with your ${this.props.defaultCompany.name} account`}\n \n )}\n
\n
\n ) : (\n \n \n this.props.submitRatingTeams(\n showSurveyRating\n ? {\n postRating: true,\n surveyRating: this.state.surveyRating >= 0 ? this.state.surveyRating : null,\n surveyComment: this.state.surveyComment,\n }\n : {\n postRating: false,\n }\n )\n }\n disabled={this.props.loading}\n >\n {this.props.loading ? : \"Submit\"}\n \n \n )}\n \n
\n
\n
\n )}\n {surveys && surveys.length > 0 && (\n \n \n \n \n \n {assessmentName}\n

\n \n {!isComplete && (\n \n this.props.resetSurvey()}\n >\n \n \n \n )}\n \n

\n \n
\n \n {completionDateTarget &&\n new Intl.DateTimeFormat(\"en-GB\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }).format(new Date(completionDateTarget))}\n \n

\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n {this.renderTableBody(surveys)}\n
\n \n \n \n \n \n \n \n \n \n
\n
\n )}\n {surveyRoles && surveyRoles.length > 0 && (\n \n \n \n best matches your experience.
For extra guidance on the options below, or if you are unsure what we mean by 'digital career' please click here: Assessment Guidance
Your selection will filter your self-assessment to present surveys that are focused specifically on skills and skill levels which are most likely to be relevant to you. The more digital experience you have, the more skill questions you will be offered.
After you’ve completed the surveys, you will still have plenty of opportunity to further “refine” your skill profile, regardless of the option you choose below.
NOTE: On making your selection you will immediately be presented with your tailored self-assessment surveys.
`\n ),\n }}\n >

\n \n
\n {this.renderRoleSelection()}\n
\n )}\n
\n );\n }\n}\n\nexport default withRouter(ListSurvey);\n","import { Col, Container, Row } from 'reactstrap';\nimport React, { Component } from 'react';\n\nimport ContentTranslator from '../translator/ContentTranslator';\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { parameterizedString } from \"../../utils/stringUtils\";\n\nconst stepAssessmentStyle = {\n border: 1,\n width: '810px',\n height: '100%',\n backgroundColor: '#EFEFEF',\n paddingLeft: '82px',\n paddingRight: '82px',\n paddingTop: '33px',\n paddingBottom: '40px',\n marginBottom: '10px',\n borderRadius: '20px',\n}\n\nconst stepHeaderStyle = {\n fontFamily: 'IBMPlexSans-Bold',\n fontSize: 20,\n width: '394px'\n}\n\nconst stepInfoStyle = {\n fontFamily: 'IBMPlexSans-Light',\n fontSize: 11,\n width: '135px'\n}\n\nexport class StepAssessment extends Component {\n static displayName = StepAssessment.name;\n\n constructor(props) {\n super(props);\n this.state = {\n name: this.props.name,\n }\n\n this.contentTranslator = contentTranslator.bind(this);\n this.parameterizedString = parameterizedString.bind(this);\n }\n\n render() {\n const isComplete = this.props.isComplete;\n\n return (\n \n
\n {isComplete ?\n

You completed your self assessment\"), this.state.name) }}\n >

\n :\n

Let’s get your assessment started!\"), this.state.name) }}\n >

\n }\n
\n \n \n \n \n \n \n
\n

1

\n
\n \n \n

\n \n

\n \n
\n
\n \n \n \n \n \n
\n

2

\n
\n \n \n

\n \n

\n \n
\n
\n \n \n \n \n \n
\n

3

\n
\n \n \n

\n \n

\n \n
\n
\n \n
\n
\n
\n );\n }\n}","import * as authActions from \"../../store/actions/authAction\";\nimport * as surveyActions from \"../../store/actions/surveyAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { ContentWrapper } from \"../common/ContentWrapper\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport ListSurvey from \"./ListSurvey\";\nimport { StepAssessment } from \"./StepAssessment\";\nimport React, { Component } from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row, Spinner } from \"reactstrap\";\nimport { Button } from \"reactstrap\";\nimport { Form } from \"reactstrap\";\nimport { FormGroup } from \"reactstrap\";\nimport { Label } from \"reactstrap\";\nimport { Modal } from \"reactstrap\";\nimport { ModalBody } from \"reactstrap\";\nimport { ModalFooter } from \"reactstrap\";\nimport { ModalHeader } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nclass SurveyAssessment extends Component {\n static displayName = SurveyAssessment.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n invalidToken: false,\n surveys: [],\n surveyRoles: [],\n passwordRequestSent: false,\n assessmentId: null,\n selectedRoleId: null,\n alerts: [],\n showSelectRoleConfirmationDialog: false,\n answerLoading: false,\n showResetSurveyConfirmationDialog: false,\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n }\n\n componentDidMount() {\n const isAuthenticated = this.props.isAuthenticated;\n\n if (!isAuthenticated) {\n this.props.history.push(\"/\");\n } else {\n this.setState({ loading: false });\n const {\n match: { params },\n } = this.props;\n\n var assessmentId = params.assessmentId;\n this.setState({ assessmentId });\n this.initSurveyDatas(assessmentId);\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n initSurveyDatas = (assessmentId) => {\n this.setState({ loading: true });\n this.props.onSurvey.getMySurveys(assessmentId).then(() => {\n if (!this.props.loadingSurvey) {\n if (!this.props.errorSurvey) {\n if (this.props.surveys && this.props.surveys.length > 0) {\n const unAnswerred = this.props.surveys.filter((it) => it.elements.some((it) => !(it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0)))));\n if (unAnswerred.length == 0) {\n this.props.onSurvey.completeMySurvey();\n }\n }\n\n this.setState({ surveys: this.props.surveys, surveyRoles: this.props.surveyRoles });\n } else {\n this.generateAlert(\"danger\", this.props.errorSurvey.errData.Message);\n }\n }\n this.setState({ loading: this.props.loadingSurvey });\n });\n };\n\n createAccount = (surveyRating) => {\n this.setState({ loading: true });\n this.props.onAuth.createAccount(surveyRating).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n this.setState({ passwordRequestSent: true });\n this.props.history.push(\"/resetpasswordconfirmation\");\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n submitRating = (surveyRating) => {\n this.setState({ loading: true });\n this.props.onAuth.submitRating(surveyRating).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n this.props.onAuth.authLogout().then(() => {\n window.location = \"/sso/login\";\n });\n } else {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n submitRatingTeams = (surveyRating) => {\n this.setState({ loading: true });\n this.props.onAuth.submitRatingTeams(surveyRating).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n this.props.onAuth.forceRefreshToken().then(() => {\n window.location = \"/SfiaProfile\";\n });\n } else {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n selectRole = (roleId) => {\n this.setState({ selectedRoleId: roleId, showSelectRoleConfirmationDialog: true });\n };\n\n togleSelectRoleConfirmationDialog = () => {\n const showSelectRoleConfirmationDialog = this.state.showSelectRoleConfirmationDialog;\n this.setState({ showSelectRoleConfirmationDialog: !showSelectRoleConfirmationDialog });\n };\n\n handleConfimRoleSelection = () => {\n const roleId = this.state.selectedRoleId;\n const assessmentId = this.state.assessmentId;\n\n this.setState({ answerLoading: true });\n\n this.props.onSurvey.mySurveySelectRole(assessmentId, roleId).then(() => {\n if (!this.props.answerLoading) {\n if (!this.props.errorSurvey) {\n this.setState({ showSelectRoleConfirmationDialog: false });\n this.initSurveyDatas(assessmentId);\n }\n }\n\n this.setState({ answerLoading: this.props.answerLoading });\n });\n };\n\n renderSelectRoleConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfimRoleSelection();\n }}\n disabled={this.state.answerLoading}\n >\n \n \n \n \n
\n );\n };\n\n resetSurvey = () => {\n this.setState({ showResetSurveyConfirmationDialog: true });\n };\n\n togleResetSurveyConfirmation = () => {\n const showResetSurveyConfirmationDialog = this.state.showResetSurveyConfirmationDialog;\n this.setState({ showResetSurveyConfirmationDialog: !showResetSurveyConfirmationDialog });\n };\n\n handleConfimResetSurvey = () => {\n const assessmentId = this.state.assessmentId;\n this.setState({ answerLoading: true });\n\n this.props.onSurvey.resetMySurvey().then(() => {\n if (!this.props.answerLoading) {\n if (!this.props.errorSurvey) {\n this.setState({ showResetSurveyConfirmationDialog: false });\n this.initSurveyDatas(assessmentId);\n } else {\n this.generateAlert(\"danger\", this.props.errorSurvey.errData.Message);\n }\n }\n\n this.setState({ answerLoading: this.props.answerLoading });\n });\n };\n\n renderResetSurveyConfirmation = () => {\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.handleConfimResetSurvey();\n }}\n disabled={this.state.answerLoading}\n >\n \n \n \n \n
\n );\n };\n\n render() {\n let firstName = localStorage.getItem(\"firstName\");\n\n let isComplete = false;\n\n if (this.state.surveys && this.state.surveys.length > 0) {\n const unAnswerred = this.state.surveys.filter((it) => it.elements.some((it) => !(it.assessmentPersonResultId && (it.valueId || (it.values && it.values.length > 0)))));\n if (unAnswerred.length == 0) {\n isComplete = true;\n }\n }\n\n return (\n
\n \n {this.renderSelectRoleConfirmation()}\n {this.renderResetSurveyConfirmation()}\n {this.state.loading ? (\n
\n \n \n
\n \n
\n \n
\n
\n ) : (\n \n {this.props.isAuthenticated && (\n \n {this.state.passwordRequestSent ? (\n \n \n \n \n \n \n Account Confirmation\n

\n \n We have sent you an email with a link to setup your password and access your profile.\n
\n Please check your emails ASAP because the link will expire after 24 hours.\n
\n You must use the same email address that you registered for your self assessment.\n

\n \n
\n
\n
\n
\n ) : (\n \n \n \n \n )}\n
\n )}\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n loading: state.auth.loading,\n error: state.auth.error,\n email: state.auth.email,\n loginResult: state.auth.loginResult,\n loginWithTeams: state.auth.loginWithTeams,\n\n loadingSurvey: state.survey.loading,\n errorSurvey: state.survey.error,\n surveys: state.survey.surveys,\n surveyRoles: state.survey.surveyRoles,\n answerLoading: state.survey.answerLoading,\n\n contentTranslations: state.content.contentTranslations,\n samlEnabled: state.config.samlEnabled,\n defaultCompany: state.company.defaultCompany,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onAuth: bindActionCreators(authActions, dispatch),\n onSurvey: bindActionCreators(surveyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SurveyAssessment);\n","import ContentTranslator from \"../translator/ContentTranslator\";\nimport React, { Component, useState } from \"react\";\nimport { Button, Col, CustomInput, Input, Modal, ModalBody, ModalFooter, ModalHeader, Progress, Row, Spinner } from \"reactstrap\";\n\nconst buttonActionStyle = {\n height: \"55px\",\n fontSize: 18,\n fontFamily: \"IBMPlexSans-Bold\",\n textTransform: \"capitalize\",\n};\n\nconst answerStyle = {\n fontSize: 14,\n fontFamily: \"IBMPlexSans\",\n};\n\nclass SurveyListVersion extends Component {\n static displayName = SurveyListVersion.name;\n\n constructor(props) {\n super(props);\n this.state = {\n stringVal: \"\",\n selectedValues: [],\n };\n }\n\n componentDidMount() {}\n\n setStringVal = (stringVal) => {\n this.setState({ stringVal });\n };\n\n handleSelect = (valueId, stringVal) => {\n const { selectedValues } = this.state;\n\n if (selectedValues.find((it) => it.valueId == valueId)) {\n const index = selectedValues.indexOf(selectedValues.find((it) => it.valueId == valueId));\n if (index !== -1) {\n selectedValues.splice(index, 1);\n this.setState({ selectedValues: [...selectedValues] });\n this.props.selectAnswers([...selectedValues]);\n }\n } else {\n this.setState({ selectedValues: [...selectedValues, { valueId, stringVal }] });\n this.props.selectAnswers([...selectedValues, { valueId, stringVal }]);\n }\n };\n\n render() {\n const { selectedValues } = this.state;\n\n const rows = this.props.answersData\n .filter((it) => !it.isHidden)\n .map((row, index) => {\n return (\n
\n {index === 0 ? \"\" :
}\n \n \n

\n {row.name != \"\" ? (\n \n ) : (\n this.setStringVal(e.target.value)} />\n )}\n

\n \n \n {this.props.resultType == \"Single\" && (\n \n )}\n {this.props.resultType == \"Multiple\" && (\n
\n it.valueId == row.id)} disabled={this.props.inProgress} type=\"checkbox\" id={`chk${row.id}`} onChange={() => this.handleSelect(row.id, row.stringVal)} />\n
\n )}\n \n
\n
\n );\n });\n\n return rows;\n }\n}\n\nexport default SurveyListVersion;\n","import * as surveyActions from \"../../store/actions/surveyAction\";\nimport { dismisAlert, generateAlert } from \"../../utils/alertUtils\";\nimport { contentTranslator } from \"../../utils/translatorUtils\";\nimport { ContentWrapper } from \"../common/ContentWrapper\";\nimport ContentTranslator from \"../translator/ContentTranslator\";\nimport SurveyListVersion from \"./SurveyListAnswer\";\nimport React, { Component, useState } from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Col, CustomInput, Input, Modal, ModalBody, ModalFooter, ModalHeader, Progress, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst buttonNav1Style = {\n // width: '72px',\n minHeight: \"33px\",\n};\n\nconst buttonNav2Style = {\n width: \"100px\",\n minHeight: \"33px\",\n};\n\nconst buttonActionStyle = {\n height: \"55px\",\n fontSize: 18,\n fontFamily: \"IBMPlexSans-Bold\",\n textTransform: \"capitalize\",\n};\n\nconst questionStyle = {\n fontSize: 14,\n fontFamily: \"IBMPlexSans-Light\",\n};\n\nconst buttonNavStyle = {\n height: \"33px\",\n};\n\nconst buttonActionPrimaryStyle = {\n height: \"55px\",\n fontSize: 18,\n};\n\nconst buttonActionSecondaryStyle = {\n height: \"55px\",\n fontSize: 12,\n};\n\nconst descStyle = {\n fontSize: 12,\n fontFamily: \"IBMPlexSans-Light\",\n};\n\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\n\nclass SurveyQuestion extends Component {\n static displayName = SurveyQuestion.name;\n\n constructor(props) {\n super(props);\n this.state = {\n loading: true,\n question: null,\n comment: \"\",\n startTime: new Date(),\n inProgress: false,\n selectedAnswerId: null,\n showSkipConfirmation: false,\n alerts: [],\n selectedValues: [],\n };\n\n this.generateAlert = generateAlert.bind(this);\n this.dismisAlert = dismisAlert.bind(this);\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n componentDidMount() {\n const isAuthenticated = this.props.isAuthenticated;\n\n if (!isAuthenticated) {\n this.props.history.push(\"/\");\n } else {\n this.setState({ loading: false });\n const {\n match: { params },\n } = this.props;\n\n var componentGroupId = params.componentGroupId;\n var elementId = params.elementId;\n\n this.initQuestionData(componentGroupId, elementId);\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (this.props.match.params.elementId !== nextProps.match.params.elementId) {\n this.initQuestionData(nextProps.match.params.componentGroupId, nextProps.match.params.elementId);\n }\n }\n\n initQuestionData = (componentGroupId, elementId) => {\n this.setState({ loading: true });\n this.props.onSurvey.getSurveyQuestion(componentGroupId, elementId).then(() => {\n if (!this.props.loading) {\n if (!this.props.error) {\n this.setState({ question: this.props.question, startTime: new Date() });\n } else {\n this.generateAlert(\"danger\", this.props.error.errData.Message);\n }\n }\n this.setState({ loading: this.props.loading });\n });\n };\n\n surveyDesc = () => {\n const question = this.state.question;\n\n return (\n \n {question &&\n (question.next ? (\n \n \n \n \n \n \n \n ) : (\n \n \n {question.previous && (\n \n )}\n \n \n \n \n \n \n \n ))}\n \n \n

\n \n

\n \n \n {question && }\n \n
\n \n \n {question && (\n

\n \n {question.componentGroupDescription}\n \n
\n {question.moduleName}\n

\n )}\n \n
\n \n {question &&

}\n
\n \n \n {question && (\n \n )}\n \n {this.state.question.next && this.state.question.allowSkip && (\n \n this.skipSurveyConfirmation()}\n disabled={this.state.inProgress}\n dangerouslySetInnerHTML={{\n __html: this.contentTranslator(this.props.contentTranslations, \"Question\", \"QuestionSkipSurvey\", \"Skip entire survey.
I do not believe this category is relevant to me.\"),\n }}\n >\n \n )}\n
\n
\n );\n };\n\n surveyAnswer = () => {\n const question = this.state.question;\n\n return (\n \n \n \n {question && question.previous && (\n \n )}\n {question && question.assessmentPersonResultId != null && question.next && (\n \n )}\n \n \n {question && (\n \n \n \n )}\n {question && question.allowSkip && (\n \n )}\n \n \n \n \n

\n \n {/* {question.numberOfAnswer}/{question.numberOfQuestion} Questions */}\n

\n \n \n {question && }\n \n
\n \n {question &&

Q: ${this.contentTranslator(this.props.contentTranslations, \"Elements\", `${question.elementId} Label`, question.elementLabel)}` }} />}\n \n {question && question.enableComments && (\n \n \n \n
\n \n
\n \n
\n )}\n {question && (\n \n \n \n )}\n {question && question.resultType == \"Multiple\" && (\n

\n \n \n \n \n \n \n
\n )}\n
\n );\n };\n\n handleChangeComment = (event) => {\n const { value } = event.target;\n this.setState({ comment: value });\n };\n\n nextQuestion = () => {\n const question = this.state.question;\n this.props.history.push(`/survey/question/${question.componentGroupId}/${question.next.elementId}`);\n };\n\n prevQuestion = () => {\n const question = this.state.question;\n this.props.history.push(`/survey/question/${question.componentGroupId}/${question.previous.elementId}`);\n };\n\n selectAnswer = (valueId, stringVal) => {\n const { startTime, question, comment } = this.state;\n\n var curTime = new Date();\n var dif = startTime.getTime() - curTime.getTime();\n var Seconds_from_T1_to_T2 = dif / 1000;\n var timeTaken = Math.round(Math.abs(Seconds_from_T1_to_T2));\n\n const answer = {\n componentGroupId: question.componentGroupId,\n elementId: question.elementId,\n valueId,\n timeTaken,\n comment,\n stringVal,\n resultType: \"Single\",\n };\n\n this.setState({ inProgress: true, selectedAnswerId: valueId });\n\n this.props.onSurvey.answerQuestion(answer).then(() => {\n if (!this.props.answerLoading) {\n if (!this.props.error && this.props.answerResult) {\n this.setState({ comment: \"\" });\n\n if (this.props.answerResult.status == \"In Progress\") {\n this.props.history.push(`/survey/question/${this.props.answerResult.componentGroupId}/${this.props.answerResult.nextElementId}`);\n } else if (this.props.answerResult.status == \"Completed\") {\n if (this.props.answerResult.surveyIsComplete) {\n this.props.onSurvey.completeMySurvey();\n }\n this.props.history.push(`/survey/assessment/${question.assessmentId}`);\n }\n }\n }\n this.setState({ inProgress: this.props.answerLoading });\n });\n };\n\n selectAnswers = (selectedValues) => {\n this.setState({ selectedValues: [...selectedValues] });\n };\n\n submitAnswers = () => {\n const { startTime, question, comment, selectedValues } = this.state;\n\n if (selectedValues.length > 0) {\n var curTime = new Date();\n var dif = startTime.getTime() - curTime.getTime();\n var Seconds_from_T1_to_T2 = dif / 1000;\n var timeTaken = Math.round(Math.abs(Seconds_from_T1_to_T2));\n\n const answer = {\n componentGroupId: question.componentGroupId,\n elementId: question.elementId,\n timeTaken,\n comment,\n resultType: \"Multiple\",\n values: selectedValues,\n };\n\n this.setState({ inProgress: true });\n\n this.props.onSurvey.answerQuestion(answer).then(() => {\n if (!this.props.answerLoading) {\n if (!this.props.error && this.props.answerResult) {\n this.setState({ comment: \"\" });\n\n if (this.props.answerResult.status == \"In Progress\") {\n this.props.history.push(`/survey/question/${this.props.answerResult.componentGroupId}/${this.props.answerResult.nextElementId}`);\n } else if (this.props.answerResult.status == \"Completed\") {\n if (this.props.answerResult.surveyIsComplete) {\n this.props.onSurvey.completeMySurvey();\n }\n this.props.history.push(`/survey/assessment/${question.assessmentId}`);\n }\n }\n }\n this.setState({ inProgress: this.props.answerLoading });\n });\n }\n };\n\n skipSurveyConfirmation = () => {\n this.setState({ showSkipConfirmation: true });\n };\n\n togleSkipSurveyConfirmation = () => {\n const showSkipConfirmation = this.state.showSkipConfirmation;\n this.setState({ showSkipConfirmation: !showSkipConfirmation });\n };\n\n skipSurvey = () => {\n const { question } = this.state;\n\n this.setState({ showSkipConfirmation: false });\n\n const answer = {\n componentGroupId: question.componentGroupId,\n elementId: question.elementId,\n };\n\n this.setState({ inProgress: true });\n\n this.props.onSurvey.skipQuestion(answer).then(() => {\n if (!this.props.answerLoading) {\n if (!this.props.error && this.props.answerResult) {\n this.setState({ comment: \"\" });\n\n if (this.props.answerResult.status == \"In Progress\") {\n this.props.history.push(`/survey/question/${this.props.answerResult.componentGroupId}/${this.props.answerResult.nextElementId}`);\n } else if (this.props.answerResult.status == \"Completed\") {\n if (this.props.answerResult.surveyIsComplete) {\n this.props.onSurvey.completeMySurvey();\n }\n this.props.history.push(`/survey/assessment/${question.assessmentId}`);\n }\n }\n }\n this.setState({ inProgress: this.props.answerLoading });\n });\n };\n\n render() {\n const question = this.state.question;\n\n return (\n
\n \n {this.state.loading ? (\n
\n \n \n
\n \n
\n \n
\n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {question ? (\n (question.values.length == 1 && question.values[0].name == \"Continue\") || (question.values.length == 2 && question.values[0].stringVal == \"Continue\" && question.values[1].stringVal == \"Skip\") || (question.values.length == 1 && question.values[0].stringVal == \"Next\") ? (\n this.surveyDesc()\n ) : (\n this.surveyAnswer()\n )\n ) : (\n \n \n \n \n \n \n \n \n \n )}\n \n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n\n loading: state.survey.loading,\n error: state.survey.error,\n question: state.survey.question,\n\n answerResult: state.survey.answerResult,\n answerLoading: state.survey.answerLoading,\n\n contentTranslations: state.content.contentTranslations,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onSurvey: bindActionCreators(surveyActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SurveyQuestion);\n","import { Layout } from \"../components/Layout\";\nimport Survey from \"../components/assessment/Survey\";\nimport SurveyAssessment from \"../components/assessment/SurveyAssessment\";\nimport SurveyQuestion from \"../components/assessment/SurveyQuestion\";\nimport * as contentActions from \"../store/actions/contentAction\";\nimport React, { Component } from \"react\";\nimport { isMobile } from \"react-device-detect\";\nimport { connect } from \"react-redux\";\nimport { Route, Switch } from \"react-router-dom\";\nimport { Col, Modal, ModalBody, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nconst defaultLanguage = process.env.REACT_APP_DEFAULT_LANGUAGE;\n\nclass SelfAssessmentPage extends Component {\n static displayName = SelfAssessmentPage.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n showRotate: false,\n contentLoading: true,\n };\n }\n\n componentDidMount() {\n window.addEventListener(\"resize\", this.checkDeviceOrientation);\n this.checkDeviceOrientation();\n\n if (this.props.language && this.props.language.name == defaultLanguage) {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-Assessments-Assessment\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n this.props.onContent.getContentTranslations(this.props.language.id, \"Question-Values-Elements-Modules\").then(() => {});\n });\n } else {\n this.props.onContent.getContentTranslations(this.props.language.id, \"SfiaAll-Menu-Assessments-Assessment-Question-Values-Elements-Modules\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n });\n }\n }\n\n componentWillUnmount() {\n this.setState = (state, callback) => {\n return;\n };\n }\n\n checkDeviceOrientation = () => {\n if (window.matchMedia(\"(orientation: portrait)\").matches && isMobile) {\n this.setState({ showRotate: true });\n } else if (window.matchMedia(\"(orientation: landscape)\").matches) {\n this.setState({ showRotate: false });\n }\n };\n\n closeRotateModal = () => {\n this.setState({ showRotate: false });\n };\n\n renderRotateNotification = () => {\n return (\n this.closeRotateModal()}>\n \n
\n \n
\n PLEASE ROTATE YOUR DEVICE\n
\n (OR CLICK TO CONTINUE)\n
\n
\n
\n );\n };\n\n render() {\n return (\n \n {this.renderRotateNotification()}\n {this.state.contentLoading ? (\n \n \n
\n \n
\n \n
\n ) : (\n \n \n \n \n \n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n language: state.language.language,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n contentError: state.content.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onContent: bindActionCreators(contentActions, dispatch),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SelfAssessmentPage);\n","import { Layout } from \"../components/Layout\";\nimport { ContentWrapper } from \"../components/common/ContentWrapper\";\nimport ContentTranslator from \"../components/translator/ContentTranslator\";\nimport { contentTranslator } from \"../utils/translatorUtils\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Col, Container, Row } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\n\nclass ThankYou extends Component {\n static displayName = ThankYou.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {};\n this.contentTranslator = contentTranslator.bind(this);\n }\n\n render() {\n const containerConfig = this.props.containerConfig;\n\n return (\n \n
\n \n \n \n \n {containerConfig && containerConfig.selfRegistrationConfirmationWording ? (\n \", \"
    \").replaceAll(\"
  1. \", \"
  2. \"),\n }}\n >
\n ) : (\n \n

\n \n

\n
\n If you haven't received it within 5 minutes please check junk/clutter folders.
After completing your self-assessment you will:
\"\n ),\n }}\n >\n
    \n \n * Review and refine your Profile
    * Compare your skills against sample jobs
    * Create an action plan\"\n ),\n }}\n >\n
\n
\n
\n )}\n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n contentTranslations: state.content.contentTranslations,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {};\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ThankYou);\n","import BadgeRequestAPI from \"../common/api/service/BadgeRequestService\";\nimport BadgesList from \"../components/digitalwallet/BadgesList\";\nimport SkillDetailsModal from \"../components/digitalwallet/Modal/SkillDetailsModal\";\nimport { lightenColor } from \"../utils/functions\";\nimport { HourglassOutlined, MessageOutlined } from \"@ant-design/icons\";\nimport { Typography, Empty, Switch as SwitchComponent, message, Avatar } from \"antd\";\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport { Route, Switch, useParams } from \"react-router\";\nimport dayjs from \"dayjs\";\n\nconst styles = {\n container: {\n width: \"60vw\",\n margin: \"0 auto\",\n padding: \"0 0 50px 0\",\n },\n HeaderContainer: {\n borderRadius: 20,\n backgroundColor: \"#ecf0f1\",\n padding: \"30px 40px\",\n marginTop: 30,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 20,\n marginBottom: 25,\n },\n ContentContainer: {},\n ownerInfoContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n },\n};\n\nconst createSkillBadgeImage = (skill, skill_code, skill_type, skill_level, badgeProvider) => {\n if (badgeProvider && badgeProvider == \"DSA\" ){\n return `${process.env.REACT_APP_AZURE_STORAGE_BADGE_DSA_IMAGE_BASE_URL}${skill_type} - ${skill.replaceAll(\"/\", \" \")} - Level ${skill_level}.png`;\n }else{\n return `${process.env.REACT_APP_AZURE_STORAGE_BADGE_IMAGE_BASE_URL}${skill_code}${skill_level}${skill_type}.png`;\n }\n};\n\nconst findSkillsCode = (objArr, code) => {\n const found = _.find(objArr, (obj) => {\n return _.some(obj.subCategories, (sub) => {\n return _.some(sub.skills, (skill) => {\n return skill.skillsCode === code;\n });\n });\n });\n\n return found;\n};\n\nfunction findSkills(objects, skill, payload) {\n let result = null;\n _.forEach(objects, (obj) => {\n _.forEach(obj.subCategories, (sub) => {\n const child = _.find(sub.skills, { skillsCode: skill.skillCode });\n if (child) {\n const { id, colour, name, sfiaVersion } = obj;\n const { description, level } = child.levels.find(\n (filteredSkill) => filteredSkill.level === skill.level\n );\n result = {\n ...payload,\n id,\n categoryName: name,\n color: colour,\n skillCode: child.skillsCode,\n description,\n level,\n sfiaVersion,\n skillName: child.name,\n skillType: skill.skillType,\n };\n return false;\n }\n });\n if (result) {\n return false;\n }\n });\n return result;\n}\nconst { Text } = Typography;\nconst WalletComponent = () => {\n const [badges, setBadges] = useState();\n const [modalData, setModalData] = useState();\n const [showByCategory, setShowByCategory] = useState(false);\n const [isModalOpen, setModalOpen] = useState(false);\n const [walletInfo, setWalletInfo] = useState();\n const [personInfo, setPersonInfo] = useState();\n\n const { id } = useParams();\n\n const showModal = (payload) => {\n setModalData(payload);\n };\n\n const handleOk = () => {\n setModalOpen(false);\n };\n\n const handleCancel = () => {\n setModalOpen(false);\n setModalData(undefined);\n };\n\n const fussionBadgesData = useMemo(() => {\n if (badges) {\n return Object.keys(badges).reduce(\n (accumulator, currentValue) =>\n accumulator.concat(badges?.[currentValue]?.data),\n []\n );\n }\n return [];\n }, [badges]);\n\n useEffect(() => {\n if (modalData) {\n setModalOpen(true);\n }\n }, [modalData]);\n\n useEffect(() => {\n const fetchBadges = async () => {\n\n try {\n const badgeWalletData = await BadgeRequestAPI.getBadgeWallet(id);\n const listOfCategories = badgeWalletData.categoryResponse;\n setPersonInfo(badgeWalletData.person)\n const mappedFetchedData = badgeWalletData.evidenceFileResponse.reduce(\n (acc, item) => {\n const accumulator = acc;\n const { label, createdOn, expiryOn, link, badgeProvider, skillLevels } = item;\n accumulator.push({\n label,\n createdOn,\n expiryOn,\n link,\n badgeProvider,\n ...skillLevels[0],\n });\n return accumulator;\n },\n []\n );\n\n\n if (dayjs().isAfter(dayjs(badgeWalletData.walletShare.expireOn))) {\n message.error(\"This's Link Expired\", 5000)\n setTimeout(() => {\n window.location.pathname = '/'\n }, 3000)\n\n } else {\n setWalletInfo(badgeWalletData.walletShare)\n\n if (Array.isArray(mappedFetchedData) && Array.isArray(listOfCategories)) {\n const MappedData = {};\n mappedFetchedData.forEach((element) => {\n const results = findSkillsCode(listOfCategories, element?.skillCode);\n const parChildRes = findSkills(listOfCategories, element, {\n imgSource: createSkillBadgeImage(\n element?.skill,\n element?.skillCode,\n element?.skillType,\n element?.level,\n element?.badgeProvider\n ),\n lightColor: lightenColor(results.colour, 95),\n });\n\n if (results) {\n if (MappedData?.[results?.name]) {\n MappedData[results.name].data = [\n ...MappedData[results.name].data,\n parChildRes,\n ];\n } else {\n MappedData[results?.name] = {\n color: results.colour,\n lightColor: lightenColor(results.colour, 95),\n categoryName: results.name,\n data: [parChildRes],\n };\n }\n }\n setBadges(MappedData);\n });\n }\n\n\n }\n\n } catch (error) {\n console.log(error)\n message.error(\"Link Not Found\", 5000)\n setTimeout(() => {\n window.location.pathname = '/'\n }, 3000)\n }\n\n\n\n\n\n };\n if (id) {\n fetchBadges();\n }\n }, [id]);\n return !!walletInfo && (\n
\n
\n
\n
\n \n Digital Wallet\n \n\n \n {!!personInfo.profileUrl && } {personInfo?.fullName ?? \"\"}\n \n \n Shared to {walletInfo?.email ?? \"\"}\n \n
\n
\n
\n \n \n \n \n Expiration date:\n \n {` ${walletInfo?.expireOn?.substring(0, 10) ?? ''}`}\n \n
\n
\n \n \n \n Note:\n \n {` ${walletInfo?.remark ?? 'N/A'}`}\n \n
\n
\n
\n
\n {badges && (\n <>\n
\n \n

Show By Category

\n
\n {showByCategory &&
}\n \n )}\n {badges ? (\n showByCategory ? (\n Object.keys(badges).map((key, index) => (\n
\n \n {Object.keys(badges).length !== index + 1 && (\n
\n )}\n
\n ))\n ) : (\n \n )\n ) : (\n No badges found!}\n style={styles.emptyContainer}\n />\n )}\n
\n {modalData && (\n <>\n \n \n )}\n
\n );\n};\n\nconst Wallet = () => {\n return (\n \n \n \n );\n};\n\nexport default Wallet;\n","import React, { Component } from 'react';\n\nconst asyncComponent = (importComponent) => {\n return class extends Component {\n static displayName = asyncComponent.name;\n\n state = {\n component: null,\n };\n\n componentDidMount() {\n importComponent().then((cmp) => {\n this.setState({ component: cmp.default });\n });\n }\n\n render() {\n const C = this.state.component;\n return C ? : null;\n }\n };\n};\n\nexport default asyncComponent;\n","import * as actions from \"../../src/store/actions/authAction\";\nimport FormRegister from \"../components/FormRegister\";\nimport { Layout } from \"../components/Layout\";\nimport LoggedInRoute from \"../components/routes/LoggedInRoute\";\nimport asyncComponent from \"./../hoc/AsyncComponent/AsyncComponent\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router\";\nimport { bindActionCreators } from \"redux\";\n\nexport const asyncFormRegister = asyncComponent(() => {\n return import(\"./../components/FormRegister\");\n});\n\nclass WelcomePage extends Component {\n static displayName = WelcomePage.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {};\n }\n\n componentDidMount() {}\n\n render() {\n const authMode = localStorage.getItem(\"authMode\");\n return (\n \n }\n />\n \n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n //stateRoles: state.auth.roles,\n loading: state.auth.loading,\n containerConfig: state.config.containerConfig,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n authAction: bindActionCreators(actions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(WelcomePage));\n","import * as actions from \"../src/store/actions/authAction\";\nimport * as companyActions from \"../src/store/actions/companyAction\";\nimport * as configActions from \"../src/store/actions/configAction\";\nimport * as contentActions from \"../src/store/actions/contentAction\";\nimport * as languageActions from \"../src/store/actions/languageAction\";\nimport * as skillProfileActions from \"../src/store/actions/skillProfileAction\";\nimport * as adminPersonActions from \"../src/store/admin/actions/adminPersonActions\";\nimport ProtectedRoute from \"./../src/components/routes/ProtectedRoute\";\nimport CacheBuster from \"./CacheBuster\";\nimport ForgotPassword from \"./components/ForgotPassword\";\nimport Login from \"./components/Login\";\nimport Logout from \"./components/Logout\";\nimport ResetPassword from \"./components/ResetPassword\";\nimport ResetPasswordConfirmation from \"./components/ResetPasswordConfirmation\";\nimport TeamTabs from \"./components/TeamTabs\";\nimport AdminHome from \"./components/admin/AdminHome\";\nimport MySetting from \"./components/mysetting/MySetting\";\nimport LoggedInRoute from \"./components/routes/LoggedInRoute\";\nimport How from \"./components/welcome/How\";\nimport \"./custom.css\";\nimport ProfilePage from \"./pages/ProfilePage\";\nimport SelfAssessmentPage from \"./pages/SelfAssessmentPage\";\nimport ThankYouPage from \"./pages/ThankYou\";\nimport Wallet from \"./pages/Wallet\";\nimport WelcomePage from \"./pages/WelcomePage\";\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\nimport React, { Component } from \"react\";\nimport { AlertList } from \"react-bs-notifier\";\nimport Favicon from \"react-favicon\";\nimport { Helmet } from \"react-helmet\";\nimport { connect } from \"react-redux\";\nimport { Route, Switch, withRouter } from \"react-router\";\nimport { Button, Col, Form, FormGroup, Label, Modal, ModalBody, ModalFooter, Row, Spinner } from \"reactstrap\";\nimport { bindActionCreators } from \"redux\";\nimport { Userpilot } from \"userpilot\";\n\nconst messageHubHostname = process.env.NODE_ENV === \"development\" ? process.env.REACT_APP_MESSAGE_HUB_ENDPOINT : \"/messagehub\";\nconst alertAutoHideInterval = process.env.REACT_APP_ALERT_AUTO_HIDE_INTERVAL;\nconst defaultLanguage = process.env.REACT_APP_DEFAULT_LANGUAGE;\n\nconst FileDownload = require(\"js-file-download\");\n\nconst userPilotToken = process.env.REACT_APP_USER_PILOT_TOKEN;\nconst signalRTimerMaxCount = 100;\n\nUserpilot.initialize(userPilotToken);\nclass App extends Component {\n static displayName = App.name;\n\n constructor(props) {\n super(props);\n this.connection = null;\n this.state = {\n loading: true,\n languageLoading: true,\n contentLoading: true,\n configLoading: true,\n alerts: [],\n language: null,\n showActiveUsersDialog: false,\n signalRTimerIntervalId: null,\n signalRTimerStarted: false,\n signalRTimerCount: 0,\n };\n\n this.connectSignalR = this.connectSignalR.bind(this);\n this.disconnectSignalR = this.disconnectSignalR.bind(this);\n\n this.generateAlert = this.generateAlert.bind(this);\n this.dismisAlert = this.dismisAlert.bind(this);\n }\n\n generateAlert = (type, message) => {\n const alerts = this.state.alerts;\n\n this.setState({\n alerts: [\n ...alerts,\n {\n id: new Date().getTime(),\n type: type,\n message: message,\n },\n ],\n });\n };\n\n dismisAlert = (alert) => {\n const alerts = this.state.alerts;\n const idx = alerts.indexOf(alert);\n if (idx >= 0) {\n this.setState({\n alerts: [...alerts.slice(0, idx), ...alerts.slice(idx + 1)],\n });\n }\n };\n\n componentDidMount() {\n if (!this.props.defaultCompany) {\n this.props.onCompany.getDefaultCompany().then(() => {});\n }\n\n if (!this.props.brandingLogoChecked) {\n this.props.onCompany.getCompanyBrandingLogo().then(() => {});\n }\n\n if (!this.props.favIconChecked) {\n this.props.onCompany.getCompanyFavIcon().then(() => {});\n }\n\n let languageName = localStorage.getItem(\"language\");\n\n this.props.authAction.checkLoginCookiesState().then(() => {\n this.connectSignalR();\n\n if (this.props.loginResult) {\n Userpilot.identify(this.props.loginResult.personId, {\n name: `${this.props.loginResult.firstName} ${this.props.loginResult.lastName}`,\n email: this.props.loginResult.email,\n });\n }\n\n if (!this.props.samlEnabled || !this.props.containerConfig) {\n Promise.all([this.props.onConfig.getSamlEnabledStatus(), this.props.onConfig.getContainerConfig()]).then(() => {\n if (this.props.containerConfig) {\n if (this.props.containerConfig.defaultBaseUrl !== window.location.origin + \"/\") {\n window.location = this.props.containerConfig.defaultBaseUrl;\n }\n }\n\n this.setState({\n configLoading: this.props.configLoading,\n });\n });\n } else {\n this.setState({ configLoading: false });\n }\n\n this.props.onLanguage.getLanguages().then(() => {\n if (!this.props.languageLoading) {\n let languages = this.props.languages;\n let language = null;\n\n if (!languages || languages.length == 0) {\n languages.push({\n code: \"GB\",\n name: \"English\",\n rightAlign: false,\n });\n }\n\n if (languageName) {\n language = languages.find((it) => it.name == languageName);\n } else {\n language = languages.find((it) => it.name == defaultLanguage);\n }\n\n if (language) {\n this.setCurrentLanguage(language);\n }\n\n this.setState({ languageLoading: this.props.languageLoading });\n\n this.props.onContent.getContentTranslations(language.id, \"SfiaAll-Menu-SfiaProfileMenu-Registration-Login-ForgotPassword\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n });\n }\n });\n\n let authMode = localStorage.getItem(\"authMode\");\n authMode = authMode ? authMode : \"Planner\";\n\n let authModes = authMode.split(\",\").map((item) => item.trim());\n\n if (authModes.includes(\"Admin\")) {\n if (!this.props.pageAssignments) {\n this.props.onAdminPerson.getPageAssignments().then(() => {});\n }\n\n if (!this.props.columnDisplaySettings) {\n this.props.onAdminPerson.getColumnDisplaySettings().then(() => {});\n }\n\n if (!this.props.activeUserCountStatusFetched) {\n this.props.onConfig.getActiveUserCountStatus().then(() => {\n if (!this.props.activeUserCountStatusLoading && this.props.activeUserCount && this.props.showActiveUserCountNotification) {\n if (this.props.activeUserCount > 1 && this.props.showActiveUserCountNotification) {\n this.setState({ showActiveUsersDialog: true });\n } else {\n this.setState({ showActiveUsersDialog: false });\n }\n }\n });\n }\n\n const pathName = window.location.pathname;\n const paths = pathName.split(\"/\");\n const isDownloadReport = pathName.includes(\"/admin/endorsements/download\");\n\n if (isDownloadReport && paths && paths.length > 0) {\n if (paths.length >= 4) {\n var token = paths[4];\n if (token) {\n this.props.onAdminPerson.downloadProfileReports(token).then(() => {\n if (!this.props.loadingPrint) {\n if (this.props.printData) {\n FileDownload(this.props.printData, `SkillsTx_Persons_Profiles.zip`);\n } else {\n this.generateAlert(\"danger\", \"Profile reports not found\");\n }\n }\n });\n }\n }\n }\n\n const isDownloadSfia9MigrationImpactReport = pathName.includes(\"/admin/settings/downloadmigrationimpact\");\n const config = this.props.config;\n\n if (isDownloadSfia9MigrationImpactReport && paths && paths.length > 0) {\n if (paths.length >= 4) {\n var token = paths[4];\n if (token) {\n this.props.onConfig.downloadMigrationImpactAssessmentReports(token).then(() => {\n if (!this.props.configLoadingPrint) {\n if (this.props.configPrintData) {\n var today = new Date();\n var strToday = today.getFullYear() + this.pad2(today.getMonth() + 1) + this.pad2(today.getDate()) + \"_\" + this.pad2(today.getHours()) + this.pad2(today.getMinutes()) + this.pad2(today.getSeconds());\n FileDownload(this.props.configPrintData, `Sfia9MigrationImpactReport ${config && (config.companyName || config.containerName) ? (config.containerName ? `for ${config.containerName} at ` : `for ${config.companyName} at `) : \"\"}${strToday}.xlsx`);\n } else {\n this.generateAlert(\"danger\", \"SFIA9 Migration Impact assessments spreadsheets not found\");\n }\n }\n });\n }\n }\n }\n }\n });\n }\n\n pad2 = (n) => {\n return (n < 10 ? \"0\" : \"\") + n;\n };\n\n componentDidUpdate(prevProps) {\n if (this.props.isAuthenticated !== prevProps.isAuthenticated && this.props.isAuthenticated && this.props.authMode) {\n let authMode = this.props.authMode;\n authMode = authMode ? authMode : \"Planner\";\n\n let authModes = authMode.split(\",\").map((item) => item.trim());\n\n if (authModes.includes(\"Admin\")) {\n if (!this.props.pageAssignments) {\n this.props.onAdminPerson.getPageAssignments().then(() => {});\n }\n\n if (!this.props.columnDisplaySettings) {\n this.props.onAdminPerson.getColumnDisplaySettings().then(() => {});\n }\n\n if (!this.props.activeUserCountStatusFetched) {\n this.props.onConfig.getActiveUserCountStatus().then(() => {\n if (!this.props.activeUserCountStatusLoading && this.props.activeUserCount && this.props.showActiveUserCountNotification) {\n if (this.props.activeUserCount > 1 && this.props.showActiveUserCountNotification) {\n this.setState({ showActiveUsersDialog: true });\n } else {\n this.setState({ showActiveUsersDialog: false });\n }\n }\n });\n }\n }\n\n this.props.onConfig.getContainerConfig().then(() => {});\n\n this.disconnectSignalR();\n setTimeout(() => {\n this.connectSignalR();\n }, 100);\n\n if (this.props.loginResult) {\n Userpilot.identify(this.props.loginResult.personId, {\n name: `${this.props.loginResult.firstName} ${this.props.loginResult.lastName}`,\n email: this.props.loginResult.email,\n });\n }\n }\n\n if (this.props.isAuthenticated !== prevProps.isAuthenticated && !this.props.isAuthenticated) {\n if (this.state.signalRTimerIntervalId) {\n clearInterval(this.state.signalRTimerIntervalId);\n this.setState({ signalRTimerStarted: false, signalRTimerIntervalId: null });\n }\n }\n\n if (this.props.containerConfig !== prevProps.containerConfig && this.props.containerConfig) {\n if (this.props.containerConfig.ssoMembeeEnable != true) {\n const divMembeeLogin = document.getElementById(\"divMembeeLogin\");\n if (divMembeeLogin) {\n divMembeeLogin.outerHTML = \"\";\n }\n }\n }\n }\n\n UNSAFE_componentWillMount() {\n this.unlisten = this.props.history.listen((location, action) => {\n Userpilot.reload();\n });\n }\n\n componentWillUnmount() {\n this.unlisten();\n this.disconnectSignalR();\n }\n\n connectSignalR() {\n const personId = localStorage.getItem(\"personId\");\n\n if (personId && !this.connection && this.props.isAuthenticated) {\n this.connection = new HubConnectionBuilder().withUrl(messageHubHostname).build();\n\n this.connection.on(`UpdateSkillsNotification${personId}`, (response) => {\n console.log(\"response\", response);\n if (response.action == \"UpdateMyProfiles\") {\n if (response.status == \"Success\") {\n let udpatedSkills = response.data;\n this.props.onSkillProfile.updateMySkillProfileSuccess(udpatedSkills);\n } else {\n this.props.onSkillProfile.updateMySkillProfileFail(response.message);\n }\n }\n });\n\n this.connection.start().catch((err) => console.error(err.toString()));\n this.startTimer();\n }\n }\n\n disconnectSignalR() {\n if (this.connection) {\n this.connection.stop().then(() => {\n this.connection = null;\n });\n }\n }\n\n LoadingSpinner() {\n return (\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n }\n\n setCurrentLanguage = (language) => {\n if (language && language != undefined) {\n localStorage.setItem(\"language\", language.name);\n localStorage.setItem(\"languageId\", language.id);\n\n this.setState({ language: language, languageLoading: true });\n\n Promise.resolve(this.props.onLanguage.setLanguage(language)).then(() => {\n this.setState({ languageLoading: false });\n\n this.props.onContent.getContentTranslations(language.id, \"SfiaAll-Menu-SfiaProfileMenu-Registration-Login-ForgotPassword-ResetPassword\").then(() => {\n this.setState({ contentLoading: this.props.contentLoading });\n });\n });\n }\n };\n\n renderActiveUsersDialog = () => {\n return (\n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n {\n this.setState({ showActiveUsersDialog: false });\n }}\n >\n Close\n \n \n
\n );\n };\n\n startTimer = () => {\n const signalRTimerStarted = this.state.signalRTimerStarted;\n\n if (!signalRTimerStarted) {\n const signalRTimerIntervalId = setInterval(() => {\n let signalRTimerCount = this.state.signalRTimerCount + 1;\n\n if (signalRTimerCount >= signalRTimerMaxCount && !this.props.skillsProfileUpdating) {\n signalRTimerCount = 0;\n\n this.disconnectSignalR();\n setTimeout(() => {\n this.connectSignalR();\n }, 100);\n }\n\n this.setState({ signalRTimerCount: signalRTimerCount });\n }, 60000);\n\n this.setState({ signalRTimerStarted: true, signalRTimerIntervalId });\n }\n };\n\n favIconUpdated = () => {\n this.setState({ favIconTimestamp: new Date() });\n this.props.onCompany.getCompanyFavIcon().then(() => {});\n };\n\n render() {\n let authMode = localStorage.getItem(\"authMode\");\n authMode = authMode ? authMode : \"Planner\";\n\n let redirectUrl = localStorage.getItem(\"redirectUrl\") ? (localStorage.getItem(\"redirectUrl\") != \"\" && localStorage.getItem(\"redirectUrl\") != \"null\" ? localStorage.getItem(\"redirectUrl\") : null) : null;\n let isLogout = localStorage.getItem(\"isLogout\") ? (localStorage.getItem(\"isLogout\") == \"TRUE\" ? true : false) : false;\n\n let authModes = authMode.split(\",\").map((item) => item.trim());\n\n return (\n \n {({ loading, isLatestVersion, refreshCacheAndReload }) => {\n if (loading) return null;\n if (!loading && !isLatestVersion) {\n // You can decide how and when you want to force reload\n refreshCacheAndReload();\n }\n\n return (\n
\n {this.props.containerConfig && this.props.containerConfig.enableWalkme && (\n \n \n \n )}\n {this.props.favIconImage && this.props.favIconImage != \"\" ? : }\n \n {this.renderActiveUsersDialog()}\n {this.state.languageLoading || this.state.contentLoading || this.state.configLoading ? (\n this.LoadingSpinner()\n ) : (\n \n } />\n \n } />\n } />\n\n {!this.props.loginWithTeams && } />}\n {/* */}\n \n\n \n \n \n \n\n \n\n \n\n \n\n \n } />\n \n } />\n \n \n )}\n
\n );\n }}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n isAuthenticated: state.auth.token !== null,\n loginResult: state.auth.loginResult,\n authMode: state.auth.authMode,\n redirectUrl: state.auth.redirectUrl,\n isLogout: state.auth.isLogout,\n //stateRoles: state.auth.roles,\n loading: state.auth.loading,\n languageLoading: state.language.loading,\n languages: state.language.languages,\n contentTranslations: state.content.contentTranslations,\n contentLoading: state.content.loading,\n samlEnabled: state.config.samlEnabled,\n defaultCompany: state.company.defaultCompany,\n brandingLogoImage: state.company.brandingLogoImage,\n brandingLogoChecked: state.company.brandingLogoChecked,\n\n favIconImage: state.company.favIconImage,\n favIconChecked: state.company.favIconChecked,\n\n containerConfig: state.config.containerConfig,\n config: state.config.config,\n configLoading: state.config.loading,\n configLoadingPrint: state.config.loadingPrint,\n configPrintData: state.config.printData,\n\n activeUserCount: state.config.activeUserCount,\n showActiveUserCountNotification: state.config.showActiveUserCountNotification,\n activeUserCountStatusFetched: state.config.activeUserCountStatusFetched,\n activeUserCountStatusLoading: state.config.activeUserCountStatusLoading,\n\n pageAssignments: state.adminPerson.pageAssignments,\n columnDisplaySettings: state.adminPerson.columnDisplaySettings,\n loginWithTeams: state.auth.loginWithTeams,\n\n loadingPrint: state.adminPerson.loadingPrint,\n printData: state.adminPerson.printData,\n personsError: state.adminPerson.error,\n\n receiveLicenseNotification: state.auth.receiveLicenseNotification,\n lastActiveUserNotification: state.auth.lastActiveUserNotification,\n\n skillsProfileUpdating: state.skillProfile.profileUpdating,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n authAction: bindActionCreators(actions, dispatch),\n onSkillProfile: bindActionCreators(skillProfileActions, dispatch),\n onLanguage: bindActionCreators(languageActions, dispatch),\n onContent: bindActionCreators(contentActions, dispatch),\n onConfig: bindActionCreators(configActions, dispatch),\n onCompany: bindActionCreators(companyActions, dispatch),\n onAdminPerson: bindActionCreators(adminPersonActions, dispatch),\n };\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(App));\n","import { Component } from \"react\";\nimport { withRouter } from \"react-router\";\n\nclass AppScrollToTop extends Component {\n componentDidUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nexport default withRouter(AppScrollToTop);\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register () {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW (swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker (swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import App from \"./App\";\nimport AppScrollToTop from \"./AppScrollToTop\";\nimport { unregister } from \"./registerServiceWorker\";\nimport store from \"./store/store\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"react-widgets/styles.css\";\n\nconst baseUrl = document.getElementsByTagName(\"base\")[0].getAttribute(\"href\");\nconst rootElement = document.getElementById(\"root\");\n\nconst root = createRoot(rootElement);\nroot.render(\n \n \n \n \n \n \n \n);\n\n//registerServiceWorker();\nunregister();\n"],"sourceRoot":""}