{"version":3,"sources":["assets/take-the-test.svg","assets/up.png","assets/down.png","assets/down-arrow.png","assets/profile_1.png","assets/Femme cercle rose.svg","assets/illustration.svg","assets/WWT icone blue.svg","assets/learn-about.svg","assets/share-lady.svg","assets/centered-on-social-interactions.svg","assets/match-with-friends.svg","assets/used-by-hr.svg","assets/recruiters.svg","assets/red-mail.png","assets/2-persons.svg","assets/contacts.png","assets/Homme cercle vert.svg","assets/open-opportunities.svg","assets/pink-contacts.png","assets/pink-profile.png","../node_modules/react-flags-select/flags sync /^/.//.*/.svg$","assets/photo-1.png","assets/photo-2.png","assets/dragdrop.png","assets/pink-compatibility.png","assets/grey-contacts.png","assets/invite-lady.svg","assets/philo.svg","assets/help.png","assets/linkedin-badge.svg","assets/share.png","assets/header.svg","assets/profile.svg","assets/mail.png","assets/linkedin.png","assets/facebook.png","assets/alert.png","assets/search.png","assets/back.png","assets/more.png","config.js","api/api.js","api/mission.js","components/common/Dialogs/ConfirmationDialog.js","assets/contacts.svg","components/common/Icons/ContactsIcon.js","assets/icons/copy.svg","components/common/Icons/CopyIcon.js","assets/icons/3-dots.svg","components/common/Icons/MoreDotsIcon.js","assets/icons/trash.svg","components/common/Icons/TrashIcon.js","utils/utils.js","assets/sort-asc.svg","components/common/Icons/SortAscIcon.js","assets/sort-desc.svg","components/common/Icons/SortDescIcon.js","assets/sort.svg","components/common/Icons/SortIcon.js","components/common/Table/Table.js","components/Loader/Loader.js","components/MultiLang/MultiLang.js","context/auth.js","components/Admin/Header/Header.js","components/Admin/Barometer/BarometerQuestionnaireResult/BarometerQuestionnaireResult.js","components/Admin/Barometer/Barometer.js","assets/icons/table.svg","components/common/Icons/TableIcon.js","constants/constants.js","assets/icons/person.svg","components/common/Icons/PersonIcon.js","components/Admin/common/CompleteProfileBtn/CompleteProfileBtn.js","components/Results/SubPages/Graph/polygon.js","components/Results/SubPages/Graph/Graph.js","components/Admin/common/QuotationTable/QuotationTable.js","components/Admin/ContactForm/ContactForm.js","components/Admin/CompanyContacts/CompanyContacts.js","components/Admin/common/CompleteProfileSubMenu/CompleteProfileSubMenu.js","assets/icons/edit.svg","components/common/Icons/EditIcon.js","assets/icons/people.svg","components/common/Icons/PeopleIcon.js","components/common/ProgressBar/ProgressBar.js","components/Admin/Mobilities/MobilityDetails/MobilityCandidateModel/MobilityCandidateModel.js","components/Admin/Mobilities/MobilityDetails/MobilityDetails.js","components/Admin/Mobilities/Mobilities.js","hooks/UsePrevious.js","components/Admin/Mobilities/MobilityForm/MobilityForm.js","components/Admin/Onboarding/OnboardingDetails/OnboardingDetails.js","components/Admin/Onboarding/Onboarding.js","components/Admin/Onboarding/OnboardingForm/OnboardingForm.js","components/Admin/Recruitments/RecruitmentForm/RecruitmentForm.js","components/Admin/Recruitments/RecruitmentDetails/RecruitmentCandidateModel/RecruitmentCandidateModel.js","components/Admin/Recruitments/RecruitmentDetails/RecruitmentDetails.js","components/Admin/Recruitments/Recruitments.js","assets/icons/matching.svg","components/common/Icons/MatchingIcon.js","components/Admin/TeamBuilding/TeamBuildingDetails/AllMatchings/AllMatchings.js","components/Admin/TeamBuilding/TeamBuildingDetails/TeamBuildingDetails.js","components/Admin/TeamBuilding/TeamBuilding.js","components/Admin/TeamBuilding/TeamBuildingForm/TeamBuildingForm.js","components/Admin/Values/ValueDetails/ValueDetails.js","components/Admin/Values/Values.js","components/Admin/Values/ValuesForm/ValuesForm.js","components/BarometerQuestionnaire/QuestionBlock/QuestionBlock.js","components/BarometerQuestionnaire/SelectWordBlock/SelectWordBlock.js","components/Sort/SortList.js","components/BarometerQuestionnaire/SortWordBlock/SortWordBlock.js","components/BarometerQuestionnaire/BarometerFirstPage/BarometerFirstPage.js","components/BarometerQuestionnaire/BarometerLastPage/BarometerLastPage.js","components/BarometerQuestionnaire/BarometerQuestionnaire.js","components/Home/Modals/LegalModal.js","components/Home/Modals/SendMailModal.js","components/Home/ContactPage.js","components/PrivacyPolicy/PrivacyPolicy.js","context/profile.js","components/Auth/FacebookButton.js","components/Auth/GoogleButton.js","components/Auth/LinkedinButton.js","components/Auth/LoginModal.js","components/Pro/Pro.js","components/ResetPassword/ResetPassword.js","PrivateRoute.js","assets/profile-icon.svg","assets/contacts-icons.svg","assets/home.svg","assets/notif-icon.svg","components/BottomMenu/BottomMenu.js","components/Compare/Accordion/Accordion.js","components/Compare/ComparePage.js","components/Results/SubPages/InviteEmailModal.js","components/Results/SubPages/InviteModal.js","components/Contacts/ContactPerson.js","components/Contacts/ContactPage.js","components/Header/Header.js","components/Home/Slides/Slide.js","components/Home/MainPage.js","components/Home/SecondPage.js","components/Home/ThirdPage.js","components/Home/HomePage.js","helper/gen_perm.js","components/Question/QuestionPage.js","components/Results/SubPages/Header.js","components/Results/SubPages/TopPage.js","components/Results/SubPages/SecondPage.js","components/Results/SubPages/Relations/CallToAction.js","assets/linkedin.svg","components/Results/SubPages/ResultImage.js","components/Results/Results.js","components/Select/SelectPage.js","components/Sort/Animation/Animation.js","components/Sort/SortPage.js","i18n.js","Interceptor.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","console","log","server","process","getProfile","email","localStorage","getItem","config","method","url","headers","data","axios","then","res","profile","setItem","JSON","stringify","getIndividualResult","data1","getMissionById","missionId","removeMemberFromMission","contactId","companyId","mission","mission_member","m","name","first_name","filter","mission_owner","mission_manager","mission_viewers","mission_delegates","mission_benchmarks","value","contact","benchmark_type","mission_end_date","Date","toISOString","type","company","company_id","updateMission","duplicateMission","parse","reference","mission_creation_date","ConfirmationDialog","title","message","yesText","noText","onYesAction","onNoAction","onToggle","isOpen","props","t","useTranslation","useState","modal","setModal","toggle","modalState","children","onClick","className","dangerouslySetInnerHTML","__html","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","stroke","strokeWidth","fill","fillRule","transform","x","y","width","height","opacity","d","fillOpacity","_ref","svgRef","viewBox","ref","ForwardRef","forwardRef","ContactsIcon","rx","filterUnits","dx","dy","in","result","stdDeviation","values","CopyIcon","MoreDotsIcon","in2","operator","style","TrashIcon","isUserLoggedIn","isB2B","companies","getLanguage","lang","i18next","language","dash","substring","gaEvent","category","action","label","ReactGA","event","formatDate","date","format","moment","err","logOut","removeItem","stopPropagation","truncate","text","characters","slice","getProp","object","path","undefined","checkQuotationAccess","quotation_access","isEvaluationCompleted","individualResult","w_1","SortAscIcon","SortDescIcon","SortIcon","Table","columns","rowComponent","noDataComponent","rowClickable","cols","setCols","rows","setRows","sortBy","setSortBy","useEffect","col","sortData","sortOrder","sort","a","b","order","aValue","split","bValue","isValid","getTime","localeCompare","sortedData","striped","columnGroup","colGroupIndex","column","colIndex","hidden","sortable","tooltip","domElement","tag","placement","icon","ShowSortIcon","row","index","Loader","replace","loading","role","MultiLang","i18n","useRef","selectedCountry","getSelectedCountry","current","state","selected","countries","customLabels","defaultCountry","showSelectedLabel","selectedSize","outline","display","onSelect","country","changeLanguage","document","documentElement","AuthContext","createContext","useAuth","useContext","withRouter","setProfile","selectedMenu","setSelectedMenu","setAuthTokens","setCompany","location","pathname","menu","src","logo","alt","to","data-toggle","data-target","aria-controls","aria-expanded","aria-label","trigger","overlay","selectable","animation","last_name","aria-hidden","supports_barometer","supports_avatar","BarometerQuestionnaireResult","questionnaireResult","size","question","fr","en","options","option","oIndex","selected_count","Barometer","activeItem","setActiveItem","missions","setMissions","missionsForTable","setMissionsForTable","setLoading","selectedMission","setSelectedMission","confirmDialogConfig","setConfirmDialogConfig","setCompanyId","setQuestionnaireResult","qestionnaireResultModelOpen","setQestionnaireResultModelOpen","toggleQuestionnaireResultModal","pk","getQuestionnaireResult","getMyMissions","getColleaguesMissions","missionForTable","forEach","candidates","push","updateSelectedMission","tab","catch","find","onDuplicateMissionClick","toast","success","error","archiveMission","removeMission","Fragment","background","minHeight","link","active","tabId","mission_name","onMissionClick","default_questionnaire","questionnaire_type","barometer_result_count","window","origin","company_name","mission_referral","onOverlayClick","onMissionActionClick","setTimeout","preserveAspectRatio","TableIcon","ContactTypes","Candidate","Employee","BenchmarkTypes","M","E","employee","manager","getContactType","field","inputType","toLowerCase","contactTypes","candidate","c","PersonIcon","CompleteProfileBtn","user","confidential","complete_profile","href","rel","Polygon","points","pos","join","strokeDasharray","Graph","points_1","setPoints1","points_2","setPoints2","setSize","parentId","element","getElementById","offsetWidth","graphA","Y","X","Z","W","graphB","margin","textAlign","position","alignItems","justifyContent","x1","y1","x2","y2","QuotationTable","setResult","setGraphA","setGraphB","colSpan","agp1_raw","agv1_raw","opa1_raw","opp1_raw","reg1_raw","tri1_raw","evi1_raw","fui1_raw","fea1_raw","ade1_raw","agp2_raw","agv2_raw","opa2_raw","opp2_raw","reg2_raw","tri2_raw","evi2_raw","fui2_raw","fea2_raw","ade2_raw","r_percent","toFixed","i_percent","s_percent","locale","html","btn","visibility","htmlToImage","pixelRatio","dataUrl","download","click","remove","printTable","ContactForm","contactFormRef","defaultQuestionnaireType","questionnaireTypes","q","default_companies","includes","setValues","padding","innerRef","initialValues","phone","contact_type","send_invitation","onSubmit","setSubmitting","sendInvitation","questionnaireType","onSave","msg","saveContact","validationSchema","Yup","shape","required","formikProps","touched","errors","isSubmitting","handleChange","handleBlur","handleSubmit","group","validate","onChange","onBlur","for","defaultValue","disabled","allowedContactTypes","class","htmlFor","defaultChecked","rounded","CompanyContacts","contacts","setContacts","filteredContacts","setFilteredContacts","input","types","filters","setFilters","setQuestionnaireTypes","quotationTableData","setQuotationTableData","selectedContact","setSelectedContact","contactToDelete","setContactToDelete","contactToRefreshProfile","setContactToRefreshProfile","quotationAccess","contactStatusMap","getCompanyContacts","getCompanyQuestionnaireTypes","filterContacts","user_id","status","invitation_sent","self","findIndex","v","contactList","toggleTypeFilter","showQuestionnaireCompletedBtn","showQuestionnaireInProgressBtn","sendCompleteQuestionnaireReminder","showInvitationSentBtn","sendIntivation","color","showInvitationNotSentBtn","contact_referral","updateQuotationTableData","shouldShowRefreshProfileBtn","inputDate","currentDate","sixMonthsAgo","setMonth","getMonth","isDateSixMonthsAgo","placeholder","onChangeInput","showStatusBtns","updateContact","deleteContact","user_email","refreshProfile","CompleteProfileSubMenu","mask","EditIcon","PeopleIcon","ProgressBar","styles","classes","buildStyles","textColor","textSize","pathColor","MobilityCandidateModel","matchingMap","selectedCandidate","setSelectedCandidate","dataForGrid","setDataForGrid","searchInput","setSearchInput","updateDataForGrid","member","user_1","user_2","matching","getMatchingProgressBar","filterData","contact1","contact2","c1EvaluationCompleted","c2EvaluationCompleted","showMessage","MobilityDetails","setMission","candidateModal","setCandidateModal","setMatchingMap","printMode","setPrintMode","showAvatarCompatibility","setShowAvatarCompatibility","benchmark","isMatchingAvailable","getMatchingData","updateMatchingMap","matchings","source_target_matching","avatar_target_matching","avatarMatching","ircp_with_avatar","ircp","ircp_smooth_with_avatar","ircp_smooth","getMatchingProfilePdf","contact_1","contact_2","matching_pdf_en","open","matching_pdf_fr","removeMember","reload","getElementsByClassName","fileName","Mobility","rowSpan","usePrevious","invitationLink","setInvitationLink","previousContacts","missionFormRef","Map","max","mission_description","min","default_questionnaire_type","nullable","match","params","updateContacts","qt","tempContacts","members","viewers","delegates","benchmarks","viewer","delegate","onSaveContact","setFieldValue","args","addContactBtn","saveMission","onFormSubmit","setFieldTouched","clickable","multiple","labelKey","renderMenuItemChildren","body","Array","splice","OnboardingDetails","immediate_harmony_smooth","similarity_smooth","integration_index","Onboardings","inputProps","RecruitmentCandidateModel","setMatchings","CPI","setCPI","setImpactOnCPI","getCPI","getImpactOnCPI","rui_smooth","cpi","userId","impactOnCpi","cpi_without_user","cpi_with_user","count_without_user","count_with_user","RecruitmentDetails","Recruitments","MatchingIcon","AllMatchings","filteredDataForGrid","setFilteredDataForGrid","searchText","setSearchText","contactsByUserId","user_1_contact","user_2_contact","entry","bool","startsWith","TeamBuildingDetails","showAllMatchings","setShowAllMatchings","gridData","setGridData","updateGridData","impactOnCPI","getMatching","removeBenchmark","removeBenchmarkConfirmation","TeamBuildingRow","lowestMatchingScore","setLowestMatchingScore","getTeamMatchings","getLowestMatchingScore","reduce","prev","curr","TeamBuilding","ValueDetails","extraSupportedFields","setExtraSupportedFields","matchingByContacts","setMatchingByContacts","extra_supported_fields","getContactsMatchings","matchingArray","warn","valueField","field_name_in_api","field_name_for_user","extra_fields","showScore","removeMemberConfirmation","Values","str","QuestionBlock","onNext","answerCount","questionNo","progress","isDemographicQuestion","setQuestion","answers","selectAnswer","answer_id","aId","answer","item","ru","from","SelectWordBlock","words","selectedWords","setSelectedWords","flexWrap","word","w","word_id","onWordClick","ImgStyle","marginRight","marginTop","cursor","SortableItem","SortableElement","tabIndex","SortableList","SortableContainer","items","SortList","onSortEnd","oldIndex","newIndex","setState","arrayMove","Component","SortWordBlock","sortedWords","setSortedWords","_","number","BarometerFirstPage","startQuestionnaire","company_logo","barometer_text_header1","barometer_text_header2","img1","img2","barometer_text_intro","learn_about","take_test","BarometerLastPage","shareLady","BarometerQuestionnaire","views","demographicQuestions","setDemographicQuestions","selectedDemographicQuestion","setSelectedDemoGraphicQuestion","selectedDemographicQuestionNumber","setSelectedDemographicQuestionNumber","questions","setQuestions","selectedQuestion","setSelectedQuestion","selectedQuestionNumber","setSelectedQuestionNumber","view","setView","setWords","localData","setLocalData","URLSearchParams","search","get","demographicQuestionnaire","selectedDemographicQuestions","questionnaire","selectedQuestions","checkMissionActive","getCompanyDetails","getDemographicQuestionnaire","getQuestionnaire","getWords","header","is_active","isMissionActive","option_id","getOptions","combineQuestionsAndOptions","op","question_id","saveIndividualResult","demographicQuestion","scrollTo","onNextDemographicQuestion","onSelectWords","demographic_answers","question_answered","first_answers","second_answers","selected_word_result","sorted_word_result","onSortWords","currentView","LegalModal","SendMailModal","setName","setEmail","subject","setSubject","setMessage","span","setSpan","md","RegExp","test","validEmail","sender_email","sender_name","far","ContactPage","PrivacyPolicy","ProfileContext","profileContext","appId","disableMobileRedirect","autoLoad","fields","callback","site","picture","referral","is_b2b","fetch","json","token","setPassed","cssClass","textButton","clientId","buttonText","onSuccess","profileObj","givenName","familyName","imageUrl","onFailure","cookiePolicy","errorMessage","setErrorMessage","scope","redirectUri","styleClass","forgotPasswordModal","setForgotPasswordModal","signUpForm","setSignUpForm","btnClass","setBtnClass","signUpEnabled","setSignUpEnabled","showLoginDefault","openDefault","pageNum","toggleForgotPasswordModal","toggleSignUpForm","btnText","password","firstName","lastName","response","signUp","trim","matches","autoComplete","containerClass","signIn","sendResetPasswordEmail","Pro","className_1","setClassName_1","read_more_1","setReadMore_1","illustration","match_with_friends","used_by_hr","recruiters","open_opportunities","centered_on_social","down_arrow","has","ResetPassword","setToken","validateToken","confirmPassword","when","is","val","oneOf","PrivateRoute","component","b2bRoute","rest","authTokens","render","BottomMenu","item1","item2","pink_profile","pink_contacts","Accordion","ComparePage","rate_1","setRate_1","setRate_2","photo_1","setPhoto_1","photo_2","setPhoto_2","top","setTop","top_fiber","setTopFiber","bottom","setBottom","bottom_fiber","setBottomFiber","softSkills","setSoftSkills","soft_skills","profile_icon","compatibility_icon","contacts_icon","Math","ceil","textFamily","marginBottom","skill","InviteEmailModal","setModalState","nameState","setNameState","emailState","setEmailState","shareUrl","EmailShareButton","EmailIcon","round","recepter","referral_link","InviteModal","setIsChecked","invite_icon","checked","LinkedinShareButton","beforeOnClick","LinkedinIcon","FacebookShareButton","FacebookIcon","WhatsappShareButton","WhatsappIcon","onCopy","ContactPerson","img","strength","setItems","renderItems","setRenderItems","fakeUserImage","setFakeUserImage","showFakeUserImageModal","setShowFakeUserImageModal","getFakeUserImage","b2c_matching","fake_matching","toMatching","getStrength","top_fiber_en","top_fiber_fr","top_fiber_ru","user1Id","fake_user_uuid","user2Id","filterInput","is_finished","picture_url","image","Header","Slide","settings","arrows","autoplay","autoplaySpeed","dots","infinite","speed","slidesToShow","slidesToScroll","slide2Img","slide1Img","MainPage","SecondPage","ThirdPage","HomePage","passed","gen_leftIndex","rsort","len","idx","swpIdx","floor","random","tmp","gen_perm","QuestionPage","setAnswers","quizNum","setQuizNum","chooseNum","setChooseNum","left_quizIndex","setLeftIndex","origin_index","setOriginIndex","setQuestionAnswered","setFirstAnswers","setSecondAnswers","firstAnswer","setFirstAnswer","secondAnswer","setSecondAnswer","setNumber","first_exp","second_exp","third_exp","str1","li","Number","pop","getLeftIndex","sessionStorage","answerUrl","bottom_button_1","bottom_button_2","innerHTML","label_1","label_2","clickNext","String","config1","getQuestionIndex","txt_1","caption_1","caption_2","txt","TopPage","lady_picture","CallToAction","two_persons","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","enableBackground","xmlSpace","React","setRender","useImperativeHandle","convertHtmlToImage","cb","fontWeight","Results","setWellbeingExpression","setRelationalCommunication","setApproachToSituations","setVisionOfTheWorld","setTopPersonalDevelopment","useScreenshot","setFileUrls","createRef","set","complete_profile_file_pdf","relational_cv_file_pdf","relational_cv_file_docx","SelectPage","selects","setSelects","btnClassName","setClassName","selNum","setSelNum","temp","Animation","redirect","setRedirect","clearTimeout","SortPage","flag","setFlag","temp1","result_string","use","Backend","LanguageDetector","initReactI18next","init","detection","fallbackLng","supportedLngs","cleanCode","debug","keySeparator","load","backend","loadPath","interpolation","escapeValue","skipTOkenEndpoints","interceptors","request","Authorization","App","existingTokens","redirectToChoice","setRedirectToChoice","changeUserConfirmModal","setChangeUserConfirmModal","initialize","setUserProfile","getUserProfile","history","replaceState","Provider","fallback","exact","LinkedInPopUp","RecruitmentForm","Mobilities","MobilityForm","OnboardingForm","TeamBuildingForm","ValuesForm","changeUser","Boolean","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"6FAAAA,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,kb,kBCAjBD,EAAOC,QAAU,0d,kBCAjBD,EAAOC,QAAU,8X,kBCAjBD,EAAOC,QAAU,kxD,oBCAjBD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,sFCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,6D,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,8lB,oBCAjBD,EAAOC,QAAU,IAA0B,uC,kBCA3CD,EAAOC,QAAU,kyD,gECAjBD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,kBCA3CD,EAAOC,QAAU,8xD,kBCAjBD,EAAOC,QAAU,kzD,oBCAjB,IAAIC,EAAM,CACT,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,aAAc,IACd,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAA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","file":"static/js/main.f1f05052.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/take-the-test.b4b51c51.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAAAmklEQVQ4EWP8DwQMFAAmCvSCtdLWgFcvXzOAMD6A0wUgjRvWbQZjfIZgNQCm2c7BhgGEQQbhNAQUC8jg5YtX/2dOm/v/+rWbcGEQGyQGkkMHDMgC2DTD5HEZAjcAn2Z8hoANIEYzLkMY3rx5i+FnmGJcNMw7IL0Mv3///v/g/kNcanGKg/SA9DKCVOBLKITksKYDQpqQ5QfeAAAR1ozk+24/YQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEaADAAQAAAABAAAAEAAAAACz87qxAAAAuUlEQVQ4EWP8DwQMFAImCvWDtQ8iQ/78+cPw8MEjkn0F0gPSCwJMHz9+Yti5fQ/Djeu3iDYIpBakB6QXDECx8/LFq/8zp839f/3aTRAXLwCpAakF6YEBBhiDGIOwGQDSDzcExMFnEC4DMAzBZRA+A0B6GMEmoQXpq5evGTas28xg52ADljl04AhDQJAvg5i4KJpKCBerISApmEEgNj4DQPI4DQFJggwCAVwuAEsCCbyGwBQRogdP3gEABKs/74Dl5kQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAACKADAAQAAAABAAAACAAAAACVhHtSAAAAc0lEQVQYGX2OWwqAIBREr4I/tpWooPa/guxJ+6ggQf0oxzCKqPka5hzlst2HfsJV3ZJz7qVgA+PLvPrSPaQTdgTGZSJJb/qSIsQGxowxe6P6IGFAIiyrghiOvL+CABFQCHEKGK21NA4TKmV5GiB6+AHlKwfa91ep8+vRoQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAEoklEQVRIDcVX/U9bZRR+eilQWkopRorAGC3si20gY3FOGLhM4wdBXdRkukSjf5hGf5jOOJdIiJoNoawMp46trM65DTYYXxuwwkoJjIG+z2leLPfeuv6g7iS9H+fruee85z3vqeNPRciCJienMXJzBHfvziC5mEQymRQrj8cDT6EHgcDTCNWGUF5eloU3wPFPwGtra7h8aQiDv0axtLSUlUO32419+xvwbGM9cnJyMtpkBL55YwR9vf1IJBJi7PcXo0ZFVLW1Et4iLxgpiZEnHiQwNjqOYZWReHxe+F6vF60vNqN2W0jezRdb4IH+C/j5wkXRDQRK0dJ6EJVbKsy2tu/jdyYQ6RtQS3JP5M8daMLB5gMWXQvwd11ncP2PGzAMA22HW1DfsMdilA1jKBpDuCeC9fV1bN+xDa+1v7zJbBOwjtTlcqG945Wso9zkMe2F0Xd1/oDl5WWYI98A5pp2dX4vkR59u8MWNJlcQlQV2+1bY1hYWBAIn8+H6mAVGlQxeTzuNNjUI8FPn+qUyNs7Xt1YcwFm9X72yQkppMNHWm3TG7tyFeHeCB6tPrI4JyM3N1eKac/eOoucae/p7gML7sOP35dqd1KLW4bVy0KyW9NLg0OqwiPisDq4VensFl0yWERD0d9UFkbRfaYXq+rDGvfVi66+0OfV2DXRJVbT/kYYFHKfkli9Zpq5N4tz4X5hMxtvHm1HMFQNt0orf3wmjzJSpO88aGMm7VtjGexIbA7+Er/tuv408AvY3Op277TNhgZgVNRhFdPGTNyO7AXEIqbBNkiqqQmadVXaVjF6e0z4zYes2TAbNLc8Lyza0NZMbEAkYhrsvSR2JDPNxxfAwmNRuN0FZrHlnamnLm3m51NVn66kMYhpsOGT2AbNpL/aU2jdJmZd/a51Vx9aI9YYxDTSTxltrO+6H8/N3pd11vxMd9bC7OyciLVtuq7mEVOqOiW0no6+4iJJHSPnIfA4og73OdNNWytpDAeMv7/C/tjbW59qCD+e5R61pk87p4w6JG0jL2kXdj4SO5zBQ5zEo82OGpsaUPJUCR4o+VdffoOZGeseJY8y6lCXNnakMYjp5OTAfso0bamyVrbT6cQbb72O019/i9mZOZw8cQplzwRk4qBzVuiU2pfcvz5fkejSxo70crFDGhxXSMPDt+x0hUeHx46/C/ZhFtDE+CQGL0blx2cSZdShbibioEAK1Qbh5IzEcSV+Py6RZzrweRqVquwU+31qn65DfUHKv8Ohmr6BvLw8ObFcrtIU33S9o7LK6YRYxJSccEbi1MDfsePvbDLhB3WfDUuU6YJCb6G8LiYW09moqCzHkZfapAWnC/qVbxKxSLKdOJhxC6ROmpgIeOHanVRFw3QWFLiwq24HQqq1EpSA/PGZPMqoQ13aTE1Nb/iJXo6Jb2IQi5RxEGBKP//0C9lCO3dtV6dPm0pn7oYz3fH0rqDgoepWPd1hXPv9upzPH3z0Hth2Mw4C2pt59FlZWcHkxDQOtb2gVbK6nwufR3lFGfLz8x8/+miPT2TY0+A6cr7/b+OtBrcM9GpQ4Jn9nw70GvyJ/IXR4Pr+b/9p+wuyGp8m4SwqlgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Femme cercle rose.b1d955fa.svg\";","module.exports = __webpack_public_path__ + \"static/media/illustration.70afa230.svg\";","module.exports = __webpack_public_path__ + \"static/media/WWT icone blue.6f46d665.svg\";","module.exports = __webpack_public_path__ + \"static/media/learn-about.178cbee5.svg\";","module.exports = __webpack_public_path__ + \"static/media/share-lady.53b1a593.svg\";","module.exports = __webpack_public_path__ + \"static/media/centered-on-social-interactions.5cf3e70e.svg\";","module.exports = __webpack_public_path__ + \"static/media/match-with-friends.201f6f4c.svg\";","module.exports = __webpack_public_path__ + \"static/media/used-by-hr.dd462216.svg\";","module.exports = __webpack_public_path__ + \"static/media/recruiters.867b689e.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABHElEQVQ4EWN8UT37PwMFgIkCvWCtFBvAAjKG00KbgdNQBchiBJtKmPjP8P38HYbvJ64ygA3gcTRk+Pv+E8OPq/cZ/jx7g1c/i7QoA4eWPANID8gAiBeYGBk+rjoA1sgszM/w6+4zrBgkx/D/P0QtUA8IIMIAKPHt8CWGP68/MPD6WDIwsrOCFYAIEBskBpIDqQEZAgNgL8A4IPr3/ecMf169Z+BxN2P4desxWIpNTZbhy96zDP+//kBWCmYjXIAkBVL4edNRhn/ffoIxiI1NM0gLhguQzGH4/eglMhcrG6sLsKrEIQhxwb//DKzy4gzMQrw4lKEKM/FyMTAA9YAA2IAv+88zcFlqA7nEJySQHrgBoAQBwuQAisOAYgMA1FBv569pT/0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/2-persons.308f2098.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAEsElEQVRIDcVX+U9UVxT+ZgGGGYYBlFVEbK1SFEYgrUUUECQa05i0NekWk/7WH5r0b2rSNBo1kpimKWERrSziQlkkuJRlAAVmWIZtYIal9zvje5nBGcCGlJPw5r2zffede853H4YNJdgDMe4BpkDuGbA52hsvLi6hq7MbQ4MueL1ecXM4HMg9nANnUSFsNmu00B3pDZH2uLenD/eaH2A1sBoxSUxMDMory3CiID+ifSfKd4A7n3bjvgKl5B4+hELncaSnp8nzxMQkurt6pQpUlFeeQVFxodje9xIG7J704NpvN8FGP1ddrkBPRMxH8LuN92E0GvHNd1eQmrY/ot9WyrDmam97JKD5x/OigjIZF0Sf9fV1MOa/iN5cgUAAw0MuyVF2tnTbXGVnPkPfs36JYSz3nTI6MgZuF7eFwm3idmQfPCDP2kUHnp3xYm1tDXa7HVZrvGaP+mtVXU3f+fl5zM56kZq6H22tHXj08IlUTQscWBjE4MAQPjlVgtLTn2pq6MBcNcWWsPMx4UgROOBntUbQ0f4YZrMZpWWnkJf3keTr73+BtpYOsWVlZeJQ7kHR63tss9lEMeWZDluxKCNc2ICeqSmxMLbj4WO5P1txGsUlTrAi/CsuOQnqKJoP73VgR1KilI5v7hoepW1LcQ2PyJyz3IkOOzgR7HI23Wahjjb6aEeDDkzngsIgITQ1NEMr/eYkfKatqeGemAqc+aq7N6TDjUaDAGyOIajBYBAf+lLCgItUiVL2pWBubh43rt+Gxx0sZWgit9sjNvrQt6jYCZPJiH3qfnV1TSeX0BjSLhuXPvSlhBEIFV7vHGpv3ZFfk8mEjMx0NRKpNKkRcePN63FZucORiC+uXAZ/Kb3dfWhUlbJarbhw6TxycrJF73KNou6PBiwtLaG6plKn2XeA6b28vIKWv9pkTkkSoaLtI2fdYokLNeH3O3/in1cDoouPD46kz+eT5w+PfIDPL1/U/SMCc/gn1dv5/X5VIgWsfSuofWKpYmNjkaaqoHG4nk3ddHX24OmTv2W7qE9MtEtnO4sKQt3CSz09NaOaphljY2/CnBLsCQK+sLAYpj+QnYWq6gq118nScD1dzzCk2I8EJDHKe2F+QZXZh9zcHBSoA0djOP2NX754hfq6u5IgPt4iJ9PKih+Tk24JJiKTpaWlIi4uVjXRMHy+ZUlUc6FKRurm9VpporDVhTywGb9SfcH5FuCx0de4rRqK+5n38VF1MlWocga5l3GLb9/UlhAkGer8iq1Ynef9L2WEvlQJWRGLxSKLHx+foBsyMtJlca0t7bJ9yclJ+P7q1zAosI1ff7mGmZlZ6Th23vtIY30z+OHAhFd/+FbmNVJ8QH1U3LpRK+AXL9XAODgwLKApKcmoOl8RKWZLHWMYy4Wz/GQmNuTmP07DSfXJRHmu+Ns8ouaMkpd/LOpqxSHKhYzE2NYH7UK13Pf6uqYo3kE1icns8QTZKT0j+HmzZUQUo0YwzHX02BF1QpmieAbVMWoczV51llJIGB1vD/OgeedXjdeZKzMrAz/9/OO2wWbt3wgSxv8pBsWhGzPTs7uCmZySBI0qt0uoE8h2jrttDzsWdzv5Vvn+BfgdJ3OuxSSIAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/Homme cercle vert.9654aa74.svg\";","module.exports = __webpack_public_path__ + \"static/media/open-opportunities.fff250e3.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAEq0lEQVRIDcVWW2gcZRT+dnZmN5vbbjbJ5mZLLjY1FS8ppUoNKhgvxehDX5Qi+iCKCAqCL4IVwQcfFHwQLCiCgqAi9UG8tKWCooZaYhtTtPekSZvmtkk22c3eZnfGc85mxp1kd7NIMAdmmTn/d873/+f2r8skwRaIsgWcQrllxGqxE2cWE1j84TxWzkwiPRMTmKepGlW9bajbfwvUOl8x07L0rkI5jpy4hNlPhmCkMwWdKF4VoWf2INC/o+B6Ocp1xIvfncPMp0NiW02nCzzUDV9XvXwnrswjcuwiYsOT8t1E5HWP9pTDsw7jIE6NLeDqa9/DNEw0P7sXgYd3rjNgReTYBUx/fAouRUH72/vh7QgWxJVSOoor/NWIkPrv7ypKys54Q4wxDQNs81/ELi4jmaEQ3hAfoYO7N/QVOtiLpZ+uiA3bKhU5V/G/ZsDp4rSwcJo4HZW3Njl82sT61DLMTBZaQxXcgQoHqNCHO+ATrB5egT4dhbe9DuEv/8T812eRP5OiQ3HE/riO+gO3oeGJO2xXNjHvmkUlh+UKY5nYSOpYoWiFj4xA8bjR+GQv/H3t4mbplzHa0LCs+XY2ourOVtHbObb6MnUtAlBxbSiESU0QloQ3wCdlCT29B8GBHoqaT57gY7tEx2sWht9tYq25RkJnpDJYGZnitZLCGO5zTo0WqkaSOoKrnIturbCO1xhjHcomZrA1EKY/PEnhKzw8GMdrjGEJ9HdLJ5hZAy63ix6HS8GITnGBMdyqLA5UcGAXvDf5JW8Trx9F6uqigPJ/WMdrnFvGclhdqgLvtgAMPYsYjdi1wjouXMYwlsUxQFih01y+9tYJpGejAvJ1N6KiMze5kqPzSFyYk517QjXYdqgfGs1vFh6zHAXV70PrS/eg8vYW0ccpJTfe/w2ZpQSan7/bjuo6YkYbsTRmPzstfcpDIl+sPIae2g2l2pO/hMl3f0b01ITo1NpcS2aWk/Jds3c72l69z8YXJE5S8ydHF2Ak0jB1IraK3EUh0hQoPg9FIYiK1Rlue6MXvtEWvj0HfS53o2mN1ZIOvtHyxUGcvr4k4Yqfn83HQAtWyre+EHfoK3ua0PzcXfBQrrngIscvSj/zAMq3yUaS0r984VgTziaODo5j6vAguJ3cNV7wzWTEdTr5PCxCdsb5Vio1KaJsNAW+Ilte3CctNX7oKBWRMzX5O+Vi3P7Gg9LfQhz/e0YKisvd39eBJjqF4tNsm8xCQt7V4L9TzUjomP7odyz/OiYtxIXGODflnU+fvBwWm4qbG+SUc18MyyE8LbXoeGeAqjprmKOvfIM0zerAAzuk8kC5LEso91zJkR8vgR12vvc4NWhhY5M2M/7mcSFvfbkPSuw0/bUhUm+bX/JVNinvjDg4x2zLPtgXTyYO99oH1L91j+Tud46SGj+bG4+193YW3W3J09MJ2Xbu8zNgX9lYClMfDJY0SY1HoFqD3vp7U9KiyKJly75q9rVD0dxFkDm14lPhuvzCEVOfX8lV6+plXtKqwKIUE1W/Vl+FrsMHCiDWq1S6tUXLbfN/iotmqJmeXN4UTk9bLdyro3Ijh/YA2Qi42euOa3GznZfy9w8cwCJVPRpPEwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAEu0lEQVRIDcVXW2hcVRRdc+c9mclMpukk5lFqim1jrVibWhFfhGLxVcQvKaKC6K+KH6LkTz/8EfVXEdT6IQgivlIlIKKItQ9LtU1TaRonJM1M05lJMo/MI3c8aydnmNy540RQu+DOvfecvfe6Z5999t7jqCqgFZREYeIKssfjWJ5MoZzOo5IqiJYr6oe7IwDfQBTBfVvg37EZcLQyqET+jrhaNpEeHUfqi3FUFlaJWpl0hf2IPjyIjvsH4XAbTcWbEi8diyP5wQmU53Oi7OlpR0itqO3m6+DubIOrwy/jlXRBZHJnLmNJeaQ0uyjjlIk9OYTQ/i225LbE8x+fxvynv4mCb2ATYo/fisBN3bYGrIP53+eQ/OiU2pKrMtX56G50PnaLVazR1bNv/YDFn6bgcBroemoIkYM7GpQ2MpD5ZgKJ90+gumKi/Y6t6Hn+rnVq61asV+oMetH74j0I7OpaJ/xPX/JnE5h543usZIuwrrxGzD2lEFfaP3LAlpT7mR49j9yvMyglsvIdnq4g2vb0qmDaWdv3+g8k+fRrY7JyLkbvuRAzeief+0yCpPvp22zdmxn7A0nlOrNUqbdbeza8LgmmyIEbamP6gW6fe+8XCcqBtx+RaHdxkkeG0ctAstvT9FfjSKgIJ4JqdZH7tsO/bZO8Fy5eRebbC8gqL8y98zOqxQo6HhyUOf1Dm5nvLkrAkSt6aBcMqOTAc0oweq0oXkoheeSkDNMbfS8PI7i3D86IXy4+c4xzRPLIKVDHCm1buBSnwYzE5ODtCdsemflPzqBqVhG+d5utNzQBV0WZqmmCOlbwODIXkIucBtMgEdzXb5WFuVxB9vSsjMcON3rDqhA7vEeGqENdK5iACHIazL0EM5IV5cuLqFZWJCicEZ91uuGd7mfGok55bqlhXnOQ02DCJ6hghf5qlzK4UWhZc7ncoKI5yGnUqsxa7q2X1vm4OJ0B1D63hJIpxpWsgv6Aeh1tj5y18mFn1t0dEk+Y6oiwCLQCZXjOuTLqWqE5HKpsGqynxIrKSnbQCYFnVLveTo5zlCG0jlVOcziVdw0WcUKXP6tw9KEb4e0Ly3x85CiKU2mriIxxjjYoSx07aA5yutg55M7OiSsDuxtLn8PjRN9Lw5h+dQzL8TSmXvka/u2bJcvROMsfzyWrkCcWElnq2EFvl09lPYPtCpE9Pm0nK2NuVQi2vv4AIsMqD5tA/lwCqS/PycVnZj/OUYayzcBGgQgO9cPFHontSnF2ASzizQp+KbEEfqmnJwQWFZIJVKCwxTH8HlWxlExwNYevzdZutM3uhFzCycaMPRK7Bl786nqUZhYlaPLjamV1cEfXYiO1mgf0VGCwC93P3g5Pb7sekjttE+QipxwnNmY8AtwvljAN7t2fI6MgqTPkRfjuAYSUm0haVoS8+MwxzlGGstQpXLiizSBzdEJsk4NcRNNGwKPO4eQLn6sjVEb4zuvR9cx+5U53zVgt8awdR06YhTIS7x7Dwo+XYPjcGHjzEEoqdTZtBLQ1a+tj5krIn08i9sReLbKhe/LDkwjsjMFo87RufbTFa9LsaXK9cr7/b+2tJrc29GwUWLP/04Zek1+TvzCaXO4qWfBo/Zt/2v4CUz6fFQFzjOYAAAAASUVORK5CYII=\"","var map = {\n\t\"./ad.svg\": 299,\n\t\"./ae.svg\": 300,\n\t\"./af.svg\": 301,\n\t\"./ag.svg\": 302,\n\t\"./ai.svg\": 303,\n\t\"./al.svg\": 304,\n\t\"./am.svg\": 305,\n\t\"./ao.svg\": 306,\n\t\"./ar.svg\": 307,\n\t\"./as.svg\": 308,\n\t\"./at.svg\": 309,\n\t\"./au.svg\": 310,\n\t\"./aw.svg\": 311,\n\t\"./az.svg\": 312,\n\t\"./ba.svg\": 313,\n\t\"./bb.svg\": 314,\n\t\"./bd.svg\": 315,\n\t\"./be.svg\": 316,\n\t\"./bf.svg\": 317,\n\t\"./bg.svg\": 318,\n\t\"./bh.svg\": 319,\n\t\"./bi.svg\": 320,\n\t\"./bj.svg\": 321,\n\t\"./bm.svg\": 322,\n\t\"./bo.svg\": 323,\n\t\"./br.svg\": 324,\n\t\"./bs.svg\": 325,\n\t\"./bt.svg\": 326,\n\t\"./bw.svg\": 327,\n\t\"./by.svg\": 328,\n\t\"./bz.svg\": 329,\n\t\"./ca.svg\": 330,\n\t\"./cd.svg\": 331,\n\t\"./cf.svg\": 332,\n\t\"./cg.svg\": 333,\n\t\"./ch.svg\": 334,\n\t\"./ci.svg\": 335,\n\t\"./ck.svg\": 336,\n\t\"./cl.svg\": 337,\n\t\"./cm.svg\": 338,\n\t\"./cn.svg\": 339,\n\t\"./co.svg\": 340,\n\t\"./cr.svg\": 341,\n\t\"./cu.svg\": 342,\n\t\"./cv.svg\": 343,\n\t\"./cw.svg\": 344,\n\t\"./cy.svg\": 345,\n\t\"./cz.svg\": 346,\n\t\"./de.svg\": 347,\n\t\"./dj.svg\": 348,\n\t\"./dk.svg\": 349,\n\t\"./dm.svg\": 350,\n\t\"./do.svg\": 351,\n\t\"./dz.svg\": 352,\n\t\"./ec.svg\": 353,\n\t\"./ee.svg\": 354,\n\t\"./eg.svg\": 355,\n\t\"./er.svg\": 356,\n\t\"./es.svg\": 357,\n\t\"./et.svg\": 358,\n\t\"./fi.svg\": 359,\n\t\"./fj.svg\": 360,\n\t\"./fk.svg\": 361,\n\t\"./fm.svg\": 362,\n\t\"./fo.svg\": 363,\n\t\"./fr.svg\": 364,\n\t\"./ga.svg\": 365,\n\t\"./gb.svg\": 366,\n\t\"./gd.svg\": 367,\n\t\"./ge.svg\": 368,\n\t\"./gg.svg\": 369,\n\t\"./gh.svg\": 370,\n\t\"./gi.svg\": 371,\n\t\"./gl.svg\": 372,\n\t\"./gm.svg\": 373,\n\t\"./gn.svg\": 374,\n\t\"./gq.svg\": 375,\n\t\"./gr.svg\": 376,\n\t\"./gt.svg\": 377,\n\t\"./gu.svg\": 378,\n\t\"./gw.svg\": 379,\n\t\"./hk.svg\": 380,\n\t\"./hn.svg\": 381,\n\t\"./hr.svg\": 382,\n\t\"./ht.svg\": 383,\n\t\"./hu.svg\": 384,\n\t\"./id.svg\": 385,\n\t\"./ie.svg\": 386,\n\t\"./il.svg\": 387,\n\t\"./im.svg\": 388,\n\t\"./in.svg\": 389,\n\t\"./io.svg\": 390,\n\t\"./iq.svg\": 391,\n\t\"./ir.svg\": 392,\n\t\"./is.svg\": 393,\n\t\"./it.svg\": 394,\n\t\"./je.svg\": 395,\n\t\"./jm.svg\": 396,\n\t\"./jo.svg\": 397,\n\t\"./jp.svg\": 398,\n\t\"./ke.svg\": 399,\n\t\"./kg.svg\": 400,\n\t\"./kh.svg\": 401,\n\t\"./ki.svg\": 402,\n\t\"./km.svg\": 403,\n\t\"./kn.svg\": 404,\n\t\"./kp.svg\": 405,\n\t\"./kr.svg\": 406,\n\t\"./kw.svg\": 407,\n\t\"./ky.svg\": 408,\n\t\"./kz.svg\": 409,\n\t\"./la.svg\": 410,\n\t\"./lb.svg\": 411,\n\t\"./li.svg\": 412,\n\t\"./lk.svg\": 413,\n\t\"./lr.svg\": 414,\n\t\"./ls.svg\": 415,\n\t\"./lt.svg\": 416,\n\t\"./lu.svg\": 417,\n\t\"./lv.svg\": 418,\n\t\"./ly.svg\": 419,\n\t\"./ma.svg\": 420,\n\t\"./mc.svg\": 421,\n\t\"./md.svg\": 422,\n\t\"./me.svg\": 423,\n\t\"./mg.svg\": 424,\n\t\"./mh.svg\": 425,\n\t\"./mk.svg\": 426,\n\t\"./ml.svg\": 427,\n\t\"./mm.svg\": 428,\n\t\"./mn.svg\": 429,\n\t\"./mo.svg\": 430,\n\t\"./mp.svg\": 431,\n\t\"./mq.svg\": 432,\n\t\"./mr.svg\": 433,\n\t\"./ms.svg\": 434,\n\t\"./mt.svg\": 435,\n\t\"./mu.svg\": 436,\n\t\"./mv.svg\": 437,\n\t\"./mw.svg\": 438,\n\t\"./mx.svg\": 439,\n\t\"./my.svg\": 440,\n\t\"./mz.svg\": 441,\n\t\"./na.svg\": 442,\n\t\"./nato.svg\": 443,\n\t\"./ne.svg\": 444,\n\t\"./nf.svg\": 445,\n\t\"./ng.svg\": 446,\n\t\"./ni.svg\": 447,\n\t\"./nl.svg\": 448,\n\t\"./no.svg\": 449,\n\t\"./np.svg\": 450,\n\t\"./nr.svg\": 451,\n\t\"./nu.svg\": 452,\n\t\"./nz.svg\": 453,\n\t\"./om.svg\": 454,\n\t\"./pa.svg\": 455,\n\t\"./pe.svg\": 456,\n\t\"./pf.svg\": 457,\n\t\"./pg.svg\": 458,\n\t\"./ph.svg\": 459,\n\t\"./pk.svg\": 460,\n\t\"./pl.svg\": 461,\n\t\"./pn.svg\": 462,\n\t\"./pr.svg\": 463,\n\t\"./ps.svg\": 464,\n\t\"./pt.svg\": 465,\n\t\"./pw.svg\": 466,\n\t\"./py.svg\": 467,\n\t\"./qa.svg\": 468,\n\t\"./ro.svg\": 469,\n\t\"./rs.svg\": 470,\n\t\"./ru.svg\": 471,\n\t\"./rw.svg\": 472,\n\t\"./sa.svg\": 473,\n\t\"./sb.svg\": 474,\n\t\"./sc.svg\": 475,\n\t\"./sd.svg\": 476,\n\t\"./se.svg\": 477,\n\t\"./sg.svg\": 478,\n\t\"./si.svg\": 479,\n\t\"./sk.svg\": 480,\n\t\"./sl.svg\": 481,\n\t\"./sm.svg\": 482,\n\t\"./sn.svg\": 483,\n\t\"./so.svg\": 484,\n\t\"./sr.svg\": 485,\n\t\"./ss.svg\": 486,\n\t\"./st.svg\": 487,\n\t\"./sv.svg\": 488,\n\t\"./sx.svg\": 489,\n\t\"./sy.svg\": 490,\n\t\"./sz.svg\": 491,\n\t\"./tc.svg\": 492,\n\t\"./td.svg\": 493,\n\t\"./tg.svg\": 494,\n\t\"./th.svg\": 495,\n\t\"./tibet.svg\": 496,\n\t\"./tj.svg\": 497,\n\t\"./tk.svg\": 498,\n\t\"./tm.svg\": 499,\n\t\"./tn.svg\": 500,\n\t\"./to.svg\": 501,\n\t\"./tr.svg\": 502,\n\t\"./tt.svg\": 503,\n\t\"./tv.svg\": 504,\n\t\"./tw.svg\": 505,\n\t\"./tz.svg\": 506,\n\t\"./ua.svg\": 507,\n\t\"./ug.svg\": 508,\n\t\"./us.svg\": 509,\n\t\"./uy.svg\": 510,\n\t\"./uz.svg\": 511,\n\t\"./ve.svg\": 512,\n\t\"./vi.svg\": 513,\n\t\"./vn.svg\": 514,\n\t\"./vu.svg\": 515,\n\t\"./ws.svg\": 516,\n\t\"./ye.svg\": 517,\n\t\"./za.svg\": 518,\n\t\"./zm.svg\": 519,\n\t\"./zw.svg\": 520\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 191;","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAAARklEQVQ4EWP8DwQMFAAmCvSCtQ4nAzZt2MoAwsiAGDG0MGBE1g9l4xdjHDzRSIx/QX5CVzecwgBL/BElhBYGROlBUUSxAQC5giUsu1g8UgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGaADAAQAAAABAAAAGAAAAABlk77uAAAERElEQVRIDZVVWWxUZRT+7p07azsrUzq0nVIG20ARg6ghGo2gBY2iNhE1+myMD+qDMbyYWPCJmJiI0QcVX4y+ECMkmhAwIktEIFAWRVBKt9BtOjOdfV8852/nZ6Z3ynKSe///nnv+c85/vrMoFSLchkqxLGLHh5G6PInCdALFaBaKpkLz2GBaYUfzw37YH/FDbTbVaSlGMiRjFTzlTkaKoRRuvHMABrsFllVuGBwWVPIlFMJp5CdjKKXywqj72TXw7ngAqs2I7PUQRj88hJUfPwPrmuXQ6sw3+NC8TQjs7YextVn/t1RB8sIEor9dR+SXfxA/MYz2959EOVcUsqVkXqx3vIlec2NO8txNzOw7g2I8B+fjqxA9NoSOnVsonB36m2SHIwjtv4TsUAiKyQAbXbfljY3QvLbG2he4rMwSWIbxXYeFgVrhunAlTo9jcu9JqGYNtvt9FPsi4sRLDk6gc/c2mFe6a8/KfeoCJUU4Jb4dj3UhfOBv1OaTNFKm+E1/cxqmVjv8A1uhueczIzc6R94dwdSXp9D1yfNSsdwQLhOfHkeZHFqKpJH0tSBKiRxWvP2oNMCHzF1ueLb3Ynb/RRRmUzC2NNXrMigIfN5PqZ2p59OXyWcXPGmkEEwKhqnNqRdumxdmmcVG7gZDtarR7HeJbebfYJUl1/S1WbE3++sdYAzHqB4yFAWuB3OHU2A48sHPyI3NyfPyJixkanMg+MMgVbID1rXLhVD85AiiR/6DnSqbC7FKS2JIyscH6jGURhSjirb3nsDNPUcxNnAYRipCruxiPEseuuB7a1NVv1iXxJAycDGG0giftAQ86Ny1DZGDVwSQbJh7VMtrG3S96V4wvGWkWMb0vrOIHbuBSrkMjXsU8UrpPGK/D8H76gZ4XuyVt+H4MzGGpnaH5PNmMYbSyOQXfyB+ahRcTJwEDBxXPGcbd+Dg9+eBcgWe/nVCoXVta2MMT+gxFL2Lrz787kE4n+7WxV5oJOXju39FfiKG+77aAVBtMHH6MoZcI4sx7PyoDwbXfEGLm6jkcfNDHfC+vF4c1r1UBS2vP4i5Q1cB2lfpbjGUXTg3EkH6ahAKe2lQaeVHgbnTLaq+qliut8GQna7FUGKSujKD4HfnpI7qhmsn8NlL1U+53guG0gjIsyqxYt+bm6AYDbo2wjKMYeLPMbj6ehpiuIySgzHkQeZ5oReyrXDaMrn6ummsxulW56FajaJOxI+aF4ejaWN7HYapS1PgUS1oAUPbulaBocSEB1Xox8vo/voVMVJnvj0j6sS5eTVcT3XD0uOtMbOwpazjWRP+6S9kaMhx62nfuVkndytcdEAQge3cshpN631UG4OIHh0Sj0bpyAWouW0oZwvIT8WRn06SIyWoFFb31h6RgToLxJA3SVAhhqmddO15ri5NeYYkz9J05Ok3m0Rxbn5uaA4zZZ0HHBIHzXSD3dxIv+D9D79QBLEan2bDAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGaADAAQAAAABAAAAGAAAAABlk77uAAADqklEQVRIDbVVW1NTSRD+kpwEArlfuYTLLlfZrMpioeWlli0ffPBha9+2/Je+aZVVWt5KRS12wRRGEcgmSEgCgYRwSXLc7l7ObE4MyINMVWpmevr0N/P11x3LFxo442E94/gSXmsFoutfkFnPo7BVQr1eh7uzA7GeEDqcba3cv2mzNNO1WSzh+WwCxZ1d08eaZsNkfAhjQzGT/TQbEwjf/P6jN7BTwIsUsDvih8Nhpxft4O/EMnKFbZwb6cfU+eHTxFY+ii5d1/H8dQJ2uw23b06bqOmOBNBFv6cvF7D48R/0EXWRkE8F+dZCJT61lsM2UfRLfNgEYASw0OLy5Dg0mw3v3q8aZlRrdXxa/Yy38x+R/JTB3v6hOjMW6iWFzR2x9XQFjbOvZodDQzDgRv7Il+l9/GIeu5V95Tu3sISrlyZEKIZRvaRW02GxWCgHCtfwMc1tlKNaXSfV6Xj6akHmmavn8efvv+LWzBSc7W14RrQ3AisQt8sJrsstUtdJg9Xn7nRiPbeFUnlPRBDrDoHVFw56cW16AtVqDavpDRVGgfT1hGG1WklFK+qwebGcWpfAg30Rmfk86PeY3AI+N6zECF/AGAqEX/Lz+CDWsgW8fLtIlNQNH5lX0lnMziXh87gwMToAr7tD7Bsk68aR39yGTox4js75zJSA+PgAypU9fFheA6stHPCqOmHleT2duHElTi+2IBr2yZ5VZaM9S5ypfkUX4bwN9kUVtqkYDWtmvYAEyTRP6uH6cVEOfuiPIj42IJQaftwVWF07pYphQnubQ/LCtWUME8hGviha55kD+30uOOwa3bAsbcbZ7pAbjv7YK0o8OKwilckhT5RxK+da4tcOxCLo7Gg3MKBAkksZzP6VFJVEqZpZgkwR88sf+L0ubNONS+UKtZsAWLYPnsxRqymqYMaCEz91YUT1OQF5v5SWpHaF/cI5c8qDa6FaqwkFRoBEMiXVzReZnhxDeZcKkZ7AF2Lx2DUN84sryJLEr1/+CYOxKLT9g0P6aAkhSvJv1y9QEpXgYLNZ6ecw4ss8MdovMyc8mytidKhX9r0NnSIS8uLu/RdY/JD+DyS9lpf/DP64EcAUuWkzPhzDAgmDZR0MeCiP6SYPiEBYzlwKGvcfbiex7uN7VnMELtqeaADpz3npEsupbLOL7Jm6apVASrsVUcW9h29aOh5nrOwdoEYdmEVx54+Z49zErnWFA4J2oleLQ1HckcRbHJtMSsIm63fe/C+l7xy4Mdy/ZOeO6dnFl0MAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/invite-lady.06856a8b.svg\";","module.exports = __webpack_public_path__ + \"static/media/philo.da64528d.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAABQElEQVQ4EaWT24qDQBBE21uMSDAB8SH//22GqKCiIXjJ7TSMmMFlWbYeRmaqq7unrXFeH8gK0zRJ27Zyv99lnmdlfN+XKIokSRIJgmAVLeKsE1RVJV3XyfF4lDiOl2CS3m43aZpGDoeDpGm6JFkS5Hmuh1mWCRW3QEdFUSh1Pp/167JSGXC4Fj8eD72Okp8FzgiNxqU92qayDbi+7+X5fH5RxKKBd8qyfHmeJ6fT6Svot01d10KHLtNmYDYgL5eLXK9Xm9I9GrQ+g7F/DRF0tdvtxHGczQRo0OoQNyM+h8MwyH6//4nWc5fJMgwb+IsEYRjalO7RoHVxGCaxMY6jXoOrbAENWhd74jBjWxNMdbrgN9ogFg1adSKmoKIxiS2w97iWAWNpHaLxNoTdyVoMZyxvNMtbIPBfj8lUYrp/ec5vxjzXmB1gakoAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/linkedin-badge.ce081272.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAA0VXHyAAACDUlEQVQ4EWNkyNn6n4EIEGsqxVDnqcrAx8HCsPnyK4bCddcYPv/8y8BEhF4GO2VBhnJXZQbXKacY5Or2AzX+YegP0gJrJcqAAD0Jhr599xkevPvO8PPPP4aKTTcZfHXFiDfgx5+/DHKCnHDHSvKxM3z68QfMZ4GLYmFwszEz1LirMESZSDH8+QcJqkfvvzMUOSkyNG2/DdYB9gIvOzODq7oIg6EMHwMj1KAQAwmGy5W2DJxsTAy67YcZLHuPMYBcoi3Jw5C58grD4tPPwCoZDTsO/1+XYsRw+tFHBlkBDoa3X38zsLEwMnCwMDNkr7rKcPn5ZyxuQwgxHr377n/DttsMu2++AYsujdcH+y9z5VWEKjwsJk0JHoY9UM0gdTuuvWb49w+PDjQppotPPzH464mDhZmAARCoL8FgrSQIxmhqsXIZNZsP/N+YZgKM428M0vwcDKcefmTYdPklQz0w1b34/JOhbustsJg4LxtDnJk0gwQwCjdceslw+O57sIGMoKTMzsLEoCfFy/D800+GJx9+QCUYGIKBMdHgpcrw4O13BhVRLoYVZ58zwKKxc/ddcEyADcDqNqggyFuLYvUZ7rz+xtAAjXsFIU6G3TlmDKpNBwnnBVD6efX5F9hmmEUgl4IyFQgQlRc2XHoBTn0gm0He7fBTB+dIkAF4kzJIAQgcAgYYyM8gZyNnZ5AcACS9vVttZkfuAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/header.9b648cdd.svg\";","module.exports = __webpack_public_path__ + \"static/media/profile.eb961b3b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACy3fD9AAABSklEQVQ4EWP8DwQMVARMVDQLbNTgN5AF5M4nj58y7Ni2m+Hr129khQA3NxeDh5crg4ysNAPYwKtXroMN4hfgZzC3MGFgYQELEzT8z58/DCdPnGH48/s3A8gMuIF///5jkJKWYjA01mM4BVRga2/NICQkiNfAd+/eMxw+eJTBw9OF4dzZiwwgM0AAJVIkJSWAClwZTh4/zXD92k2cBoLkQGpAaiUkxVHUoRgIkmHnYGfw9HZj+P7tO8Pe3QcYQN6CARAbJAaSA6kBqUUHOAPLyMSA4cXzlwxbN+9g0NLWBOu7dvU6MIxNMVyFbCiGC5ElQd7x9vVgYGRkBGMQG92LyOpBbJwuhCkExbiKqhKMS5DG60KCurEooLqBYC8zMzMxfPz4ieH2rbtY7CQs9OXLFwZ+fj6wQkZQ8UXNrAc2kLAbiFdB9TAc/AYCAAfPcad5PuyKAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFKADAAQAAAABAAAAFAAAAACy3fD9AAABS0lEQVQ4EWP8DwQMVAQsILNevnjFcP7cRYZ//8gzm4mJkcHQSJ9BXEKMAWwgyLCbN25T7E4PL1cGJpAppLqMkZGRgYUF7Ba4I2BmoIrCpbEzBIUEGRycbBmkpSQZmFmYGf78+cMwddIsFMVEGwhykX+ANwO/AB/cACYmsAfhfBCDaAMlpSTghr1+9Ybh6pXrYBeimEaKgcguO3vmPM5IxHQzupVQPhMjQumvX79wqCLCy0bG+gwSkgjvgkwyMTVi0NTSYPjy5SvDoQNHUAwnGIYgw1TVlFE0SUlLgvmPHz1BEQdxCBr49+9fcOCDYhQWqyAxUI59//4D6Qbu3L6HYed2BgY9fR0GR2c7sAFbN+9guH/vIYZhIAFESGOVJl1wpBoIKs8oBTAzwMkGVDiCAKwIwma4mLgoXFhKWgpYfLHC+bACFiTASO0qAAASfl0Q80NQ6AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAADZklEQVRIDcVWWU8TURT+ulHKDt1AKfsWCAHRGCJiA2iMD6iEqAmJP8vEBx9MfNAQTYwxUVF5UGPiAkEQyiIQNgstUpbSgoTiPbcMmbFzh1ZJOEk703O+8329c8+ce3R7zHAMpj8GTS55bMLGRFbs9S5idGQcc3MLCG4EodfrkJaehoICF6prqmCzW+Om08Wzx1tb23jT04vJH9NCYp1Oh6rqSrS2XYDRePh6DhUOBjfxuPsp1lbXYDAY0HC6DuWVZcjOzkIksofASgCekTEMfvsOqlO7w4bOG9dgNpuFf5ICmsK7uxF0P3oC35KfE16+chFWa44qIW1Dz8u3WA2soaDQhY7OdlWc5NQsLloFiaakWBjRVaEokeXl5eJ6RztMJhNmZ+YwNjohaaheNYX7+wZ4UkubGxZLsiqB3JmZlYGm843c1f81miuPy++Fwj6fn1duZmYGyspL5Dma97V1NWx/k8DzWX2ITCgcWFnlOXknckW5qn69Xg+H08FjgUCUQw0oFA6HwhxP+5uoWSzRHIlDLV8oHNlv4TqdEKLGx33UWMi0jgEh6zZrGmTmZO33kYP++pLeYWo8IhMKh8IhnpOy/9hEBGp+aXtCoSiHGkYo7Fv0c3x2TpZanqYvi3U1Mt+ST4hTFaZH5Pcvw2gyIjfPKUwWBfJdJ3loYd7L2mpEFaYq7BkZ5YXhcuWzE0gVokomOelROxx27OzsYGJ8UnIrrjGs9A8H+gc5qK6+VgFO5EfdqWiuqIPFCH/+1If19Q3YbFYUFrkS0VJgK6sqkJqWyjvY0OCwIkY/FMIr7Ij7woTpbG295I4BJ+IwGPRoaW3mKR/efcTmprLCFSf28JCHF0NJaTE/e6nf/o+lZ6SDWq735yLGPONoOFN/QKcQTmdjDNnU5DT/HKCO4IZGJLkphKkgwuEwZmfnscemC7kFg0H+uJrdTXwKkcfu3rmH7e3fvJJpm+RGU0txaREq2NQiN80JRA6keev5sxegY/JWVyc7n6MHAVXte7aHdrsNXbdvylM07xUr1kIWlxTyZrLoXcKD+w/hKsjHBps0af9olY3nzmqlx8TiXjFl0ja8ftWL6amZA6JkNpm42eOnCTMRS0hYIqbXbtn/i49DzlwnkpJMUiju6z8Jx82uAVQ0EA3ckYf+ANduLJSjun5IAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAACx0lEQVRIDcWW228SURDGB/BBJNTGCwW1phSrxhCNMT6oWPXdRGLTP9HExLah0Qcv0RhE+2CMUYlPpTVWE7nU1CDFF9D9HT2yB9gLjciXsJzdnZlv5szlbOCnBRkBgiPgVJQjI97lFXG73ZbS6rqsldal/KUijUZDqUQiEZmIx2Q6lZTUsaQEg4PFEHDLMYSF/AvZ2vrm6t/4+F7JzF5UDrgK2l46Eheercirl6+V6P4D+ySdPiVHpyYlGo2qZ/V6XT5+2JBi8b1s1r6qZ+fOn5XM5Qs2887LvsSaNBQKyezVS3L6TNrZgvXm7Zui5J8+l1arJX7JexJTWl1TkUKavXn9LyldV63UpPiuE6H2BseQRYddIkVeMIgppEJ+RekQ6ZHJw2rNVt6+tSCPHjyRSrna1yay6ADqAltuMKoaTykkcqq3F9KlhWXLaEZOnJxxs6V02HZ0sDVzPOUob0RMywAKCbC9D+8/9kWqFKyL1tW29PPuf4OYPgVUL6hVNxW5V6RK+M9F62pb9nf2tUGsh4NumXK5IvHEhF3ec611tS0nBSPH3UKJRFz4DYbfZ47X0WNEzBgEDAdAkfEbBPX6dyUeiexxVTOImb2AibRTaF2vFBnEDHzAGNwptG5yesrVhEHMKcPApw/px0Ghe3hsLOraw9g1iDnaOGUAs/fTxme19nNBFh1w5VpGAoGAq5pBjCRRM+gZ+Lmle74iJ1Jk0QmHw5I45N0JfU8nHNAnFGu/xyKkzWZTyc/N31BOoN8PjsQI+/0QIKdsL5Eu3llWNYKzbuSuxJD3+/RhONCntAzVy2Ggc0rEJnnWinw3pgx4EhvSPm+azR8Wec4WeS95T3H5tO0qRoRz81mVa1oTJ3DGjqEQQ9BNnlu8a+c1+9h48w9uNHksdlAa29tWu3W+SoaS434+QxoKdTb4vxF3O9NxofvNkO9/AR7kY8K8KoSSAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAExklEQVRIDbWXO49cRRCF+w4bEJASsLN+YCMEfkhIJkf8AAwGGy0iIcD8KIMEIebtPwB+ZMiWCdZAAvtgR0IeBwgQSBh2ON851XcGE7ttbndXnTqnqrrvXDzc3Ly8aBqLhaZhaN60AYv+6/vswBlTWO8L0+NXbdAAXc7wRmsC5WpQuSxLjLxeD0qqByGOEVIwfsoWBMkmMs6AEs96ofChTZJ8Jw2ZUxQd1k63TC7YUqmAincKiCYyU+GVhbmqgAlOoB6F7xbspqnYiJdRk6soX03WSlSxmkAWzY6vcLVarcEKEQ8vlVtlZpODyXdohzZPtSdeejpEScvxYahwmBRftFBUkj291tbwImIQdtYQLjJ3H8kdeuN0m559pi0OFu2X2z+3P2a/GWuM6SOQQiATz8A1Gm+K9jGvIcRgStY5C9ZU6IS0Prx5uq2X6A+Xbkr01/A6URgqvirIRDyF4Y0OK5aTZJOgLmLnymMD0ZdTKaLza7tOyt35X5BYuwYFm0fPwnW4Kx6d+F136oV44/WTbYqoIn6U6L3rEjUPrFqkHJcBj5vqcHapONocnU1+6HXyNgF60t5+ZtMLEn3l2VF0fm2H0CQP78rIKSYZ4qMSbsNY1hbsxKAiQLRn7ErPRXT70q02v7q7rM6iK9U4XUgQFAMCYDSP/NqPzZFLV64nElHEpxdOtOm5E650+71b7e7V7ZGoGkTYSEqyYe3zSGrcsqvOy2mu2RO3n7R3/dUSfVeiX0m0D1fKZplkdhBK1GVi0ajysFNMBscITu/xKn56/pRFcex+8E27d2O3TdYeMR9wsObzrBcCoMZILH5jYrZ/4D3WMPb+gQno0PC1v05DW39N7T1/skIeznT9zc9FTLfqjCufh6P2AKurlW2NNpHB7NM7hvSqd96/7fPtR9FnZzz2XCHqPdsQhqufL4Ru8cocvYXO2CFAhjb77Fv1QLdal+vIW8+1g/v/1OXKuwDWTIh5QVwnl00Xx0IFS1La+GLkggUx6COh0asmav/jqlziT148w7eizb/cKSESMDVhS2mIEesuC2XTf4yCjrgE8x5DUibPiO+reoKOvX2mPf7iUSDFXO3UdrzNaKwQ+NWqJMZkCK9UsbniXr58YxWzT9R2CW/o1+uYKsdxVx+HPsLLs9pOa/TXQoojD2NYeIwL+yYOfaA1Hbr/0VabffFdKn9Hlb9wuLsc3OnHn0V5vZY6vPnxSEhZvMGnq6SMoz6CqbTb9i7fabMr35vw+MXnJX4kTHqajKQV33N3m71JElAzkqSwVbhvtXcdEdx/nj9JnMHn8TgXTtj5jT1K0l8CI+5Vlk6G7mfUcfQiZczvGV5ABUzWGDOojMr3qVw9ekptf3T9MeGpQ38cm9n5k4xs+NxGPbwWnSX0GD8SThwdk7mYQtmoUMS37P/797/an/r/LQBut0vzSuGyoefyZdMaUbyWR1k+CdtTmRHgCJsBmIiFZYa29+GWd9gPCkvFLI3NgvyDs2hFlyi7fI97EOREEIIWSw1zFUE3kyCVdFEWOaLM4Jajdpq6fTzjEBUUtlFUArVeEpVBUyeKaBAk30NyAJ23z/wTRqEdNGZNiRqe7OSMMtiazBUWSMbkqoWAJAE+NHTFJLWP/19nr379bLVF6QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAAETElEQVRIDV2WO44UQRBEa0YYuCAEHIHPARASwuES7BnARhgLiAUDcRE4BA4G4gbLFfgKF4shXkRmdQ09211VmRGRkdW9PbN78PjD4XAY4+DP7mgcu934q6TSPjWMw25UTBP9JXdQjGytZ1xr+KUz8cJegBlOhFCzE0SqqBURA8tFQiy8rmKNYUwcwzQSzk6c1sXAnoTGCSC5KwIFXEN5AwAazeCFw3NexpIKl4Ic3jfNqcex5+LFFCVZ6eqKWkTasUcCEmrZ9kOMjqtUOBRXzDymmldhooAZarK4IwSXbrnHHOAQAo2Qi1l045PMStcImMslW+0igfheVNqRKsRDZpnAIlRiczuVCz8gbHmtZZtEmmw6ZlbFvR0kVYia7sZpboEiZYSEsVr3KJjx1pJmijKxPOl5qGOq6nRHic8OGtbiIClIvLptY5ZIxixQNuRV3fdFZ5/Hoy3RVf5PCw/dvroQ9rdOxONgsET4FLR576JyuAODOIb1d8HONOtOulvfU4BmHHe6dWKABZnZpIT5+MVDMQ6Nc2e0hO97XLtmjA3YsfVsMPLptDeAxBSbBVKB+CSCs/IWwokKx52FCsBgMqPPULMr2xwcplOIUTkXWu/vmm9MPdUImNRKHrkk7oa4UIVjGWOjxNnTyuceL7qOz0vusZQUOYw7t6+MJw9vkB1v3n0Zn89/KqOtUppmfA+Vu3vz8jg9uWXc2bvz8enLL5KWya44Ne7dujJeFu6ZcB/Pf8hzdtgvkDZK0auXLvp8enLTnaGHWDfJhKLXhON8XsI2VVvtvoWj6HVhOF8ZVzuign643E5MHl8RohWJ9K3ocQWm3vYQtdkV47l3Dj3d4/z7hPRW2/v99x+fbHXaBJ2dDHk3XmvbvgnHefb+3EI21AY16m+8UO6rMJyn4jTfO3j/kX4I9N2DqA9f6ollTQco9Y8CHM8vfnyVMT8LgiIMZ3s24IfjjLTyysQeQBFa0EjCS65fLp2zOFUpzoeCXkfvCEeBCsPb7nEVaApJbK9CfptRBHEABuc2TVPSsQH4NiOYOYuW+C6MRgpEz5rtIHyz/w+5eHGnQXcMHAOQo+m+fFFAQum4AuZYPQy2zwJ2zuo/Y8LGZLqmCO2hA9oq6LF2sDS03s99cEEAZme0iAMWTCbA6ChXvHQoYSXog3yPxrBYjj1ApC20uHRUCXLpAqXtKzM6qWANBOaRImvEHYvkUbhstSZTSPMkRQ7frvzwpHYZgKSTC+Q+m99cmsGBi2Zknlemwd1dJZtAzqTaGQmuzSVKjAI4i4kVY4MOZA/AHT1cmJx5BNhoxlZxTGEdCUcokSUmfNOZTFTxWevhiluPgqRcuS/FJqarBO0FIYRdKE9zdOK1eRifu1am9m3HQmLld3MJsk5CBdKRy2reW8yaAhNnoALCcG5x+ARz6DeXDtZMPJak1s4RFmF9T3eHHXO+BMg1z7Ol2PbmG+Mfy58kA81z5DsAAAAASUVORK5CYII=\"","// const serverUrl = \"https://dev-backend.workwelltogether.co/api\"\n// const serverUrl = 'http://localhost:8000/api';\nconst serverUrl = 'http://localhost:8000/api';\n\nconst { REACT_APP_BACKEND_URL } = process.env;\nconst server = REACT_APP_BACKEND_URL ? REACT_APP_BACKEND_URL : serverUrl;\nconsole.log('BACKEND: ' + process.env.REACT_APP_BACKEND_URL);\n\nexport default server;\n","import server from '@config'\nimport axios from 'axios'\n\nexport const getProfile = () => {\n const email = localStorage.getItem('email')\n let config = {\n method: 'post',\n url: server + '/result/profile/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: { email }\n };\n return axios(config)\n .then(res => {\n let profile;\n if (res.data['result']) {\n profile = res.data['result'];\n if (profile) {\n localStorage.setItem('profile', JSON.stringify(profile));\n }\n }\n return profile;\n })\n}\n\nexport const getIndividualResult = () => {\n let data1 = { 'email': localStorage.getItem('email') }\n let config = {\n method: 'post',\n url: server + '/result/individual_result/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data1\n }\n\n return axios(config);\n}","import server from '@config'\nimport axios from 'axios'\n\nexport const getMissionById = (missionId) => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n return axios(config);\n}\n\nexport const removeMemberFromMission = (missionId, contactId, companyId) => {\n return getMissionById(missionId)\n .then((res) => {\n if (res.data) {\n const mission = res.data;\n if (mission.mission_member) {\n console.log('mission members before', mission.mission_member.map((m) => ({ name: m.first_name, id: m.id })));\n mission.mission_member = mission.mission_member.filter((m) => m.id !== contactId);\n console.log('mission members after', mission.mission_member.map((m) => ({ name: m.first_name, id: m.id })));\n }\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n mission_manager: mission.mission_manager?.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.contact && value.contact.id).map((value) => { return { id: value.contact.id, benchmark_type: value.benchmark_type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: mission.type, company: companyId || mission.mission_manager?.company_id\n };\n return updateMission(missionId, data);\n }\n return res;\n })\n}\n\nexport const removeBenchmarkFromMission = (missionId, contactId) => {\n return getMissionById(missionId)\n .then((res) => {\n if (res.data) {\n const mission = res.data;\n if (mission.mission_benchmarks) {\n mission.mission_benchmarks = mission.mission_benchmarks.filter((m) => m.contact.id !== contactId);\n }\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n mission_manager: mission.mission_manager.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.contact && value.contact.id).map((value) => { return { id: value.contact.id, benchmark_type: value.benchmark_type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: mission.type, company: mission.mission_manager.company_id\n };\n return updateMission(missionId, data);\n }\n return res;\n })\n}\n\nexport const duplicateMission = (data, companyId) => {\n let mission = JSON.parse(JSON.stringify(data));\n mission = {\n ...mission,\n mission_manager: mission?.mission_manager?.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.contact && value.contact.id).map((value) => { return { id: value.contact.id, benchmark_type: value.benchmark_type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: mission.type, company: companyId || mission?.mission_manager?.company_id,\n reference: `${mission.reference}(1)`\n };\n delete mission.mission_creation_date;\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: mission\n }\n console.log('mission config', config);\n return axios(config);\n}\n\nconst updateMission = (missionId, data) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + missionId,\n data: data\n }\n console.log('mission config', config);\n return axios(config);\n}","import { MDBModal, MDBModalBody, MDBModalFooter, MDBModalHeader } from 'mdbreact';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './ConfirmationDialog.css';\n\nfunction ConfirmationDialog({ title, message, yesText, noText, onYesAction, onNoAction, onToggle, isOpen, ...props }) {\n\n const { t } = useTranslation();\n\n const [modal, setModal] = useState(!!isOpen);\n\n const toggle = () => {\n const modalState = modal;\n setModal(!modalState);\n if (onToggle && typeof onToggle === 'function') {\n onToggle(!modalState);\n }\n }\n\n const onYesClick = () => {\n if (onYesAction && typeof onYesAction === 'function') {\n onYesAction();\n }\n toggle();\n }\n\n const onNoClick = () => {\n if (onNoAction && typeof onNoAction === 'function') {\n onNoAction();\n }\n toggle();\n }\n\n return (\n <>\n {\n props.children ?\n
\n {props.children}\n
\n : null\n }\n \n {\n title ?\n \n {title}\n \n : null\n }\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n );\n}\n\nexport default ConfirmationDialog;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Desktop-screens\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"02_Recrutement\",\n transform: \"translate(-792.000000, -505.000000)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: 0,\n width: 1920,\n height: 9681\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n opacity: 0.300000012,\n x: 0,\n y: 0,\n width: 1920,\n height: 9460\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table-02\",\n transform: \"translate(400.000000, 159.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table\",\n transform: \"translate(0.000000, 192.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,70 L1115,70 C1117.76142,70 1120,72.2385763 1120,75 L1120,576 C1120,578.761424 1117.76142,581 1115,581 L5,581 C2.23857625,581 3.38176876e-16,578.761424 0,576 L0,75 C-3.38176876e-16,72.2385763 2.23857625,70 5,70 Z\",\n id: \"Rectangle-8-Copy-2\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Row-Style-02\",\n transform: \"translate(0.000000, 134.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table-/-Row-/-Background\",\n fillOpacity: 0.1\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: 0,\n y: 0,\n width: 1120,\n height: 56\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Total-beneficiaires\",\n transform: \"translate(392.000000, 19.000000)\",\n fill: \"#908D95\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/grey/profile-copy\",\n transform: \"translate(0.000000, 1.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.33323313,8.29077659 C6.8862882,8.29077659 8.14528809,7.0317767 8.14528809,5.47872163 C8.14528809,3.92566656 6.8862882,2.66666667 5.33323313,2.66666667 C3.78017806,2.66666667 2.52117817,3.92566656 2.52117817,5.47872163 C2.52117817,7.0317767 3.78017806,8.29077659 5.33323313,8.29077659 Z M5.33323313,9.35744326 C3.19107433,9.35744326 1.4545115,7.62088044 1.4545115,5.47872163 C1.4545115,3.33656283 3.19107433,1.6 5.33323313,1.6 C7.47539194,1.6 9.21195476,3.33656283 9.21195476,5.47872163 C9.21195476,7.62088044 7.47539194,9.35744326 5.33323313,9.35744326 Z M1.15568264,13.4635226 L9.51078362,13.4635226 L9.41966997,12.825727 C9.30598133,12.0299065 8.84420721,11.3258868 8.15955903,10.9045648 L7.69369443,10.6178789 C7.3268308,10.3921167 6.87224761,10.361744 6.47861062,10.5366937 C5.74941366,10.8607813 4.9170526,10.8607813 4.18785564,10.5366937 C3.79421865,10.361744 3.33963546,10.3921167 2.97277184,10.6178789 L2.50690723,10.9045648 C1.82225905,11.3258868 1.36048493,12.0299065 1.24679629,12.825727 L1.15568264,13.4635226 Z M2.41373458,9.7094434 C3.08018332,9.2993211 3.90598446,9.24414562 4.62107001,9.56196142 C5.07446392,9.76346983 5.59200234,9.76346983 6.04539626,9.56196142 C6.76048181,9.24414562 7.58628294,9.2993211 8.25273168,9.7094434 L8.71859628,9.99612931 C9.67322685,10.5835943 10.3170958,11.5652353 10.4756161,12.6748776 L10.6616025,13.9767823 C10.7033287,14.2688661 10.4766844,14.5301892 10.1816352,14.5301892 L0.484831093,14.5301892 C0.189781903,14.5301892 -0.0368624779,14.2688661 0.00486377868,13.9767823 L0.190850166,12.6748776 C0.349370487,11.5652353 0.993239412,10.5835943 1.94786998,9.99612931 L2.41373458,9.7094434 Z M12.2665665,9.69687695 C10.7670553,9.69687695 9.55146132,8.48128297 9.55146132,6.98177181 C9.55146132,5.48226064 10.7670553,4.26666667 12.2665665,4.26666667 C13.7660776,4.26666667 14.9816716,5.48226064 14.9816716,6.98177181 C14.9816716,8.48128297 13.7660776,9.69687695 12.2665665,9.69687695 Z M12.2665665,8.63021028 C13.1769739,8.63021028 13.9150049,7.89217924 13.9150049,6.98177181 C13.9150049,6.07136438 13.1769739,5.33333333 12.2665665,5.33333333 C11.356159,5.33333333 10.618128,6.07136438 10.618128,6.98177181 C10.618128,7.89217924 11.356159,8.63021028 12.2665665,8.63021028 Z M11.1104989,13.3177991 L10.9898544,12.4732877 C10.9791973,12.3986878 10.9665459,12.3246137 10.9519442,12.2511325 L14.8218887,12.2511325 L14.8102884,12.1699304 C14.7441559,11.7070026 14.4755424,11.2974752 14.0772834,11.0523927 L13.7511782,10.8517126 C13.5842492,10.748987 13.3774063,10.7351669 13.198295,10.814772 C12.6051162,11.078407 11.9280167,11.078407 11.3348379,10.814772 C11.1557266,10.7351669 10.9488837,10.748987 10.7819547,10.8517126 L10.498738,11.0259998 C10.323373,10.7142707 10.1080718,10.4258467 9.85786325,10.168395 C9.87076247,10.1601445 9.88374578,10.1519981 9.89681226,10.1439572 L10.2229175,9.94327705 C10.6894316,9.65619144 11.2674924,9.6175686 11.7680523,9.84003966 C12.085428,9.98109555 12.4477049,9.98109555 12.7650807,9.84003966 C13.2656405,9.6175686 13.8437013,9.65619144 14.3102154,9.94327705 L14.6363207,10.1439572 C15.3045621,10.5551827 15.7552703,11.2423314 15.8662345,12.019081 L15.996425,12.9304143 C16.0256334,13.1348729 15.8669823,13.3177991 15.6604479,13.3177991 L11.1104989,13.3177991 Z\",\n id: \"contacts-icons\"\n}))))))));\n\nvar SvgContacts = function SvgContacts(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgContacts, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/contacts.3631f71b.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Contacts } from '../../../assets/contacts.svg';\n\nfunction ContactsIcon(props) {\n return (\n \n );\n}\n\nexport default ContactsIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 0,\n width: 261,\n height: 184,\n rx: 8\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-8.0%\",\n y: \"-8.2%\",\n width: \"116.1%\",\n height: \"122.8%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-2\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 6,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(2.200000, 0.600000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6,2.6 C11.1891037,2.6 11.6666667,3.07756293 11.6666667,3.66666667 L11.6666667,3.66666667 L11.6666667,13.2666667 C11.6666667,13.8557704 11.1891037,14.3333333 10.6,14.3333333 L10.6,14.3333333 L4.2,14.3333333 C3.61089627,14.3333333 3.13333333,13.8557704 3.13333333,13.2666667 L3.13333333,13.2666667 L3.13266667,12.1996667 L1.53333333,12.2 C0.971007043,12.2 0.510311935,11.7648652 0.469592393,11.2129399 L0.466666667,11.1333333 L0.466666667,1.53333333 C0.466666667,0.971007043 0.901801488,0.510311935 1.45372675,0.469592393 L1.53333333,0.466666667 L7.93333333,0.466666667 C8.49565962,0.466666667 8.95635473,0.901801488 8.99707427,1.45372675 L9,1.53333333 L9,2.6 Z M10.6,3.66666667 L4.2,3.66666667 L4.2,13.2666667 L10.6,13.2666667 L10.6,3.66666667 Z M7.93333333,1.53333333 L1.53333333,1.53333333 L1.53333333,11.1333333 L3.13266667,11.1326667 L3.13333333,3.66666667 C3.13333333,3.11683652 3.54934371,2.66417079 4.08377492,2.60625905 L4.2,2.6 L7.93333333,2.6 L7.93333333,1.53333333 Z\",\n id: \"Combined-Shape\"\n}));\n\nvar SvgCopy = function SvgCopy(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCopy, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/copy.198cc49a.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Copy } from '../../../assets/icons/copy.svg';\n\nfunction CopyIcon(props) {\n return (\n \n );\n}\n\nexport default CopyIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/grey/arrow-right\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4,14 C2.8954305,14 2,13.1045695 2,12 C2,10.8954305 2.8954305,10 4,10 C5.1045695,10 6,10.8954305 6,12 C6,13.1045695 5.1045695,14 4,14 Z M20,14 C18.8954305,14 18,13.1045695 18,12 C18,10.8954305 18.8954305,10 20,10 C21.1045695,10 22,10.8954305 22,12 C22,13.1045695 21.1045695,14 20,14 Z M12,14 C10.8954305,14 10,13.1045695 10,12 C10,10.8954305 10.8954305,10 12,10 C13.1045695,10 14,10.8954305 14,12 C14,13.1045695 13.1045695,14 12,14 Z\",\n id: \"Combined-Shape\"\n}));\n\nvar Svg3Dots = function Svg3Dots(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Svg3Dots, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/3-dots.9e279d62.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as MoreDots } from '../../../assets/icons/3-dots.svg';\n\nfunction MoreDotsIcon(props) {\n return (\n \n );\n}\n\nexport default MoreDotsIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 0,\n width: 1120,\n height: 56,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-20.5%\",\n width: \"102.2%\",\n height: \"144.6%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-2\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"shadowBlurOuter1\",\n in2: \"SourceAlpha\",\n operator: \"out\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-3\",\n x: 0,\n y: 0,\n width: 261,\n height: 184,\n rx: 8\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-8.0%\",\n y: \"-8.2%\",\n width: \"116.1%\",\n height: \"122.8%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-4\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 6,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8,0 C8.8836556,0 9.6,0.7163444 9.6,1.6 L9.6,1.6 L9.6,2.133 L11.2,2.13333333 C12.0345636,2.13333333 12.7198898,2.77229485 12.7934613,3.58770072 L12.8,3.73333333 C12.8,4.42984884 12.3549412,5.02241529 11.7336933,5.24216299 L11.7333333,14.4 C11.7333333,15.2836556 11.0169889,16 10.1333333,16 L10.1333333,16 L2.66666667,16 C1.78301107,16 1.06666667,15.2836556 1.06666667,14.4 L1.06666667,14.4 L1.06630665,5.24216299 C0.445058786,5.02241529 0,4.42984884 0,3.73333333 C0,2.84967773 0.7163444,2.13333333 1.6,2.13333333 L1.6,2.13333333 L3.2,2.133 L3.2,1.6 C3.2,0.765436378 3.83896152,0.0801102148 4.65436739,0.00653867703 L4.8,0 Z M10.6666667,5.33333333 L2.13333333,5.33333333 L2.13333333,14.4 C2.13333333,14.6735124 2.33922143,14.8989372 2.60446873,14.9297452 L2.60446873,14.9297452 L2.66666667,14.9333333 L10.1333333,14.9333333 C10.4278852,14.9333333 10.6666667,14.6945519 10.6666667,14.4 L10.6666667,14.4 L10.6666667,5.33333333 Z M3.73333333,6.93333333 C4.0278852,6.93333333 4.26666667,7.1721148 4.26666667,7.46666667 L4.26666667,12.8 C4.26666667,13.0945519 4.0278852,13.3333333 3.73333333,13.3333333 C3.43878147,13.3333333 3.2,13.0945519 3.2,12.8 L3.2,7.46666667 C3.2,7.1721148 3.43878147,6.93333333 3.73333333,6.93333333 Z M6.4,6.93333333 C6.69455187,6.93333333 6.93333333,7.1721148 6.93333333,7.46666667 L6.93333333,12.8 C6.93333333,13.0945519 6.69455187,13.3333333 6.4,13.3333333 C6.10544813,13.3333333 5.86666667,13.0945519 5.86666667,12.8 L5.86666667,7.46666667 C5.86666667,7.1721148 6.10544813,6.93333333 6.4,6.93333333 Z M9.06666667,6.93333333 C9.36121853,6.93333333 9.6,7.1721148 9.6,7.46666667 L9.6,12.8 C9.6,13.0945519 9.36121853,13.3333333 9.06666667,13.3333333 C8.7721148,13.3333333 8.53333333,13.0945519 8.53333333,12.8 L8.53333333,7.46666667 C8.53333333,7.1721148 8.7721148,6.93333333 9.06666667,6.93333333 Z M3.2,3.199 L1.6,3.2 C1.30544813,3.2 1.06666667,3.43878147 1.06666667,3.73333333 C1.06666667,4.0278852 1.30544813,4.26666667 1.6,4.26666667 L1.6,4.26666667 L11.2,4.26666667 C11.4945519,4.26666667 11.7333333,4.0278852 11.7333333,3.73333333 C11.7333333,3.43878147 11.4945519,3.2 11.2,3.2 L11.2,3.2 L9.6,3.199 L9.6,3.2 L3.2,3.2 L3.2,3.199 Z M8,1.06666667 L4.8,1.06666667 C4.50544813,1.06666667 4.26666667,1.30544813 4.26666667,1.6 L4.26666667,1.6 L4.26666667,2.13333333 L8.53333333,2.13333333 L8.53333333,1.6 C8.53333333,1.32648755 8.32744523,1.10106285 8.06219793,1.07025479 L8.06219793,1.07025479 L8,1.06666667 Z\",\n id: \"Combined-Shape\"\n});\n\nvar SvgTrash = function SvgTrash(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-Copy\",\n style: {\n transform: \"translate(1.5px)\"\n }\n }, _ref3));\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrash, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/trash.6fd7225d.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Trash } from '../../../assets/icons/trash.svg';\n\nfunction TrashIcon(props) {\n return (\n \n );\n}\n\nexport default TrashIcon;","import i18next from 'i18next';\r\nimport moment, { isMoment } from 'moment';\r\nimport ReactGA from 'react-ga';\r\n\r\nexport const isUserLoggedIn = () => {\r\n return localStorage.getItem('token') ? true : false;\r\n}\r\n\r\nexport const isB2B = () => {\r\n const profile = getProfile();\r\n if (profile) {\r\n return !!(profile.companies && profile.companies.length);\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const getLanguage = () => {\r\n\r\n var lang = i18next.language;\r\n if (lang) {\r\n var dash = lang.indexOf('-');\r\n if (dash > -1)\r\n return lang.substring(0, dash);\r\n else\r\n return lang;\r\n } else {\r\n return 'en';\r\n }\r\n}\r\n\r\n/**\r\n * Event - Add custom tracking event.\r\n * @param {string} category \r\n * @param {string} action \r\n * @param {string} label \r\n */\r\nexport const gaEvent = (category, action, label) => {\r\n ReactGA.event({\r\n category: category,\r\n action: action,\r\n label: label\r\n });\r\n console.log(action);\r\n};\r\n\r\nexport const formatDate = (date, format) => {\r\n // console.log('date', date, (new Date(date).format(\"YYYY\")));\r\n if (format) {\r\n return moment(date).format(format);\r\n }\r\n switch (getLanguage()) {\r\n case 'fr':\r\n return moment(date).format('DD/MM/YYYY');\r\n\r\n default:\r\n return moment(date).format('MM/DD/YYYY');\r\n }\r\n}\r\n\r\nexport const getProfile = () => {\r\n try {\r\n return JSON.parse(localStorage.getItem('profile'));\r\n } catch (err) {\r\n return null;\r\n }\r\n}\r\n\r\nexport const logOut = () => {\r\n localStorage.removeItem(\"email\");\r\n localStorage.removeItem(\"referral\");\r\n localStorage.removeItem(\"tokens\");\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"partner\");\r\n localStorage.removeItem(\"profile\");\r\n}\r\n\r\nexport const stopPropagation = (e) => {\r\n if (e && e.stopPropagation && typeof e.stopPropagation === 'function') {\r\n e.stopPropagation();\r\n }\r\n}\r\n\r\nexport const truncate = (text, characters) => {\r\n let value = text;\r\n if (value) {\r\n if (value.length > characters) {\r\n value = value.slice(0, characters) + '...';\r\n }\r\n }\r\n return value;\r\n}\r\n\r\nexport const getProp = (object, path) => {\r\n if (object === null || object === undefined) return undefined;\r\n else if (path.length === 1) return object[path[0]];\r\n else if (path.length === 0) throw Error('path not found.');\r\n else {\r\n if (object[path[0]]) return getProp(object[path[0]], path.slice(1));\r\n else {\r\n // object[path[0]] = {};\r\n return getProp(object[path[0]], path.slice(1));\r\n }\r\n }\r\n};\r\n\r\nexport const checkQuotationAccess = () => {\r\n const profile = getProfile();\r\n if (profile) {\r\n if (profile.companies && profile.companies.length) {\r\n return !!profile.companies[0].quotation_access;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport const isEvaluationCompleted = (individualResult) => {\r\n if (individualResult) {\r\n if (individualResult.w_1 !== -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport const isDateSixMonthsAgo = (inputDate) => {\r\n // Parse the input date\r\n const date = new Date(inputDate);\r\n \r\n // Get the current date\r\n const currentDate = new Date();\r\n \r\n // Calculate the date six months ago\r\n const sixMonthsAgo = new Date(currentDate);\r\n sixMonthsAgo.setMonth(currentDate.getMonth() - 6);\r\n \r\n // Compare the input date with six months ago\r\n return date <= sixMonthsAgo || true;\r\n }","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Desktop-screens\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"02_Recrutement\",\n transform: \"translate(-481.000000, -446.000000)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: 0,\n width: 1920,\n height: 9681\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n opacity: 0.300000012,\n x: 0,\n y: 0,\n width: 1920,\n height: 9460\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table-02\",\n transform: \"translate(400.000000, 159.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table\",\n transform: \"translate(0.000000, 192.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,70 L1115,70 C1117.76142,70 1120,72.2385763 1120,75 L1120,576 C1120,578.761424 1117.76142,581 1115,581 L5,581 C2.23857625,581 3.38176876e-16,578.761424 0,576 L0,75 C-3.38176876e-16,72.2385763 2.23857625,70 5,70 Z\",\n id: \"Rectangle-8-Copy-2\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Header-Table-Copy\",\n transform: \"translate(20.000000, 83.000000)\",\n fill: \"#908D95\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/white/arrow/order-table-row\",\n transform: \"translate(61.000000, 12.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,9.29289322 C3.65337718,8.93240926 4.22060824,8.90467972 4.61289944,9.20970461 L4.70710678,9.29289322 L8,12.585 L11.2928932,9.29289322 C11.6533772,8.93240926 12.2206082,8.90467972 12.6128994,9.20970461 L12.7071068,9.29289322 C13.0675907,9.65337718 13.0953203,10.2206082 12.7902954,10.6128994 L12.7071068,10.7071068 L8.70710678,14.7071068 C8.34662282,15.0675907 7.77939176,15.0953203 7.38710056,14.7902954 L7.29289322,14.7071068 L3.29289322,10.7071068 C2.90236893,10.3165825 2.90236893,9.68341751 3.29289322,9.29289322 Z\",\n id: \"Arrow-bottom\",\n fillOpacity: 0.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,1.29289322 C3.65337718,0.932409257 4.22060824,0.904679722 4.61289944,1.20970461 L4.70710678,1.29289322 L8,4.585 L11.2928932,1.29289322 C11.6533772,0.932409257 12.2206082,0.904679722 12.6128994,1.20970461 L12.7071068,1.29289322 C13.0675907,1.65337718 13.0953203,2.22060824 12.7902954,2.61289944 L12.7071068,2.70710678 L8.70710678,6.70710678 C8.34662282,7.06759074 7.77939176,7.09532028 7.38710056,6.79029539 L7.29289322,6.70710678 L3.29289322,2.70710678 C2.90236893,2.31658249 2.90236893,1.68341751 3.29289322,1.29289322 Z\",\n id: \"Arrow-top\",\n transform: \"translate(8.000000, 4.000000) scale(1, -1) translate(-8.000000, -4.000000) \"\n})))))));\n\nvar SvgSortAsc = function SvgSortAsc(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSortAsc, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort-asc.752df4fd.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Sort } from '../../../assets/sort-asc.svg';\n\nfunction SortAscIcon(props) {\n return (\n \n );\n}\n\nexport default SortAscIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Desktop-screens\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"02_Recrutement\",\n transform: \"translate(-481.000000, -446.000000)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: 0,\n width: 1920,\n height: 9681\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n opacity: 0.300000012,\n x: 0,\n y: 0,\n width: 1920,\n height: 9460\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table-02\",\n transform: \"translate(400.000000, 159.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table\",\n transform: \"translate(0.000000, 192.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,70 L1115,70 C1117.76142,70 1120,72.2385763 1120,75 L1120,576 C1120,578.761424 1117.76142,581 1115,581 L5,581 C2.23857625,581 3.38176876e-16,578.761424 0,576 L0,75 C-3.38176876e-16,72.2385763 2.23857625,70 5,70 Z\",\n id: \"Rectangle-8-Copy-2\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Header-Table-Copy\",\n transform: \"translate(20.000000, 83.000000)\",\n fill: \"#908D95\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/white/arrow/order-table-row\",\n transform: \"translate(61.000000, 12.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,9.29289322 C3.65337718,8.93240926 4.22060824,8.90467972 4.61289944,9.20970461 L4.70710678,9.29289322 L8,12.585 L11.2928932,9.29289322 C11.6533772,8.93240926 12.2206082,8.90467972 12.6128994,9.20970461 L12.7071068,9.29289322 C13.0675907,9.65337718 13.0953203,10.2206082 12.7902954,10.6128994 L12.7071068,10.7071068 L8.70710678,14.7071068 C8.34662282,15.0675907 7.77939176,15.0953203 7.38710056,14.7902954 L7.29289322,14.7071068 L3.29289322,10.7071068 C2.90236893,10.3165825 2.90236893,9.68341751 3.29289322,9.29289322 Z\",\n id: \"Arrow-bottom\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,1.29289322 C3.65337718,0.932409257 4.22060824,0.904679722 4.61289944,1.20970461 L4.70710678,1.29289322 L8,4.585 L11.2928932,1.29289322 C11.6533772,0.932409257 12.2206082,0.904679722 12.6128994,1.20970461 L12.7071068,1.29289322 C13.0675907,1.65337718 13.0953203,2.22060824 12.7902954,2.61289944 L12.7071068,2.70710678 L8.70710678,6.70710678 C8.34662282,7.06759074 7.77939176,7.09532028 7.38710056,6.79029539 L7.29289322,6.70710678 L3.29289322,2.70710678 C2.90236893,2.31658249 2.90236893,1.68341751 3.29289322,1.29289322 Z\",\n id: \"Arrow-top\",\n fillOpacity: 0.5,\n transform: \"translate(8.000000, 4.000000) scale(1, -1) translate(-8.000000, -4.000000) \"\n})))))));\n\nvar SvgSortDesc = function SvgSortDesc(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSortDesc, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort-desc.159f642f.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Sort } from '../../../assets/sort-desc.svg';\n\nfunction SortDescIcon(props) {\n return (\n \n );\n}\n\nexport default SortDescIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Desktop-screens\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"02_Recrutement\",\n transform: \"translate(-481.000000, -446.000000)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: 0,\n width: 1920,\n height: 9681\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n opacity: 0.300000012,\n x: 0,\n y: 0,\n width: 1920,\n height: 9460\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table-02\",\n transform: \"translate(400.000000, 159.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Table\",\n transform: \"translate(0.000000, 192.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,70 L1115,70 C1117.76142,70 1120,72.2385763 1120,75 L1120,576 C1120,578.761424 1117.76142,581 1115,581 L5,581 C2.23857625,581 3.38176876e-16,578.761424 0,576 L0,75 C-3.38176876e-16,72.2385763 2.23857625,70 5,70 Z\",\n id: \"Rectangle-8-Copy-2\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Header-Table-Copy\",\n transform: \"translate(20.000000, 83.000000)\",\n fill: \"#908D95\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/white/arrow/order-table-row\",\n transform: \"translate(61.000000, 12.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,9.29289322 C3.65337718,8.93240926 4.22060824,8.90467972 4.61289944,9.20970461 L4.70710678,9.29289322 L8,12.585 L11.2928932,9.29289322 C11.6533772,8.93240926 12.2206082,8.90467972 12.6128994,9.20970461 L12.7071068,9.29289322 C13.0675907,9.65337718 13.0953203,10.2206082 12.7902954,10.6128994 L12.7071068,10.7071068 L8.70710678,14.7071068 C8.34662282,15.0675907 7.77939176,15.0953203 7.38710056,14.7902954 L7.29289322,14.7071068 L3.29289322,10.7071068 C2.90236893,10.3165825 2.90236893,9.68341751 3.29289322,9.29289322 Z\",\n id: \"Arrow-bottom\",\n fillOpacity: 0.5\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.29289322,1.29289322 C3.65337718,0.932409257 4.22060824,0.904679722 4.61289944,1.20970461 L4.70710678,1.29289322 L8,4.585 L11.2928932,1.29289322 C11.6533772,0.932409257 12.2206082,0.904679722 12.6128994,1.20970461 L12.7071068,1.29289322 C13.0675907,1.65337718 13.0953203,2.22060824 12.7902954,2.61289944 L12.7071068,2.70710678 L8.70710678,6.70710678 C8.34662282,7.06759074 7.77939176,7.09532028 7.38710056,6.79029539 L7.29289322,6.70710678 L3.29289322,2.70710678 C2.90236893,2.31658249 2.90236893,1.68341751 3.29289322,1.29289322 Z\",\n id: \"Arrow-top\",\n fillOpacity: 0.5,\n transform: \"translate(8.000000, 4.000000) scale(1, -1) translate(-8.000000, -4.000000) \"\n})))))));\n\nvar SvgSort = function SvgSort(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSort, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sort.8474b762.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Sort } from '../../../assets/sort.svg';\n\nfunction SortIcon(props) {\n return (\n \n );\n}\n\nexport default SortIcon;","import { MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { getProp } from 'utils/utils';\nimport SortAscIcon from '../Icons/SortAscIcon';\nimport SortDescIcon from '../Icons/SortDescIcon';\nimport SortIcon from '../Icons/SortIcon';\n\nfunction Table({ columns = [], data = [], rowComponent, noDataComponent, className, rowClickable, id = null }) {\n\n const [cols, setCols] = useState([]);\n const [rows, setRows] = useState([]);\n const [sortBy, setSortBy] = useState({});\n\n const { t } = useTranslation();\n\n useEffect(() => {\n setCols(columns);\n }, [columns]);\n\n useEffect(() => {\n if(sortBy && sortBy.col) {\n sortData(sortBy.col, sortBy.type);\n } else {\n setRows([...data]);\n }\n }, [data]);\n\n const ShowSortIcon = (col) => {\n let icon = null;\n if (col.sortable) {\n icon = ;\n if (sortBy.col) {\n if (sortBy.col.key === col.key) {\n if (sortBy.type === 'asc') {\n icon = ;\n } else {\n icon = ;\n }\n }\n }\n }\n return icon;\n }\n\n const sort = (col) => {\n if (col.sortable && col.key && typeof col.key === 'string') {\n\n let sortOrder = 'asc';\n if (sortBy.col) {\n if (sortBy.col.key === col.key) {\n if (sortBy.type === 'asc') {\n sortOrder = 'desc';\n setSortBy({\n col, type: 'desc'\n });\n } else {\n setSortBy({});\n sortOrder = null;\n }\n } else {\n setSortBy({\n col, type: 'asc'\n })\n }\n } else {\n setSortBy({\n col, type: 'asc'\n });\n }\n\n sortData(col, sortOrder);\n }\n }\n\n const sortData = (col, sortOrder) => {\n if (sortOrder) {\n if (sortOrder === 'asc') {\n setRows([\n ...data.sort((a, b) => {\n let order = 0;\n let aValue = getProp(a, col.key.split('.'));\n let bValue = getProp(b, col.key.split('.'));\n\n /* Check if value is date or not */\n if (col.type === 'date') {\n if (moment(aValue).isValid()) {\n aValue = new Date(aValue).getTime();\n }\n if (moment(bValue).isValid()) {\n bValue = new Date(bValue).getTime();\n }\n }\n\n if (aValue != null && bValue != null) {\n order = typeof aValue == \"number\" ? (aValue - bValue) : aValue.localeCompare(bValue);\n } else {\n if (aValue != null) {\n order = -1;\n } else if (bValue != null) {\n order = 1;\n }\n }\n return order;\n })\n ]);\n } else {\n const sortedData = [\n ...data.sort((a, b) => {\n let order = 0;\n let aValue = getProp(a, col.key.split('.'));\n let bValue = getProp(b, col.key.split('.'));\n\n /* Check if value is date or not */\n if (col.type === 'date') {\n if (moment(aValue).isValid()) {\n aValue = new Date(aValue).getTime();\n }\n if (moment(bValue).isValid()) {\n bValue = new Date(bValue).getTime();\n }\n }\n\n if (aValue != null && bValue != null) {\n order = typeof aValue == \"number\" ? (bValue - aValue) : bValue.localeCompare(aValue);\n } else {\n if (bValue != null) {\n order = 1;\n } else if (aValue != null) {\n order = -1;\n }\n }\n return order;\n })\n ]\n setRows(sortedData);\n }\n } else {\n setRows([...data]);\n }\n }\n\n\n return (\n \n \n {\n cols.map((columnGroup, colGroupIndex) => {\n return (\n \n {\n columnGroup.map((column, colIndex) => {\n return (\n !column.hidden ?\n sort(column)}>\n
\n {\n column.tooltip ?\n \n {t(column.title)}\n {t(column.tooltip)}\n \n : {t(column.title)}\n }\n {ShowSortIcon(column)}\n
\n \n : null\n )\n })\n }\n \n )\n })\n }\n
\n \n {\n rows.map((row, index) => {\n return (rowComponent(row, index))\n })\n }\n {\n (!rows.length && noDataComponent) ?\n noDataComponent : null\n }\n \n
\n\n );\n}\n\nexport default Table;","import React from 'react';\nimport './Loader.css';\n\nfunction Loader(props) {\n return (\n
\n {(!props.replace || !props.loading) &&\n props.children\n }\n {props.loading &&\n
\n
\n Loading...\n
\n
\n }\n
\n );\n}\n\nexport default Loader;","import React, { useEffect, useRef, useState } from 'react'\r\nimport ReactFlagsSelect from 'react-flags-select'\r\nimport 'react-flags-select/css/react-flags-select.css'\r\nimport './MultiLang.css'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { getLanguage } from 'utils/utils'\r\n\r\nconst MultiLang = () => {\r\n\r\n const { i18n } = useTranslation();\r\n\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n\r\n // update selected country manually when a language is changed\r\n // externally without using this selection\r\n const selectedCountry = getSelectedCountry();\r\n if (ref.current && ref.current.state && ref.current.state) {\r\n ref.current.state.selected = selectedCountry;\r\n }\r\n }, [i18n.language])\r\n\r\n const selLang = country => {\r\n var lang;\r\n switch (country) {\r\n case 'US':\r\n lang = 'en';\r\n break;\r\n case 'FR':\r\n lang = 'fr';\r\n break;\r\n default:\r\n lang = 'en';\r\n }\r\n i18n.changeLanguage(lang);\r\n document.documentElement.lang = i18n.language;\r\n }\r\n\r\n const getSelectedCountry = () => {\r\n var lang = getLanguage()\r\n //console.log('i18n country language is ' + lang);\r\n switch (lang) {\r\n case 'en':\r\n return 'US';\r\n case 'fr':\r\n return 'FR';\r\n default:\r\n return 'US';\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default MultiLang\r\n","import { createContext, useContext } from 'react'\n\nexport const AuthContext = createContext()\n\nexport function useAuth() {\n return useContext(AuthContext)\n}","import MultiLang from 'components/MultiLang/MultiLang';\nimport { useAuth } from 'context/auth';\nimport { MDBIcon } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, withRouter } from 'react-router-dom';\nimport { getProfile, logOut } from 'utils/utils';\nimport logo from '../../../assets/WWT icone blue.svg';\nimport './Header.css';\n\nfunction Header(props) {\n const { t } = useTranslation();\n const [profile, setProfile] = useState(null);\n const [selectedMenu, setSelectedMenu] = useState(null);\n const { setAuthTokens } = useAuth();\n const [company, setCompany] = useState(null);\n\n useEffect(() => {\n setProfile(getProfile());\n }, [])\n\n useEffect(() => {\n if (profile && profile.companies && profile.companies.length) {\n setCompany(profile.companies[0].company);\n }\n }, [profile])\n\n useEffect(() => {\n console.log('location', props.location);\n if (props && props.location && props.location.pathname) {\n const menu = props.location.pathname.split('/').length ? props.location.pathname.split('/')[1] : null;\n setSelectedMenu(menu)\n }\n }, [props.location])\n\n const logOutUser = () => {\n logOut();\n setAuthTokens(null);\n }\n\n return (\n
\n
\n \n
\n\n
\n \n
\n
\n );\n}\n\nexport default withRouter(Header);","import { MDBModal, MDBModalBody } from 'mdbreact';\nimport React from 'react';\nimport { getLanguage } from 'utils/utils';\nimport './BarometerQuestionnaireResult.css';\n\nfunction BarometerQuestionnaireResult({ isOpen, questionnaireResult, toggle }) {\n const lang = getLanguage();\n return (\n \n \n
\n {\n questionnaireResult?.map((question, index) => {\n return (\n
\n
{index + 1}. {(lang === 'fr') ? question?.fr : question?.en}
\n {\n question?.options?.map((option, oIndex) => {\n return (\n
\n
{(lang === 'fr') ? option?.fr : option?.en}
\n
{option?.selected_count}
\n
\n )\n })\n }\n
\n )\n })\n }\n
\n
\n
\n )\n}\n\nexport default BarometerQuestionnaireResult;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport ContactsIcon from 'components/common/Icons/ContactsIcon';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { formatDate, getProfile, stopPropagation, truncate } from 'utils/utils';\nimport Header from '../Header/Header';\n// import BarometerDetails from './BarometerDetails/BarometerDetails';\nimport './Barometer.css';\nimport BarometerQuestionnaireResult from './BarometerQuestionnaireResult/BarometerQuestionnaireResult';\n\n\nfunction Barometer(props) {\n\n const { t } = useTranslation();\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [missionsForTable, setMissionsForTable] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n const [companyId, setCompanyId] = useState(null);\n const [questionnaireResult, setQuestionnaireResult] = useState([]);\n const [qestionnaireResultModelOpen, setQestionnaireResultModelOpen] = useState(false);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n const toggleQuestionnaireResultModal = () => {\n setQestionnaireResultModelOpen(!qestionnaireResultModelOpen);\n }\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n getQuestionnaireResult();\n }\n }, [companyId])\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n case \"2\":\n getColleaguesMissions();\n break;\n\n default:\n break;\n }\n // setDemoMissions();\n }, [activeItem])\n\n useEffect(() => {\n if (missions) {\n const missionForTable = [];\n missions.forEach((mission) => {\n const m = { ...mission };\n m.candidates = mission.mission_member ? mission.mission_member.length : 0;\n missionForTable.push(m);\n })\n setMissionsForTable(missionForTable);\n } else {\n setMissionsForTable([]);\n }\n updateSelectedMission();\n }, [missions]);\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=B',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const getColleaguesMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=B&colleagues=true',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const updateSelectedMission = () => {\n if (selectedMission) {\n const mission = missions.find((m) => m.pk === selectedMission.pk);\n setSelectedMission({ ...mission });\n }\n }\n\n const setDemoMissions = () => {\n setMissions([\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n },\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n }\n ])\n }\n\n const onMissionClick = (mission) => {\n setSelectedMission(mission);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission).then(() => {\n setLoading(false);\n toast.success(t('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success(t('Failed to delete mission.'));\n })\n }\n\n const getQuestionnaireResult = () => {\n let config = {\n method: 'get',\n url: server + '/response/demographic_answers_count?company=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n if (res?.data?.data) {\n setQuestionnaireResult(res.data.data);\n }\n })\n .catch((err) => {\n console.log('getQuestionnaireResult', err);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Barometer\")}

\n toggleQuestionnaireResultModal()}>\n {t(\"View Result\")}\n \n
\n \n \n \n \n \n {t(\"My barometer surveys\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n (\n onMissionClick(mission)}>\n \n \n \n \n \n \n\n \n )\n }\n />\n \n \n \n {/* setSelectedMission(null)} reload={() => getMyMissions()} /> */}\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n \n );\n}\n\nexport default Barometer;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.000000,512.000000) scale(0.100000,-0.100000)\",\n fill: \"#000000\",\n stroke: \"none\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M442 4890 c-106 -28 -187 -75 -267 -155 -81 -81 -127 -161 -155 -271 -20 -75 -20 -117 -20 -1894 0 -1262 3 -1834 11 -1876 38 -208 212 -397 419 -454 75 -20 84 -20 2130 -20 2265 0 2102 -5 2240 62 99 48 209 162 259 269 22 46 44 111 50 143 8 42 11 614 11 1876 0 1777 0 1819 -20 1894 -28 109 -74 190 -155 271 -81 82 -160 127 -271 155 -76 20 -117 20 -2118 19 -1977 0 -2043 -1 -2114 -19z m4203 -325 c50 -25 105 -80 130 -130 19 -37 20 -66 23 -422 l3 -383 -2241 0 -2240 0 0 363 c0 229 4 376 11 401 23 83 99 161 180 184 22 7 750 10 2064 9 1997 -2 2031 -2 2070 -22z m-3475 -1630 l0 -375 -425 0 -425 0 0 375 0 375 425 0 425 0 0 -375z m1230 0 l0 -375 -452 2 -453 3 -3 373 -2 372 455 0 455 0 0 -375z m1228 3 l-3 -373 -452 -3 -453 -2 0 375 0 375 455 0 455 0 -2 -372z m1172 -3 l0 -375 -425 0 -425 0 0 375 0 375 425 0 425 0 0 -375z m-3630 -1065 l0 -370 -425 0 -425 0 0 370 0 370 425 0 425 0 0 -370z m1230 0 l0 -370 -455 0 -455 0 0 370 0 370 455 0 455 0 0 -370z m1230 0 l0 -370 -455 0 -455 0 0 370 0 370 455 0 455 0 0 -370z m1170 0 l0 -370 -425 0 -425 0 0 370 0 370 425 0 425 0 0 -370z m-3630 -1010 l0 -320 -322 0 c-318 0 -324 1 -374 24 -27 13 -66 42 -87 66 -60 70 -67 106 -67 342 l0 208 425 0 425 0 0 -320z m1230 0 l0 -320 -455 0 -455 0 0 313 c0 173 3 317 7 320 3 4 208 7 455 7 l448 0 0 -320z m1228 -2 l2 -318 -455 0 -455 0 0 320 0 320 453 -2 452 -3 3 -317z m1172 114 c0 -236 -7 -272 -67 -342 -21 -24 -60 -53 -87 -66 -50 -23 -56 -24 -373 -24 l-323 0 0 320 0 320 425 0 425 0 0 -208z\"\n}));\n\nvar SvgTable = function SvgTable(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"512.000000pt\",\n height: \"512.000000pt\",\n viewBox: \"0 0 512.000000 512.000000\",\n preserveAspectRatio: \"xMidYMid meet\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTable, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/table.b4bfeda3.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Table } from '../../../assets/icons/table.svg';\n\nfunction TableIcon(props) {\n return (\n
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission?.default_questionnaire?.questionnaire_type}\n \n {mission.barometer_result_count}\n {formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}\n\n \n \n \n \n {\n (mission.mission_end_date && new Date(mission.mission_end_date).getTime() > new Date().getTime()) ?\n \n \n \n \n \n : null\n }\n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n
\n );\n}\n\nexport default TableIcon;","export const ContactTypes = {\n Candidate: {\n name: 'Candidate',\n value: 'C'\n },\n Employee: {\n name: 'Employee',\n value: 'E'\n }\n}\n\nexport const BenchmarkTypes = {\n M: 'Manager',\n E: 'Employee',\n employee: 'Employee',\n manager: 'Manager'\n}\n\nexport const getContactType = (type, field = 'name') => {\n const inputType = type ? type.toLowerCase() : '';\n const contactTypes = {\n candidate: {\n name: 'Candidate',\n value: 'C'\n },\n employee: {\n name: 'Employee',\n value: 'E'\n },\n manager: {\n name: 'Manager',\n value: 'M'\n },\n c: {\n name: 'Candidate',\n value: 'C'\n },\n e: {\n name: 'Employee',\n value: 'E'\n }\n }\n return contactTypes[inputType] ? contactTypes[inputType][field] : type;\n}\n\nexport const ValueFieldDetails = {\n cooperation: {\n key: 'cooperation',\n title: 'Cooperation',\n },\n benevolence: {\n key: 'benevolence',\n title: 'Benevolence',\n },\n exemplariness: {\n key: 'exemplariness',\n title: 'Exemplary',\n },\n engagement: {\n key: 'engagement',\n title: 'Engagement',\n },\n efficiency: {\n key: 'efficiency',\n title: 'Efficiency',\n }\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 80,\n width: 1120,\n height: 632,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-1.8%\",\n width: \"102.2%\",\n height: \"104.0%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-3\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-4\",\n x: 0,\n y: 0,\n width: 1120,\n height: 48,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-24.0%\",\n width: \"102.2%\",\n height: \"152.1%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-5\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"shadowBlurOuter1\",\n in2: \"SourceAlpha\",\n operator: \"out\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8,8.29077659 C9.55305507,8.29077659 10.812055,7.0317767 10.812055,5.47872163 C10.812055,3.92566656 9.55305507,2.66666667 8,2.66666667 C6.44694493,2.66666667 5.18794504,3.92566656 5.18794504,5.47872163 C5.18794504,7.0317767 6.44694493,8.29077659 8,8.29077659 Z M8,9.35744326 C5.85784119,9.35744326 4.12127837,7.62088044 4.12127837,5.47872163 C4.12127837,3.33656283 5.85784119,1.6 8,1.6 C10.1421588,1.6 11.8787216,3.33656283 11.8787216,5.47872163 C11.8787216,7.62088044 10.1421588,9.35744326 8,9.35744326 Z M3.82244951,13.4635226 L12.1775505,13.4635226 L12.0864368,12.825727 C11.9727482,12.0299065 11.5109741,11.3258868 10.8263259,10.9045648 L10.3604613,10.6178789 C9.99359767,10.3921167 9.53901448,10.361744 9.14537749,10.5366937 C8.41618053,10.8607813 7.58381947,10.8607813 6.85462251,10.5366937 C6.46098552,10.361744 6.00640233,10.3921167 5.6395387,10.6178789 L5.1736741,10.9045648 C4.48902592,11.3258868 4.0272518,12.0299065 3.91356316,12.825727 L3.82244951,13.4635226 Z M5.08050145,9.7094434 C5.74695019,9.2993211 6.57275132,9.24414562 7.28783687,9.56196142 C7.74123079,9.76346983 8.25876921,9.76346983 8.71216313,9.56196142 C9.42724868,9.24414562 10.2530498,9.2993211 10.9194985,9.7094434 L11.3853632,9.99612931 C12.3399937,10.5835943 12.9838626,11.5652353 13.142383,12.6748776 L13.3283694,13.9767823 C13.3700956,14.2688661 13.1434512,14.5301892 12.848402,14.5301892 L3.15159796,14.5301892 C2.85654877,14.5301892 2.62990439,14.2688661 2.67163065,13.9767823 L2.85761704,12.6748776 C3.01613736,11.5652353 3.66000628,10.5835943 4.61463685,9.99612931 L5.08050145,9.7094434 Z\",\n id: \"contacts-icons\"\n}));\n\nvar SvgPerson = function SvgPerson(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPerson, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/person.42f64ffd.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Person } from '../../../assets/icons/person.svg';\n\nfunction PersonIcon(props) {\n return (\n \n );\n}\n\nexport default PersonIcon;","import PersonIcon from 'components/common/Icons/PersonIcon';\nimport { MDBIcon, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction CompleteProfileBtn({ user }) {\n const { t } = useTranslation();\n return (\n <>\n {(user && !user.confidential && user.complete_profile && (user.complete_profile.en || user.complete_profile.fr)) ?\n \n {\n user.complete_profile.en &&\n \n \n \n \n \n }\n {\n user.complete_profile.fr &&\n \n \n \n \n \n }\n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n >\n
\n \n \n {t(\"Profile Report\")}\n \n
\n :\n \n \n {t(\"Profile Report\")}\n \n }\n \n );\n}\n\nexport default CompleteProfileBtn;","import React from 'react'\n\nconst Polygon = (points) => {\n let pos = points.points.join()\n let style = points.style\n let dash = points.dash\n return (\n \n )\n}\nexport default Polygon;","import React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport Polygon from './polygon'\n\nimport './Graph.css'\n\nfunction Graph(props) {\n\n const [points_1, setPoints1] = useState([0, 0, 0, 0])\n const [points_2, setPoints2] = useState([0, 0, 0, 0])\n const [size, setSize] = useState(0)\n const { t } = useTranslation();\n // const size = window.innerWidth - 40\n\n useEffect(() => {\n // let size = window.innerWidth - 90\n const id = props.parentId || 'resultsFirstPage';\n const element = document.getElementById(id);\n let size = (element ? element.offsetWidth : 1024) - 90\n setSize(size)\n setPoints1([10 * props.graphA.Y, 10 * props.graphA.X, 10 * props.graphA.Z, 10 * props.graphA.W])\n setPoints2([10 * props.graphB.Y, 10 * props.graphB.X, 10 * props.graphB.Z, 10 * props.graphB.W])\n }, [props.graphA, props.graphB, props.parentId])\n\n return (\n
\n
\n
{t(\"Relational well-being\")}
\n
\n
\n
\n
{t(\"Relational opposition\")}
{/* transform: 'rotate(90deg)' */}\n
\n \n \n \n\n {/* */}\n \n \n \n
\n
{t(\"Relational distance\")}
{/* transform: 'rotate(-90deg)' */}\n
\n
\n
\n
{t(\"Relational discomfort\")}
\n
\n
\n )\n}\n\nexport default Graph\n","import Graph from 'components/Results/SubPages/Graph/Graph';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { getLanguage } from 'utils/utils';\nimport logo from '../../../../assets/header.svg';\nimport './QuotationTable.css';\n\nfunction QuotationTable({ data, onToggle }) {\n\n const [result, setResult] = useState(null);\n const [graphA, setGraphA] = useState(null);\n const [graphB, setGraphB] = useState(null);\n\n const { t } = useTranslation();\n const lang = getLanguage();\n\n useEffect(() => {\n if (data) {\n setResult(data.result);\n }\n }, [data])\n\n useEffect(() => {\n if (result) {\n setGraphA({\n 'W': result['w_1'],\n 'X': result['x_1'],\n 'Y': result['y_1'],\n 'Z': result['z_1']\n })\n setGraphB({\n 'W': result['w_2'],\n 'X': result['x_2'],\n 'Y': result['y_2'],\n 'Z': result['z_2']\n })\n }\n }, [result])\n\n const toggle = () => {\n if (onToggle) {\n onToggle();\n }\n }\n\n const showGraph = () => {\n if (graphA && graphB) {\n return ;\n } else {\n return null;\n }\n }\n\n const printTable = () => {\n const html = document.getElementById('quotationContainer');\n const btn = document.getElementById('actions');\n if (btn) {\n btn.style.visibility = 'hidden';\n }\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create \n a.href = dataUrl; //Image Base64 Goes here\n a.download = `${data?.first_name} ${data?.last_name} - Quotation Table.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n if (btn) {\n btn.style.visibility = 'visible';\n }\n toast.success(t('Quotation table downloaded successfully'));\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n if (btn) {\n btn.style.visibility = 'visible';\n }\n toast.error('Failed to download quotation table.');\n });\n }\n\n return (\n { toggle() }} size='xl' className='quotation-table-modal'>\n \n
\n
\n \"work\n
\n
\n
\n {t('Relational Profile')}
\n {data?.first_name} {data?.last_name}\n
\n
\n
\n
\n {\n showGraph()\n }\n
\n
\n
\n
{t(\"On a daily basis\")}  /  {t(\"Under tension\")}
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{t(\"Mode\")}{t(\"PAG\")}{t(\"VAG\")}{t(\"AOP\")}{t(\"POP\")}{t(\"REG\")}{t(\"SAD\")}{t(\"AVO\")}{t(\"ESC\")}{t(\"FOR\")}{t(\"SDE\")}
{t(\"Protest\")}{t(\"Protection\")}
{t(\"On a daily basis\")}{result?.agp1_raw}{result?.agv1_raw}{result?.opa1_raw}{result?.opp1_raw}{result?.reg1_raw}{result?.tri1_raw}{result?.evi1_raw}{result?.fui1_raw}{result?.fea1_raw}{result?.ade1_raw}
{t(\"Under tension\")}{result?.agp2_raw}{result?.agv2_raw}{result?.opa2_raw}{result?.opp2_raw}{result?.reg2_raw}{result?.tri2_raw}{result?.evi2_raw}{result?.fui2_raw}{result?.fea2_raw}{result?.ade2_raw}
\n
\n
\n
{t(\"Stakes balance\")}
\n \n \n \n \n \n \n \n \n \n \n \n
{t(\"Action\")}{t(\"Vision\")}{t(\"Intention\")}
{(result && result.r_percent >= 0) ? (result.r_percent * 100).toFixed(0) + '%' : null}{(result && result.i_percent >= 0) ? (result.i_percent * 100).toFixed(0) + '%' : null}{(result && result.s_percent >= 0) ? (result.s_percent * 100).toFixed(0) + '%' : null}
\n
\n
\n Date: {moment(result?.date).locale(lang).format('DD MMM YYYY')} \n
\n
\n \n \n
\n
\n \n \n\n );\n}\n\nexport default QuotationTable;","import server from '@config';\nimport axios from 'axios';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport { MDBBtn, MDBContainer, MDBInput, MDBModal, MDBModalBody, MDBModalHeader } from 'mdbreact';\nimport React, { useEffect, useRef, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport * as Yup from 'yup';\nimport './ContactForm.css';\n\nfunction ContactForm(props) {\n\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n const [modal, setModal] = useState(false);\n\n const contactFormRef = new useRef(null);\n\n const toggle = () => {\n setModal(!modal)\n }\n\n useEffect(() => {\n if (modal) {\n setTimeout(() => {\n if (contactFormRef && contactFormRef.current) {\n const ref = contactFormRef.current;\n const values = ref.values;\n if (values) {\n console.log('default q type', props.defaultQuestionnaireType);\n if (props.defaultQuestionnaireType && props.defaultQuestionnaireType.questionnaire_type) {\n values.questionnaire_type = props.defaultQuestionnaireType.questionnaire_type;\n } else if (props.questionnaireTypes && props.questionnaireTypes.length) {\n props.questionnaireTypes.forEach((q) => {\n if (q.default_companies && q.default_companies.includes(props.companyId)) {\n console.log('default companies', q);\n values.questionnaire_type = q.questionnaire_type;\n }\n })\n }\n }\n console.log('values', values);\n ref.setValues(values);\n }\n }, 500);\n }\n }, [modal])\n\n const saveContact = (contact) => {\n console.log('contact', contact);\n setLoading(true);\n const sendInvitation = contact.send_invitation;\n delete contact.send_invitation;\n const questionnaireType = contact.questionnaire_type;\n delete contact.questionnaire_type;\n let data = {\n company_id: props.companyId,\n ...contact\n }\n let config = {\n method: \"post\",\n url: server + `/company/company_contact/?send_invitation=${sendInvitation ? 1 : 0}&questionnaire_id=${questionnaireType}`,\n data: data\n }\n console.log(config)\n axios(config)\n .then(res => {\n setLoading(false);\n console.log(res.data['message'])\n if (props.onSave && typeof props.onSave === 'function') {\n props.onSave(res.data);\n }\n toast.success(t('Contact successfully added'));\n toggle();\n })\n .catch(err => {\n setLoading(false);\n console.log(err)\n const msg = (err && err.data && err.data.message) ? err.data.message : 'Failed to add contact.';\n toast.error(msg);\n })\n }\n\n return (\n \n
{props.children}
\n \n \n
{t(\"Contact Form\")}
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n saveContact(values);\n }, 500);\n }}\n validationSchema={Yup.object().shape({\n first_name: Yup.string().required(\"First name is required.\"),\n last_name: Yup.string().required(\"Last name is required.\"),\n email: Yup.string().email(t(\"Email must be a valid email\")).required(t(\"Required\")),\n contact_type: Yup.string().required(t('Required'))\n })}\n >\n {(formikProps) => {\n const {\n values,\n touched,\n errors,\n isSubmitting,\n handleChange,\n handleBlur,\n handleSubmit,\n } = formikProps;\n return (\n
\n
\n
\n \n {errors.first_name && touched.first_name && (\n
{errors.first_name}
\n )}\n
\n
\n \n {errors.last_name && touched.last_name && (\n
{errors.last_name}
\n )}\n
\n
\n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n
\n
\n \n {errors.phone && touched.phone && (\n
{errors.phone}
\n )}\n
\n
\n \n \n {/* {errors.contact_type && touched.contact_type && (\n
{errors.contact_type}
\n )} */}\n
\n {\n values.send_invitation &&\n <>\n
\n \n \n
\n \n }\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n {t(\"Save\")}\n \n
\n
\n
\n );\n }}\n \n
\n
\n
\n
\n );\n}\n\nexport default ContactForm;","import server from '@config';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport Table from 'components/common/Table/Table';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes, getContactType } from 'constants/constants';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBModal, MDBModalBody, MDBModalFooter, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { checkQuotationAccess, getProfile, isDateSixMonthsAgo, isEvaluationCompleted, truncate, stopPropagation } from 'utils/utils';\nimport CompleteProfileBtn from '../common/CompleteProfileBtn/CompleteProfileBtn';\nimport QuotationTable from '../common/QuotationTable/QuotationTable';\nimport ContactForm from '../ContactForm/ContactForm';\nimport toast from 'react-hot-toast'\nimport Header from '../Header/Header';\nimport './CompanyContacts.css';\n\n\nfunction CompanyContacts(props) {\n\n const { t } = useTranslation();\n\n const [contacts, setContacts] = useState([]);\n const [filteredContacts, setFilteredContacts] = useState([]);\n const [loading, setLoading] = useState(false);\n const [companyId, setCompanyId] = useState(null);\n const [filters, setFilters] = useState({\n input: '',\n types: ['C', 'E']\n });\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const [quotationTableData, setQuotationTableData] = useState(null);\n const [selectedContact, setSelectedContact] = useState(null);\n const [contactToDelete, setContactToDelete] = useState(null);\n const [contactToRefreshProfile, setContactToRefreshProfile] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n\n const contactStatusMap = {\n QUESTIONNAIRE_COMPLETED: 'Questionnaire completed',\n QUESTIONNAIRE_IN_PROGRESS: 'Questionnaire in progress',\n INVITATION_SENT: 'Invitation sent',\n INVITATION_NOT_SENT: 'Not invited yet'\n }\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }, [companyId])\n\n useEffect(() => {\n filterContacts();\n }, [contacts])\n\n useEffect(() => {\n filterContacts();\n }, [filters])\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n if (contact.user_id) {\n if (contact.complete_profile && (contact.complete_profile.en || contact.complete_profile.fr)) {\n contact.status = contactStatusMap.QUESTIONNAIRE_COMPLETED;\n } else {\n contact.status = contactStatusMap.QUESTIONNAIRE_IN_PROGRESS;\n }\n } else if (contact.invitation_sent) {\n contact.status = contactStatusMap.INVITATION_SENT;\n } else {\n contact.status = contactStatusMap.INVITATION_NOT_SENT;\n }\n })\n setContacts(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const filterContacts = () => {\n let contactList = contacts.slice();\n contactList = contactList.filter((c) => {\n const input = filters.input ? filters.input.toLowerCase() : '';\n if (input) {\n if (!(c.first_name.toLowerCase().includes(input) || c.last_name.toLowerCase().includes(input) || c.email.toLowerCase().includes(input))) {\n return false;\n }\n }\n if (!filters.types.includes(c.contact_type)) {\n return false;\n }\n return true;\n });\n console.log('filtered contacts', filteredContacts)\n setFilteredContacts(contactList);\n }\n\n const onChangeInput = (event) => {\n if (filters) {\n setFilters({ ...filters, input: event.target.value });\n }\n }\n\n const toggleTypeFilter = (type) => {\n let types = filters.types;\n if (types.includes(type)) {\n types = types.filter((t) => t !== type);\n } else {\n types.push(type);\n }\n setFilters({ ...filters, types });\n }\n\n const showStatusBtns = (contact) => {\n switch (contact.status) {\n case contactStatusMap.QUESTIONNAIRE_COMPLETED:\n return showQuestionnaireCompletedBtn(contact);\n\n case contactStatusMap.QUESTIONNAIRE_IN_PROGRESS:\n return showQuestionnaireInProgressBtn(contact);\n\n case contactStatusMap.INVITATION_SENT:\n return showInvitationSentBtn(contact);\n\n case contactStatusMap.INVITATION_NOT_SENT:\n return showInvitationNotSentBtn(contact);\n\n default:\n return null;\n }\n }\n\n const showQuestionnaireCompletedBtn = (contact) => {\n if (contact.user_id && contact.complete_profile) {\n if (contact.confidential) {\n return (\n \n
\n \n {t(\"Questionnaire completed\")}\n \n
\n {t(\"This profile is confidential\")}\n
\n )\n } else {\n return (\n <>\n \n \n
\n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomLeft\"\n >\n
\n \n \n {t(\"Questionnaire completed\")}\n \n {t(\"Click to download Complete Profile\")}\n \n
\n \n \n )\n }\n }\n return null;\n }\n\n const showQuestionnaireInProgressBtn = (contact) => {\n if (contact.user_id && contact.complete_profile && !(contact.complete_profile.en || contact.complete_profile.fr)) {\n return (\n ${contact.first_name} ${contact.last_name}?`}\n onYesAction={() => sendCompleteQuestionnaireReminder(contact)}>\n \n openSendInvitationModal(contact)}\n >\n {t(\"Questionnaire in progress\")}\n \n {t(\"Click to send invitation again\")}\n \n \n )\n }\n return null;\n }\n\n const showInvitationSentBtn = (contact) => {\n if (contact.user_id && contact.complete_profile && (contact.complete_profile.en || contact.complete_profile.fr)) {\n return null;\n } else {\n if (contact.invitation_sent) {\n return (\n ${contact.first_name} ${contact.last_name}?`}\n onYesAction={() => sendIntivation(contact)}>\n \n openSendInvitationModal(contact)}\n >\n {t(\"Invitation sent\")}\n \n {t(\"Click to send invitation again\")}\n \n \n )\n }\n }\n return null;\n }\n\n const showInvitationNotSentBtn = (contact) => {\n if (contact.user_id && contact.complete_profile && (contact.complete_profile.en || contact.complete_profile.fr)) {\n return null;\n } else {\n if (!contact.invitation_sent) {\n return (\n ${contact.first_name} ${contact.last_name}?`}\n onYesAction={() => sendIntivation(contact)}>\n \n \n {t(\"Not invited yet\")}\n \n {t(\"Click to send invitation\")}\n \n \n )\n }\n }\n return null;\n }\n\n const sendCompleteQuestionnaireReminder = (contact) => {\n // setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/complete_questionnaire_reminder/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: {\n contact_referral: contact.contact_referral\n }\n }\n // axios(config)\n // .then(res => {\n // setLoading(false);\n // getCompanyContacts();\n // })\n // .catch((err) => {\n // setLoading(false);\n // })\n }\n\n const sendIntivation = (contact) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/invite_contact/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: {\n contact_referral: contact.contact_referral\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n getCompanyContacts();\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const QuotationTableBtn = (user) => {\n return (\n (quotationAccess && !user.confidential && isEvaluationCompleted(user.result)) ?\n \n \n {t(\"Quotation Table\")}\n \n :\n \n \n {t(\"Quotation Table\")}\n \n )\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const updateContact = (contact, contact_type) => {\n setLoading(true);\n const data = JSON.parse(JSON.stringify(contact));\n delete data.result;\n delete data.complete_profile;\n data.contact_type = contact_type;\n let config = {\n method: 'put',\n url: server + '/company/company_contact/update/' + data.id + '/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data\n }\n axios(config)\n .then(res => {\n toast.success(t('Status modified'));\n setLoading(false);\n getCompanyContacts();\n setSelectedContact(null);\n })\n .catch((err) => {\n setLoading(false);\n setSelectedContact(null);\n })\n }\n\n const deleteContact = (contact) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/company_contact/update/' + contact.id + '/',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n toast.success(t('Profile deleted from contact list'));\n setLoading(false);\n getCompanyContacts();\n setContactToDelete(null);\n })\n .catch((err) => {\n setLoading(false);\n setContactToDelete(null);\n })\n }\n\n const shouldShowRefreshProfileBtn = (contact) => {\n const date = contact?.result?.date;\n if (date && isDateSixMonthsAgo(date)) {\n return true;\n }\n return false;\n }\n\n const refreshProfile = (contact) => {\n setLoading(true);\n const data = {\n user_email: contact.email,\n company_id: contact.company_id,\n };\n let config = {\n method: 'post',\n url: server + '/auth/re-invite/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data\n }\n axios(config)\n .then(res => {\n toast.success(t('invitation sent”'));\n setLoading(false);\n getCompanyContacts();\n setContactToRefreshProfile(null);\n })\n .catch((err) => {\n setLoading(false);\n setContactToRefreshProfile(null);\n })\n }\n\n\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Company Contacts List\")}

\n
\n getCompanyContacts()}>\n \n + {t(\"New\")}\n \n \n
\n
\n \n
\n
\n
\n onChangeInput(event)} />\n
\n
\n
\n {t(\"Type of contact\")}\n
\n toggleTypeFilter('E')} />\n \n
\n
\n toggleTypeFilter('C')} />\n \n
\n
\n
\n
\n
\n \n
\n (\n \n \n \n \n \n \n \n )\n }\n />\n {\n (contacts?.length && !filteredContacts?.length) ?\n
No contacts available for applied filter.
\n : null\n }\n \n \n \n \n \n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n {\n selectedContact &&\n { setSelectedContact(null) }} size='md' className='contact-update-confirmation-dialog'>\n \n
{t(\"Confirm modification?\")}
\n
\n \n
\n \n \n
\n
\n
\n }\n {\n contactToDelete &&\n { setContactToDelete(null) }} size='md' className='contact-update-confirmation-dialog'>\n \n
{t(\"Confirm modification?\")}
\n
\n \n
\n \n \n
\n
\n
\n }\n {\n contactToRefreshProfile &&\n { setContactToRefreshProfile(null) }} size='md' className='contact-update-confirmation-dialog'>\n \n {/*
{t(\"Confirm modification?\")}
\n
Are you sure?
*/}\n
{t(\"Do you want to invite this person to retake the questionnaire? If you proceed, the existing profile of this person will be deleted, and they will receive a link to retake the questionnaire. If you wish to save their current profile, please print it before continuing.\")}
\n
\n \n
\n \n \n
\n
\n
\n }\n \n \n );\n}\n\nexport default CompanyContacts;","import { MDBIcon } from 'mdbreact';\nimport { MenuItem, MenuItemGroup } from 'rc-menu';\nimport React from 'react';\n\nfunction CompleteProfileSubMenu({ user, t }) {\n return (\n <>\n {\n (user && !user.confidential && user.complete_profile && (user.complete_profile.en || user.complete_profile.fr)) ?\n {t(\"Profile Report\")}}>\n \n \n \n \n \n\n \n \n \n \n \n \n : null\n }\n \n )\n}\n\nexport default CompleteProfileSubMenu;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-1.8%\",\n width: \"102.2%\",\n height: \"104%\",\n filterUnits: \"objectBoundingBox\",\n id: \"b\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"a\",\n x: 0,\n y: 80,\n width: 1120,\n height: 632,\n rx: 5\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#c)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m24.383 18.06.377-.376-2.262-2.263-.378.377 2.263 2.263zm-.377.378-2.263-2.263-6.411 6.412 2.263 2.262 6.411-6.41zm1.131-1.131.755-.755a.533.533 0 0 0 0-.754l-1.509-1.508a.533.533 0 0 0-.754 0l-.754.754 2.262 2.263zm-7.93 7.909-2.242-2.242a.533.533 0 0 0-.05.11l-.754 2.262a.533.533 0 0 0 .674.675l2.263-.755a.533.533 0 0 0 .109-.05zm7.93-11.68 1.509 1.508a1.6 1.6 0 0 1 0 2.263l-8.585 8.585a1.6 1.6 0 0 1-.625.386l-2.263.755a1.6 1.6 0 0 1-2.024-2.024l.754-2.263a1.6 1.6 0 0 1 .387-.626l8.585-8.585a1.6 1.6 0 0 1 2.262 0z\"\n})));\n\nvar SvgEdit = function SvgEdit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n style: {\n transform: \"translate(-10px, -10px)\"\n }\n }, _ref3)));\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEdit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/edit.c2a80cda.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Edit } from '../../../assets/icons/edit.svg';\n\nfunction EditIcon(props) {\n return (\n \n );\n}\n\nexport default EditIcon;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 80,\n width: 1120,\n height: 632,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-1.8%\",\n width: \"102.2%\",\n height: \"104.0%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-3\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon\",\n fill: \"#908D95\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.8535544,8.75319645 L19.9416263,8.79936913 L20.2503109,8.97567284 C20.8323136,9.30808082 21.2291545,9.86960881 21.3276841,10.5097335 C21.3690477,10.7784633 21.1847309,11.0298436 20.9160012,11.0712072 C20.6472714,11.1125708 20.3958911,10.928254 20.3545275,10.6595243 C20.3067399,10.349059 20.1220074,10.0674262 19.8409858,9.8795346 L19.7619867,9.83066436 L19.4533021,9.65436065 C19.3425026,9.59107809 19.2007117,9.58228546 19.0800725,9.63204838 C18.4766628,9.88095104 17.7901543,9.88095104 17.1867446,9.63204838 C17.0833395,9.58939445 16.9643945,9.58976092 16.8627459,9.63058752 L16.813515,9.65436065 L16.5048303,9.83066436 C16.1795292,10.0164585 15.9644215,10.3208349 15.9122896,10.6595243 C15.870926,10.928254 15.6195457,11.1125708 15.3508159,11.0712072 C15.2460651,11.0550837 15.1541404,11.0070494 15.0834086,10.9385157 C15.4652877,11.4387549 15.7177203,12.0355723 15.8090496,12.6748776 L15.995036,13.9767823 C16.0367623,14.2688661 15.8101179,14.5301892 15.5150687,14.5301892 L5.81826463,14.5301892 C5.52321544,14.5301892 5.29657106,14.2688661 5.33829731,13.9767823 L5.5242837,12.6748776 C5.61561302,12.0355723 5.86804562,11.4387549 6.24819369,10.9353283 C6.17978712,11.0068173 6.08767149,11.0550448 5.98266782,11.0712072 C5.71393805,11.1125708 5.46255773,10.928254 5.42119417,10.6595243 C5.37340657,10.349059 5.18867407,10.0674262 4.90765245,9.8795346 L4.82865339,9.83066436 L4.51996875,9.65436065 C4.4091693,9.59107809 4.26737837,9.58228546 4.14673913,9.63204838 C3.54332945,9.88095104 2.85682095,9.88095104 2.25341127,9.63204838 C2.15000621,9.58939445 2.03106113,9.58976092 1.92941255,9.63058752 L1.88018165,9.65436065 L1.57149701,9.83066436 C1.24619583,10.0164585 1.03108815,10.3208349 0.978956233,10.6595243 C0.937592669,10.928254 0.686212353,11.1125708 0.417482582,11.0712072 C0.14875281,11.0298436 -0.0355639184,10.7784633 0.0057996456,10.5097335 C0.0985333979,9.9072632 0.455515174,9.37441489 0.982411589,9.03668084 L1.08317282,8.97567284 L1.39185747,8.79936913 C1.73835523,8.60146865 2.15749675,8.56190688 2.5353375,8.68709514 L2.62887131,8.72182821 C2.95880838,8.85792516 3.33305574,8.87029761 3.67104922,8.75894556 L3.77127909,8.72182821 C4.14144509,8.56913708 4.56240725,8.58173027 4.92022102,8.75319645 L5.00829293,8.79936913 L5.31697758,8.97567284 C5.89898029,9.30808082 6.29582114,9.86960881 6.39435075,10.5097335 C6.41193793,10.6239935 6.38872607,10.7351169 6.33557383,10.8282943 C6.59773796,10.5020974 6.91687708,10.2203917 7.28130351,9.99612931 L7.74716812,9.7094434 C8.41361686,9.2993211 9.23941799,9.24414562 9.95450354,9.56196142 C10.4078975,9.76346983 10.9254359,9.76346983 11.3788298,9.56196142 C12.0939153,9.24414562 12.9197165,9.2993211 13.5861652,9.7094434 L14.0520298,9.99612931 C14.4164562,10.2203917 14.7355954,10.5020974 14.9997346,10.8264386 C14.9447577,10.7351169 14.9215458,10.6239935 14.939133,10.5097335 C15.0318667,9.9072632 15.3888485,9.37441489 15.9157449,9.03668084 L16.0165062,8.97567284 L16.3251908,8.79936913 C16.6716886,8.60146865 17.0908301,8.56190688 17.4686708,8.68709514 L17.5622046,8.72182821 C17.8921417,8.85792516 18.2663891,8.87029761 18.6043826,8.75894556 L18.7046124,8.72182821 C19.0747784,8.56913708 19.4957406,8.58173027 19.8535544,8.75319645 Z M11.8120442,10.5366937 C11.0828472,10.8607813 10.2504861,10.8607813 9.52128918,10.5366937 C9.12765219,10.361744 8.67306899,10.3921167 8.30620537,10.6178789 L7.84034077,10.9045648 C7.15569259,11.3258868 6.69391847,12.0299065 6.58022983,12.825727 L6.48911618,13.4635226 L14.8442172,13.4635226 L14.7531035,12.825727 C14.6394149,12.0299065 14.1776407,11.3258868 13.4929926,10.9045648 L13.027128,10.6178789 C12.6602643,10.3921167 12.2056811,10.361744 11.8120442,10.5366937 Z M10.6666667,1.6 C12.8088255,1.6 14.5453883,3.33656283 14.5453883,5.47872163 C14.5453883,7.62088044 12.8088255,9.35744326 10.6666667,9.35744326 C8.52450786,9.35744326 6.78794504,7.62088044 6.78794504,5.47872163 C6.78794504,3.33656283 8.52450786,1.6 10.6666667,1.6 Z M3.2000752,3.2 C4.6954951,3.2 5.90777246,4.41227736 5.90777246,5.90769726 C5.90777246,7.40311716 4.6954951,8.61539452 3.2000752,8.61539452 C1.7046553,8.61539452 0.492377939,7.40311716 0.492377939,5.90769726 C0.492377939,4.41227736 1.7046553,3.2 3.2000752,3.2 Z M18.1334085,3.2 C19.6288284,3.2 20.8411058,4.41227736 20.8411058,5.90769726 C20.8411058,7.40311716 19.6288284,8.61539452 18.1334085,8.61539452 C16.6379886,8.61539452 15.4257113,7.40311716 15.4257113,5.90769726 C15.4257113,4.41227736 16.6379886,3.2 18.1334085,3.2 Z M10.6666667,2.66666667 C9.11361159,2.66666667 7.8546117,3.92566656 7.8546117,5.47872163 C7.8546117,7.0317767 9.11361159,8.29077659 10.6666667,8.29077659 C12.2197217,8.29077659 13.4787216,7.0317767 13.4787216,5.47872163 C13.4787216,3.92566656 12.2197217,2.66666667 10.6666667,2.66666667 Z M3.2000752,4.18461719 C2.24844435,4.18461719 1.47699513,4.95606641 1.47699513,5.90769726 C1.47699513,6.85932811 2.24844435,7.63077734 3.2000752,7.63077734 C4.15170605,7.63077734 4.92315527,6.85932811 4.92315527,5.90769726 C4.92315527,4.95606641 4.15170605,4.18461719 3.2000752,4.18461719 Z M18.1334085,4.18461719 C17.1817777,4.18461719 16.4103285,4.95606641 16.4103285,5.90769726 C16.4103285,6.85932811 17.1817777,7.63077734 18.1334085,7.63077734 C19.0850394,7.63077734 19.8564886,6.85932811 19.8564886,5.90769726 C19.8564886,4.95606641 19.0850394,4.18461719 18.1334085,4.18461719 Z\",\n id: \"Combined-Shape\"\n}));\n\nvar SvgPeople = function SvgPeople(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPeople, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/people.4f3dba30.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as People } from '../../../assets/icons/people.svg';\n\nfunction PeopleIcon(props) {\n return (\n \n );\n}\n\nexport default PeopleIcon;","import React from 'react';\nimport { buildStyles, CircularProgressbar } from 'react-circular-progressbar';\nimport './ProgressBar.css';\n\nfunction ProgressBar({ value, text, styles, classes }) {\n styles = styles || {};\n return (\n \n );\n}\n\nexport default ProgressBar;","import Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { getProp, isEvaluationCompleted, truncate } from 'utils/utils';\nimport ProgressBar from '../../../../common/ProgressBar/ProgressBar';\n\nfunction MobilityCandidateModel({ loading, matchingMap, contacts, selectedCandidate, setSelectedCandidate }) {\n const [dataForGrid, setDataForGrid] = useState([]);\n const [searchInput, setSearchInput] = useState(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n updateDataForGrid();\n }, [contacts, matchingMap])\n\n useEffect(() => {\n console.log('data for grid', dataForGrid)\n }, [dataForGrid])\n\n const updateDataForGrid = () => {\n const data = contacts.filter((c) => !c.user.member);\n if (matchingMap) {\n data.forEach((contact) => {\n const user_1 = selectedCandidate.user.user_id;\n const user_2 = contact.user.user_id;\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n contact.user.matching = matching || {};\n });\n }\n setDataForGrid(data);\n }\n\n const getMatchingProgressBar = (matching, key, styles, classes) => {\n if (matching) {\n if (matching[key] >= 0) {\n return \n }\n }\n return null;\n }\n\n const showMessage = (contact1, contact2) => {\n let message = '';\n const c1EvaluationCompleted = isEvaluationCompleted(getProp(contact1, ['user', 'result']));\n const c2EvaluationCompleted = isEvaluationCompleted(getProp(contact2, ['user', 'result']));\n if (!(c1EvaluationCompleted || c2EvaluationCompleted)) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t('and')} ${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"haven't completed the evaluation yet\")}.`;\n } else if (!c1EvaluationCompleted) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n } else if (!c2EvaluationCompleted) {\n message = `${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n }\n return message;\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.user.last_name, data.user.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n\n return (\n { setSelectedCandidate(null); }} size='xl' className='recruitment-details-modal'>\n \n \n {\n selectedCandidate &&\n
\n
\n \n \n {truncate(selectedCandidate.user.first_name + ' ' + selectedCandidate.user.last_name, 30)}\n {selectedCandidate.user.first_name} {selectedCandidate.user.last_name}\n \n \n
\n setSearchInput(e.target.value)} />\n \n
\n
\n
\n }\n
\n
\n \n {truncate(`${contact.last_name} ${contact.first_name}`, 30)}\n {contact.last_name} {contact.first_name}\n \n {t(getContactType(contact.contact_type))}\n
\n {showStatusBtns(contact)}\n
\n
\n\n \n
\n \n
{QuotationTableBtn(contact)}
\n \n {\n (contact.contact_type === 'C') ?\n \n \n \n : null\n }\n {\n shouldShowRefreshProfileBtn(contact) && false ?\n \n \n \n : null\n }\n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n // onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n
\n
filterData(data))}\n rowComponent={\n (data, index) => (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedCandidate, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n \n \n \n \n \n \n \n : \n }\n \n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n \n \n \n\n );\n}\n\nexport default MobilityCandidateModel;","import server from '@config';\nimport { removeMemberFromMission } from 'api/mission';\nimport axios from 'axios';\nimport CompleteProfileSubMenu from 'components/Admin/common/CompleteProfileSubMenu/CompleteProfileSubMenu';\nimport QuotationTable from 'components/Admin/common/QuotationTable/QuotationTable';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport EditIcon from 'components/common/Icons/EditIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport PeopleIcon from 'components/common/Icons/PeopleIcon';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { getContactType } from 'constants/constants';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem, MenuItemGroup } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { checkQuotationAccess, isEvaluationCompleted, stopPropagation, truncate } from 'utils/utils';\nimport { getProp } from '../../../../utils/utils';\nimport ProgressBar from '../../../common/ProgressBar/ProgressBar';\nimport MobilityCandidateModel from './MobilityCandidateModel/MobilityCandidateModel';\nimport './MobilityDetails.css';\n\nfunction MobilityDetails(props) {\n\n const [mission, setMission] = useState(null);\n const [modal, setModal] = useState(false);\n const [candidateModal, setCandidateModal] = useState(false);\n const [loading, setLoading] = useState(false);\n const { t } = useTranslation();\n\n const [contacts, setContacts] = useState([]);\n const [selectedContact, setSelectedContact] = useState(null);\n const [selectedCandidate, setSelectedCandidate] = useState(null);\n const [dataForGrid, setDataForGrid] = useState([]);\n const [matchingMap, setMatchingMap] = useState({});\n const [searchInput, setSearchInput] = useState(null);\n const [printMode, setPrintMode] = useState(false);\n const [showAvatarCompatibility, setShowAvatarCompatibility] = useState(false);\n\n const [quotationTableData, setQuotationTableData] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n useEffect(() => {\n if (props.mission) {\n setMission(props.mission);\n const mission = props.mission;\n setModal(true);\n const contacts = [];\n if (mission.mission_manager) {\n contacts.push({ user: { ...mission.mission_manager, type: getContactType(mission.mission_manager.contact_type) } });\n }\n if (mission.mission_benchmarks && mission.mission_benchmarks.length) {\n mission.mission_benchmarks.forEach((benchmark) => {\n contacts.push({ user: { ...benchmark.contact, type: getContactType(benchmark.benchmark_type) } });\n })\n }\n if (mission.mission_member && mission.mission_member.length) {\n mission.mission_member.forEach((member) => {\n contacts.push({ user: { ...member, type: getContactType(member.contact_type), member: true } });\n })\n }\n setContacts(contacts);\n if (contacts.length) {\n setSelectedContact(contacts[0]);\n }\n } else {\n setModal(false);\n }\n setSearchInput('');\n }, [props.mission]);\n\n useEffect(() => {\n updateDataForGrid();\n }, [contacts, matchingMap, selectedContact])\n\n useEffect(() => {\n if (printMode) {\n printTable();\n }\n }, [printMode])\n\n const updateDataForGrid = () => {\n const data = contacts.filter((c) => c.user.member);\n if (matchingMap && selectedContact) {\n data.forEach((contact) => {\n const user_1 = selectedContact.user.user_id;\n const user_2 = contact.user.user_id;\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n contact.user.matching = matching || {};\n });\n }\n setDataForGrid(data);\n }\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const toggleCandidateModal = () => {\n setCandidateModal(!candidateModal);\n }\n\n useEffect(() => {\n if (selectedContact && selectedContact.user.user_id) {\n const data = {\n source: {\n company_id: selectedContact.user.company_id,\n email: selectedContact.user.email\n },\n target: contacts.filter((c) => c.user.member).filter((c) => !isMatchingAvailable(selectedContact.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n }\n }, [selectedContact])\n\n useEffect(() => {\n if (selectedCandidate && selectedCandidate.user.user_id) {\n const data = {\n source: {\n company_id: selectedCandidate.user.company_id,\n email: selectedCandidate.user.email\n },\n target: contacts.filter((c) => !c.user.member).filter((c) => !isMatchingAvailable(selectedCandidate.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n toggleCandidateModal();\n }\n }, [selectedCandidate])\n\n const isMatchingAvailable = (user_1, user_2) => {\n return matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n }\n\n const getMatchingData = (data) => {\n setLoading(true);\n\n let config = {\n method: 'post',\n url: server + '/result/match_contacts/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n if (res && res.data) {\n updateMatchingMap(res.data);\n }\n setLoading(false);\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const updateMatchingMap = (matchings) => {\n const map = matchingMap || {};\n if (matchings) {\n if (matchings.source_target_matching && matchings.source_target_matching.length) {\n matchings.source_target_matching.forEach((matching) => {\n map[`${matching.user_1}_${matching.user_2}`] = matching;\n });\n }\n if (matchings.avatar_target_matching && matchings.avatar_target_matching.length) {\n setShowAvatarCompatibility(true);\n matchings.avatar_target_matching.forEach((avatarMatching) => {\n if (map[`${avatarMatching.user_1}_${avatarMatching.user_2}`]) {\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else if (map[`${avatarMatching.user_2}_${avatarMatching.user_1}`]) {\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else {\n const sourceMatchingKeys = Object.keys(map).filter((key) => [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_1) || [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_2));\n sourceMatchingKeys.forEach((key) => {\n map[key].ircp_with_avatar = avatarMatching.ircp;\n map[key].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n });\n }\n })\n }\n }\n setMatchingMap({ ...map });\n }\n\n const getMatchingProgressBar = (user_1, user_2, key, styles, classes) => {\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n if (matching) {\n if (matching[key] >= 0) {\n return \n }\n }\n return null;\n }\n\n const getMatchingProfilePdf = (contact_1, contact_2, language) => {\n setLoading(true);\n\n const data = { contact_1, contact_2 };\n\n let config = {\n method: 'post',\n url: server + '/company/matching_result_pdf/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n setLoading(false);\n switch (language) {\n case 'en':\n if (res.data.matching_pdf_en) {\n window.open(res.data.matching_pdf_en, '_blank');\n }\n break;\n\n case 'fr':\n if (res.data.matching_pdf_fr) {\n window.open(res.data.matching_pdf_fr, '_blank');\n }\n break;\n\n default:\n break;\n }\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const removeMemberConfirmation = (contact) => {\n setConfirmDialogConfig({\n title: `${t('Confirm deletion?')}`,\n onYesAction: () => removeMember(contact),\n })\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const removeMember = (contact) => {\n setLoading(true);\n removeMemberFromMission(mission.pk, contact.user.id)\n .then((res) => {\n console.log('remove member res', res);\n toast.success(t('Candidate removed successfully'));\n if (props.reload) {\n props.reload();\n }\n setLoading(false);\n });\n }\n\n const showMessage = (contact1, contact2) => {\n let message = '';\n const c1EvaluationCompleted = isEvaluationCompleted(getProp(contact1, ['user', 'result']));\n const c2EvaluationCompleted = isEvaluationCompleted(getProp(contact2, ['user', 'result']));\n if (!(c1EvaluationCompleted || c2EvaluationCompleted)) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t('and')} ${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"haven't completed the evaluation yet\")}.`;\n } else if (!c1EvaluationCompleted) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n } else if (!c2EvaluationCompleted) {\n message = `${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n }\n return message;\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.user.last_name, data.user.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n const printTable = () => {\n const modal = document.getElementById('missionDetails');\n const html = modal.getElementsByClassName('modal-content')[0];\n html.style.padding = '16px 32px 32px 32px';\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create \n a.href = dataUrl; //Image Base64 Goes here\n const fileName = `${mission?.reference?.substring(0, 15)} ${selectedContact?.user?.last_name?.substring(0, 15)} ${selectedContact?.user?.first_name?.substring(0, 3)}`;\n a.download = `${fileName}.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n toast.success(t('Mission details downloaded successfully'));\n setPrintMode(false);\n html.style.padding = 'unset';\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n toast.error(t('Failed to download mission details'));\n setPrintMode(false);\n html.style.padding = 'unset';\n });\n }\n\n\n return (\n \n \n {\n props.mission &&\n \n {\n printMode &&\n
\n

{t(\"Mobility\")}

\n
\n }\n
\n
\n \n {truncate(props.mission.mission_name, 30)}\n {props.mission.mission_name}\n \n
\n
{t(\"Ref.\")} : {props.mission.reference}
\n \n
\n {\n false &&\n <>\n \n \n \n \n \n }\n {\n (!loading && !printMode) &&\n \n }\n {\n (mission && !printMode) &&\n \n \n \n }\n {\n (!printMode) &&\n \n }\n
\n\n
\n {\n selectedContact &&\n
\n
\n
\n \n \n {truncate(selectedContact.user.first_name + ' ' + selectedContact.user.last_name, 30)}\n {selectedContact.user.first_name} {selectedContact.user.last_name}\n \n \n {!printMode &&\n \n {t(\"Match with\")}:\n {\n contacts.filter((c) => !c.user.member && c.user.id !== selectedContact.user.id).map((contact) => (\n \n \n \n ))\n }\n \n }\n animation=\"slide-up\"\n placement=\"bottomLeft\"\n >\n \n \n }\n
\n {\n !printMode &&\n setSearchInput(e.target.value)} />\n }\n
\n
\n }\n
\n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(data.user.matching, 'rui_smooth', { pathColor: '#00CFD7' }, 'font-weight-bold')}{getMatchingProgressBar(data.user.matching, 'immediate_harmony_smooth')}{getMatchingProgressBar(data.user.matching, 'deep_compatibility_smooth')}{getMatchingProgressBar(data.user.matching, 'complementarity_smooth')}{getMatchingProgressBar(data.user.matching, 'similarity_smooth')}{getMatchingProgressBar(data.user.matching, 'understanding_smooth')}\n {showMessage(selectedCandidate, data)}\n
No data available for applied filter.
filterData(data))}\n rowComponent={\n (data, index) => (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedContact, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n {showAvatarCompatibility &&\n \n }\n \n \n \n \n \n \n \n : \n }\n {!printMode &&\n \n }\n \n\n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n {\n selectedCandidate &&\n \n }\n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n\n }\n \n \n );\n}\n\nexport default MobilityDetails;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport ContactsIcon from 'components/common/Icons/ContactsIcon';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { formatDate, stopPropagation, truncate } from 'utils/utils';\nimport Header from '../Header/Header';\nimport './Mobilities.css';\nimport MobilityDetails from './MobilityDetails/MobilityDetails';\n\nfunction Mobility(props) {\n\n const { t } = useTranslation();\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [missionsForTable, setMissionsForTable] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n case \"2\":\n getColleaguesMissions();\n break;\n\n default:\n break;\n }\n // setDemoMissions();\n }, [activeItem])\n\n useEffect(() => {\n if (missions) {\n const missionForTable = [];\n missions.forEach((mission) => {\n const m = { ...mission };\n m.candidates = mission.mission_member ? mission.mission_member.length : 0;\n missionForTable.push(m);\n })\n setMissionsForTable(missionForTable);\n } else {\n setMissionsForTable([]);\n }\n updateSelectedMission();\n }, [missions]);\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=M',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const getColleaguesMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=M&colleagues=true',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const updateSelectedMission = () => {\n if (selectedMission) {\n const mission = missions.find((m) => m.pk === selectedMission.pk);\n setSelectedMission({ ...mission });\n }\n }\n\n const setDemoMissions = () => {\n setMissions([\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n },\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n }\n ])\n }\n\n const onMissionClick = (mission) => {\n setSelectedMission(mission);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission).then(() => {\n setLoading(false);\n toast.success(t('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to delete mission.');\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Mobility\")}

\n \n \n + {t(\"New\")}\n \n \n
\n \n \n \n \n \n {t(\"My Mobility Missions\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'ircp_smooth_with_avatar', { pathColor: '#e5e563' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'rui_smooth', { pathColor: '#00CFD7' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'immediate_harmony_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'deep_compatibility_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'complementarity_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'similarity_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'understanding_smooth')}\n {showMessage(selectedContact, data)}\n \n \n {CompleteProfileSubMenu({ user: data.user, t })}\n {\n isEvaluationCompleted(data.user.result) ?\n {t(\"Matching Report\")}}>\n \n \n \n \n \n \n \n : null\n }\n {\n (quotationAccess && !data.user.confidential && isEvaluationCompleted(data.user.result)) ?\n \n \n \n {t(\"Quotation Table\")}\n \n \n :\n null\n }\n \n \n \n {t(\"All Matchings\")}\n \n \n \n \n \n {t(\"Remove Candidate\")}\n \n \n \n }\n placement=\"bottomRight\"\n >\n \n \n
No data available for applied filter.
(\n onMissionClick(mission)}>\n \n \n \n \n \n \n \n \n \n )\n }\n />\n \n {/* \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n missions.map((mission) => {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n })\n }\n \n \n */}\n\n \n \n setSelectedMission(null)} reload={() => getMyMissions()} />\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default Mobility;","import { useEffect, useRef } from \"react\";\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport default usePrevious;","import server from '@config';\nimport axios from 'axios';\nimport ContactForm from 'components/Admin/ContactForm/ContactForm';\nimport Header from 'components/Admin/Header/Header';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport usePrevious from 'hooks/UsePrevious';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBInput, MDBMedia, MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { getLanguage, getProfile } from 'utils/utils';\nimport * as Yup from 'yup';\nimport './MobilityForm.css';\n\nfunction MobilityForm(props) {\n const { t } = useTranslation();\n const MissionType = 'M';\n const [loading, setLoading] = useState(false);\n const [invitationLink, setInvitationLink] = useState(null);\n const [contacts, setContacts] = useState([]);\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const previousContacts = usePrevious(contacts);\n const [companyId, setCompanyId] = useState(null);\n\n var lang = getLanguage();\n\n const missionFormRef = new useRef(null);\n const benchmarkTypeMap = new Map();\n\n const initialValues = {\n reference: \"\",\n mission_name: \"\",\n mission_description: \"\",\n mission_delegates: [],\n mission_manager: null,\n mission_viewers: [],\n mission_member: [],\n mission_benchmarks: [],\n mission_end_date: \"\",\n default_questionnaire_type: null\n };\n\n const validationSchema = Yup.object().shape({\n reference: Yup.string().required(\"Required\").max(20, 'Maximum 20 characters are allowed.'),\n mission_name: Yup.string().required(\"Required\").max(80, 'Maximum 80 characters are allowed.'),\n mission_description: Yup.string().required(\"Required\").max(1000, 'Maximum 1000 characters are allowed.'),\n mission_end_date: Yup.date().required(\"Required\").min(new Date(), \"Please select future date\"),\n default_questionnaire_type: Yup.string().required(\"Required\").nullable(),\n mission_manager: Yup.object().required(\"Required\").nullable(),\n });\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n if (props.match.params.missionId) {\n getMissionById();\n } else {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }\n }, [companyId])\n\n useEffect(() => {\n if (previousContacts && previousContacts.length !== contacts.length) {\n updateContacts();\n }\n }, [contacts])\n\n const getMissionById = () => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('mission by id', res);\n if (res.data) {\n const data = res.data;\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n data.mission_end_date = moment(data.mission_end_date).format('YYYY-MM-DD');\n data.mission_benchmarks = data.mission_benchmarks.map((b) => ({ benchmark: b.contact, type: b.benchmark_type }));\n console.log('data', data)\n if (data.mission_referral) {\n setInvitationLink(`${window.location.origin}/?mission=${data.mission_referral}`);\n }\n ref.setValues(data);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n })\n setContacts(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (res.data && res.data.length && values && values.default_questionnaire_type) {\n res.data.forEach((qt) => {\n if (qt.pk === values.default_questionnaire_type) {\n values.default_questionnaire_type = qt;\n }\n })\n ref.setValues(values);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateContacts = () => {\n const ref = missionFormRef.current;\n const values = { ...ref.values };\n const tempContacts = [...contacts];\n tempContacts.forEach((contact) => {\n contact.selected = null;\n })\n const manager = values.mission_manager || {};\n const members = values.mission_member || [];\n const viewers = values.mission_viewers || [];\n const delegates = values.mission_delegates || [];\n const benchmarks = values.mission_benchmarks || [];\n tempContacts.forEach((contact) => {\n if (values.mission_manager && values.mission_manager.id) {\n if (contact.id === manager.id) {\n contact.selected = 'mission_manager';\n }\n }\n members.forEach((member) => {\n if (contact.id === member.id) {\n contact.selected = 'mission_member';\n }\n });\n viewers.forEach((viewer) => {\n if (contact.id === viewer.id) {\n contact.selected = 'mission_viewers';\n }\n });\n delegates.forEach((delegate) => {\n if (contact.id === delegate.id) {\n contact.selected = 'mission_delegates';\n }\n });\n benchmarks.forEach((benchmark, index) => {\n if (benchmark.benchmark && contact.id === benchmark.benchmark.id) {\n contact.selected = 'mission_benchmarks_' + index;\n }\n });\n });\n console.log('updateContacts', tempContacts.map((c) => ({ id: c.id, first_name: c.first_name, last_name: c.last_name, selected: c.selected })));\n console.log('updateContacts form', ref.values);\n setContacts(tempContacts);\n }\n\n const onSaveContact = (contact, type, ...args) => {\n console.log('contact saved', contact, missionFormRef);\n if (contact) {\n getCompanyContacts();\n }\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n switch (type) {\n case 'mission_manager':\n ref.setFieldValue('mission_manager', contact);\n break;\n\n case 'mission_member':\n const members = values.mission_member || [];\n ref.setFieldValue('mission_member', [...members, contact]);\n break;\n\n case 'mission_viewers':\n const viewers = values.mission_viewers || [];\n ref.setFieldValue('mission_viewers', [...viewers, contact]);\n break;\n\n case 'mission_delegates':\n const delegates = values.mission_delegates || [];\n ref.setFieldValue('mission_delegates', [...delegates, contact]);\n break;\n\n case 'mission_benchmarks':\n const benchmarks = values.mission_benchmarks || [];\n if (args && args.length) {\n const benchmark = benchmarks[args[0]];\n benchmark.benchmark = contact;\n ref.setFieldValue('mission_benchmarks', [...benchmarks]);\n }\n break;\n\n default:\n break;\n }\n setTimeout(updateContacts, 100);\n }\n\n }\n\n const addContactBtn = (type, label, allowedContactTypes, ...args) => {\n let defaultQuestionnaireType;\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (values.default_questionnaire_type) {\n defaultQuestionnaireType = values.default_questionnaire_type;\n }\n }\n return (\n onSaveContact(contact, type, ...args)}>\n \n \n {label}\n \n \n )\n }\n\n const onFormSubmit = (mission) => {\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n default_questionnaire_type: mission.default_questionnaire_type ? mission.default_questionnaire_type.pk : null,\n mission_manager: mission.mission_manager.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.benchmark && value.benchmark.id).map((value) => { return { id: value.benchmark.id, benchmark_type: value.type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: MissionType, company: companyId\n };\n if (props.match.params.missionId) {\n updateMission(data);\n } else {\n saveMission(data);\n }\n }\n\n\n const saveMission = (data) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully added'));\n window.location.href = '/mobilities';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateMission = (data) => {\n setLoading(true);\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully updated'));\n window.location.href = '/mobilities';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n {t(\"Cancel and go back\")}\n \n
\n

{t(\"Mobility Form\")}

\n
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n onFormSubmit(values);\n }, 500);\n }}\n validationSchema={validationSchema}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit, setFieldValue, setFieldTouched } = props;\n return (\n
\n
\n
\n \n {errors.mission_name && touched.mission_name && (\n
{t(errors.mission_name)}
\n )}\n
\n
\n \n {errors.reference && touched.reference && (\n
{t(errors.reference)}
\n )}\n
\n
\n \n {errors.mission_end_date && touched.mission_end_date && (\n
{t(errors.mission_end_date)}
\n )}\n
\n
\n \n {errors.mission_description && touched.mission_description && (\n
{t(errors.mission_description)}
\n )}\n
\n {\n invitationLink &&\n
\n
\n
{t(\"Invitation Link\")}
\n
\n {invitationLink}\n
\n \n
\n \n \n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n
\n
\n
\n }\n
\n
\n
{t(\"Questionnaire\")}
\n
\n `${option.questionnaire_type}`}\n renderMenuItemChildren={(q) => (\n \n \n {q.questionnaire_type} {(q.default_companies && q.default_companies.includes(companyId)) ? '(Company Default)' : null}\n \n \n )}\n options={questionnaireTypes}\n placeholder={t(\"Select a Questionnaire\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('default_questionnaire_type', value);\n }}\n selected={values.default_questionnaire_type ? [values.default_questionnaire_type] : []}\n onBlur={(e) => setFieldTouched('default_questionnaire_type', true)}\n />\n
\n {errors.default_questionnaire_type && touched.default_questionnaire_type && (\n
{t(errors.default_questionnaire_type)}
\n )}\n
\n
\n
\n
\n
{t(\"Manager\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_manager') && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select a Manager\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('mission_manager', value);\n console.log('select manager', missionFormRef)\n setTimeout(updateContacts, 100);\n }}\n selected={values.mission_manager ? [values.mission_manager] : []}\n onBlur={(e) => setFieldTouched('mission_manager', true)}\n />\n
\n {addContactBtn('mission_manager', t('Add new manager'), [ContactTypes.Employee.value])}\n
\n
\n
\n {errors.mission_manager && touched.mission_manager && (\n
{t(errors.mission_manager)}
\n )}\n
\n
\n
\n
{t(\"Internal Candidates\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected) && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select internal candidates\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_member', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_member instanceof Array) ? values.mission_member : []}\n />\n
\n {addContactBtn('mission_member', t('Add internal candidates'), [ContactTypes.Employee.value])}\n
\n
\n
\n
\n {false &&\n
\n
\n
Mission Viewers
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_viewers'))}\n placeholder=\"Select Viewers\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_viewers', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_viewers instanceof Array) ? values.mission_viewers : []}\n />\n
\n {addContactBtn('mission_viewers', 'Add new mission viewer')}\n
\n
\n
\n
\n }\n {false &&\n
\n
\n
Mission Delegates
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => contact.user_id && (!contact.selected || contact.selected === 'mission_delegates'))}\n placeholder=\"Select Delegates\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_delegates', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_delegates instanceof Array) ? values.mission_delegates : []}\n >\n {/*
\n {addContactBtn('mission_delegates', 'Add new delegate')}\n
*/}\n \n
\n
\n }\n
\n
\n
{t(\"Team members\")}
\n \n \n
\n \n \n \n \n \n \n {\n values.mission_benchmarks.map((value, index) => (\n \n \n \n \n \n ))\n }\n \n \n {\n const benchmarks = values.mission_benchmarks;\n setFieldValue('mission_benchmarks', [...benchmarks, {\n benchmark: null,\n type: \"employee\"\n }])\n setTimeout(updateContacts, 100);\n }}>+ {t(\"Add Team member\")}\n \n \n
\n \n {t(\"Save mission\")}\n \n
\n \n \n );\n }}\n \n\n \n \n \n \n\n \n \n );\n}\n\nexport default withRouter(MobilityForm);","import server from '@config';\nimport { removeMemberFromMission } from 'api/mission';\nimport axios from 'axios';\nimport CompleteProfileSubMenu from 'components/Admin/common/CompleteProfileSubMenu/CompleteProfileSubMenu';\nimport QuotationTable from 'components/Admin/common/QuotationTable/QuotationTable';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport EditIcon from 'components/common/Icons/EditIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { getContactType } from 'constants/constants';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem, MenuItemGroup } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { checkQuotationAccess, isEvaluationCompleted, stopPropagation, truncate } from 'utils/utils';\nimport { getProp } from '../../../../utils/utils';\nimport ProgressBar from '../../../common/ProgressBar/ProgressBar';\nimport './OnboardingDetails.css';\n\nfunction OnboardingDetails(props) {\n\n const [mission, setMission] = useState(null);\n const [modal, setModal] = useState(false);\n const [candidateModal, setCandidateModal] = useState(false);\n const [loading, setLoading] = useState(false);\n const { t } = useTranslation();\n\n const [contacts, setContacts] = useState([]);\n const [selectedContact, setSelectedContact] = useState(null);\n const [selectedCandidate, setSelectedCandidate] = useState(null);\n const [dataForGrid, setDataForGrid] = useState([]);\n const [matchingMap, setMatchingMap] = useState({});\n const [searchInput, setSearchInput] = useState(null);\n const [printMode, setPrintMode] = useState(false);\n const [showAvatarCompatibility, setShowAvatarCompatibility] = useState(false);\n\n const [quotationTableData, setQuotationTableData] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n useEffect(() => {\n if (props.mission) {\n setMission(props.mission);\n const mission = props.mission;\n setModal(true);\n const contacts = [];\n if (mission.mission_manager) {\n contacts.push({ user: { ...mission.mission_manager, type: getContactType(mission.mission_manager.contact_type) } });\n }\n if (mission.mission_benchmarks && mission.mission_benchmarks.length) {\n mission.mission_benchmarks.forEach((benchmark) => {\n contacts.push({ user: { ...benchmark.contact, type: getContactType(benchmark.benchmark_type) } });\n })\n }\n if (mission.mission_member && mission.mission_member.length) {\n mission.mission_member.forEach((member) => {\n contacts.push({ user: { ...member, type: getContactType(member.contact_type), member: true } });\n })\n }\n setContacts(contacts);\n if (contacts.length) {\n setSelectedContact(contacts[0]);\n }\n } else {\n setModal(false);\n }\n setSearchInput('');\n }, [props.mission]);\n\n useEffect(() => {\n updateDataForGrid();\n }, [contacts, matchingMap, selectedContact])\n\n useEffect(() => {\n if (printMode) {\n printTable();\n }\n }, [printMode])\n\n const updateDataForGrid = () => {\n const data = contacts.filter((c) => c.user.member);\n if (matchingMap && selectedContact) {\n data.forEach((contact) => {\n const user_1 = selectedContact.user.user_id;\n const user_2 = contact.user.user_id;\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n contact.user.matching = matching || {};\n if (matching) {\n if (matching.immediate_harmony_smooth && matching.similarity_smooth) {\n contact.user.matching.integration_index = (matching.immediate_harmony_smooth * 0.6 + matching.similarity_smooth * 0.4);\n }\n }\n });\n }\n setDataForGrid(data);\n }\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const toggleCandidateModal = () => {\n setCandidateModal(!candidateModal);\n }\n\n useEffect(() => {\n if (selectedContact && selectedContact.user.user_id) {\n const data = {\n source: {\n company_id: selectedContact.user.company_id,\n email: selectedContact.user.email\n },\n target: contacts.filter((c) => c.user.member).filter((c) => !isMatchingAvailable(selectedContact.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n }\n }, [selectedContact])\n\n useEffect(() => {\n if (selectedCandidate && selectedCandidate.user.user_id) {\n const data = {\n source: {\n company_id: selectedCandidate.user.company_id,\n email: selectedCandidate.user.email\n },\n target: contacts.filter((c) => !c.user.member).filter((c) => !isMatchingAvailable(selectedCandidate.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n toggleCandidateModal();\n }\n }, [selectedCandidate])\n\n const isMatchingAvailable = (user_1, user_2) => {\n return matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n }\n\n const getMatchingData = (data) => {\n setLoading(true);\n\n let config = {\n method: 'post',\n url: server + '/result/match_contacts/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n if (res && res.data) {\n updateMatchingMap(res.data);\n }\n setLoading(false);\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const updateMatchingMap = (matchings) => {\n const map = matchingMap || {};\n if (matchings) {\n if (matchings.source_target_matching && matchings.source_target_matching.length) {\n matchings.source_target_matching.forEach((matching) => {\n map[`${matching.user_1}_${matching.user_2}`] = matching;\n });\n }\n if (matchings.avatar_target_matching && matchings.avatar_target_matching.length) {\n setShowAvatarCompatibility(true);\n matchings.avatar_target_matching.forEach((avatarMatching) => {\n if (map[`${avatarMatching.user_1}_${avatarMatching.user_2}`]) {\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else if (map[`${avatarMatching.user_2}_${avatarMatching.user_1}`]) {\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else {\n const sourceMatchingKeys = Object.keys(map).filter((key) => [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_1) || [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_2));\n sourceMatchingKeys.forEach((key) => {\n map[key].ircp_with_avatar = avatarMatching.ircp;\n map[key].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n });\n }\n })\n }\n }\n setMatchingMap({ ...map });\n }\n\n const getMatchingProgressBar = (user_1, user_2, key, styles, classes) => {\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n if (matching) {\n if (matching[key] >= 0) {\n return \n }\n }\n return null;\n }\n\n const getMatchingProfilePdf = (contact_1, contact_2, language) => {\n setLoading(true);\n\n const data = { contact_1, contact_2 };\n\n let config = {\n method: 'post',\n url: server + '/company/matching_result_pdf/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n setLoading(false);\n switch (language) {\n case 'en':\n if (res.data.matching_pdf_en) {\n window.open(res.data.matching_pdf_en, '_blank');\n }\n break;\n\n case 'fr':\n if (res.data.matching_pdf_fr) {\n window.open(res.data.matching_pdf_fr, '_blank');\n }\n break;\n\n default:\n break;\n }\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const removeMemberConfirmation = (contact) => {\n setConfirmDialogConfig({\n title: `${t('Confirm deletion?')}`,\n onYesAction: () => removeMember(contact),\n })\n }\n\n const removeMember = (contact) => {\n setLoading(true);\n removeMemberFromMission(mission.pk, contact.user.id)\n .then((res) => {\n console.log('remove member res', res);\n toast.success('Mentor removed successfully.');\n if (props.reload) {\n props.reload();\n }\n setLoading(false);\n });\n }\n\n const showMessage = (contact1, contact2) => {\n let message = '';\n const c1EvaluationCompleted = isEvaluationCompleted(getProp(contact1, ['user', 'result']));\n const c2EvaluationCompleted = isEvaluationCompleted(getProp(contact2, ['user', 'result']));\n if (!(c1EvaluationCompleted || c2EvaluationCompleted)) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t('and')} ${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"haven't completed the evaluation yet\")}.`;\n } else if (!c1EvaluationCompleted) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n } else if (!c2EvaluationCompleted) {\n message = `${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n }\n return message;\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.user.last_name, data.user.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n const printTable = () => {\n const modal = document.getElementById('missionDetails');\n const html = modal.getElementsByClassName('modal-content')[0];\n html.style.padding = '16px 32px 32px 32px';\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create
\n a.href = dataUrl; //Image Base64 Goes here\n const fileName = `${mission?.reference?.substring(0, 15)} ${selectedContact?.user?.last_name?.substring(0, 15)} ${selectedContact?.user?.first_name?.substring(0, 3)}`;\n a.download = `${fileName}.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n toast.success(t('Mission details downloaded successfully'));\n setPrintMode(false);\n html.style.padding = 'unset';\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n toast.error(t('Failed to download mission details'));\n setPrintMode(false);\n html.style.padding = 'unset';\n });\n }\n\n return (\n \n \n {\n props.mission &&\n \n {\n printMode &&\n
\n

{t(\"Onboarding\")}

\n
\n }\n
\n
\n \n {truncate(props.mission.mission_name, 30)}\n {props.mission.mission_name}\n \n
\n
{t(\"Ref.\")} : {props.mission.reference}
\n \n
\n {\n false &&\n <>\n \n \n \n \n \n }\n {\n (!loading && !printMode) &&\n \n }\n {\n (mission && !printMode) &&\n \n \n \n }\n {\n (!printMode) &&\n \n }\n
\n
\n {\n selectedContact &&\n
\n
\n
\n \n \n {truncate(selectedContact.user.first_name + ' ' + selectedContact.user.last_name, 30)}\n {selectedContact.user.first_name} {selectedContact.user.last_name}\n \n \n
\n {\n !printMode &&\n setSearchInput(e.target.value)} />\n }\n
\n
\n }\n
\n
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission.reference}\n \n {mission.mission_member ? mission.mission_member.length : 0}\n {formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}\n \n {truncate(mission.mission_manager.last_name, 15)}\n {mission.mission_manager.last_name}\n \n \n \n {truncate(mission.mission_manager.first_name, 15)}\n {mission.mission_manager.first_name}\n \n \n\n \n \n \n \n {/* {\n !mission.mission_archived_date ?\n \n \n : null\n } */}\n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n
{t(\"Missions\")}{t(\"Ref.\")}{t(\"Candidates\")}{t(\"Creation\")}{t(\"Estimated End\")}{t(\"Manager\")}{t(\"Owner\")}{t(\"Actions\")}
{mission.mission_name}{mission.reference}250{formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}{mission.mission_manager.first_name} {mission.mission_manager.last_name}{mission.mission_owner.first_name} {mission.mission_owner.last_name}
{t(\"Name\")}{t(\"Role\")}{t(\"Actions\")}
\n
\n `${option ? option.first_name : null} ${option ? option.last_name : null}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === `mission_benchmarks_${index}`) && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select members\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n const benchmarks = values.mission_benchmarks;\n benchmarks[index].benchmark = value;\n setFieldValue('mission_benchmarks', benchmarks);\n setTimeout(updateContacts, 100);\n }}\n selected={(value && value.benchmark) ? [value.benchmark] : []}\n />\n
\n {addContactBtn('mission_benchmarks', t('Add new team member'), [ContactTypes.Employee.value], index)}\n
\n
\n
\n \n \n \n
filterData(data))}\n rowComponent={\n (data, index) => (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedContact, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n {showAvatarCompatibility &&\n \n }\n \n \n \n \n : \n }\n {!printMode &&\n \n }\n \n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n { setSelectedCandidate(null); setCandidateModal(false) }} size='xl' className='onboarding-details-modal'>\n \n \n {\n selectedCandidate &&\n
\n
\n \n \n {truncate(selectedCandidate.user.first_name + ' ' + selectedCandidate.user.last_name, 30)}\n {selectedCandidate.user.first_name} {selectedCandidate.user.last_name}\n \n \n \n
\n
\n }\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n {selectedCandidate &&\n contacts.filter((c) => !c.user.member).map((data, index) => {\n return (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedCandidate, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n \n \n \n \n \n \n \n : \n }\n \n )\n })\n }\n\n \n \n \n \n \n \n \n\n }\n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default OnboardingDetails;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport ContactsIcon from 'components/common/Icons/ContactsIcon';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { formatDate, stopPropagation, truncate } from 'utils/utils';\nimport Header from '../Header/Header';\nimport './Onboarding.css';\nimport OnboardingDetails from './OnboardingDetails/OnboardingDetails';\n\nfunction Onboardings(props) {\n\n const { t } = useTranslation();\n\n const MissionType = 'O';\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [missionsForTable, setMissionsForTable] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n case \"2\":\n getColleaguesMissions();\n break;\n\n default:\n break;\n }\n // setDemoMissions();\n }, [activeItem])\n\n useEffect(() => {\n if (missions) {\n const missionForTable = [];\n missions.forEach((mission) => {\n const m = { ...mission };\n m.candidates = mission.mission_member ? mission.mission_member.length : 0;\n missionForTable.push(m);\n })\n setMissionsForTable(missionForTable);\n } else {\n setMissionsForTable([]);\n }\n updateSelectedMission();\n }, [missions]);\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + `/company/mission/?mission_type=${MissionType}`,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const getColleaguesMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + `/company/mission/?mission_type=${MissionType}&colleagues=true`,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const updateSelectedMission = () => {\n if (selectedMission) {\n const mission = missions.find((m) => m.pk === selectedMission.pk);\n setSelectedMission({ ...mission });\n }\n }\n\n const setDemoMissions = () => {\n setMissions([\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n },\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n }\n ])\n }\n\n const onMissionClick = (mission) => {\n setSelectedMission(mission);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission).then(() => {\n setLoading(false);\n toast.success(t('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to delete mission.');\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Onboarding\")}

\n \n \n + {t(\"New\")}\n \n \n
\n \n \n \n \n \n {t(\"My Onboarding Missions\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'ircp_smooth_with_avatar', { pathColor: '#e5e563' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'integration_index', { pathColor: '#00CFD7' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'immediate_harmony_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'similarity_smooth')}\n {showMessage(selectedContact, data)}\n \n \n {CompleteProfileSubMenu({ user: data.user, t })}\n {\n isEvaluationCompleted(data.user.result) ?\n {t(\"Matching Report\")}}>\n \n \n \n \n \n \n \n : null\n }\n {\n (quotationAccess && !data.user.confidential && isEvaluationCompleted(data.user.result)) ?\n \n \n \n {t(\"Quotation Table\")}\n \n \n :\n null\n }\n \n \n \n {t(\"Remove Mentor\")}\n \n \n \n }\n placement=\"bottomRight\"\n >\n \n \n
No data available for applied filter.
{t(\"Last Name\")}{t(\"First Name\")}{t(\"Role\")}\n \n {t(\"RI\")}\n {t(\"Relational Index\")}\n \n \n \n {t(\"FE\")}\n {t(\"Feeling\")}\n \n \n \n {t(\"DC\")}\n {t(\"Deep Compatibility\")}\n \n \n \n {t(\"CP\")}\n {t(\"Complementarity\")}\n \n \n \n {t(\"CO\")}\n {t(\"Connivance\")}\n \n \n \n {t(\"UN\")}\n {t(\"Understanding\")}\n \n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'rui_smooth')}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'immediate_harmony_smooth')}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'deep_compatibility_smooth')}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'complementarity_smooth')}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'similarity_smooth')}{getMatchingProgressBar(selectedCandidate.user.user_id, data.user.user_id, 'understanding_smooth')}\n {showMessage(selectedCandidate, data)}\n
(\n onMissionClick(mission)}>\n \n \n \n \n \n \n \n \n \n )\n }\n />\n \n \n \n setSelectedMission(null)} reload={() => getMyMissions()} />\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default Onboardings;","import server from '@config';\nimport axios from 'axios';\nimport ContactForm from 'components/Admin/ContactForm/ContactForm';\nimport Header from 'components/Admin/Header/Header';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport usePrevious from 'hooks/UsePrevious';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBInput, MDBMedia, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { getLanguage, getProfile } from 'utils/utils';\nimport * as Yup from 'yup';\nimport './OnboardingForm.css';\n\nfunction OnboardingForm(props) {\n const { t } = useTranslation();\n const MissionType = 'O';\n const [loading, setLoading] = useState(false);\n const [invitationLink, setInvitationLink] = useState(null);\n const [contacts, setContacts] = useState([]);\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const previousContacts = usePrevious(contacts);\n const [companyId, setCompanyId] = useState(null);\n\n var lang = getLanguage();\n\n const missionFormRef = new useRef(null);\n const benchmarkTypeMap = new Map();\n\n const initialValues = {\n reference: \"\",\n mission_name: \"\",\n mission_description: \"\",\n mission_delegates: [],\n mission_manager: null,\n mission_viewers: [],\n mission_member: [],\n mission_benchmarks: [{\n benchmark: null,\n type: \"employee\"\n }],\n mission_end_date: \"\",\n default_questionnaire_type: null\n };\n\n const validationSchema = Yup.object().shape({\n reference: Yup.string().required(\"Required\").max(20, 'Maximum 20 characters are allowed.'),\n mission_name: Yup.string().required(\"Required\").max(80, 'Maximum 80 characters are allowed.'),\n mission_description: Yup.string().required(\"Required\").max(1000, 'Maximum 1000 characters are allowed.'),\n mission_end_date: Yup.date().required('Required').min(new Date(), \"Please select future date\"),\n default_questionnaire_type: Yup.string().required(\"Required\").nullable(),\n mission_manager: Yup.object().required(\"Required\").nullable(),\n });\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n if (props.match.params.missionId) {\n getMissionById();\n } else {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }\n }, [companyId])\n\n useEffect(() => {\n if (previousContacts && previousContacts.length !== contacts.length) {\n updateContacts();\n }\n }, [contacts])\n\n const getMissionById = () => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('mission by id', res);\n if (res.data) {\n const data = res.data;\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n data.mission_end_date = moment(data.mission_end_date).format('YYYY-MM-DD');\n data.mission_benchmarks = data.mission_benchmarks.map((b) => ({ benchmark: b.contact, type: b.benchmark_type }));\n console.log('data', data)\n if (data.mission_referral) {\n setInvitationLink(`${window.location.origin}/?mission=${data.mission_referral}`);\n }\n ref.setValues(data);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n })\n setContacts(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (res.data && res.data.length && values && values.default_questionnaire_type) {\n res.data.forEach((qt) => {\n if (qt.pk === values.default_questionnaire_type) {\n values.default_questionnaire_type = qt;\n }\n })\n ref.setValues(values);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateContacts = () => {\n const ref = missionFormRef.current;\n const values = { ...ref.values };\n const tempContacts = [...contacts];\n tempContacts.forEach((contact) => {\n contact.selected = null;\n })\n const manager = values.mission_manager || {};\n const members = values.mission_member || [];\n const viewers = values.mission_viewers || [];\n const delegates = values.mission_delegates || [];\n const benchmarks = values.mission_benchmarks || [];\n tempContacts.forEach((contact) => {\n if (values.mission_manager && values.mission_manager.id) {\n if (contact.id === manager.id) {\n contact.selected = 'mission_manager';\n }\n }\n members.forEach((member) => {\n if (contact.id === member.id) {\n contact.selected = 'mission_member';\n }\n });\n viewers.forEach((viewer) => {\n if (contact.id === viewer.id) {\n contact.selected = 'mission_viewers';\n }\n });\n delegates.forEach((delegate) => {\n if (contact.id === delegate.id) {\n contact.selected = 'mission_delegates';\n }\n });\n benchmarks.forEach((benchmark, index) => {\n if (benchmark.benchmark && contact.id === benchmark.benchmark.id) {\n contact.selected = 'mission_benchmarks_' + index;\n }\n });\n });\n console.log('updateContacts', tempContacts.map((c) => ({ id: c.id, first_name: c.first_name, last_name: c.last_name, selected: c.selected })));\n console.log('updateContacts form', ref.values);\n setContacts(tempContacts);\n }\n\n const onSaveContact = (contact, type) => {\n console.log('contact saved', contact, missionFormRef);\n if (contact) {\n getCompanyContacts();\n }\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n switch (type) {\n case 'mission_manager':\n ref.setFieldValue('mission_manager', contact);\n break;\n\n case 'mission_member':\n const members = values.mission_member || [];\n ref.setFieldValue('mission_member', [...members, contact]);\n break;\n\n case 'mission_viewers':\n const viewers = values.mission_viewers || [];\n ref.setFieldValue('mission_viewers', [...viewers, contact]);\n break;\n\n case 'mission_delegates':\n const delegates = values.mission_delegates || [];\n ref.setFieldValue('mission_delegates', [...delegates, contact]);\n break;\n\n default:\n break;\n }\n setTimeout(updateContacts, 100);\n }\n\n }\n\n const addContactBtn = (type, label, allowedContactTypes, ...args) => {\n let defaultQuestionnaireType;\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (values.default_questionnaire_type) {\n defaultQuestionnaireType = values.default_questionnaire_type;\n }\n }\n return (\n onSaveContact(contact, type, ...args)}>\n \n \n {label}\n \n \n )\n }\n\n const onFormSubmit = (mission) => {\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n default_questionnaire_type: mission.default_questionnaire_type ? mission.default_questionnaire_type.pk : null,\n mission_manager: mission.mission_manager.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.benchmark && value.benchmark.id).map((value) => { return { id: value.benchmark.id, benchmark_type: value.type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: MissionType, company: companyId\n };\n if (props.match.params.missionId) {\n updateMission(data);\n } else {\n saveMission(data);\n }\n }\n\n const saveMission = (data) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully added'));\n window.location.href = '/onboardings';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateMission = (data) => {\n setLoading(true);\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully updated'));\n window.location.href = '/onboardings';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n {t(\"Cancel and go back\")}\n \n
\n

{t(\"Onboarding Form\")}

\n
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n onFormSubmit(values);\n }, 500);\n }}\n validationSchema={validationSchema}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit, setFieldValue, setFieldTouched } = props;\n return (\n
\n
\n
\n \n {errors.mission_name && touched.mission_name && (\n
{t(errors.mission_name)}
\n )}\n
\n
\n \n {errors.reference && touched.reference && (\n
{t(errors.reference)}
\n )}\n
\n
\n \n {errors.mission_end_date && touched.mission_end_date && (\n
{t(errors.mission_end_date)}
\n )}\n
\n
\n \n {errors.mission_description && touched.mission_description && (\n
{t(errors.mission_description)}
\n )}\n
\n {\n invitationLink &&\n
\n
\n
{t(\"Invitation Link\")}
\n
\n {invitationLink}\n
\n \n
\n \n \n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n
\n
\n
\n }\n
\n
\n
{t(\"Questionnaire\")}
\n
\n `${option.questionnaire_type}`}\n renderMenuItemChildren={(q) => (\n \n \n {q.questionnaire_type} {(q.default_companies && q.default_companies.includes(companyId)) ? '(Company Default)' : null}\n \n \n )}\n options={questionnaireTypes}\n placeholder={t(\"Select a Questionnaire\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('default_questionnaire_type', value);\n }}\n selected={values.default_questionnaire_type ? [values.default_questionnaire_type] : []}\n onBlur={(e) => setFieldTouched('default_questionnaire_type', true)}\n />\n
\n {errors.default_questionnaire_type && touched.default_questionnaire_type && (\n
{t(errors.default_questionnaire_type)}
\n )}\n
\n
\n
\n
\n
{t(\"Person to onboard\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_manager') && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select the person to onboard\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('mission_manager', value);\n console.log('select manager', missionFormRef)\n setTimeout(updateContacts, 100);\n }}\n selected={values.mission_manager ? [values.mission_manager] : []}\n onBlur={(e) => setFieldTouched('mission_manager', true)}\n />\n
\n {addContactBtn('mission_manager', t('Add new manager'), [ContactTypes.Employee.value])}\n
\n
\n
\n {errors.mission_manager && touched.mission_manager && (\n
{t(errors.mission_manager)}
\n )}\n
\n
\n
\n
{t(\"Mentors\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected) && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select mentors\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_member', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_member instanceof Array) ? values.mission_member : []}\n />\n
\n {addContactBtn('mission_member', t('Add new employee'), [ContactTypes.Employee.value])}\n
\n
\n
\n
\n
\n \n {t(\"Save mission\")}\n \n
\n
\n \n );\n }}\n \n\n
\n
\n
\n
\n\n
\n
\n );\n}\n\nexport default withRouter(OnboardingForm);","import server from '@config';\nimport axios from 'axios';\nimport ContactForm from 'components/Admin/ContactForm/ContactForm';\nimport Header from 'components/Admin/Header/Header';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport usePrevious from 'hooks/UsePrevious';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBInput, MDBMedia, MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { getLanguage, getProfile } from 'utils/utils';\nimport * as Yup from 'yup';\nimport './RecruitmentForm.css';\n\nfunction RecruitmentForm(props) {\n const { t } = useTranslation();\n const MissionType = 'R';\n const [loading, setLoading] = useState(false);\n const [invitationLink, setInvitationLink] = useState(null);\n const [contacts, setContacts] = useState([]);\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const previousContacts = usePrevious(contacts);\n const [companyId, setCompanyId] = useState(null);\n\n var lang = getLanguage();\n\n const missionFormRef = new useRef(null);\n const benchmarkTypeMap = new Map();\n\n const initialValues = {\n reference: \"\",\n mission_name: \"\",\n mission_description: \"\",\n mission_delegates: [],\n mission_manager: null,\n mission_viewers: [],\n mission_member: [],\n mission_benchmarks: [],\n mission_end_date: \"\",\n default_questionnaire_type: null\n };\n\n const validationSchema = Yup.object().shape({\n reference: Yup.string().required(\"Required\").max(20, 'Maximum 20 characters are allowed.'),\n mission_name: Yup.string().required(\"Required\").max(80, 'Maximum 80 characters are allowed.'),\n mission_description: Yup.string().required(\"Required\").max(1000, 'Maximum 1000 characters are allowed.'),\n mission_end_date: Yup.date().required(\"Required\").min(new Date(), \"Please select future date\"),\n default_questionnaire_type: Yup.string().required(\"Required\").nullable(),\n mission_manager: Yup.object().required(\"Required\").nullable(),\n });\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n if (props.match.params.missionId) {\n getMissionById();\n } else {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }\n }, [companyId])\n\n useEffect(() => {\n if (previousContacts && previousContacts.length !== contacts.length) {\n updateContacts();\n }\n }, [contacts])\n\n const getMissionById = () => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('mission by id', res);\n if (res.data) {\n const data = res.data;\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n data.mission_end_date = moment(data.mission_end_date).format('YYYY-MM-DD');\n data.mission_benchmarks = data.mission_benchmarks.map((b) => ({ benchmark: b.contact, type: b.benchmark_type }));\n console.log('data', data)\n if (data.mission_referral) {\n setInvitationLink(`${window.location.origin}/?mission=${data.mission_referral}`);\n }\n ref.setValues(data);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n })\n setContacts(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (res.data && res.data.length && values && values.default_questionnaire_type) {\n res.data.forEach((qt) => {\n if (qt.pk === values.default_questionnaire_type) {\n values.default_questionnaire_type = qt;\n }\n })\n ref.setValues(values);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateContacts = () => {\n const ref = missionFormRef.current;\n const values = { ...ref.values };\n const tempContacts = [...contacts];\n tempContacts.forEach((contact) => {\n contact.selected = null;\n })\n const manager = values.mission_manager || {};\n const members = values.mission_member || [];\n const viewers = values.mission_viewers || [];\n const delegates = values.mission_delegates || [];\n const benchmarks = values.mission_benchmarks || [];\n tempContacts.forEach((contact) => {\n if (values.mission_manager && values.mission_manager.id) {\n if (contact.id === manager.id) {\n contact.selected = 'mission_manager';\n }\n }\n members.forEach((member) => {\n if (contact.id === member.id) {\n contact.selected = 'mission_member';\n }\n });\n viewers.forEach((viewer) => {\n if (contact.id === viewer.id) {\n contact.selected = 'mission_viewers';\n }\n });\n delegates.forEach((delegate) => {\n if (contact.id === delegate.id) {\n contact.selected = 'mission_delegates';\n }\n });\n benchmarks.forEach((benchmark, index) => {\n if (benchmark.benchmark && contact.id === benchmark.benchmark.id) {\n contact.selected = 'mission_benchmarks_' + index;\n }\n });\n });\n console.log('updateContacts', tempContacts.map((c) => ({ id: c.id, first_name: c.first_name, last_name: c.last_name, selected: c.selected })));\n console.log('updateContacts form', ref.values);\n setContacts(tempContacts);\n }\n\n const onSaveContact = (contact, type, ...args) => {\n console.log('contact saved', contact, missionFormRef);\n if (contact) {\n getCompanyContacts();\n }\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n switch (type) {\n case 'mission_manager':\n ref.setFieldValue('mission_manager', contact);\n break;\n\n case 'mission_member':\n const members = values.mission_member || [];\n ref.setFieldValue('mission_member', [...members, contact]);\n break;\n\n case 'mission_viewers':\n const viewers = values.mission_viewers || [];\n ref.setFieldValue('mission_viewers', [...viewers, contact]);\n break;\n\n case 'mission_delegates':\n const delegates = values.mission_delegates || [];\n ref.setFieldValue('mission_delegates', [...delegates, contact]);\n break;\n\n case 'mission_benchmarks':\n const benchmarks = values.mission_benchmarks || [];\n if (args && args.length) {\n const benchmark = benchmarks[args[0]];\n benchmark.benchmark = contact;\n ref.setFieldValue('mission_benchmarks', [...benchmarks]);\n }\n break;\n\n default:\n break;\n }\n setTimeout(updateContacts, 100);\n }\n\n }\n\n const addContactBtn = (type, label, allowedContactTypes, ...args) => {\n let defaultQuestionnaireType;\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (values.default_questionnaire_type) {\n defaultQuestionnaireType = values.default_questionnaire_type;\n }\n }\n return (\n onSaveContact(contact, type, ...args)}>\n \n \n {label}\n \n \n )\n }\n\n const onFormSubmit = (mission) => {\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n default_questionnaire_type: mission.default_questionnaire_type ? mission.default_questionnaire_type.pk : null,\n mission_manager: mission.mission_manager.id,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.benchmark && value.benchmark.id).map((value) => { return { id: value.benchmark.id, benchmark_type: value.type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: MissionType, company: companyId\n };\n if (props.match.params.missionId) {\n updateMission(data);\n } else {\n saveMission(data);\n }\n }\n\n const saveMission = (data) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully added'));\n window.location.href = '/recruitments';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateMission = (data) => {\n setLoading(true);\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully updated'));\n window.location.href = '/recruitments';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n {t(\"Cancel and go back\")}\n \n
\n

{t(\"Recruitment Form\")}

\n
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n onFormSubmit(values);\n }, 500);\n }}\n validationSchema={validationSchema}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit, setFieldValue, setFieldTouched } = props;\n return (\n
\n
\n
\n \n {errors.mission_name && touched.mission_name && (\n
{t(errors.mission_name)}
\n )}\n
\n
\n \n {errors.reference && touched.reference && (\n
{t(errors.reference)}
\n )}\n
\n
\n \n {errors.mission_end_date && touched.mission_end_date && (\n
{t(errors.mission_end_date)}
\n )}\n
\n
\n \n {errors.mission_description && touched.mission_description && (\n
{t(errors.mission_description)}
\n )}\n
\n {\n invitationLink &&\n
\n
\n
{t(\"Invitation Link\")}
\n
\n {invitationLink}\n
\n \n
\n \n \n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n
\n
\n
\n }\n
\n
\n
{t(\"Questionnaire\")}
\n
\n `${option.questionnaire_type}`}\n renderMenuItemChildren={(q) => (\n \n \n {q.questionnaire_type} {(q.default_companies && q.default_companies.includes(companyId)) ? '(Company Default)' : null}\n \n \n )}\n options={questionnaireTypes}\n placeholder={t(\"Select a Questionnaire\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('default_questionnaire_type', value);\n }}\n selected={values.default_questionnaire_type ? [values.default_questionnaire_type] : []}\n onBlur={(e) => setFieldTouched('default_questionnaire_type', true)}\n />\n
\n {errors.default_questionnaire_type && touched.default_questionnaire_type && (\n
{t(errors.default_questionnaire_type)}
\n )}\n
\n
\n
\n
\n
{t(\"Manager\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_manager') && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select a Manager\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('mission_manager', value);\n console.log('select manager', missionFormRef)\n setTimeout(updateContacts, 100);\n }}\n selected={values.mission_manager ? [values.mission_manager] : []}\n onBlur={(e) => setFieldTouched('mission_manager', true)}\n />\n
\n {addContactBtn('mission_manager', t('Add new manager'), [ContactTypes.Employee.value])}\n
\n
\n
\n {errors.mission_manager && touched.mission_manager && (\n
{t(errors.mission_manager)}
\n )}\n
\n
\n
\n
{t(\"Candidates\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected) && [ContactTypes.Candidate.value].includes(contact.contact_type))}\n placeholder={t(\"Select candidates\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_member', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_member instanceof Array) ? values.mission_member : []}\n />\n
\n {addContactBtn('mission_member', t('Add new candidates'), [ContactTypes.Candidate.value])}\n
\n
\n
\n
\n {\n false &&\n
\n
\n
Mission Viewers
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_viewers'))}\n placeholder=\"Select Viewers\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_viewers', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_viewers instanceof Array) ? values.mission_viewers : []}\n />\n
\n {addContactBtn('mission_viewers', 'Add new viewer')}\n
\n
\n
\n
\n }\n {\n false &&\n
\n
\n
Mission Delegates
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => contact.user_id && (!contact.selected || contact.selected === 'mission_delegates'))}\n placeholder=\"Select Delegates\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_delegates', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_delegates instanceof Array) ? values.mission_delegates : []}\n >\n {/*
\n {addContactBtn('mission_delegates', 'Add new delegate')}\n
*/}\n \n
\n
\n }\n\n
\n
\n
{t(\"Team members\")}
\n \n \n
\n \n \n \n \n \n \n {\n values.mission_benchmarks.map((value, index) => (\n \n \n \n \n \n ))\n }\n \n \n {\n const benchmarks = values.mission_benchmarks;\n setFieldValue('mission_benchmarks', [...benchmarks, {\n benchmark: null,\n type: \"employee\"\n }])\n setTimeout(updateContacts, 100);\n }}>+ {t(\"Add Team member\")}\n \n \n
\n \n {t(\"Save mission\")}\n \n
\n \n \n );\n }}\n \n\n \n \n \n \n\n \n \n );\n}\n\nexport default withRouter(RecruitmentForm);","import Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { getProp, isEvaluationCompleted, truncate } from 'utils/utils';\nimport ProgressBar from '../../../../common/ProgressBar/ProgressBar';\n\nfunction RecruitmentCandidateModel({ loading, matchingMap, contacts, selectedCandidate, setSelectedCandidate }) {\n const [dataForGrid, setDataForGrid] = useState([]);\n const [matchings, setMatchings] = useState([]);\n const [searchInput, setSearchInput] = useState(null);\n const [CPI, setCPI] = useState(0);\n const [impactOnCPI, setImpactOnCPI] = useState(0);\n const { t } = useTranslation();\n\n useEffect(() => {\n updateDataForGrid();\n }, [contacts, matchingMap])\n\n useEffect(() => {\n console.log('data for grid', dataForGrid)\n }, [dataForGrid])\n\n useEffect(() => {\n setCPI(getCPI());\n console.log('matchings', matchings)\n }, [matchings])\n\n useEffect(() => {\n console.log('CPI', CPI);\n if (selectedCandidate && selectedCandidate.user) {\n console.log('impact on cpi', getImpactOnCPI(selectedCandidate.user.user_id))\n setImpactOnCPI(getImpactOnCPI(selectedCandidate.user.user_id));\n }\n }, [CPI])\n\n const updateDataForGrid = () => {\n const data = contacts.filter((c) => !c.user.member);\n const matchings = [];\n if (matchingMap) {\n data.forEach((contact) => {\n const user_1 = selectedCandidate.user.user_id;\n const user_2 = contact.user.user_id;\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n contact.user.matching = matching || {};\n if (matching) {\n matchings.push(matching);\n }\n });\n }\n setMatchings(matchings);\n setDataForGrid(data);\n }\n\n const getCPI = () => {\n let rui_smooth = 0;\n let cpi = 0;\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n rui_smooth += matching.rui_smooth;\n });\n cpi = rui_smooth * 100 / matchings.length;\n }\n return +cpi.toFixed(2);\n }\n\n const getImpactOnCPI = (userId) => {\n let impactOnCpi = 0;\n if (userId && CPI) {\n let cpi_without_user = 0;\n let cpi_with_user = 0;\n let count_without_user = 0;\n let count_with_user = 0;\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n if (matching.rui_smooth !== 0) {\n count_with_user++;\n cpi_with_user += matching.rui_smooth;\n if (matching.user_1 !== userId && matching.user_2 !== userId) {\n cpi_without_user += matching.rui_smooth;\n count_without_user++;\n }\n }\n });\n if (count_without_user) {\n cpi_without_user = cpi_without_user * 100 / count_without_user;\n }\n if (count_with_user) {\n cpi_with_user = cpi_with_user * 100 / count_with_user;\n }\n if (cpi_without_user) {\n impactOnCpi = (cpi_with_user - cpi_without_user) * 100 / cpi_without_user;\n }\n }\n }\n return +impactOnCpi.toFixed(2);\n }\n\n const getMatchingProgressBar = (matching, key, styles, classes) => {\n if (matching) {\n if (matching[key] >= 0) {\n return \n }\n }\n return null;\n }\n\n const showMessage = (contact1, contact2) => {\n let message = '';\n const c1EvaluationCompleted = isEvaluationCompleted(getProp(contact1, ['user', 'result']));\n const c2EvaluationCompleted = isEvaluationCompleted(getProp(contact2, ['user', 'result']));\n if (!(c1EvaluationCompleted || c2EvaluationCompleted)) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t('and')} ${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"haven't completed the evaluation yet\")}.`;\n } else if (!c1EvaluationCompleted) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n } else if (!c2EvaluationCompleted) {\n message = `${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n }\n return message;\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.user.last_name, data.user.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n return (\n { setSelectedCandidate(null); }} size='xl' className='recruitment-details-modal'>\n\n \n \n {\n selectedCandidate &&\n
\n
\n \n \n {truncate(selectedCandidate.user.first_name + ' ' + selectedCandidate.user.last_name, 30)}\n {selectedCandidate.user.first_name} {selectedCandidate.user.last_name}\n \n \n {/* Impact on CPI: {impactOnCPI} */}\n
\n setSearchInput(e.target.value)} />\n \n
\n
\n
\n }\n
\n
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission.reference}\n \n {mission.mission_member ? mission.mission_member.length : 0}\n {formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}\n \n {truncate(mission.mission_manager.last_name, 15)}\n {mission.mission_manager.last_name}\n \n \n \n {truncate(mission.mission_manager.first_name, 15)}\n {mission.mission_manager.first_name}\n \n \n\n \n \n \n \n {/* {\n !mission.mission_archived_date ?\n \n \n : null\n } */}\n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n
{t(\"Name\")}{t(\"Role\")}{t(\"Actions\")}
\n
\n `${option ? option.first_name : null} ${option ? option.last_name : null}`}\n inputProps={{ required: true }}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === `mission_benchmarks_${index}`) && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select members\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n const benchmarks = values.mission_benchmarks;\n benchmarks[index].benchmark = value;\n setFieldValue('mission_benchmarks', benchmarks);\n setTimeout(updateContacts, 100);\n }}\n selected={(value && value.benchmark) ? [value.benchmark] : []}\n />\n
\n {addContactBtn('mission_benchmarks', t('Add new employee'), [ContactTypes.Employee.value], index)}\n
\n
\n
\n \n \n \n
filterData(data))}\n rowComponent={\n (data, index) => (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedCandidate, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n \n \n \n \n \n \n \n : \n }\n \n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n \n \n \n\n );\n}\n\nexport default RecruitmentCandidateModel;","import server from '@config';\nimport { removeMemberFromMission } from 'api/mission';\nimport axios from 'axios';\nimport CompleteProfileSubMenu from 'components/Admin/common/CompleteProfileSubMenu/CompleteProfileSubMenu';\nimport QuotationTable from 'components/Admin/common/QuotationTable/QuotationTable';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport EditIcon from 'components/common/Icons/EditIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport PeopleIcon from 'components/common/Icons/PeopleIcon';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { getContactType } from 'constants/constants';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem, MenuItemGroup } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { checkQuotationAccess, isEvaluationCompleted, stopPropagation, truncate } from 'utils/utils';\nimport { getProp } from '../../../../utils/utils';\nimport ProgressBar from '../../../common/ProgressBar/ProgressBar';\nimport RecruitmentCandidateModel from './RecruitmentCandidateModel/RecruitmentCandidateModel';\nimport './RecruitmentDetails.css';\n\nfunction RecruitmentDetails(props) {\n\n const [mission, setMission] = useState(null);\n const [modal, setModal] = useState(false);\n const [candidateModal, setCandidateModal] = useState(false);\n const [loading, setLoading] = useState(false);\n const { t } = useTranslation();\n\n const [contacts, setContacts] = useState([]);\n const [selectedContact, setSelectedContact] = useState(null);\n const [selectedCandidate, setSelectedCandidate] = useState(null);\n const [dataForGrid, setDataForGrid] = useState([]);\n const [matchingMap, setMatchingMap] = useState({});\n const [searchInput, setSearchInput] = useState(null);\n const [printMode, setPrintMode] = useState(false);\n const [showAvatarCompatibility, setShowAvatarCompatibility] = useState(false);\n\n const [quotationTableData, setQuotationTableData] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n useEffect(() => {\n if (props.mission) {\n setMission(props.mission);\n const mission = props.mission;\n setModal(true);\n const contacts = [];\n if (mission.mission_manager) {\n contacts.push({ user: { ...mission.mission_manager, type: getContactType(mission.mission_manager.contact_type) } });\n }\n if (mission.mission_benchmarks && mission.mission_benchmarks.length) {\n mission.mission_benchmarks.forEach((benchmark) => {\n contacts.push({ user: { ...benchmark.contact, type: getContactType(benchmark.benchmark_type) } });\n })\n }\n if (mission.mission_member && mission.mission_member.length) {\n mission.mission_member.forEach((member) => {\n contacts.push({ user: { ...member, type: getContactType(member.contact_type), member: true } });\n })\n }\n console.log('contacts', contacts);\n setContacts(contacts);\n if (contacts.length) {\n setSelectedContact(contacts[0]);\n }\n } else {\n setModal(false);\n }\n setSearchInput('');\n }, [props.mission]);\n\n useEffect(() => {\n updateDataForGrid();\n }, [contacts, matchingMap, selectedContact])\n\n useEffect(() => {\n if (printMode) {\n printTable();\n }\n }, [printMode])\n\n const updateDataForGrid = () => {\n const data = contacts.filter((c) => c.user.member);\n if (matchingMap && selectedContact) {\n data.forEach((contact) => {\n const user_1 = selectedContact.user.user_id;\n const user_2 = contact.user.user_id;\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n contact.user.matching = matching || {};\n });\n }\n setDataForGrid(data);\n }\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const toggleCandidateModal = () => {\n setCandidateModal(!candidateModal);\n }\n\n useEffect(() => {\n if (selectedContact && selectedContact.user.user_id) {\n const data = {\n source: {\n company_id: selectedContact.user.company_id,\n email: selectedContact.user.email\n },\n target: contacts.filter((c) => c.user.member).filter((c) => !isMatchingAvailable(selectedContact.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n }\n }, [selectedContact])\n\n useEffect(() => {\n if (selectedCandidate && selectedCandidate.user.user_id) {\n const data = {\n source: {\n company_id: selectedCandidate.user.company_id,\n email: selectedCandidate.user.email\n },\n target: contacts.filter((c) => !c.user.member).filter((c) => !isMatchingAvailable(selectedCandidate.user.user_id, c.user.user_id)).map((c) => {\n return {\n company_id: c.user.company_id,\n email: c.user.email\n }\n })\n }\n if (data.target.length) {\n getMatchingData(data);\n }\n toggleCandidateModal();\n }\n }, [selectedCandidate])\n\n const isMatchingAvailable = (user_1, user_2) => {\n return matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n }\n\n const getMatchingData = (data) => {\n setLoading(true);\n\n let config = {\n method: 'post',\n url: server + '/result/match_contacts/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n if (res && res.data) {\n updateMatchingMap(res.data);\n }\n setLoading(false);\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const updateMatchingMap = (matchings) => {\n const map = matchingMap || {};\n if (matchings) {\n if (matchings.source_target_matching && matchings.source_target_matching.length) {\n matchings.source_target_matching.forEach((matching) => {\n map[`${matching.user_1}_${matching.user_2}`] = matching;\n });\n }\n if (matchings.avatar_target_matching && matchings.avatar_target_matching.length) {\n setShowAvatarCompatibility(true);\n matchings.avatar_target_matching.forEach((avatarMatching) => {\n if (map[`${avatarMatching.user_1}_${avatarMatching.user_2}`]) {\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_1}_${avatarMatching.user_2}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else if (map[`${avatarMatching.user_2}_${avatarMatching.user_1}`]) {\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_with_avatar = avatarMatching.ircp;\n map[`${avatarMatching.user_2}_${avatarMatching.user_1}`].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n } else {\n const sourceMatchingKeys = Object.keys(map).filter((key) => [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_1) || [avatarMatching.user_1, avatarMatching.user_2].includes(map[key].user_2));\n sourceMatchingKeys.forEach((key) => {\n map[key].ircp_with_avatar = avatarMatching.ircp;\n map[key].ircp_smooth_with_avatar = avatarMatching.ircp_smooth;\n });\n }\n })\n }\n }\n setMatchingMap({ ...map });\n }\n\n const getMatchingProgressBar = (user_1, user_2, key, styles, classes) => {\n const matching = matchingMap[`${user_1}_${user_2}`] || matchingMap[`${user_2}_${user_1}`];\n if (matching) {\n if (matching[key] >= 0) {\n return \n }\n }\n return null;\n }\n\n const getMatchingProfilePdf = (contact_1, contact_2, language) => {\n setLoading(true);\n\n const data = { contact_1, contact_2 };\n\n let config = {\n method: 'post',\n url: server + '/company/matching_result_pdf/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n setLoading(false);\n switch (language) {\n case 'en':\n if (res.data.matching_pdf_en) {\n window.open(res.data.matching_pdf_en, '_blank');\n }\n break;\n\n case 'fr':\n if (res.data.matching_pdf_fr) {\n window.open(res.data.matching_pdf_fr, '_blank');\n }\n break;\n\n default:\n break;\n }\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const removeMemberConfirmation = (contact) => {\n setConfirmDialogConfig({\n title: `${t('Confirm deletion?')}`,\n onYesAction: () => removeMember(contact),\n })\n }\n\n const removeMember = (contact) => {\n setLoading(true);\n removeMemberFromMission(mission.pk, contact.user.id)\n .then((res) => {\n console.log('remove member res', res);\n toast.success(t('Candidate removed successfully'));\n if (props.reload) {\n props.reload();\n }\n setLoading(false);\n });\n }\n\n const showMessage = (contact1, contact2) => {\n let message = '';\n const c1EvaluationCompleted = isEvaluationCompleted(getProp(contact1, ['user', 'result']));\n const c2EvaluationCompleted = isEvaluationCompleted(getProp(contact2, ['user', 'result']));\n if (!(c1EvaluationCompleted || c2EvaluationCompleted)) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t('and')} ${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"haven't completed the evaluation yet\")}.`;\n } else if (!c1EvaluationCompleted) {\n message = `${contact1?.user?.first_name} ${contact1?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n } else if (!c2EvaluationCompleted) {\n message = `${contact2?.user?.first_name} ${contact2?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`;\n }\n return message;\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.user.last_name, data.user.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n const printTable = () => {\n const modal = document.getElementById('missionDetails');\n const html = modal.getElementsByClassName('modal-content')[0];\n html.style.padding = '16px 32px 32px 32px';\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create \n a.href = dataUrl; //Image Base64 Goes here\n const fileName = `${mission?.reference?.substring(0, 15)} ${selectedContact?.user?.last_name?.substring(0, 15)} ${selectedContact?.user?.first_name?.substring(0, 3)}`;\n a.download = `${fileName}.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n toast.success(t('Mission details downloaded successfully'));\n setPrintMode(false);\n html.style.padding = 'unset';\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n toast.error(t('Failed to download mission details'));\n setPrintMode(false);\n html.style.padding = 'unset';\n });\n }\n\n return (\n \n \n {\n props.mission &&\n \n {\n printMode &&\n
\n

{t(\"Recruitment\")}

\n
\n }\n
\n
\n \n {truncate(props.mission.mission_name, 30)}\n {props.mission.mission_name}\n \n
\n
{t(\"Ref.\")} : {props.mission.reference}
\n \n\n
\n {\n false &&\n <>\n \n \n \n \n \n }\n {\n (!loading && !printMode) &&\n \n }\n {\n (mission && !printMode) &&\n \n \n \n }\n {\n (!printMode) &&\n \n }\n
\n
\n {\n selectedContact &&\n
\n
\n
\n \n \n {truncate(selectedContact.user.first_name + ' ' + selectedContact.user.last_name, 30)}\n {selectedContact.user.first_name} {selectedContact.user.last_name}\n \n \n {!printMode &&\n \n {t(\"Match with\")}:\n {\n contacts.filter((c) => !c.user.member && c.user.id !== selectedContact.user.id).map((contact) => (\n \n \n \n ))\n }\n \n }\n animation=\"slide-up\"\n placement=\"bottomLeft\"\n >\n \n }\n
\n {\n !printMode &&\n setSearchInput(e.target.value)} />\n }\n
\n
\n }\n
\n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(data.user.matching, 'rui_smooth', { pathColor: '#00CFD7' }, 'font-weight-bold')}{getMatchingProgressBar(data.user.matching, 'immediate_harmony_smooth')}{getMatchingProgressBar(data.user.matching, 'deep_compatibility_smooth')}{getMatchingProgressBar(data.user.matching, 'complementarity_smooth')}{getMatchingProgressBar(data.user.matching, 'similarity_smooth')}{getMatchingProgressBar(data.user.matching, 'understanding_smooth')}\n {showMessage(selectedCandidate, data)}\n
No data available for applied filter.
filterData(data))}\n rowComponent={\n (data, index) => (\n \n \n \n \n {\n (isEvaluationCompleted(getProp(selectedContact, ['user', 'result'])) && isEvaluationCompleted(getProp(data, ['user', 'result']))) ?\n <>\n {showAvatarCompatibility &&\n \n }\n \n \n \n \n \n \n \n : \n }\n {!printMode &&\n \n }\n \n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n {\n selectedCandidate &&\n \n }\n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n\n }\n \n \n );\n}\n\nexport default RecruitmentDetails;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport ContactsIcon from 'components/common/Icons/ContactsIcon';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { formatDate, stopPropagation, truncate } from 'utils/utils';\nimport Header from '../Header/Header';\nimport RecruitmentDetails from './RecruitmentDetails/RecruitmentDetails';\nimport './Recruitments.css';\n\n\nfunction Recruitments(props) {\n\n const { t } = useTranslation();\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [missionsForTable, setMissionsForTable] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n case \"2\":\n getColleaguesMissions();\n break;\n\n default:\n break;\n }\n // setDemoMissions();\n }, [activeItem])\n\n useEffect(() => {\n if (missions) {\n const missionForTable = [];\n missions.forEach((mission) => {\n const m = { ...mission };\n m.candidates = mission.mission_member ? mission.mission_member.length : 0;\n missionForTable.push(m);\n })\n setMissionsForTable(missionForTable);\n } else {\n setMissionsForTable([]);\n }\n updateSelectedMission();\n }, [missions]);\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=R',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const getColleaguesMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=R&colleagues=true',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const updateSelectedMission = () => {\n if (selectedMission) {\n const mission = missions.find((m) => m.pk === selectedMission.pk);\n setSelectedMission({ ...mission });\n }\n }\n\n const setDemoMissions = () => {\n setMissions([\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n },\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n }\n ])\n }\n\n const onMissionClick = (mission) => {\n setSelectedMission(mission);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission).then(() => {\n setLoading(false);\n toast.success(('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success(t('Failed to delete mission.'));\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Recruitment\")}

\n \n \n + {t(\"New\")}\n \n \n
\n \n \n \n \n \n {t(\"My Recruitment Missions\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n
\n \n {truncate(data.user.last_name, 15)}\n {data.user.last_name}\n \n \n \n {truncate(data.user.first_name, 15)}\n {data.user.first_name}\n \n {t(data.user.type)}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'ircp_smooth_with_avatar', { pathColor: '#e5e563' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'rui_smooth', { pathColor: '#00CFD7' }, 'font-weight-bold')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'immediate_harmony_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'deep_compatibility_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'complementarity_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'similarity_smooth')}{getMatchingProgressBar(selectedContact.user.user_id, data.user.user_id, 'understanding_smooth')}\n {showMessage(selectedContact, data)}\n \n \n {CompleteProfileSubMenu({ user: data.user, t })}\n {\n isEvaluationCompleted(data.user.result) ?\n {t(\"Matching Report\")}}>\n \n \n \n \n \n \n \n : null\n }\n {\n (quotationAccess && !data.user.confidential && isEvaluationCompleted(data.user.result)) ?\n \n \n \n {t(\"Quotation Table\")}\n \n \n :\n null\n }\n \n \n \n {t(\"All Matchings\")}\n \n \n \n \n \n {t(\"Remove Candidate\")}\n \n \n \n }\n placement=\"bottomRight\"\n >\n \n \n
No data available for applied filter.
(\n onMissionClick(mission)}>\n \n \n \n \n \n \n \n \n\n \n )\n }\n />\n \n \n \n setSelectedMission(null)} reload={() => getMyMissions()} />\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default Recruitments;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 80,\n width: 1120,\n height: 632,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-1.8%\",\n width: \"102.2%\",\n height: \"104.0%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-3\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-4\",\n x: 0,\n y: 0,\n width: 1120,\n height: 48,\n rx: 5\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-1.1%\",\n y: \"-24.0%\",\n width: \"102.2%\",\n height: \"152.1%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-5\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 1,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in: \"shadowBlurOuter1\",\n in2: \"SourceAlpha\",\n operator: \"out\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0.423529412 0 0 0 0 0.709803922 0 0 0 0.2 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon\",\n fill: \"#908D95\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon-ok\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3301546,12.4159518 L13.4255656,12.4659721 L13.7599734,12.6569675 C14.3904752,13.0170754 14.8203853,13.6253963 14.9271255,14.3188635 C14.971936,14.6099869 14.7722599,14.8823151 14.4811365,14.9271255 C14.1900131,14.971936 13.9176849,14.7722599 13.8728745,14.4811365 C13.8211047,14.1447998 13.6209782,13.8396981 13.3165386,13.6361492 L13.2309565,13.5832066 L12.8965487,13.3922112 C12.7765162,13.3236553 12.6229096,13.3141299 12.4922174,13.3680397 C11.8385248,13.6376837 11.0948086,13.6376837 10.4411159,13.3680397 C10.329094,13.3218313 10.2002371,13.3222283 10.090118,13.3664571 L10.0367846,13.3922112 L9.70237685,13.5832066 C9.34996789,13.7844832 9.116935,14.1142237 9.06045885,14.4811365 C9.01564841,14.7722599 8.74332023,14.971936 8.45219684,14.9271255 C8.16107346,14.8823151 7.96139737,14.6099869 8.00620781,14.3188635 C8.10666919,13.6661885 8.49339874,13.0889372 9.06420215,12.7230593 L9.17335995,12.6569675 L9.50776771,12.4659721 C9.88313959,12.2515803 10.3372087,12.2087218 10.7465355,12.3443422 L10.8478636,12.3819696 C11.2052948,12.5294077 11.6107287,12.5428112 11.9768876,12.42218 L12.0854697,12.3819696 C12.4864822,12.2165545 12.9425237,12.2301971 13.3301546,12.4159518 Z M11.4666667,6.4 C13.0867019,6.4 14.4,7.71329807 14.4,9.33333333 C14.4,10.9533686 13.0867019,12.2666667 11.4666667,12.2666667 C9.8466314,12.2666667 8.53333333,10.9533686 8.53333333,9.33333333 C8.53333333,7.71329807 9.8466314,6.4 11.4666667,6.4 Z M11.4666667,7.46666667 C10.4357351,7.46666667 9.6,8.3024018 9.6,9.33333333 C9.6,10.3642649 10.4357351,11.2 11.4666667,11.2 C12.4975982,11.2 13.3333333,10.3642649 13.3333333,9.33333333 C13.3333333,8.3024018 12.4975982,7.46666667 11.4666667,7.46666667 Z M2.74653547,8.07767553 L2.84786359,8.11530295 C3.20529476,8.26274104 3.61072865,8.27614451 3.97688759,8.15551334 L4.08546975,8.11530295 C4.48648218,7.94988787 4.94252369,7.96353046 5.33015456,8.14928514 L5.42556563,8.19930546 L5.75997338,8.3903008 C6.39047516,8.75040878 6.8203853,9.35872966 6.92712552,10.0521968 C6.97193597,10.3433202 6.77225988,10.6156484 6.48113649,10.6604589 C6.1900131,10.7052693 5.91768492,10.5055932 5.87287448,10.2144698 C5.82110468,9.87813309 5.62097817,9.57303144 5.31653863,9.36948258 L5.23095648,9.31653992 L4.89654873,9.12554458 C4.77651621,9.0569886 4.62290965,9.04746327 4.49221738,9.101373 C3.83852476,9.37101706 3.09480857,9.37101706 2.44111595,9.101373 C2.32909401,9.05516466 2.20023707,9.05556167 2.09011798,9.09979041 L2.0367846,9.12554458 L1.70237685,9.31653992 C1.34996789,9.51781656 1.116935,9.84755703 1.06045885,10.2144698 C1.01564841,10.5055932 0.74332023,10.7052693 0.452196844,10.6604589 C0.161073458,10.6156484 -0.038602633,10.3433202 0.00620781265,10.0521968 C0.106669194,9.39952185 0.493398744,8.82227057 1.06420215,8.45639268 L1.17335995,8.3903008 L1.50776771,8.19930546 C1.88313959,7.98491367 2.33720875,7.94205516 2.74653547,8.07767553 Z M3.46666667,2.13333333 C5.08670193,2.13333333 6.4,3.4466314 6.4,5.06666667 C6.4,6.68670193 5.08670193,8 3.46666667,8 C1.8466314,8 0.533333333,6.68670193 0.533333333,5.06666667 C0.533333333,3.4466314 1.8466314,2.13333333 3.46666667,2.13333333 Z M3.46666667,3.2 C2.43573513,3.2 1.6,4.03573513 1.6,5.06666667 C1.6,6.0975982 2.43573513,6.93333333 3.46666667,6.93333333 C4.4975982,6.93333333 5.33333333,6.0975982 5.33333333,5.06666667 C5.33333333,4.03573513 4.4975982,3.2 3.46666667,3.2 Z\",\n id: \"Combined-Shape\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.9972725,0.518691289 L11.0437903,0.560134684 L13.6836556,3.2 L11.0437903,5.83986532 C10.8355107,6.04814494 10.4978227,6.04814494 10.2895431,5.83986532 C10.0961405,5.64646281 10.0823261,5.3414786 10.2480997,5.13213585 L10.2895431,5.08561808 L11.6413333,3.73292497 L7.46666667,3.73333333 C7.1721148,3.73333333 6.93333333,3.49455187 6.93333333,3.2 C6.93333333,2.90544813 7.1721148,2.66666667 7.46666667,2.66666667 L11.6403333,2.66592497 L10.2895431,1.31438192 C10.0961405,1.12097941 10.0823261,0.8159952 10.2480997,0.606652451 L10.2895431,0.560134684 C10.4829456,0.366732177 10.7879298,0.352917712 10.9972725,0.518691289 Z\",\n id: \"Combined-Shape\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.13060585,10.1186913 L5.17712362,10.1601347 L7.81698893,12.8 L5.17712362,15.4398653 C4.96884399,15.6481449 4.63115601,15.6481449 4.42287638,15.4398653 C4.22947388,15.2464628 4.21565941,14.9414786 4.38143299,14.7321359 L4.42287638,14.6856181 L5.77466667,13.332925 L1.6,13.3333333 C1.30544813,13.3333333 1.06666667,13.0945519 1.06666667,12.8 C1.06666667,12.5054481 1.30544813,12.2666667 1.6,12.2666667 L5.77366667,12.265925 L4.42287638,10.9143819 C4.22947388,10.7209794 4.21565941,10.4159952 4.38143299,10.2066525 L4.42287638,10.1601347 C4.61627889,9.96673218 4.9212631,9.95291771 5.13060585,10.1186913 Z\",\n id: \"Combined-Shape-Copy\",\n transform: \"translate(4.441828, 12.800000) scale(-1, 1) translate(-4.441828, -12.800000) \"\n})));\n\nvar SvgMatching = function SvgMatching(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n className: \"icon\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMatching, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/matching.e572aa85.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Matching } from '../../../assets/icons/matching.svg';\n\nfunction MatchingIcon(props) {\n return (\n \n );\n}\n\nexport default MatchingIcon;","import server from '@config';\nimport axios from 'axios';\nimport MatchingIcon from 'components/common/Icons/MatchingIcon';\nimport Table from 'components/common/Table/Table';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { getLanguage, truncate } from 'utils/utils';\nimport ProgressBar from '../../../../common/ProgressBar/ProgressBar';\nimport './AllMatchings.css';\n\nfunction AllMatchings(props) {\n\n const [loading, setLoading] = useState(false);\n const [modal, setModal] = useState(false);\n const [dataForGrid, setDataForGrid] = useState([]);\n const [filteredDataForGrid, setFilteredDataForGrid] = useState([]);\n const [searchText, setSearchText] = useState(null);\n const { t } = useTranslation();\n const lang = getLanguage();\n\n useEffect(() => {\n setModal(true);\n }, [])\n\n useEffect(() => {\n updateDataForGrid();\n }, [props.mission, props.matchings]);\n\n useEffect(() => {\n setFilteredDataForGrid(dataForGrid);\n }, [dataForGrid]);\n\n useEffect(() => {\n filterData();\n }, [searchText])\n\n const updateDataForGrid = () => {\n const mission = props.mission ? { ...props.mission } : null;\n const matchings = props.matchings ? [...props.matchings] : [];\n const contactsByUserId = {};\n if (mission) {\n if (mission.mission_manager.user_id) {\n contactsByUserId[mission.mission_manager.user_id] = mission.mission_manager;\n }\n if (mission.mission_benchmarks) {\n mission.mission_benchmarks.forEach((benchmark) => {\n if (benchmark.contact.user_id) {\n contactsByUserId[benchmark.contact.user_id] = benchmark.contact;\n }\n })\n }\n }\n matchings.forEach((matching) => {\n matching.user_1_contact = contactsByUserId[matching.user_1] || {};\n matching.user_2_contact = contactsByUserId[matching.user_2] || {};\n });\n setDataForGrid(matchings);\n }\n\n const filterData = () => {\n let data = [];\n if (searchText) {\n const text = '';\n data = dataForGrid.filter((entry) => {\n let bool = false;\n if (entry.user_1_contact.first_name.toLowerCase().startsWith(searchText.toLowerCase())) {\n bool = true;\n } else if (entry.user_1_contact.last_name.toLowerCase().startsWith(searchText.toLowerCase())) {\n bool = true;\n } else if (entry.user_2_contact.first_name.toLowerCase().startsWith(searchText.toLowerCase())) {\n bool = true;\n } else if (entry.user_2_contact.last_name.toLowerCase().startsWith(searchText.toLowerCase())) {\n bool = true;\n }\n return bool;\n });\n } else {\n data = dataForGrid.slice();\n }\n setFilteredDataForGrid(data);\n }\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const MatchingPdfBtn = (user_1, user_2) => {\n return (\n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n >\n
\n \n \n {t(\"Matching Report\")}\n \n
\n \n )\n }\n\n const getMatchingProfilePdf = (contact_1, contact_2, language) => {\n setLoading(true);\n\n const data = { contact_1, contact_2 };\n\n let config = {\n method: 'post',\n url: server + '/company/matching_result_pdf/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n console.log('response', res);\n setLoading(false);\n switch (language) {\n case 'en':\n if (res.data.matching_pdf_en) {\n window.open(res.data.matching_pdf_en, '_blank');\n }\n break;\n\n case 'fr':\n if (res.data.matching_pdf_fr) {\n window.open(res.data.matching_pdf_fr, '_blank');\n }\n break;\n\n default:\n break;\n }\n })\n .catch(err => {\n console.log('error in matching', err)\n toast.error('Failed to retrieve matching results.')\n setLoading(false);\n })\n }\n\n return (\n \n {\n props &&\n \n
\n
{t(\"All the matchings of\")} {props.mission.mission_manager.first_name} {props.mission.mission_manager.last_name}\n {\n {\n 'en': \"'s team\"\n }[lang]\n }
\n
\n setSearchText(event.target.value)} />\n
\n \n
\n
\n
\n
\n
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission.reference}\n \n {mission.candidates}\n {formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}\n \n {truncate(mission.mission_manager.last_name, 15)}\n {mission.mission_manager.last_name}\n \n \n \n {truncate(mission.mission_manager.first_name, 15)}\n {mission.mission_manager.first_name}\n \n \n\n \n \n \n \n {/* {\n !mission.mission_archived_date ?\n \n \n : null\n } */}\n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n
(\n \n \n \n \n \n \n \n \n )\n }\n />\n {\n (dataForGrid?.length && !filteredDataForGrid?.length) ?\n
No data available for applied filter.
\n : null\n }\n \n \n\n }\n \n\n );\n}\n\nexport default AllMatchings;","import { removeBenchmarkFromMission } from 'api/mission';\nimport CompleteProfileBtn from 'components/Admin/common/CompleteProfileBtn/CompleteProfileBtn';\nimport QuotationTable from 'components/Admin/common/QuotationTable/QuotationTable';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport EditIcon from 'components/common/Icons/EditIcon';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { BenchmarkTypes } from 'constants/constants';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { checkQuotationAccess, isEvaluationCompleted, truncate } from 'utils/utils';\nimport AllMatchings from './AllMatchings/AllMatchings';\nimport './TeamBuildingDetails.css';\n\nfunction TeamBuildingDetails(props) {\n\n const [mission, setMission] = useState(null);\n const [modal, setModal] = useState(false);\n const [loading, setLoading] = useState(false);\n const [CPI, setCPI] = useState(0);\n const [showAllMatchings, setShowAllMatchings] = useState(false);\n const [gridData, setGridData] = useState([]);\n const [searchInput, setSearchInput] = useState(null);\n const [printMode, setPrintMode] = useState(false);\n\n const [quotationTableData, setQuotationTableData] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const { t } = useTranslation();\n\n useEffect(() => {\n if (props.mission) {\n setMission(props.mission);\n setModal(true);\n setCPI(getCPI());\n updateGridData(props.mission);\n } else {\n setModal(false);\n }\n }, [props.mission, props.matchings, CPI])\n\n useEffect(() => {\n if (printMode) {\n printTable();\n }\n }, [printMode])\n\n const updateGridData = (mission) => {\n const data = [];\n if (mission.mission_manager) {\n data.push({ ...mission.mission_manager, type: 'Manager', impactOnCPI: getImpactOnCPI(mission.mission_manager.user_id) })\n }\n if (mission.mission_benchmarks) {\n mission.mission_benchmarks.forEach((benchmark) => {\n data.push({ ...benchmark.contact, type: BenchmarkTypes[benchmark.benchmark_type], impactOnCPI: getImpactOnCPI(benchmark.contact.user_id), matching: getMatching(mission.mission_manager.user_id, benchmark.contact.user_id) })\n });\n }\n setGridData(data);\n }\n\n const getMatching = (user_1, user_2) => {\n console.log('get matchings', props.matchings.length);\n const matchings = props.matchings.filter((m) => (m.user_1 === user_1 && m.user_2 === user_2) || (m.user_1 === user_2 && m.user_2 === user_1));\n if (matchings.length) {\n return matchings[0];\n }\n return null;\n }\n\n const getCPI = () => {\n let rui_smooth = 0;\n let cpi = 0;\n const matchings = props.matchings || [];\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n rui_smooth += matching.rui_smooth;\n });\n cpi = rui_smooth * 100 / matchings.length;\n }\n return +cpi.toFixed(2);\n }\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const getImpactOnCPI = (userId) => {\n let impactOnCpi = 0;\n const matchings = props.matchings;\n if (userId && CPI) {\n let cpi_without_user = 0;\n let cpi_with_user = 0;\n let count_without_user = 0;\n let count_with_user = 0;\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n if (matching.rui_smooth !== 0) {\n count_with_user++;\n cpi_with_user += matching.rui_smooth;\n if (matching.user_1 !== userId && matching.user_2 !== userId) {\n cpi_without_user += matching.rui_smooth;\n count_without_user++;\n }\n }\n });\n cpi_without_user = cpi_without_user * 100 / count_without_user;\n cpi_with_user = cpi_with_user * 100 / count_with_user;\n impactOnCpi = (cpi_with_user - cpi_without_user) * 100 / cpi_without_user;\n }\n }\n return +impactOnCpi.toFixed(2);\n }\n\n const QuotationTableBtn = (user) => {\n return (\n (quotationAccess && !user.confidential && isEvaluationCompleted(user.result)) ?\n \n \n {t(\"Quotation Table\")}\n \n :\n \n \n {t(\"Quotation Table\")}\n \n )\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const filterData = (data) => {\n const input = searchInput ? searchInput.toLowerCase() : '';\n if (input) {\n const matchString = [data.last_name, data.first_name].filter((d) => d).join('').toLowerCase();\n if (matchString.includes(input)) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n const printTable = () => {\n const modal = document.getElementById('missionDetails');\n const html = modal.getElementsByClassName('modal-content')[0];\n html.style.padding = '16px 32px 32px 32px';\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create
\n a.href = dataUrl; //Image Base64 Goes here\n const fileName = `${mission?.reference?.substring(0, 15)}`;\n a.download = `${fileName}.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n toast.success(t('Mission details downloaded successfully'));\n setPrintMode(false);\n html.style.padding = 'unset';\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n toast.error(t('Failed to download mission details'));\n setPrintMode(false);\n html.style.padding = 'unset';\n });\n }\n\n const removeBenchmarkConfirmation = (contact) => {\n setConfirmDialogConfig({\n title: `${t('Confirm deletion?')}`,\n onYesAction: () => removeBenchmark(contact),\n })\n }\n\n const removeBenchmark = (contact) => {\n setLoading(true);\n removeBenchmarkFromMission(mission.pk, contact.id)\n .then((res) => {\n toast.success(t('Team member removed successfully'));\n if (props.reload) {\n props.reload();\n }\n setLoading(false);\n toggle();\n });\n }\n\n return (\n \n \n {\n props.mission &&\n \n {\n printMode &&\n
\n

{t(\"Team Building\")}

\n
\n }\n
\n
{t(\"Team of\")} {props.mission.mission_manager.first_name} {props.mission.mission_manager.last_name}
\n
{t(\"CPI of the team\")} : {CPI}%
\n
\n {\n (!printMode) &&\n \n }\n {\n (!loading && !printMode) &&\n \n }\n {\n (mission && !printMode) &&\n \n \n \n }\n {\n (!printMode) &&\n \n }\n
\n
\n {\n !printMode &&\n
\n setSearchInput(e.target.value)} />\n
\n }\n
\n
\n \n {truncate(matching.user_1_contact.last_name, 15)}\n {matching.user_1_contact.last_name}\n \n \n \n {truncate(matching.user_1_contact.first_name, 15)}\n {matching.user_1_contact.first_name}\n \n \n \n \n
\n {MatchingPdfBtn(matching.user_1_contact.id, matching.user_2_contact.id)}\n
\n
\n \n {truncate(matching.user_2_contact.last_name, 15)}\n {matching.user_2_contact.last_name}\n \n \n \n {truncate(matching.user_2_contact.first_name, 15)}\n {matching.user_2_contact.first_name}\n \n
filterData(data))}\n rowComponent={\n (contact, index) => (\n \n \n \n \n \n {\n (isEvaluationCompleted(contact.result)) ?\n <>\n \n \n \n \n : \n }\n {/* */}\n {!printMode &&\n \n }\n \n )\n }\n noDataComponent={searchInput ? () : null}\n />\n \n {\n showAllMatchings &&\n setShowAllMatchings(false)} />\n }\n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n\n }\n \n \n\n );\n}\n\nexport default TeamBuildingDetails;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTable, MDBTableBody, MDBTableHead, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { stopPropagation, truncate } from 'utils/utils';\nimport ProgressBar from '../../common/ProgressBar/ProgressBar';\nimport Header from '../Header/Header';\nimport './TeamBuilding.css';\nimport TeamBuildingDetails from './TeamBuildingDetails/TeamBuildingDetails';\n\nfunction TeamBuildingRow({ mission, onMissionClick, onMissionActionClick }) {\n\n const [loading, setLoading] = useState(false);\n const [matchings, setMatchings] = useState([]);\n const [CPI, setCPI] = useState(0);\n const [impactOnCPI, setImpactOnCPI] = useState(0);\n const [lowestMatchingScore, setLowestMatchingScore] = useState(0);\n\n const { t } = useTranslation();\n\n const getTeamMatchings = (mission) => {\n setLoading(true);\n console.log('get team matching')\n const contacts = [];\n if (mission.mission_manager) {\n contacts.push({ company_id: mission.mission_manager.company_id, email: mission.mission_manager.email });\n }\n if (mission.mission_benchmarks && mission.mission_benchmarks.length) {\n mission.mission_benchmarks.forEach((benchmark) => {\n contacts.push({ company_id: benchmark.contact.company_id, email: benchmark.contact.email });\n })\n }\n let config = {\n method: 'post',\n url: server + '/result/team_matches/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: { contacts }\n }\n axios(config)\n .then(res => {\n console.log('missions', res.data);\n setMatchings(res.data);\n setLoading(false);\n })\n .catch((err) => {\n setMatchings([]);\n setLoading(false);\n })\n }\n\n useEffect(() => {\n getTeamMatchings(mission);\n }, [])\n\n useEffect(() => {\n setCPI(getCPI());\n setLowestMatchingScore(getLowestMatchingScore());\n }, [matchings])\n\n useEffect(() => {\n setImpactOnCPI(getImpactOnCPI());\n }, [CPI]);\n\n const getImpactOnCPI = () => {\n const userId = mission.mission_manager.user_id;\n let impactOnCpi = 0;\n if (userId && CPI) {\n let cpi_without_user = 0;\n let cpi_with_user = 0;\n let count_without_user = 0;\n let count_with_user = 0;\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n if (matching.rui_smooth !== 0) {\n count_with_user++;\n cpi_with_user += matching.rui_smooth;\n if (matching.user_1 !== userId && matching.user_2 !== userId) {\n cpi_without_user += matching.rui_smooth;\n count_without_user++;\n }\n }\n });\n cpi_without_user = cpi_without_user * 100 / count_without_user;\n cpi_with_user = cpi_with_user * 100 / count_with_user;\n impactOnCpi = (cpi_with_user - cpi_without_user) * 100 / cpi_without_user;\n }\n }\n return +impactOnCpi.toFixed(0);\n }\n\n const getCPI = () => {\n let rui_smooth = 0;\n let cpi = 0;\n if (matchings && matchings.length) {\n matchings.forEach((matching) => {\n rui_smooth += matching.rui_smooth;\n });\n cpi = rui_smooth * 100 / matchings.length;\n }\n return +cpi.toFixed(2);\n }\n\n const getLowestMatchingScore = () => {\n const value = matchings.length ? matchings.reduce((prev, curr) => prev.rui_smooth < curr.rui_smooth ? prev : curr) : {};\n return (value && value.rui_smooth) ? value.rui_smooth * 100 : 0;\n }\n\n const missionClick = () => {\n if (onMissionClick && !loading) {\n onMissionClick(matchings);\n }\n }\n\n return (\n \n {/* */}\n \n \n \n \n {\n (mission?.mission_benchmarks?.length === 1) ?\n :\n \n }\n \n {\n (mission?.mission_benchmarks?.length === 1) ?\n :\n \n }\n \n \n )\n}\n\nfunction TeamBuilding(props) {\n\n const { t } = useTranslation();\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n default:\n break;\n }\n }, [activeItem])\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=T',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const onMissionClick = (mission, matchings) => {\n const obj = {\n mission, matchings\n }\n setSelectedMission(obj);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission).then(() => {\n setLoading(false);\n toast.success(t('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to remove mission.');\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Team Building\")}

\n \n \n + {t(\"New\")}\n \n \n
\n \n \n \n \n \n {t(\"My Team Building Missions\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n \n \n
\n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n missions.map((mission) => {\n return (\n onMissionClick(mission, matchings)} onMissionActionClick={(mission, type) => onMissionActionClick(mission, type)} />\n )\n })\n }\n \n \n \n\n \n \n {\n selectedMission &&\n setSelectedMission(null)} reload={() => getMyMissions()} />\n }\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default TeamBuilding;","import server from '@config';\nimport axios from 'axios';\nimport ContactForm from 'components/Admin/ContactForm/ContactForm';\nimport Header from 'components/Admin/Header/Header';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport usePrevious from 'hooks/UsePrevious';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBInput, MDBMedia, MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { getLanguage, getProfile } from 'utils/utils';\nimport * as Yup from 'yup';\nimport './TeamBuildingForm.css';\n\nfunction TeamBuildingForm(props) {\n const { t } = useTranslation();\n const MissionType = 'T';\n const [loading, setLoading] = useState(false);\n const [invitationLink, setInvitationLink] = useState(null);\n const [contacts, setContacts] = useState([]);\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const previousContacts = usePrevious(contacts);\n const [companyId, setCompanyId] = useState(null);\n\n var lang = getLanguage();\n\n const missionFormRef = new useRef(null);\n const benchmarkTypeMap = new Map();\n\n const initialValues = {\n reference: \"\",\n mission_name: \"\",\n mission_description: \"\",\n mission_delegates: [],\n mission_manager: null,\n mission_viewers: [],\n mission_benchmarks: [],\n mission_end_date: \"\",\n default_questionnaire_type: null\n };\n\n const validationSchema = Yup.object().shape({\n reference: Yup.string().required(\"Required\").max(20, 'Maximum 20 characters are allowed.'),\n mission_name: Yup.string().required(\"Required\").max(80, 'Maximum 80 characters are allowed.'),\n mission_description: Yup.string().required(\"Required\").max(1000, 'Maximum 1000 characters are allowed.'),\n mission_end_date: Yup.date().required('Required').min(new Date(), \"Please select future date\"),\n default_questionnaire_type: Yup.string().required(\"Required\").nullable(),\n mission_manager: Yup.object().required(\"Required\").nullable(),\n });\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n if (props.match.params.missionId) {\n getMissionById();\n } else {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }\n }, [companyId])\n\n useEffect(() => {\n if (previousContacts && previousContacts.length !== contacts.length) {\n updateContacts();\n }\n }, [contacts])\n\n const getMissionById = () => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('mission by id', res);\n if (res.data) {\n const data = res.data;\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n data.mission_end_date = moment(data.mission_end_date).format('YYYY-MM-DD');\n data.mission_benchmarks = data.mission_benchmarks.map((b) => ({ benchmark: b.contact, type: b.benchmark_type }));\n console.log('data', data)\n if (data.mission_referral) {\n setInvitationLink(`${window.location.origin}/?mission=${data.mission_referral}`);\n }\n ref.setValues(data);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n })\n setContacts([...res.data]);\n // setTimeout(updateContacts, 1000);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (res.data && res.data.length && values && values.default_questionnaire_type) {\n res.data.forEach((qt) => {\n if (qt.pk === values.default_questionnaire_type) {\n values.default_questionnaire_type = qt;\n }\n })\n ref.setValues(values);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateContacts = () => {\n const ref = missionFormRef.current;\n const values = { ...ref.values };\n const tempContacts = [...contacts];\n tempContacts.forEach((contact) => {\n contact.selected = null;\n })\n const manager = values.mission_manager || {};\n const members = values.mission_member || [];\n const viewers = values.mission_viewers || [];\n const delegates = values.mission_delegates || [];\n const benchmarks = values.mission_benchmarks || [];\n tempContacts.forEach((contact) => {\n if (values.mission_manager && values.mission_manager.id) {\n if (contact.id === manager.id) {\n contact.selected = 'mission_manager';\n }\n }\n members.forEach((member) => {\n if (contact.id === member.id) {\n contact.selected = 'mission_member';\n }\n });\n viewers.forEach((viewer) => {\n if (contact.id === viewer.id) {\n contact.selected = 'mission_viewers';\n }\n });\n delegates.forEach((delegate) => {\n if (contact.id === delegate.id) {\n contact.selected = 'mission_delegates';\n }\n });\n benchmarks.forEach((benchmark, index) => {\n if (benchmark.benchmark && contact.id === benchmark.benchmark.id) {\n contact.selected = 'mission_benchmarks_' + index;\n }\n });\n });\n console.log('updateContacts', tempContacts.map((c) => ({ id: c.id, first_name: c.first_name, last_name: c.last_name, selected: c.selected })));\n console.log('updateContacts form', ref.values);\n setContacts(tempContacts);\n }\n\n const onSaveContact = (contact, type, ...args) => {\n console.log('contact saved', contact, missionFormRef);\n if (contact) {\n getCompanyContacts();\n }\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n switch (type) {\n case 'mission_manager':\n ref.setFieldValue('mission_manager', contact);\n break;\n\n case 'mission_viewers':\n const viewers = values.mission_viewers || [];\n ref.setFieldValue('mission_viewers', [...viewers, contact]);\n break;\n\n case 'mission_delegates':\n const delegates = values.mission_delegates || [];\n ref.setFieldValue('mission_delegates', [...delegates, contact]);\n break;\n\n case 'mission_benchmarks':\n const benchmarks = values.mission_benchmarks || [];\n if (args && args.length) {\n const benchmark = benchmarks[args[0]];\n benchmark.benchmark = contact;\n ref.setFieldValue('mission_benchmarks', [...benchmarks]);\n }\n break;\n\n default:\n break;\n }\n setTimeout(updateContacts, 100);\n }\n\n }\n\n const addContactBtn = (type, label, allowedContactTypes, ...args) => {\n let defaultQuestionnaireType;\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (values.default_questionnaire_type) {\n defaultQuestionnaireType = values.default_questionnaire_type;\n }\n }\n return (\n onSaveContact(contact, type, ...args)}>\n \n \n {label}\n \n \n )\n }\n\n const onFormSubmit = (mission) => {\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n default_questionnaire_type: mission.default_questionnaire_type ? mission.default_questionnaire_type.pk : null,\n mission_manager: mission.mission_manager.id,\n mission_member: [],\n mission_viewers: mission.mission_viewers.map((m) => m.id),\n mission_delegates: mission.mission_delegates.map((m) => m.id),\n mission_benchmarks: mission.mission_benchmarks.filter((value) => value.benchmark && value.benchmark.id).map((value) => { return { id: value.benchmark.id, benchmark_type: value.type } }),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: MissionType, company: companyId\n };\n if (props.match.params.missionId) {\n updateMission(data);\n } else {\n saveMission(data);\n }\n }\n\n const saveMission = (data) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully added'));\n window.location.href = '/team-building';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateMission = (data) => {\n setLoading(true);\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully updated'));\n window.location.href = '/team-building';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n {t(\"Cancel and go back\")}\n \n
\n

{t(\"Team Building Form\")}

\n
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n onFormSubmit(values);\n }, 500);\n }}\n validationSchema={validationSchema}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit, setFieldValue, setFieldTouched } = props;\n return (\n
\n
\n
\n \n {errors.mission_name && touched.mission_name && (\n
{t(errors.mission_name)}
\n )}\n
\n
\n \n {errors.reference && touched.reference && (\n
{t(errors.reference)}
\n )}\n
\n
\n \n {errors.mission_end_date && touched.mission_end_date && (\n
{t(errors.mission_end_date)}
\n )}\n
\n
\n \n {errors.mission_description && touched.mission_description && (\n
{t(errors.mission_description)}
\n )}\n
\n {\n invitationLink &&\n
\n
\n
{t(\"Invitation Link\")}
\n
\n {invitationLink}\n
\n \n
\n \n \n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n
\n
\n
\n }\n
\n
\n
{t('Questionnaire')}
\n
\n `${option.questionnaire_type}`}\n renderMenuItemChildren={(q) => (\n \n \n {q.questionnaire_type} {(q.default_companies && q.default_companies.includes(companyId)) ? '(Company Default)' : null}\n \n \n )}\n options={questionnaireTypes}\n placeholder={t(\"Select a Questionnaire\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('default_questionnaire_type', value);\n }}\n selected={values.default_questionnaire_type ? [values.default_questionnaire_type] : []}\n onBlur={(e) => setFieldTouched('default_questionnaire_type', true)}\n />\n
\n {errors.default_questionnaire_type && touched.default_questionnaire_type && (\n
{t(errors.default_questionnaire_type)}
\n )}\n
\n
\n
\n
\n
{t('Manager')}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === 'mission_manager') && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder={t(\"Select a Manager\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('mission_manager', value);\n console.log('select manager', missionFormRef)\n setTimeout(updateContacts, 100);\n }}\n selected={values.mission_manager ? [values.mission_manager] : []}\n onBlur={(e) => setFieldTouched('mission_manager', true)}\n />\n
\n {addContactBtn('mission_manager', 'Add new manager', [ContactTypes.Employee.value])}\n
\n
\n
\n {errors.mission_manager && touched.mission_manager && (\n
{t(errors.mission_manager)}
\n )}\n
\n {false &&\n
\n
\n
Mission Viewers
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected))}\n placeholder=\"Select Viewers\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_viewers', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_viewers instanceof Array) ? values.mission_viewers : []}\n />\n
\n {addContactBtn('mission_viewers', 'Add new viewer')}\n
\n
\n
\n
\n }\n {false &&\n
\n
\n
Mission Delegates
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => contact.user_id && (!contact.selected))}\n placeholder=\"Select Delegates\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_delegates', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_delegates instanceof Array) ? values.mission_delegates : []}\n >\n {/*
\n {addContactBtn('mission_delegates', 'Add new delegate')}\n
*/}\n \n
\n
\n }\n
\n
\n
{t('Team members')}
\n \n \n
\n \n \n \n \n \n \n {\n values.mission_benchmarks.map((value, index) => (\n \n \n \n \n \n ))\n }\n \n \n {\n const benchmarks = values.mission_benchmarks;\n setFieldValue('mission_benchmarks', [...benchmarks, {\n benchmark: null,\n type: \"employee\"\n }])\n }}>+ {t('Add Team member')}\n \n \n
\n \n {t(\"Save mission\")}\n \n
\n \n \n );\n }}\n \n\n \n \n \n \n\n \n \n );\n}\n\nexport default withRouter(TeamBuildingForm);","import server from '@config';\nimport { removeMemberFromMission } from 'api/mission';\nimport axios from 'axios';\nimport CompleteProfileSubMenu from 'components/Admin/common/CompleteProfileSubMenu/CompleteProfileSubMenu';\nimport QuotationTable from 'components/Admin/common/QuotationTable/QuotationTable';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport EditIcon from 'components/common/Icons/EditIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TableIcon from 'components/common/Icons/TableIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport ProgressBar from 'components/common/ProgressBar/ProgressBar';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { getContactType } from 'constants/constants';\nimport * as htmlToImage from 'html-to-image';\nimport { MDBIcon, MDBModal, MDBModalBody, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { checkQuotationAccess, getProfile, isEvaluationCompleted, stopPropagation, truncate } from 'utils/utils';\nimport './ValueDetails.css';\n\nfunction ValueDetails(props) {\n\n const [mission, setMission] = useState(null);\n const [modal, setModal] = useState(false);\n const [loading, setLoading] = useState(false);\n const { t } = useTranslation();\n\n const [searchInput, setSearchInput] = useState(null);\n const [printMode, setPrintMode] = useState(false);\n\n const [contacts, setContacts] = useState([]);\n const [matchings, setMatchings] = useState([]);\n const [companyId, setCompanyId] = useState(null);\n const [extraSupportedFields, setExtraSupportedFields] = useState([]);\n const [matchingByContacts, setMatchingByContacts] = useState([]);\n\n const [quotationTableData, setQuotationTableData] = useState(null);\n\n const quotationAccess = checkQuotationAccess();\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n if (profile.companies[0].company.extra_supported_fields) {\n setExtraSupportedFields(profile.companies[0].company.extra_supported_fields);\n }\n }\n }, [])\n\n useEffect(() => {\n if (props.mission) {\n setMission(props.mission);\n const mission = props.mission;\n setModal(true);\n const contacts = [];\n if (mission.mission_manager) {\n contacts.push({ user: { ...mission.mission_manager, type: getContactType(mission.mission_manager.contact_type) } });\n }\n if (mission.mission_benchmarks && mission.mission_benchmarks.length) {\n mission.mission_benchmarks.forEach((benchmark) => {\n contacts.push({ user: { ...benchmark.contact, type: getContactType(benchmark.benchmark_type) } });\n })\n }\n if (mission.mission_member && mission.mission_member.length) {\n mission.mission_member.forEach((member) => {\n contacts.push({ user: { ...member, type: getContactType(member.contact_type), member: true } });\n })\n }\n console.log('contacts', contacts);\n setContacts(contacts);\n } else {\n setModal(false);\n }\n setSearchInput('');\n }, [props.mission]);\n\n useEffect(() => {\n if (contacts.length) {\n getContactsMatchings();\n }\n }, [contacts]);\n\n useEffect(() => {\n const matchingArray = [];\n contacts.forEach((contact) => {\n let matching = matchings.find((matching) => matching.user_1 === contact.user.user_id);\n if (!matching) {\n matching = matchings.find((matching) => matching.user_2 === contact.user.user_id);\n }\n matchingArray.push({ contact, matching });\n });\n setMatchingByContacts(matchingArray);\n }, [contacts, matchings])\n\n const getContactsMatchings = () => {\n setLoading(true);\n const data = {\n contacts: contacts.map((contact) => contact.user.user_id).filter((user_id) => user_id),\n company_id: companyId\n }\n let config = {\n method: 'post',\n url: server + '/company/get_contact_avatar_matchings/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n }\n axios(config)\n .then(res => {\n setLoading(false);\n if (res.data && res.data.length) {\n setMatchings(res.data);\n } else {\n setMatchings([]);\n }\n })\n .catch((err) => {\n console.warn('error in fetching contacts', err);\n setLoading(false);\n })\n }\n\n useEffect(() => {\n if (printMode) {\n printTable();\n }\n }, [printMode])\n\n const toggle = () => {\n if (props && props.toggle) {\n props.toggle();\n }\n }\n\n const updateQuotationTableData = (data) => {\n setQuotationTableData(data);\n }\n\n const removeMemberConfirmation = (contact) => {\n setConfirmDialogConfig({\n title: `${t('Confirm deletion?')}`,\n onYesAction: () => removeMember(contact),\n })\n }\n\n const removeMember = (contact) => {\n setLoading(true);\n removeMemberFromMission(mission.pk, contact.user.id, companyId)\n .then((res) => {\n console.log('remove member res', res);\n toast.success(t('Candidate removed successfully'));\n if (props.reload) {\n props.reload();\n }\n setLoading(false);\n });\n }\n\n\n const printTable = () => {\n const modal = document.getElementById('missionDetails');\n const html = modal.getElementsByClassName('modal-content')[0];\n html.style.padding = '16px 32px 32px 32px';\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n var a = document.createElement(\"a\"); //Create
\n a.href = dataUrl; //Image Base64 Goes here\n const fileName = `${mission?.reference?.substring(0, 15)}-${mission?.mission_name?.substring(0, 15)}`;\n a.download = `${fileName}.png`; //File name Here\n a.click(); //Downloaded file\n a.remove();\n toast.success(t('Mission details downloaded successfully'));\n setPrintMode(false);\n html.style.padding = 'unset';\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n toast.error(t('Failed to download mission details'));\n setPrintMode(false);\n html.style.padding = 'unset';\n });\n }\n\n const showScore = (data, key) => {\n if (data && data.extra_fields && data.extra_fields[key] >= 0) {\n let value =
;\n if (data.extra_fields[key] >= 0.20 && data.extra_fields[key] <= 0.40) {\n value =
;\n } else if (data.extra_fields[key] > 0.40) {\n value =
;\n }\n return value;\n } else {\n return null;\n }\n }\n\n return (\n \n \n {\n props.mission &&\n \n {\n printMode &&\n
\n

{t(\"Value\")}

\n
\n }\n
\n
\n \n {truncate(props.mission.mission_name, 30)}\n {props.mission.mission_name}\n \n
\n
{t(\"Ref.\")} : {props.mission.reference}
\n \n\n
\n {\n (!loading && !printMode) &&\n \n }\n {\n (mission && !printMode) &&\n \n \n \n }\n {\n (!printMode) &&\n \n }\n
\n
\n
\n
\n \n {truncate(contact.last_name, 15)}\n {contact.last_name}\n \n \n \n {truncate(contact.first_name, 15)}\n {contact.first_name}\n \n {contact.type}{contact.impactOnCPI}%{(contact.result.r_percent >= 0) ? (contact.result.r_percent * 100).toFixed(0) + '%' : null}{(contact.result.i_percent >= 0) ? (contact.result.i_percent * 100).toFixed(0) + '%' : null}{(contact.result.s_percent >= 0) ? (contact.result.s_percent * 100).toFixed(0) + '%' : null}\n {`${contact?.first_name} ${contact?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`}\n \n {\n contact.matching &&\n \n }\n \n
\n \n {QuotationTableBtn(contact)}\n {\n contact?.id !== mission?.mission_manager?.id &&\n \n \n {t(\"Remove Team Member\")}\n \n }\n
\n
No data available for applied filter.
\n
\n \n \n
\n
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission.reference}\n \n {truncate(mission.mission_manager.last_name, 15)}\n {mission.mission_manager.last_name}\n \n \n \n {truncate(mission.mission_manager.first_name, 15)}\n {mission.mission_manager.first_name}\n \n -{mission?.mission_benchmarks?.length + 1}-\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => {\n console.log('e', e)\n onMissionActionClick(mission, e.key)\n }}\n >\n \n \n
{t(\"Missions\")}
{t(\"Ref.\")}
{t(\"Manager\")}
{t(\"Collective Performance Index (CPI)\")}
{t(\"Team headcount\")}
{t(\"Lowest matching score\")}
{t(\"Last Name\")}
{t(\"First Name\")}
{t(\"Name\")}{t(\"Role\")}{t(\"Actions\")}
\n
\n `${option ? option.first_name : null} ${option ? option.last_name : null}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => (!contact.selected || contact.selected === `mission_benchmarks_${index}`) && [ContactTypes.Employee.value].includes(contact.contact_type))}\n placeholder=\"Select Team member\"\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n const benchmarks = values.mission_benchmarks;\n benchmarks[index].benchmark = value;\n setFieldValue('mission_benchmarks', benchmarks);\n setTimeout(updateContacts, 100);\n }}\n selected={(value && value.benchmark) ? [value.benchmark] : []}\n />\n
\n {addContactBtn('mission_benchmarks', t('Add new employee'), [ContactTypes.Employee.value], index)}\n
\n
\n
\n \n \n \n
{\n return { key: `matching.extra_fields.${valueField.field_name_in_api}`, title: valueField?.field_name_for_user, className: 'value', sortable: true }\n }),\n { title: '', hidden: printMode }\n ]\n ]}\n data={matchingByContacts}\n rowComponent={\n ({ contact, matching }, index) => (\n \n \n \n \n {\n (matching && Object.keys(matching).length) ?\n <>\n \n {\n extraSupportedFields.map((valueField) => {\n return (\n \n )\n })\n }\n :\n \n }\n {!printMode &&\n \n }\n \n )\n }\n noDataComponent={loading ? null : }\n />\n \n {\n quotationTableData &&\n setQuotationTableData(null)} />\n }\n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n\n }\n \n \n );\n}\n\nexport default ValueDetails;","import server from '@config';\nimport { duplicateMission } from 'api/mission';\nimport axios from 'axios';\nimport ConfirmationDialog from 'components/common/Dialogs/ConfirmationDialog';\nimport ContactsIcon from 'components/common/Icons/ContactsIcon';\nimport CopyIcon from 'components/common/Icons/CopyIcon';\nimport MoreDotsIcon from 'components/common/Icons/MoreDotsIcon';\nimport TrashIcon from 'components/common/Icons/TrashIcon';\nimport Table from 'components/common/Table/Table';\nimport Loader from 'components/Loader/Loader';\nimport { MDBBtn, MDBContainer, MDBNav, MDBNavItem, MDBNavLink, MDBTabContent, MDBTabPane, MDBTooltip } from 'mdbreact';\nimport Dropdown from 'rc-dropdown';\nimport 'rc-dropdown/assets/index.css';\nimport Menu, { Item as MenuItem } from 'rc-menu';\nimport React, { useEffect, useState } from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { formatDate, getProfile, stopPropagation, truncate } from 'utils/utils';\nimport Header from '../Header/Header';\nimport ValueDetails from './ValueDetails/ValueDetails';\nimport './Values.css';\n\n\nfunction Values(props) {\n\n const { t } = useTranslation();\n\n const [activeItem, setActiveItem] = useState(\"1\");\n const [missions, setMissions] = useState([]);\n const [missionsForTable, setMissionsForTable] = useState([]);\n const [loading, setLoading] = useState(false);\n const [selectedMission, setSelectedMission] = useState(null);\n const [confirmDialogConfig, setConfirmDialogConfig] = useState(null);\n const [companyId, setCompanyId] = useState(null);\n\n const resetConfirmDialogConfig = () => {\n setTimeout(() => {\n setConfirmDialogConfig(null);\n }, 500);\n }\n\n const toggle = tab => e => {\n if (activeItem !== tab) {\n setActiveItem(tab);\n }\n };\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n switch (activeItem) {\n case \"1\":\n getMyMissions();\n break;\n\n case \"2\":\n getColleaguesMissions();\n break;\n\n default:\n break;\n }\n // setDemoMissions();\n }, [activeItem])\n\n useEffect(() => {\n if (missions) {\n const missionForTable = [];\n missions.forEach((mission) => {\n const m = { ...mission };\n m.candidates = mission.mission_member ? mission.mission_member.length : 0;\n missionForTable.push(m);\n })\n setMissionsForTable(missionForTable);\n } else {\n setMissionsForTable([]);\n }\n updateSelectedMission();\n }, [missions]);\n\n const getMyMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=V',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const getColleaguesMissions = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/mission/?mission_type=R&colleagues=true',\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n setMissions(res.data);\n })\n .catch((err) => {\n setLoading(false);\n setMissions([]);\n })\n }\n\n const updateSelectedMission = () => {\n if (selectedMission) {\n const mission = missions.find((m) => m.pk === selectedMission.pk);\n setSelectedMission({ ...mission });\n }\n }\n\n const setDemoMissions = () => {\n setMissions([\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n },\n {\n mission_name: 'Mission 1',\n reference: 'CA001',\n mission_creation_date: '2021-01-02',\n mission_end_date: '2021-01-02',\n mission_manager: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n mission_owner: {\n first_name: 'Arjun',\n last_name: 'Patel'\n },\n }\n ])\n }\n\n const onMissionClick = (mission) => {\n setSelectedMission(mission);\n }\n\n const onMissionActionClick = (mission, type) => {\n switch (type) {\n case 'duplicate':\n setConfirmDialogConfig({\n title: 'Duplicate Mission',\n message: `${t('Do you want to duplicate mission')} ${mission.mission_name}?`,\n onYesAction: () => onDuplicateMissionClick(mission),\n })\n break;\n\n case 'archive':\n archiveMission(mission);\n break;\n\n case 'remove':\n setConfirmDialogConfig({\n title: t('Delete mission'),\n message: `${t('Do you want to delete mission')} ${mission.mission_name}?`,\n onYesAction: () => removeMission(mission),\n })\n break;\n\n case 'copyLink':\n toast.success(t(\"Link copied\"));\n break;\n\n default:\n break;\n }\n }\n\n const onDuplicateMissionClick = (mission) => {\n setLoading(true);\n duplicateMission(mission, companyId).then(() => {\n setLoading(false);\n toast.success(t('Mission duplicated successfully'));\n getMyMissions();\n }).catch((error) => {\n setLoading(false);\n toast.error('Failed to duplicate mission.');\n })\n }\n\n const archiveMission = (mission) => {\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success('Mission archived successfully.');\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success('Failed to archive mission.');\n })\n }\n\n const removeMission = (mission) => {\n setLoading(true);\n let config = {\n method: 'delete',\n url: server + '/company/mission_update/?pk=' + mission.pk,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n toast.success(t('Mission successfully removed'));\n getMyMissions();\n })\n .catch((err) => {\n setLoading(false);\n console.log('missions', err);\n toast.success(t('Failed to delete mission.'));\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n

{t(\"Value\")}

\n \n \n + {t(\"New\")}\n \n \n
\n \n \n \n \n \n {t(\"My values missions\")}\n \n \n {/* \n \n My Colleagues' Missions\n \n */}\n \n \n \n
\n \n {truncate(contact.user.last_name, 15)}\n {contact.user.last_name}\n \n \n \n {truncate(contact.user.first_name, 15)}\n {contact.user.first_name}\n \n {t(getContactType(contact.user.contact_type))}\n \n \n {showScore(matching, valueField.field_name_in_api)}\n \n {loading ? null : `${contact?.user?.first_name} ${contact?.user?.last_name} ${t(\"hasn't completed the evaluation yet\")}.`}\n \n \n {CompleteProfileSubMenu({ user: contact.user, t })}\n {\n (quotationAccess && !contact.user.confidential && isEvaluationCompleted(contact.user.result)) ?\n \n \n \n {t(\"Quotation Table\")}\n \n \n :\n null\n }\n \n \n \n {t(\"Remove\")}\n \n \n \n }\n placement=\"bottomRight\"\n >\n \n \n
No data available.
(\n onMissionClick(mission)}>\n \n \n \n \n \n \n\n \n )\n }\n />\n \n \n \n setSelectedMission(null)} reload={() => getMyMissions()} />\n \n \n \n {\n confirmDialogConfig ?\n !state ? resetConfirmDialogConfig() : null}>\n \n : null\n }\n \n \n );\n}\n\nexport default Values;","import server from '@config';\nimport axios from 'axios';\nimport ContactForm from 'components/Admin/ContactForm/ContactForm';\nimport Header from 'components/Admin/Header/Header';\nimport Loader from 'components/Loader/Loader';\nimport { ContactTypes } from 'constants/constants';\nimport { Formik } from 'formik';\nimport usePrevious from 'hooks/UsePrevious';\nimport { MDBBtn, MDBContainer, MDBIcon, MDBInput, MDBMedia, MDBTable, MDBTableBody, MDBTableHead, MDBTooltip } from 'mdbreact';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { getLanguage, getProfile } from 'utils/utils';\nimport * as Yup from 'yup';\nimport './ValuesForm.css';\n\nfunction ValuesForm(props) {\n const { t } = useTranslation();\n const MissionType = 'V';\n const [loading, setLoading] = useState(false);\n const [invitationLink, setInvitationLink] = useState(null);\n const [contacts, setContacts] = useState([]);\n const [questionnaireTypes, setQuestionnaireTypes] = useState([]);\n const previousContacts = usePrevious(contacts);\n const [companyId, setCompanyId] = useState(null);\n\n var lang = getLanguage();\n\n const missionFormRef = new useRef(null);\n const benchmarkTypeMap = new Map();\n\n const initialValues = {\n reference: \"\",\n mission_name: \"\",\n mission_description: \"\",\n mission_delegates: [],\n mission_manager: null,\n mission_viewers: [],\n mission_member: [],\n mission_benchmarks: [],\n mission_end_date: \"\",\n default_questionnaire_type: null\n };\n\n const validationSchema = Yup.object().shape({\n reference: Yup.string().required(\"Required\").max(20, 'Maximum 20 characters are allowed.'),\n mission_name: Yup.string().required(\"Required\").max(80, 'Maximum 80 characters are allowed.'),\n mission_description: Yup.string().required(\"Required\").max(1000, 'Maximum 1000 characters are allowed.'),\n mission_end_date: Yup.date().required(\"Required\").min(new Date(), \"Please select future date\"),\n default_questionnaire_type: Yup.string().required(\"Required\").nullable()\n });\n\n useEffect(() => {\n const profile = getProfile();\n if (profile && profile.companies && profile.companies.length) {\n setCompanyId(profile.companies[0].company.pk);\n }\n }, [])\n\n useEffect(() => {\n if (companyId) {\n if (props.match.params.missionId) {\n getMissionById();\n } else {\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n }\n }\n }, [companyId])\n\n useEffect(() => {\n if (previousContacts && previousContacts.length !== contacts.length) {\n updateContacts();\n }\n }, [contacts])\n\n const getMissionById = () => {\n let config = {\n method: 'get',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('mission by id', res);\n if (res.data) {\n const data = res.data;\n getCompanyContacts();\n getCompanyQuestionnaireTypes();\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n data.mission_end_date = moment(data.mission_end_date).format('YYYY-MM-DD');\n data.mission_benchmarks = data.mission_benchmarks.map((b) => ({ benchmark: b.contact, type: b.benchmark_type }));\n console.log('data', data)\n if (data.mission_referral) {\n setInvitationLink(`${window.location.origin}/?mission=${data.mission_referral}`);\n }\n ref.setValues(data);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyContacts = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/company/company_contact/?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('contacts', res.data);\n res.data.forEach((contact) => {\n contact.first_name = contact.first_name || '';\n contact.last_name = contact.last_name || '';\n })\n setContacts(res.data);\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const getCompanyQuestionnaireTypes = () => {\n setLoading(true);\n let config = {\n method: 'get',\n url: server + '/response/questionnaire_type?company_id=' + companyId,\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('questionnaire types', res.data);\n res.data = res.data.filter((questionnaireType, index, self) => {\n return self.findIndex((v) => v.pk === questionnaireType.pk) === index;\n });\n setQuestionnaireTypes(res.data);\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (res.data && res.data.length && values && values.default_questionnaire_type) {\n res.data.forEach((qt) => {\n if (qt.pk === values.default_questionnaire_type) {\n values.default_questionnaire_type = qt;\n }\n })\n ref.setValues(values);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateContacts = () => {\n const ref = missionFormRef.current;\n const values = { ...ref.values };\n const tempContacts = [...contacts];\n tempContacts.forEach((contact) => {\n contact.selected = null;\n })\n const manager = values.mission_manager || {};\n const members = values.mission_member || [];\n const viewers = values.mission_viewers || [];\n const delegates = values.mission_delegates || [];\n const benchmarks = values.mission_benchmarks || [];\n tempContacts.forEach((contact) => {\n if (values.mission_manager && values.mission_manager.id) {\n if (contact.id === manager.id) {\n contact.selected = 'mission_manager';\n }\n }\n members.forEach((member) => {\n if (contact.id === member.id) {\n contact.selected = 'mission_member';\n }\n });\n viewers.forEach((viewer) => {\n if (contact.id === viewer.id) {\n contact.selected = 'mission_viewers';\n }\n });\n delegates.forEach((delegate) => {\n if (contact.id === delegate.id) {\n contact.selected = 'mission_delegates';\n }\n });\n benchmarks.forEach((benchmark, index) => {\n if (benchmark.benchmark && contact.id === benchmark.benchmark.id) {\n contact.selected = 'mission_benchmarks_' + index;\n }\n });\n });\n console.log('updateContacts', tempContacts.map((c) => ({ id: c.id, first_name: c.first_name, last_name: c.last_name, selected: c.selected })));\n console.log('updateContacts form', ref.values);\n setContacts(tempContacts);\n }\n\n const onSaveContact = (contact, type, ...args) => {\n console.log('contact saved', contact, missionFormRef);\n if (contact) {\n getCompanyContacts();\n }\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n switch (type) {\n case 'mission_manager':\n ref.setFieldValue('mission_manager', contact);\n break;\n\n case 'mission_member':\n const members = values.mission_member || [];\n ref.setFieldValue('mission_member', [...members, contact]);\n break;\n\n case 'mission_viewers':\n const viewers = values.mission_viewers || [];\n ref.setFieldValue('mission_viewers', [...viewers, contact]);\n break;\n\n case 'mission_delegates':\n const delegates = values.mission_delegates || [];\n ref.setFieldValue('mission_delegates', [...delegates, contact]);\n break;\n\n case 'mission_benchmarks':\n const benchmarks = values.mission_benchmarks || [];\n if (args && args.length) {\n const benchmark = benchmarks[args[0]];\n benchmark.benchmark = contact;\n ref.setFieldValue('mission_benchmarks', [...benchmarks]);\n }\n break;\n\n default:\n break;\n }\n setTimeout(updateContacts, 100);\n }\n\n }\n\n const addContactBtn = (type, label, allowedContactTypes, ...args) => {\n let defaultQuestionnaireType;\n if (missionFormRef && missionFormRef.current) {\n const ref = missionFormRef.current;\n const values = ref.values;\n if (values.default_questionnaire_type) {\n defaultQuestionnaireType = values.default_questionnaire_type;\n }\n }\n return (\n onSaveContact(contact, type, ...args)}>\n \n \n {label}\n \n \n )\n }\n\n const onFormSubmit = (mission) => {\n if (mission.mission_owner) {\n mission.mission_owner = mission.mission_owner.id;\n }\n const data = {\n ...mission,\n default_questionnaire_type: mission.default_questionnaire_type ? mission.default_questionnaire_type.pk : null,\n mission_member: mission.mission_member.map((m) => m.id),\n mission_end_date: new Date(mission.mission_end_date).toISOString(),\n type: MissionType, company: companyId\n };\n if (props.match.params.missionId) {\n updateMission(data);\n } else {\n saveMission(data);\n }\n }\n\n const saveMission = (data) => {\n setLoading(true);\n let config = {\n method: 'post',\n url: server + '/company/mission/',\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully added'));\n window.location.href = '/values';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n const updateMission = (data) => {\n setLoading(true);\n let config = {\n method: 'put',\n url: server + '/company/mission_update/?pk=' + props.match.params.missionId,\n data: data\n }\n console.log('mission config', config);\n axios(config)\n .then(res => {\n setLoading(false);\n console.log('missions', res.data);\n toast.success(t('Mission successfully updated'));\n window.location.href = '/values';\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n {t(\"Cancel and go back\")}\n \n
\n

{t(\"Values form\")}

\n
\n
\n \n \n {\n setTimeout(() => {\n setSubmitting(false);\n onFormSubmit(values);\n }, 500);\n }}\n validationSchema={validationSchema}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit, setFieldValue, setFieldTouched } = props;\n return (\n
\n
\n
\n \n {errors.mission_name && touched.mission_name && (\n
{t(errors.mission_name)}
\n )}\n
\n
\n \n {errors.reference && touched.reference && (\n
{t(errors.reference)}
\n )}\n
\n
\n \n {errors.mission_end_date && touched.mission_end_date && (\n
{t(errors.mission_end_date)}
\n )}\n
\n
\n \n {errors.mission_description && touched.mission_description && (\n
{t(errors.mission_description)}
\n )}\n
\n {\n invitationLink &&\n
\n
\n
{t(\"Invitation Link\")}
\n
\n {invitationLink}\n
\n \n
\n \n \n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n
\n
\n
\n }\n
\n
\n
{t(\"Questionnaire\")}
\n
\n `${option.questionnaire_type}`}\n renderMenuItemChildren={(q) => (\n \n \n {q.questionnaire_type} {(q.default_companies && q.default_companies.includes(companyId)) ? '(Company Default)' : null}\n \n \n )}\n options={questionnaireTypes}\n placeholder={t(\"Select a Questionnaire\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected[0] : null;\n setFieldValue('default_questionnaire_type', value);\n }}\n selected={values.default_questionnaire_type ? [values.default_questionnaire_type] : []}\n onBlur={(e) => setFieldTouched('default_questionnaire_type', true)}\n />\n
\n {errors.default_questionnaire_type && touched.default_questionnaire_type && (\n
{t(errors.default_questionnaire_type)}
\n )}\n
\n
\n
\n
\n
{t(\"Members\")}
\n
\n `${option.first_name} ${option.last_name}`}\n // onChange={setSingleSelections}\n renderMenuItemChildren={(contact) => (\n \n \n {contact.first_name} {contact.last_name}
\n {contact.email}\n
\n
\n )}\n options={contacts.filter((contact) => !contact.selected)}\n placeholder={t(\"Select members\")}\n onChange={(selected) => {\n const value = (selected.length > 0) ? selected : [];\n setFieldValue('mission_member', value);\n setTimeout(updateContacts, 100);\n }}\n selected={(values.mission_member instanceof Array) ? values.mission_member : []}\n />\n
\n {addContactBtn('mission_member', t('Add new candidates'), [ContactTypes.Candidate.value])}\n
\n
\n
\n
\n
\n \n {t(\"Save mission\")}\n \n
\n
\n \n );\n }}\n \n\n
\n
\n
\n
\n\n
\n
\n );\n}\n\nexport default withRouter(ValuesForm);","import React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next';\nimport { getLanguage } from 'utils/utils';\nimport './QuestionBlock.css';\n\nconst str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\nfunction QuestionBlock({ question: q, onNext, answerCount = 3, questionNo, progress = 0, isDemographicQuestion = false }) {\n const { t } = useTranslation();\n const lang = getLanguage();\n const [question, setQuestion] = useState(null);\n\n useEffect(() => {\n if (!q.answers) {\n q.answers = [];\n }\n setQuestion(q);\n }, [q])\n\n const selectAnswer = (answer_id) => {\n if (!question.answers) {\n question.answers = [];\n }\n if (answerCount > 1) {\n const index = question.answers.findIndex((aId) => aId === answer_id);\n if (index >= 0) {\n question.answers = question.answers.slice(0, index);\n } else {\n if (question.answers.length < answerCount) {\n question.answers.push(answer_id);\n }\n }\n } else {\n question.answers = [];\n question.answers.push(answer_id);\n }\n setQuestion({ ...question });\n }\n\n return (\n
\n {question &&\n <>\n
\n
\n
\n
\n {t(\"Question\")} {questionNo}\n
\n
\n
\n {question[lang] || question.en}\n
\n
\n {question.options.length > 0 && (\n
\n {question.options\n .map((answer, item) => {\n return (\n
\n selectAnswer(answer.answer_id)}\n >\n {str[item]}\n \n
\n {lang === \"en\"\n ? answer.en\n : lang === \"fr\"\n ? answer.fr\n : lang === \"ru\"\n ? answer.ru\n : \"\"}\n
\n {\n question?.answers?.includes(answer.answer_id) && (answerCount > 1) &&\n \n {question.answers.findIndex(answer_id => answer_id === answer.answer_id) + 1}\n \n }\n
\n );\n })}\n
\n )}\n
\n
\n
\n
\n
\n
\n
\n
\n {isDemographicQuestion ? t('Select your answer') : t(\"Select the answers that best describe what you would do\")}\n
\n onNext(question)}\n disabled={question?.answers?.length !== answerCount}\n >\n {t(\"Next\")}\n \n {/* \n \n {t(\"Next\")}\n \n */}\n
\n
\n {\n Array.from(Array(answerCount).keys()).map((index) => {\n return (\n
\n {\n (question?.answers && question?.answers[index]) ?\n <>\n selectAnswer(question?.answers[index])}\n >\n {str[question.options?.map((a) => a.answer_id).findIndex((a) => a === question?.answers[index])]}\n \n {(answerCount > 1) &&\n \n {index + 1}\n \n }\n \n :\n \n {index + 1}\n \n }\n
\n {isDemographicQuestion ? t('Answer selected') : `${t('Choice')} ${index + 1}`}\n
\n
\n )\n })\n }\n
\n
\n
\n
\n
\n
\n }\n
\n )\n}\n\nexport default QuestionBlock;\n","import React, { useState } from 'react'\nimport { useTranslation } from 'react-i18next';\nimport { getLanguage } from 'utils/utils';\nimport './SelectWordBlock.css';\n\nfunction SelectWordBlock({ words, max = 12, min = 12, onNext }) {\n const { t } = useTranslation();\n const lang = getLanguage();\n\n const [selectedWords, setSelectedWords] = useState([]);\n\n const onWordClick = (word) => {\n if (selectedWords.find((w) => w.word_id === word.word_id)) {\n setSelectedWords([...selectedWords.filter(w => w.word_id !== word.word_id)]);\n } else {\n if (selectedWords?.length < max) {\n selectedWords.push(word);\n setSelectedWords([...selectedWords]);\n }\n }\n }\n\n const onSubmit = () => {\n onNext(selectedWords);\n }\n return (\n
\n
\n
\n
\n
\n {t(\"Select the 12 words that are the most important to your eyes\")}\n
\n
\n
\n {words.length > 0 &&\n words.map((word, index) => {\n return
onWordClick(word)} key={index}\n className={`word-button ${selectedWords?.map(word => word.word_id)?.includes(word.word_id) ? 'selected' : ''} ${(selectedWords?.length < max) ? '' : 'max'}`}>\n {\n {\n 'en': word.en,\n 'fr': word.fr,\n 'ru': word.ru\n }[lang]\n }\n
\n })\n }\n
\n
\n
\n
\n
\n
\n
\n
\n
{selectedWords?.length} / 12
\n
{t(\"word(s) selected\")}
\n
\n {/* */}\n onSubmit()}\n disabled={selectedWords?.length < min}\n >\n {t(\"Next\")}\n \n
\n
\n
\n
\n )\n}\n\nexport default SelectWordBlock\n","import React, {Component} from 'react';\nimport {SortableContainer, SortableElement} from 'react-sortable-hoc';\nimport arrayMove from 'array-move';\nimport icon from '@assets/dragdrop.png';\nimport { getLanguage } from 'utils/utils'\n\n\nconst ImgStyle = {\n marginRight: '23px',\n marginTop: '-2px',\n width: '17px',\n height: '17px',\n cursor: 'pointer',\n}\n\nconst SortableItem = SortableElement(({value}) => {\n const lang = getLanguage();\n return (\n
\n \"icon\"\n {\n {\n 'en': value.en,\n 'fr': value.fr,\n 'ru': value.ru\n }[lang]\n }\n
\n )\n});\n\nconst SortableList = SortableContainer(({items}) => {\n return (\n
    \n {\n items.map((value, index) => (\n \n ))}\n
\n );\n});\n\nclass SortList extends Component {\n\n state = {\n items: []\n }\n\n componentDidMount(){\n this.setState({\n items: this.props.words\n })\n\n }\n\n onSortEnd = ({oldIndex, newIndex}) => {\n this.setState(({items}) => ({\n items: arrayMove(items, oldIndex, newIndex),\n }));\n this.props.setResult(this.state.items)\n };\n\n render() {\n return \n }\n}\n\nexport default SortList\n","import SortList from 'components/Sort/SortList';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './SortWordBlock.css';\n\nfunction SortWordBlock({ words, onNext }) {\n\n const { t } = useTranslation();\n const [sortedWords, setSortedWords] = useState([...words]);\n\n const setResult = (data) => {\n console.log('sorting words', data);\n setSortedWords([...data]);\n }\n\n const onSubmit = () => {\n onNext(sortedWords);\n }\n\n return (\n
\n {words.length > 0 &&\n
\n\n
\n
\n
\n {t(\"Please sort the words selected by order of preference\")}\n
\n
\n
\n {Array.from({ length: words?.length }, (_, i) => i + 1).map((number, index) => {\n return
{number}
\n })}\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n }\n
\n )\n}\n\nexport default SortWordBlock;\n","import React from 'react';\nimport logo from '../../../assets/header.svg';\nimport img1 from '../../../assets/Homme cercle vert.svg';\nimport img2 from '../../../assets/Femme cercle rose.svg';\nimport take_test from '../../../assets/take-the-test.svg';\nimport learn_about from '../../../assets/learn-about.svg';\nimport './BarometerFirstPage.css';\n\nfunction BarometerFirstPage({ company, startQuestionnaire }) {\n return (\n <>\n
\n
\n \"work\n {company?.company_logo && \"work}\n
\n
\n
\n
\n
\n
\n

{company?.barometer_text_header1}

\n

{company?.barometer_text_header2}

\n
\n
\n lady svg\n lady svg\n
\n
\n
\n
\n
\n
\n
\n

Comment compléter le questionnaire ?

\n
\n \"learn\n \"take\n
\n

{`\nUne première partie vous permet de répondre à de simples questions d’ordre statistiques (classe d’âge, lieu de travail, etc.). C’est très rapide.\n\nEnsuite, le questionnaire n’est constitué que de 18 questions (environ 20 minutes de passation), pour lesquelles vous devez choisir 2 réponses :\n\n- la première qui correspond à votre préférence,\n- la seconde qui correspond à votre deuxième choix.\n\nIl n’y a pas de bonnes ni de mauvaises réponses. Ce qui compte, c’est ce que vous pourriez ressentir a priori dans la situation proposée. Il est possible que parmi les 6 réponses proposées, vous ayez le sentiment qu’aucune ne soit exactement conforme à ce que vous feriez. L’important, c’est d’exprimer une tendance.\n\nParfois, aucune réponse ne semble être la plus proche, choisissez alors celle qui serait la moins éloignée, même si cela ne vous paraît pas totalement satisfaisant.\n\nCela fait justement partie du questionnaire.\n\nBonne passation !\n `}

\n
\n
startQuestionnaire()}>\n {\"ALLER AU QUESTIONNAIRE\"}\n
\n
\n
\n
\n \n )\n}\n\nexport default BarometerFirstPage;","import React from 'react';\nimport logo from '../../../assets/header.svg';\nimport shareLady from '../../../assets/share-lady.svg';\nimport './BarometerLastPage.css';\n\nfunction BarometerLastPage({ company }) {\n return (\n <>\n
\n
\n \"work\n {company?.company_logo && \"work}\n
\n
\n
\n
\n

Merci d’avoir complété le questionnaire “Baromètre social”

\n

Vous pouvez désormais fermer le navigateur.

\n
\n Work well together\n
\n
\n
\n \n )\n}\n\nexport default BarometerLastPage;","import server from \"@config\";\nimport axios from \"axios\";\nimport MultiLang from \"components/MultiLang/MultiLang\";\nimport React, { useEffect, useState } from 'react';\nimport toast from \"react-hot-toast\";\nimport { useTranslation } from \"react-i18next\";\nimport logo from '../../assets/header.svg';\nimport QuestionBlock from './QuestionBlock/QuestionBlock';\nimport SelectWordBlock from \"./SelectWordBlock/SelectWordBlock\";\nimport SortWordBlock from \"./SortWordBlock/SortWordBlock\";\nimport './BarometerQuestionnaire.css';\nimport BarometerFirstPage from \"./BarometerFirstPage/BarometerFirstPage\";\nimport BarometerLastPage from \"./BarometerLastPage/BarometerLastPage\";\n\nfunction BarometerQuestionnaire() {\n\n const views = {\n FIRST_PAGE: 'FIRST_PAGE',\n DEMOGRAPHIC: 'DEMOGRAPHIC',\n QUESTIONNAIRE: 'QUESTIONNAIRE',\n SELECT_WORDS: 'SELECT_WORDS',\n SORT_WORDS: 'SORT_WORDS',\n LAST_PAGE: 'LAST_PAGE'\n }\n\n const { t } = useTranslation();\n\n const [mission, setMission] = useState(null);\n const [demographicQuestions, setDemographicQuestions] = useState([]);\n const [selectedDemographicQuestion, setSelectedDemoGraphicQuestion] = useState(null);\n const [selectedDemographicQuestionNumber, setSelectedDemographicQuestionNumber] = useState(0);\n const [questions, setQuestions] = useState([]);\n const [selectedQuestion, setSelectedQuestion] = useState(null);\n const [selectedQuestionNumber, setSelectedQuestionNumber] = useState(0);\n const [view, setView] = useState(null);\n const [words, setWords] = useState([]);\n const [selectedWords, setSelectedWords] = useState([]);\n const [company, setCompany] = useState(null);\n const [localData, setLocalData] = useState({});\n\n useEffect(() => {\n const mission = new URLSearchParams(window.location.search).get('mission');\n const data = localStorage.getItem(`barometer-${mission}`) ? JSON.parse(localStorage.getItem(`barometer-${mission}`)) : null;\n if (data) {\n try {\n setLocalData(data);\n if (data.demographicQuestionnaire && data.demographicQuestionnaire.length) {\n if (data.selectedDemographicQuestions && data.selectedDemographicQuestions.length) {\n if (data.demographicQuestionnaire.length <= data.selectedDemographicQuestions.length) {\n setView(views.QUESTIONNAIRE);\n } else {\n setView(views.DEMOGRAPHIC);\n setSelectedDemoGraphicQuestion(data.demographicQuestionnaire[data.selectedDemographicQuestions.length]);\n setSelectedDemographicQuestionNumber(data.selectedDemographicQuestions.length + 1);\n }\n }\n }\n if (data.questionnaire && data.questionnaire.length) {\n if (data.selectedQuestions && data.selectedQuestions.length) {\n if (data.questionnaire.length <= data.selectedQuestions.length) {\n setView(views.SELECT_WORDS);\n } else {\n setSelectedQuestion(data.questionnaire[data.selectedQuestions.length]);\n setSelectedQuestionNumber(data.selectedQuestions.length + 1);\n }\n }\n }\n if (data.words && data.selectedWords) {\n setSelectedWords(data.selectedWords);\n setView(views.SORT_WORDS);\n }\n } catch (e) {\n\n }\n }\n setMission(mission);\n }, [])\n\n useEffect(() => {\n if (mission) {\n checkMissionActive().then((data) => {\n if (!data) {\n localStorage.removeItem(`barometer-${mission}`);\n window.location.replace('/');\n }\n });\n getCompanyDetails();\n if (!view) {\n setView(views.FIRST_PAGE);\n }\n if (localData.demographicQuestionnaire) {\n setDemographicQuestions(localData.demographicQuestionnaire);\n } else {\n getDemographicQuestionnaire();\n }\n if (localData.questionnaire) {\n setQuestions(localData.questionnaire);\n } else {\n getQuestionnaire();\n }\n if (localData.words) {\n setWords(localData.words);\n } else {\n getWords();\n }\n }\n }, [mission])\n\n useEffect(() => {\n if (questions.length && !localData.questionnaire) {\n setLocalData({ ...localData, questionnaire: questions });\n }\n if (questions.length && !selectedQuestion) {\n setSelectedQuestion(questions[0]);\n setSelectedQuestionNumber(1);\n }\n }, [questions])\n\n useEffect(() => {\n if (demographicQuestions.length && !localData.demographicQuestionnaire) {\n setLocalData({ ...localData, demographicQuestionnaire: demographicQuestions });\n }\n if (demographicQuestions.length && !selectedDemographicQuestion) {\n setSelectedDemoGraphicQuestion(demographicQuestions[0]);\n setSelectedDemographicQuestionNumber(1);\n }\n }, [demographicQuestions])\n\n useEffect(() => {\n if (view && view !== views.LAST_PAGE) {\n setLocalData({ ...localData, view: view });\n }\n }, [view])\n\n useEffect(() => {\n if (mission) {\n localStorage.setItem(`barometer-${mission}`, JSON.stringify(localData));\n }\n }, [localData])\n\n const checkMissionActive = async () => {\n let url = \"/company/is_mission_active/?mission_referral=\" + mission;\n const isMissionActive = await axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n return res.data.is_active;\n })\n .catch((err) => {\n console.log(err);\n });\n console.log('is', isMissionActive)\n return isMissionActive;\n }\n\n const getCompanyDetails = () => {\n let url = \"/company/get_company_from_mission/?mission_referral=\" + mission;\n axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n if (res && res.data) {\n setCompany(res.data);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n const getDemographicQuestionnaire = () => {\n let url = \"/response/demographic_question/?mission=\" + mission;\n axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n if (res && res.data) {\n res.data.forEach((question) => {\n if (question.options) {\n question.options.forEach((option) => {\n option.answer_id = option.option_id;\n })\n }\n });\n setDemographicQuestions([...res.data]);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n const getQuestionnaire = () => {\n let url = \"/response/question/?mission=\" + mission;\n axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n getOptions(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n const getOptions = (questions) => {\n let url = \"/response/answer/?mission=\" + mission;\n axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n combineQuestionsAndOptions(questions, res.data)\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n const combineQuestionsAndOptions = (questions, options) => {\n questions.forEach((question) => {\n question.options = options.filter((op) => op.answer_id.startsWith(`${question.question_id}a`))\n });\n setQuestions(questions);\n }\n\n const getWords = () => {\n let url = \"/words/\";\n axios\n .get(server + url, {\n header: {\n \"Content-type\": \"application/json\",\n },\n })\n .then((res) => {\n if (res && res.data) {\n setWords(res.data);\n setLocalData({ ...localData, words: res.data });\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n const onNextDemographicQuestion = (demographicQuestion) => {\n window.scrollTo(0, 0);\n let selectedDemographicQuestions = [];\n if (localData && localData?.selectedDemographicQuestions) {\n selectedDemographicQuestions = [...localData.selectedDemographicQuestions];\n }\n selectedDemographicQuestions.push(demographicQuestion);\n setLocalData({ ...localData, selectedDemographicQuestions: selectedDemographicQuestions });\n const index = demographicQuestions.findIndex((q) => q.question_id === demographicQuestion.question_id);\n if (index >= 0 && index < (demographicQuestions.length - 1)) {\n setSelectedDemoGraphicQuestion(demographicQuestions[index + 1]);\n setSelectedDemographicQuestionNumber(selectedDemographicQuestionNumber + 1);\n } else {\n setView(views.QUESTIONNAIRE);\n }\n }\n\n const onNext = (question) => {\n window.scrollTo(0, 0);\n let selectedQuestions = [];\n if (localData && localData?.selectedQuestions) {\n selectedQuestions = [...localData.selectedQuestions];\n }\n selectedQuestions.push(question);\n setLocalData({ ...localData, selectedQuestions: selectedQuestions });\n const index = questions.findIndex((q) => q.question_id === question.question_id);\n if (index >= 0 && index < (questions.length - 1)) {\n setSelectedQuestion(questions[index + 1]);\n setSelectedQuestionNumber(selectedQuestionNumber + 1);\n } else {\n setView(views.SELECT_WORDS);\n }\n }\n\n const onSelectWords = (words) => {\n setSelectedWords(words);\n setLocalData({ ...localData, selectedWords: words });\n setView(views.SORT_WORDS);\n }\n\n const onSortWords = (sortedWords) => {\n console.log('local data', localData);\n console.log('sorted words', sortedWords);\n const body = {};\n\n // set demographic answers\n body.demographic_answers = {};\n if (localData.selectedDemographicQuestions) {\n localData.selectedDemographicQuestions.forEach((q) => {\n body.demographic_answers[q.pk] = q.answers ? +q.answers.map((a) => q.options.find((op) => op.option_id === a).pk).join(',') : '';\n })\n }\n if (localData.selectedQuestions) {\n let question_answered = '';\n let first_answers = '';\n let second_answers = '';\n localData.selectedQuestions.forEach((q) => {\n question_answered += `${q.question_id.replace('q', '')},`;\n if (q.answers) {\n q.answers.forEach((a, index) => {\n if (!index) {\n first_answers += a.replace(`${q.question_id}a`, '') + ',';\n } else if (index === 1) {\n second_answers += a.replace(`${q.question_id}a`, '') + ',';\n }\n })\n }\n })\n body.question_answered = question_answered;\n body.first_answers = first_answers;\n body.second_answers = second_answers;\n }\n if (localData.selectedWords) {\n body.selected_word_result = localData.selectedWords.map((word) => word.word_id).join(',');\n }\n if (sortedWords) {\n body.sorted_word_result = sortedWords.map((word) => word.word_id).join(',');\n }\n console.log('body', body);\n saveIndividualResult(body);\n }\n\n const saveIndividualResult = (data) => {\n let config = {\n method: 'post',\n url: server + '/result/barometer_response/?mission=' + mission,\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then((res) => {\n toast.success(t('Your response is saved successfully'));\n setView(views.LAST_PAGE);\n localStorage.removeItem(`barometer-${mission}`);\n })\n }\n\n const currentView = () => {\n switch (view) {\n case views.DEMOGRAPHIC:\n return (\n <>\n {\n selectedDemographicQuestion ?\n onNextDemographicQuestion(question)}\n progress={(100 * (selectedDemographicQuestionNumber - 1)) / demographicQuestions?.length} />\n : null\n }\n \n )\n\n case views.QUESTIONNAIRE:\n return (\n <>\n {\n selectedQuestion ?\n onNext(question)}\n progress={(100 * (selectedQuestionNumber - 1)) / questions?.length} />\n : null\n }\n \n )\n\n case views.SELECT_WORDS:\n return onSelectWords(selectedWords)} />\n\n case views.SORT_WORDS:\n return onSortWords(sortedWords)} />\n\n default:\n break;\n }\n }\n\n const onStartQuestionnaire = () => {\n setView(views.DEMOGRAPHIC);\n }\n\n if (view === views.FIRST_PAGE) {\n return (\n <>\n onStartQuestionnaire()} />\n \n )\n }\n\n if (view === views.LAST_PAGE) {\n return (\n <>\n \n \n )\n }\n\n return (\n
\n
\n
\n \"work\n {company?.company_logo && \"work}\n
\n \n
\n
\n {currentView()}\n
\n
\n )\n}\n\nexport default BarometerQuestionnaire;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next'\nimport { MDBContainer, MDBBtn, MDBModal, MDBModalBody, MDBModalFooter } from 'mdbreact';\nimport '../ContactPage.css'\n\nfunction LegalModal(props) {\n\n const [modal, setModal] = useState(false)\n\n const toggle = () => {\n setModal(!modal)\n }\n\n const { t } = useTranslation();\n\n return (\n
\n
{props.title}
\n \n \n \n
{t(\"GENERAL TERMS AND CONDITIONS\")}
\n {t(\"You acknowledge that by registering\")}\n
{t(\"1. LEGAL INFORMATION\")}
\n {t(\"The Work Well Together platform and the Services are operated by Work Well Together SAS\")}\n
{t(\"Hosting\")}
\n {t(\"www.workwelltogether.co website is hosted\")}\n
{t(\"2. PREAMBLE\")}
\n {t(\"The Work Well Together platforms www.workwelltogether.co with its sub-domains\")}\n\n {t(\"The purpose of these general terms and conditions is to define the terms and conditions of the implementation of the services\")}\n
{t(\"3. DEFINITIONS\")}
\n {t(\"The terms defined below shall have the following meanings between the parties\")}\n
{t(\"4. SUBJECT\")}
\n {t(\"The purpose of this document is to define the conditions of access, the terms of use of the services\")}\n
{t(\"5. CONTRACTUAL DOCUMENTS\")}
\n {t(\"The contractual documents that are binding for the Clients are\")}\n
{t(\"6. OPPOSABILITY\")}
\n {t(\"Customers may only benefit from the services offered to them on the Platform\")}\n
{t(\"7. ACCESS TO SERVICES\")}
\n {t(\"The Services are intended exclusively for Customers, understood as any natural or legal person, who wish to use Work Well Together solutions. \")}\n
{t(\"8. REGISTRATION LOGIN/PASSWORD\")}
\n {t(\"The user is solely responsible for the preservation and confidentiality of the password and/or login\")}\n
{t(\"9. STRICTLY PERSONAL USE\")}
\n {t(\"The user can access his Personal Space at any time after having identified himself using his login and password.\")}\n
{t(\"10. SUSPENSION AND CLOSURE OF THE USER ACCOUNT\")}
\n {t(\"In case of suspicion of fraudulent use of the User's account, the Company reserves the right,\")}\n
{t(\"11. DESCRIPTION OF SERVICES\")}
\n {t(\"The user has access to the following Services,\")}\n
{t(\"11.1 Client registration\")}
\n {t(\"The Company offers Clients to answer the Platform's Projective Questionnaire\")}\n
{t(\"11.2 Establishment of deliverables\")}
\n {t(\"Based on the responses provided by the Client, the Platform prepares summary reports\")}\n
{t(\"11.3 Delivery of deliverables\")}
\n {t(\"Deliverables can only be prepared and delivered to the Customer after the Customer has fully completed the Questionnaire.\")}\n
{t(\"11.4 Other services\")}
\n {t(\"The Company reserves the right to offer any other Service that it deems useful,\")}\n
{t(\"12. FINANCIAL CONDITIONS\")}
\n {t(\"The Customer subscribes to a subscription allowing him to benefit during the period of the said subscription from the totality of the functionalities. \")}\n
{t(\"12.1 Cost of the subscription\")}
\n {t(\"The price of the subscription is indicated on the site,\")}\n
{t(\"12.2 Terms of payments\")}
\n {t(\"For subscriptions, payment of the subscription price is made by bank transfer,\")}\n
{t(\"12.3 Duration of the subscription\")}
\n {t(\"There is no commitment period. The Customer is free to terminate the Platform's services at its own convenience with one (1) month notice.\")}\n
{t(\"12.4 Common provisions\")}
\n {t(\"The Company reserves the right, at its sole discretion and on terms and conditions that it shall be its sole judge\")}\n
{t(\"12.5 Late payments and payment incidents\")}
\n {t(\"The Client is informed and expressly accepts that any delay in the payment of all or part of a sum due on its due date\")}\n
{t(\"13. DURATION OF THE SERVICES\")}
\n {t(\"The subscription is taken out for an indefinite period.\")}\n
{t(\"14. UNSUBSCRIPTION\")}
\n {t(\"Users may unsubscribe from the Platform at any time, directly from their personal space or by sending a request\")}\n
{t(\"15. USERS' OBLIGATIONS AND GUARANTEES\")}
\n {t(\"Without prejudice to the other obligations set forth herein, the user agrees to comply with the following obligations.\")}\n
\n {t(\"15.1 The user undertakes,\")}\n
\n {t(\"15.2 The user acknowledges\")}\n
\n {t(\"15.3 However, the Company reserves\")}\n
\n {t(\"15.4 The user undertakes to make strictly personal use\")}\n
\n {t(\"15.5 The user undertakes not to obscure the Company's trademark\")}\n
\n {t(\"15.6 The User undertakes not to modify or distort\")}\n
\n {t(\"15.7 The User agrees not to reproduce and use the framework,\")}\n
\n {t(\"15.8 The user undertakes to provide the Company with all the information necessar\")}\n
\n {t(\"15.9 The user undertakes to keep confidential,\")}\n
\n {t(\"15.10 Moreover, the Customer is solely responsible for the relations\")}\n
\n {t(\"15.11 The Customer acknowledges that the Services offer an additional,\")}\n
\n {t(\"15.12 The user must take the necessary measures to safeguard\")}\n
\n {t(\"15.13 The user is informed and accepts that the implementation of the Services requires that he be connected\")}\n
\n {t(\"15.14 The User indemnifies the Company against any and all complaints,\")}\n
\n {t(\"15.15 The User undertakes to indemnify the Company for any prejudice\")}\n
{t(\"16. LIABILITY AND GUARANTEE OF THE COMPANY\")}
\n
\n {t(\"16.1 The Company undertakes to provide the Services diligently and in accordance\")}\n
\n {t(\"16.2 The Questionnaire and the deliverables proposed by the Company are subject to constant improvement\")}\n
\n {t(\"16.3 The Company is, moreover, in no way responsible for exchanges or relations between users\")}\n
\n {t(\"16.4 The Company undertakes to keep confidential the information\")}\n
\n {t(\"16.5 The Company declines all responsibility in the event of any loss of the information accessible\")}\n
\n {t(\"16.6 The Company undertakes to carry out regular checks to verify the operation and accessibility of the Platform\")}\n
\n {t(\"16.7 The Company does not guarantee to users (i) that the Services, which are subject to constant research to improve their performance\")}\n
{t(\"17. PROHIBITED BEHAVIORS\")}
\n
\n {t(\"17.1 The following are strictly prohibited\")}:{t(\" (i) any behavior likely to interrupt,\")}\n
\n {t(\"17.2 In the event of failure to comply with any of the provisions of this article or\")}\n
\n {t(\"17.3 The User undertakes to use the Services and the data extracted from them in perfect good faith\")}\n
{t(\"18. SANCTIONS FOR BREACHES\")}
\n {t(\"In case of breach of any of the provisions of these terms and conditions or, more generally, infringement of the laws\")}\n
{t(\"19. INTELLECTUAL PROPERTY OF THE COMPANY\")}
\n {t(\"The present general conditions do not entail any transfer of any kind of intellectual property rights\")}\n
{t(\"20. RESPONSIBILITY\")}
\n {t(\"The Company declines all responsibility for any interruptions or bugs in the Platform.\")}\n
{t(\"21. SECURITY\")}
\n {t(\"The Company makes its best efforts, in accordance with the rules of the art, to secure the Platform\")}\n
{t(\"22. PERSONAL DATA\")}
\n {t(\"The Company has a personal data protection policy,\")}\n
{t(\"23. TRACEABILITY\")}
\n {t(\"In order to provide an easily accessible and personalized service, the Company keeps a history of the Customers' connections\")}\n
{t(\"24. ADVERTISING\")}
\n {t(\"The Company reserves the right to insert on the Platform and in any communication to users any advertising\")}\n
{t(\"25. LINKS AND THIRD PARTY SITES\")}
\n {t(\"The Company may in no event be held liable for the technical availability of websites\")}\n
{t(\"26. FORCE MAJEURE\")}
\n {t(\"Initially, cases of force majeure will suspend the execution of the general conditions of sale.\")}\n
{t(\"27. CONVENTION OF PROOF\")}
\n {t(\"Acceptance of the General Terms and Conditions by electronic means shall have the same evidential value\")}\n
{t(\"28. CONFIDENTIALITY\")}
\n {t(\"The information transmitted or collected by the Company during the use of the Services is by nature considered confidential\")}\n
{t(\"29. COMMERCIAL REFERENCES\")}
\n {t(\"The Client expressly authorizes the Company to cite it and to use,\")}\n
{t(\"30. GENERAL PROVISIONS\")}
\n {t(\"The parties agree to perform their obligations in good faith.\")}\n
{t(\"31. LANGUAGES\")}
\n {t(\"In the event of a translation of these general terms and conditions, the Questionnaire, the deliverables and more generally the Platform\")}\n
{t(\"32. APPLICABLE LAW AND JURISDICTION\")}
\n {t(\"The present general conditions are governed by French law.\")}\n
\n \n {t(\"Got it\")}\n \n
\n
\n
\n )\n}\n\nexport default LegalModal;","import React, { useState, useEffect } from \"react\"\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport { MDBContainer, MDBRow, MDBCol, MDBInput, MDBBtn, MDBModal, MDBIcon } from 'mdbreact'\nimport server from '@config'\nimport './SendMailModal.css';\nimport toast from 'react-hot-toast';\n\nfunction SendMailModal() {\n\n const [modal, setModal] = useState(false)\n const [name, setName] = useState()\n const [email, setEmail] = useState()\n const [subject, setSubject] = useState('')\n const [message, setMessage] = useState('')\n const [span, setSpan] = useState('no-error')\n\n const { t } = useTranslation();\n\n const toggle = () => {\n setModal(!modal)\n }\n\n const validEmail = (email) => {\n return (new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,15}/g).test(email))\n }\n\n const onNameChange = (e) => {\n setName(e.target.value)\n }\n\n const onEmailChange = (e) => {\n setEmail(e.target.value)\n }\n\n const onSubjectChange = (e) => {\n setSubject(e.target.value)\n }\n\n const onMessageChange = (e) => {\n setMessage(e.target.value)\n }\n\n const onSubmit = () => {\n if (validEmail(email)) {\n setSpan('d-none')\n let data = {\n sender_email: email,\n sender_name: name,\n subject: subject,\n message: message\n }\n let config = {\n method: \"post\",\n url: server + '/send/contact',\n data: data\n }\n console.log(config)\n axios(config)\n .then(res => {\n console.log(res.data['message'])\n toast.success(t(\"message successfully sent\"));\n })\n .catch(err => {\n console.log(err)\n })\n } else {\n setSpan('d-block')\n }\n }\n\n useEffect(() => {\n setSpan('d-none')\n }, [modal])\n\n return (\n \n
{t(\"Contact us\")}
\n \n \n \n
\n
{t(\"Contact us\")}
\n
\n \n \n \n \n
\n {t(\"Invalid email address\")}\n
\n \n {t(\"Send\")}\n \n \n
\n \n
\n
\n
\n
\n )\n}\n\nexport default SendMailModal","import React from 'react'\nimport CookieModal from './Modals/CookieModal'\nimport PersonalModal from './Modals/PersonalModal'\nimport LegalModal from './Modals/LegalModal'\nimport SendMailModal from './Modals/SendMailModal'\nimport mail_icon from '../../assets/mail.png'\nimport linkedin_icon from '../../assets/linkedin.png'\nimport facebook_icon from '../../assets/facebook.png'\nimport { useTranslation } from 'react-i18next'\nimport './ContactPage.css'\nimport { Link } from 'react-router-dom'\n\nfunction ContactPage() {\n\n const { t } = useTranslation();\n\n return (\n
\n {/*
*/}\n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n
{t(\"Follow us\")}
\n
\n
\n
\n \n
\n {t(\"Terms of use and protection policy on personal data\")}\n
\n \n {/*
|
\n */}\n
|
\n \n\n {/* */}\n
\n
\n {/*
*/}\n {/*
\n \"mail\"\n \n
\n
\n \n \"facebook\"\n \n \n \"linkedin\"\n \n
Suivez-nous
\n
\n \n \n */}\n
\n )\n}\n\nexport default ContactPage","import ContactPage from 'components/Home/ContactPage';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport logo from '../../assets/WWT icone blue.svg';\nimport MultiLang from '../MultiLang/MultiLang';\nimport './PrivacyPolicy.css';\nimport { Link } from 'react-router-dom';\nimport { getLanguage } from 'utils/utils';\n\nfunction PrivacyPolicy(props) {\n\n const { t } = useTranslation();\n var lang = getLanguage();\n\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [])\n\n return (\n
\n
\n
\n \n
\n
\n
\n
\n
\n

\n

{t(\"GENERAL TERMS AND CONDITIONS\")}
\n {t(\"You acknowledge that by registering\")}\n
{t(\"1. LEGAL INFORMATION\")}
\n {t(\"The Work Well Together platform and the Services are operated by Work Well Together SAS\")}\n
{t(\"Hosting\")}
\n {t(\"www.workwelltogether.co website is hosted\")}\n
{t(\"2. PREAMBLE\")}
\n {t(\"The Work Well Together platforms www.workwelltogether.co with its sub-domains\")}\n\n {t(\"The purpose of these general terms and conditions is to define the terms and conditions of the implementation of the services\")}\n
{t(\"3. DEFINITIONS\")}
\n {t(\"The terms defined below shall have the following meanings between the parties\")}\n
{t(\"4. SUBJECT\")}
\n {t(\"The purpose of this document is to define the conditions of access, the terms of use of the services\")}\n
{t(\"5. CONTRACTUAL DOCUMENTS\")}
\n {t(\"The contractual documents that are binding for the Clients are\")}\n
{t(\"6. OPPOSABILITY\")}
\n {t(\"Customers may only benefit from the services offered to them on the Platform\")}\n
{t(\"7. ACCESS TO SERVICES\")}
\n {t(\"The Services are intended exclusively for Customers, understood as any natural or legal person, who wish to use Work Well Together solutions. \")}\n
{t(\"8. REGISTRATION LOGIN/PASSWORD\")}
\n {t(\"The user is solely responsible for the preservation and confidentiality of the password and/or login\")}\n
{t(\"9. STRICTLY PERSONAL USE\")}
\n {t(\"The user can access his Personal Space at any time after having identified himself using his login and password.\")}\n
{t(\"10. SUSPENSION AND CLOSURE OF THE USER ACCOUNT\")}
\n {t(\"In case of suspicion of fraudulent use of the User's account, the Company reserves the right,\")}\n
{t(\"11. DESCRIPTION OF SERVICES\")}
\n {t(\"The user has access to the following Services,\")}\n
{t(\"11.1 Client registration\")}
\n {t(\"The Company offers Clients to answer the Platform's Projective Questionnaire\")}\n
{t(\"11.2 Establishment of deliverables\")}
\n {t(\"Based on the responses provided by the Client, the Platform prepares summary reports\")}\n
{t(\"11.3 Delivery of deliverables\")}
\n {t(\"Deliverables can only be prepared and delivered to the Customer after the Customer has fully completed the Questionnaire.\")}\n
{t(\"11.4 Other services\")}
\n {t(\"The Company reserves the right to offer any other Service that it deems useful,\")}\n
{t(\"12. FINANCIAL CONDITIONS\")}
\n {t(\"The Customer subscribes to a subscription allowing him to benefit during the period of the said subscription from the totality of the functionalities. \")}\n
{t(\"12.1 Cost of the subscription\")}
\n {t(\"The price of the subscription is indicated on the site,\")}\n
{t(\"12.2 Terms of payments\")}
\n {t(\"For subscriptions, payment of the subscription price is made by bank transfer,\")}\n
{t(\"12.3 Duration of the subscription\")}
\n {t(\"There is no commitment period. The Customer is free to terminate the Platform's services at its own convenience with one (1) month notice.\")}\n
{t(\"12.4 Common provisions\")}
\n {t(\"The Company reserves the right, at its sole discretion and on terms and conditions that it shall be its sole judge\")}\n
{t(\"12.5 Late payments and payment incidents\")}
\n {t(\"The Client is informed and expressly accepts that any delay in the payment of all or part of a sum due on its due date\")}\n
{t(\"13. DURATION OF THE SERVICES\")}
\n {t(\"The subscription is taken out for an indefinite period.\")}\n
{t(\"14. UNSUBSCRIPTION\")}
\n {t(\"Users may unsubscribe from the Platform at any time, directly from their personal space or by sending a request\")}\n
{t(\"15. USERS' OBLIGATIONS AND GUARANTEES\")}
\n {t(\"Without prejudice to the other obligations set forth herein, the user agrees to comply with the following obligations.\")}\n
\n {t(\"15.1 The user undertakes,\")}\n
\n {t(\"15.2 The user acknowledges\")}\n
\n {t(\"15.3 However, the Company reserves\")}\n
\n {t(\"15.4 The user undertakes to make strictly personal use\")}\n
\n {t(\"15.5 The user undertakes not to obscure the Company's trademark\")}\n
\n {t(\"15.6 The User undertakes not to modify or distort\")}\n
\n {t(\"15.7 The User agrees not to reproduce and use the framework,\")}\n
\n {t(\"15.8 The user undertakes to provide the Company with all the information necessar\")}\n
\n {t(\"15.9 The user undertakes to keep confidential,\")}\n
\n {t(\"15.10 Moreover, the Customer is solely responsible for the relations\")}\n
\n {t(\"15.11 The Customer acknowledges that the Services offer an additional,\")}\n
\n {t(\"15.12 The user must take the necessary measures to safeguard\")}\n
\n {t(\"15.13 The user is informed and accepts that the implementation of the Services requires that he be connected\")}\n
\n {t(\"15.14 The User indemnifies the Company against any and all complaints,\")}\n
\n {t(\"15.15 The User undertakes to indemnify the Company for any prejudice\")}\n
{t(\"16. LIABILITY AND GUARANTEE OF THE COMPANY\")}
\n
\n {t(\"16.1 The Company undertakes to provide the Services diligently and in accordance\")}\n
\n {t(\"16.2 The Questionnaire and the deliverables proposed by the Company are subject to constant improvement\")}\n
\n {t(\"16.3 The Company is, moreover, in no way responsible for exchanges or relations between users\")}\n
\n {t(\"16.4 The Company undertakes to keep confidential the information\")}\n
\n {t(\"16.5 The Company declines all responsibility in the event of any loss of the information accessible\")}\n
\n {t(\"16.6 The Company undertakes to carry out regular checks to verify the operation and accessibility of the Platform\")}\n
\n {t(\"16.7 The Company does not guarantee to users (i) that the Services, which are subject to constant research to improve their performance\")}\n
{t(\"17. PROHIBITED BEHAVIORS\")}
\n
\n {t(\"17.1 The following are strictly prohibited\")}:{t(\" (i) any behavior likely to interrupt,\")}\n
\n {t(\"17.2 In the event of failure to comply with any of the provisions of this article or\")}\n
\n {t(\"17.3 The User undertakes to use the Services and the data extracted from them in perfect good faith\")}\n
{t(\"18. SANCTIONS FOR BREACHES\")}
\n {t(\"In case of breach of any of the provisions of these terms and conditions or, more generally, infringement of the laws\")}\n
{t(\"19. INTELLECTUAL PROPERTY OF THE COMPANY\")}
\n {t(\"The present general conditions do not entail any transfer of any kind of intellectual property rights\")}\n
{t(\"20. RESPONSIBILITY\")}
\n {t(\"The Company declines all responsibility for any interruptions or bugs in the Platform.\")}\n
{t(\"21. SECURITY\")}
\n {t(\"The Company makes its best efforts, in accordance with the rules of the art, to secure the Platform\")}\n
{t(\"22. PERSONAL DATA\")}
\n {t(\"The Company has a personal data protection policy,\")}\n {\n (lang === 'fr') ?\n
\n

Les données utilisateurs stockées et utilisées sont :

\n

- Nom

\n

- Prénom

\n

- Email

\n

- Identifiant des questions posées

\n

- Réponse 1 de chaque question

\n

- Réponse 2 de chaque question

\n

- Mots sélectionnés et triés

\n

Les données utilisateurs permettent aux algorithmes Play Well Together de générer le profil relationnel et les résultats de matching relationnel.

\n

L’utilisateur peut demander la suppression de ses données personnelles en contactant notre service support: contact@workwelltogether.co

\n
\n :\n
\n

The users data we use and store are:

\n

- Last Name

\n

- First Name

\n

- email address

\n

- Question id

\n

- answer 1 for each question

\n

- answer 2 for each question

\n

- Choice of words and sort order

\n

The users data allow us to generate the user's relational profile and their relational matchings with other users, thanks to our algorithms.

\n

The user can request the deletion of their personal data by contacting our support team: contact@workwelltogether.co

\n
\n }\n
{t(\"23. TRACEABILITY\")}
\n {t(\"In order to provide an easily accessible and personalized service, the Company keeps a history of the Customers' connections\")}\n
{t(\"24. ADVERTISING\")}
\n {t(\"The Company reserves the right to insert on the Platform and in any communication to users any advertising\")}\n
{t(\"25. LINKS AND THIRD PARTY SITES\")}
\n {t(\"The Company may in no event be held liable for the technical availability of websites\")}\n
{t(\"26. FORCE MAJEURE\")}
\n {t(\"Initially, cases of force majeure will suspend the execution of the general conditions of sale.\")}\n
{t(\"27. CONVENTION OF PROOF\")}
\n {t(\"Acceptance of the General Terms and Conditions by electronic means shall have the same evidential value\")}\n
{t(\"28. CONFIDENTIALITY\")}
\n {t(\"The information transmitted or collected by the Company during the use of the Services is by nature considered confidential\")}\n
{t(\"29. COMMERCIAL REFERENCES\")}
\n {t(\"The Client expressly authorizes the Company to cite it and to use,\")}\n
{t(\"30. GENERAL PROVISIONS\")}
\n {t(\"The parties agree to perform their obligations in good faith.\")}\n
{t(\"31. LANGUAGES\")}
\n {t(\"In the event of a translation of these general terms and conditions, the Questionnaire, the deliverables and more generally the Platform\")}\n
{t(\"32. APPLICABLE LAW AND JURISDICTION\")}
\n {t(\"The present general conditions are governed by French law.\")}\n

\n
\n\n
\n
\n \n
\n );\n}\n\nexport default PrivacyPolicy;","import { createContext, useContext } from 'react'\n\nexport const ProfileContext = createContext()\n\nexport function useAuth() {\n return useContext(ProfileContext)\n}","import server from '@config';\nimport { useAuth } from '@context/auth';\nimport { getIndividualResult, getProfile } from 'api/api';\nimport { ProfileContext } from 'context/profile';\nimport React, { useContext, useEffect } from 'react';\nimport FacebookLogin from 'react-facebook-login';\nimport toast from 'react-hot-toast';\nimport { withRouter } from 'react-router';\nimport { gaEvent } from 'utils/utils';\nimport './LoginModal.css';\n\nfunction FacebookButton(props) {\n\n const { setAuthTokens } = useAuth()\n\n let params = new URLSearchParams(window.location.search)\n let ref = params.get('ref')\n const mission = params.get('mission')\n const contact = params.get('contact')\n const company = params.get('company')\n\n const profileContext = useContext(ProfileContext);\n\n useEffect(() => {\n if (profileContext.profile) {\n getIndividualResult();\n }\n }, [profileContext])\n\n const responseFacebook = (res) => {\n // setAuthTokens(res.accessToken)\n const body = {\n site: \"facebook\",\n email: res.email,\n name: res.name,\n picture: res.picture.data.url,\n referral: ref,\n }\n if (mission) {\n body.mission = mission;\n }\n if (contact) {\n body.contact = contact;\n }\n if (company) {\n body.company = company;\n }\n if (props.location.pathname.includes('/pro')) {\n body.is_b2b = true;\n } else {\n body.is_b2b = false;\n }\n\n fetch(server + '/auth/user', {\n method: \"POST\",\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body)\n })\n .then(res => res.json())\n .then(data => {\n console.log('facebook login', data)\n if (data) {\n if (data.status === 0) {\n toast.error(data.message);\n } else {\n localStorage.setItem('email', data.email)\n localStorage.setItem('referral', data.referral)\n localStorage.setItem('token', data.token)\n setAuthTokens(data.token)\n gaEvent(\"CONNECTION\", \"CONNECTION_FACEBOOK\", \"Connected with Facebook\");\n getProfile().then((profile) => {\n profileContext.setProfile();\n if (profile) {\n profileContext.setProfile();\n getIndividualResult().then((res) => {\n if (res.data.w_1 !== -1) {\n props.setPassed(true)\n }\n props.setEmail(localStorage.getItem('email'))\n })\n }\n })\n }\n }\n })\n .catch(err => {\n console.log(err)\n toast.error(\"Login with Facebook failed\")\n })\n }\n\n return (\n \n )\n}\n\nexport default withRouter(FacebookButton);","import server from '@config';\r\nimport { useAuth } from '@context/auth';\r\nimport { getIndividualResult, getProfile } from 'api/api';\r\nimport { ProfileContext } from 'context/profile';\r\nimport React, { useContext, useEffect } from 'react';\r\nimport GoogleLogin from 'react-google-login';\r\nimport toast from 'react-hot-toast';\r\nimport { withRouter } from 'react-router';\r\nimport { gaEvent } from 'utils/utils';\r\nimport './LoginModal.css';\r\n\r\nfunction GoogleButton(props) {\r\n\r\n const { setAuthTokens } = useAuth()\r\n let params = new URLSearchParams(window.location.search)\r\n let ref = params.get('ref')\r\n const mission = params.get('mission')\r\n const contact = params.get('contact')\r\n const company = params.get('company')\r\n\r\n const profileContext = useContext(ProfileContext);\r\n\r\n useEffect(() => {\r\n if (profileContext.profile) {\r\n getIndividualResult();\r\n }\r\n }, [profileContext])\r\n\r\n const handleSuccess = (res) => {\r\n // setAuthTokens(res.tokenObj.access_token)\r\n props.setModal(true)\r\n\r\n let body = {\r\n site: \"google\",\r\n email: res.profileObj.email,\r\n first_name: res.profileObj.givenName,\r\n last_name: res.profileObj.familyName,\r\n picture: res.profileObj.imageUrl,\r\n referral: ref,\r\n }\r\n if (mission) {\r\n body.mission = mission;\r\n }\r\n if (contact) {\r\n body.contact = contact;\r\n }\r\n if (company) {\r\n body.company = company;\r\n }\r\n if (props.location.pathname.includes('/pro')) {\r\n body.is_b2b = true;\r\n } else {\r\n body.is_b2b = false;\r\n }\r\n\r\n fetch(server + '/auth/user', {\r\n method: \"POST\",\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(body)\r\n })\r\n .then(res => res.json())\r\n .then(data => {\r\n console.log('google login', data)\r\n if (data) {\r\n if (data.status === 0) {\r\n toast.error(data.message);\r\n } else {\r\n gaEvent(\"CONNECTION\", \"CONNECTION_GOOGLE\", \"Connected with Google\");\r\n localStorage.setItem('email', data.email)\r\n localStorage.setItem('referral', data.referral)\r\n localStorage.setItem('token', data.token)\r\n setAuthTokens(data.token)\r\n getProfile().then((profile) => {\r\n profileContext.setProfile();\r\n if (profile) {\r\n profileContext.setProfile();\r\n getIndividualResult().then((res) => {\r\n if (res.data.w_1 !== -1) {\r\n props.setPassed(true)\r\n }\r\n props.setEmail(localStorage.getItem('email'))\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n toast.error(\"Login with Google failed\")\r\n })\r\n }\r\n\r\n const handleFailure = (err) => {\r\n console.log(err, ' login google error')\r\n toast.error(\"Login with Google failed\")\r\n }\r\n\r\n return (\r\n \r\n    \r\n Google\r\n \r\n )\r\n}\r\n\r\nexport default withRouter(GoogleButton);","import server from '@config'\nimport { useAuth } from '@context/auth'\nimport { getIndividualResult, getProfile } from 'api/api'\nimport { ProfileContext } from 'context/profile'\nimport React, { useContext, useEffect, useState } from 'react'\nimport toast from 'react-hot-toast'\nimport { useTranslation } from 'react-i18next'\nimport LinkedIn from 'react-linkedin-login-oauth2'\nimport { withRouter } from 'react-router'\nimport { gaEvent } from 'utils/utils'\nimport './LoginModal.css'\n\nfunction LinkedinButton(props) {\n const [errorMessage, setErrorMessage] = useState()\n const { setAuthTokens } = useAuth()\n const { t } = useTranslation();\n let params = new URLSearchParams(window.location.search)\n let ref = params.get('ref')\n const mission = params.get('mission')\n const contact = params.get('contact')\n const company = params.get('company')\n\n const profileContext = useContext(ProfileContext);\n\n useEffect(() => {\n if (profileContext.profile) {\n getIndividualResult();\n }\n }, [profileContext])\n\n const handleSuccess = (data) => {\n // setAuthTokens(data.code)\n props.setModal(true)\n const body = {\n site: \"linkedin\",\n code: data.code,\n referral: ref,\n }\n if (mission) {\n body.mission = mission;\n }\n if (contact) {\n body.contact = contact;\n }\n if (company) {\n body.company = company;\n }\n if (props.location.pathname.includes('/pro')) {\n body.is_b2b = true;\n } else {\n body.is_b2b = false;\n }\n\n fetch(server + '/auth/user', {\n method: \"POST\",\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body)\n })\n .then(res => res.json())\n .then(data => {\n console.log('linkedin login', data)\n if (data) {\n if (data.status === 0) {\n toast.error(data.message);\n } else {\n localStorage.setItem('email', data.email)\n localStorage.setItem('referral', data.referral)\n localStorage.setItem('token', data.token)\n setAuthTokens(data.token)\n let data1 = { 'email': data.email }\n gaEvent(\"CONNECTION\", \"CONNECTION_LINKEDIN\", \"Connected with LinkedIn\");\n getProfile().then((profile) => {\n profileContext.setProfile();\n if (profile) {\n profileContext.setProfile();\n getIndividualResult().then((res) => {\n if (res.data.w_1 !== -1) {\n props.setPassed(true)\n }\n props.setEmail(localStorage.getItem('email'))\n })\n }\n })\n }\n }\n })\n .catch(err => {\n console.log(err)\n toast.error(\"Login with LinkedIn failed\")\n })\n }\n\n const handleFailure = (err) => {\n setErrorMessage(err.errorMessage)\n console.log(errorMessage)\n toast.error(\"Login with LinkedIn failed\")\n }\n\n const url = window.location.origin + \"/home\";\n console.log(url)\n\n return (\n
\n \n \n {t(\"Connect with Linkedin\")}\n \n
\n );\n}\n\nexport default withRouter(LinkedinButton);\n","import server from '@config';\nimport { getIndividualResult, getProfile } from \"api/api\";\nimport axios from 'axios';\nimport LegalModal from \"components/Home/Modals/LegalModal\";\nimport Loader from \"components/Loader/Loader\";\nimport { useAuth } from 'context/auth';\nimport { ProfileContext } from \"context/profile\";\nimport { Formik } from \"formik\";\n// import { Formik } from \"formik\";\n// import * as Yup from \"yup\";\nimport {\n MDBBtn, MDBCard, MDBCardBody, MDBCol, MDBContainer, MDBInput, MDBModal, MDBRow\n} from \"mdbreact\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport toast from 'react-hot-toast';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from \"react-router\";\nimport * as Yup from 'yup';\nimport FacebookButton from \"./FacebookButton\";\nimport GoogleButton from \"./GoogleButton\";\nimport LinkedinButton from \"./LinkedinButton\";\nimport \"./LoginModal.css\";\n// import { store } from 'react-notifications-component';\n\nfunction LoginModal(props) {\n const [modal, setModal] = useState(false);\n const [forgotPasswordModal, setForgotPasswordModal] = useState(false);\n const [signUpForm, setSignUpForm] = useState(false);\n const [btnClass, setBtnClass] = useState(\"wwt-btn wwt-btn-pink font-montserrat\");\n const [loading, setLoading] = useState(false);\n const [signUpEnabled, setSignUpEnabled] = useState(true);\n const { t } = useTranslation();\n const { setAuthTokens } = useAuth()\n let params = new URLSearchParams(window.location.search)\n let ref = params.get('ref')\n\n const profileContext = useContext(ProfileContext);\n\n useEffect(() => {\n if (profileContext.profile) {\n getIndividualResult();\n } else {\n if (props.showLoginDefault || (props.openDefault && params.get('questionnaire_id')) || (props.openDefault && params.get('mission'))\n || (props.openDefault && params.get('contact'))) {\n setModal(true);\n }\n }\n }, [profileContext])\n\n useEffect(() => {\n if ([true, false].includes(props.signUpEnabled)) {\n setSignUpEnabled(props.signUpEnabled);\n }\n }, [props.signUpEnabled])\n\n useEffect(() => {\n let params = new URLSearchParams(window.location.search);\n if (params.get(\"code\")) {\n setModal(true);\n }\n if (props.pageNum === 1) {\n setBtnClass(\"wwt-btn wwt-btn-pink font-montserrat\");\n }\n }, [props.pageNum]);\n\n const toggle = () => {\n setModal(!modal);\n };\n\n const toggleForgotPasswordModal = () => {\n setForgotPasswordModal(!forgotPasswordModal);\n };\n\n const toggleSignUpForm = () => {\n setSignUpForm(!signUpForm);\n }\n\n const signIn = (values) => {\n console.log('sign in user values', values);\n let data = {\n email: values.email,\n password: values.password,\n referral: ref,\n }\n const mission = new URLSearchParams(window.location.search).get('mission')\n if (mission) {\n data.mission = mission;\n }\n const contact = new URLSearchParams(window.location.search).get('contact')\n if (contact) {\n data.contact = contact;\n }\n const company = new URLSearchParams(window.location.search).get('company')\n if (company) {\n data.company = company;\n }\n if (props.location.pathname.includes('/pro')) {\n data.is_b2b = true;\n } else {\n data.is_b2b = false;\n }\n let config = {\n method: \"post\",\n url: server + '/auth/user/login',\n data: data\n }\n console.log(config)\n setLoading(true);\n axios(config)\n .then(res => {\n console.log('login response', res);\n setLoading(false);\n const data = res.data;\n if (data.status) {\n localStorage.setItem('email', data.email)\n localStorage.setItem('referral', data.referral)\n localStorage.setItem('token', data.token)\n setAuthTokens(data.token)\n toast.success(t(\"You logged in successfully\"));\n // gaEvent(\"CONNECTION\", \"CONNECTION_LINKEDIN\", \"Connected with LinkedIn\");\n getProfile().then((profile) => {\n profileContext.setProfile();\n if (profile) {\n profileContext.setProfile();\n getIndividualResult().then((res) => {\n if (res.data.w_1 !== -1) {\n props.setPassed(true)\n }\n props.setEmail(localStorage.getItem('email'))\n })\n }\n })\n } else {\n toast.error(data.message);\n }\n })\n .catch((err) => {\n console.log(err)\n setLoading(false);\n if (err && err.response && err.response.data.message) {\n toast.error(err.response.data.message);\n }\n })\n }\n\n\n const signUp = (values) => {\n console.log('sign up user values', values);\n let data = {\n first_name: values.firstName,\n last_name: values.lastName,\n email: values.email,\n password: values.password,\n referral: ref,\n }\n const mission = new URLSearchParams(window.location.search).get('mission')\n if (mission) {\n data.mission = mission;\n }\n const contact = new URLSearchParams(window.location.search).get('contact')\n if (contact) {\n data.contact = contact;\n }\n const company = new URLSearchParams(window.location.search).get('company')\n if (company) {\n data.company = company;\n }\n let config = {\n method: \"post\",\n url: server + '/auth/user/register',\n data: data\n }\n console.log(config)\n setLoading(true);\n axios(config)\n .then(res => {\n console.log('login response', res);\n const data = res.data;\n setLoading(false);\n if (data.status) {\n localStorage.setItem('email', data.email)\n localStorage.setItem('referral', data.referral)\n localStorage.setItem('token', data.token)\n setAuthTokens(data.token)\n // gaEvent(\"CONNECTION\", \"CONNECTION_LINKEDIN\", \"Connected with LinkedIn\");\n getProfile().then((profile) => {\n profileContext.setProfile();\n if (profile) {\n profileContext.setProfile();\n getIndividualResult().then((res) => {\n if (res.data.w_1 !== -1) {\n props.setPassed(true)\n }\n props.setEmail(localStorage.getItem('email'))\n })\n }\n })\n } else {\n toast.error(data.message);\n }\n })\n .catch(err => {\n console.log(err)\n setLoading(false);\n if (err && err.response && err.response.data.message) {\n toast.error(err.response.data.message);\n }\n })\n }\n\n const sendResetPasswordEmail = (values) => {\n console.log('send create password email', values);\n let data = {\n email: values.email\n }\n let config = {\n method: \"post\",\n url: server + '/password_reset/',\n data: data\n }\n console.log(config)\n setLoading(true);\n axios(config)\n .then(res => {\n console.log('login response', res);\n setLoading(false);\n setTimeout(() => {\n if (forgotPasswordModal) {\n toggleForgotPasswordModal();\n }\n }, 500);\n })\n .catch((err) => {\n console.log(err)\n setLoading(false);\n if (err && err.response && err.response.data.email && err.response.data.email.length) {\n toast.error(err.response.data.email[0]);\n }\n })\n }\n\n const getIndividualResult1 = (email) => {\n let data1 = { 'email': email }\n let config = {\n method: 'post',\n url: server + '/result/individual_result/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data1\n }\n setLoading(true);\n axios(config)\n .then(res => {\n setLoading(false);\n if (res.data.w_1 !== -1) {\n props.setPassed(true)\n }\n props.setEmail(email)\n })\n .catch((err) => {\n setLoading(false);\n })\n }\n\n return (\n \n {props.btnText && !props.showLoginDefault &&\n
\n {t(props.btnText)}\n
\n }\n \n \n \n \n \n \n
\n
\n {t(\"Log in/Sign up\")}\n
\n
\n {t(\"If you have received a link to complete the questionnaire, you must create an account so that your relationer, or your business contact, can access the results, and you can view a brief summary of them. \")}\n
\n
\n\n
\n {/**/}\n \n \n
\n
\n {t(\"or\")}\n
\n {signUpForm ?\n {\n setTimeout(() => {\n setSubmitting(false);\n signUp(values);\n }, 500);\n }}\n validationSchema={Yup.object().shape({\n firstName: Yup.string().trim().required(t('Required')),\n lastName: Yup.string().trim().required(t('Required')),\n email: Yup.string().email(t(\"Email must be a valid email\")).required(t(\"Required\")),\n password: Yup.string()\n .required(\"No password provided.\")\n .min(\n 8,\n t(\"Password is too short - should be 8 chars minimum\")\n )\n .matches(\n /(?=.*[0-9])/,\n \"Password must contain a number.\"\n ),\n })}\n\n >\n {(props) => {\n const {\n values,\n touched,\n errors,\n isSubmitting,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props;\n return (\n
\n \n {errors.firstName && touched.firstName && (\n
{errors.firstName}
\n )}\n \n {errors.lastName && touched.lastName && (\n
{errors.lastName}
\n )}\n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n \n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}\n
\n \n Sign Up\n \n
\n
\n
\n {t(\"Already have an account\")} {t(\"Sign in\")}\n
\n
\n \n );\n }}\n \n :\n {\n setTimeout(() => {\n setSubmitting(false);\n signIn(values);\n }, 500);\n }}\n validationSchema={Yup.object().shape({\n email: Yup.string().email(t(\"Email must be a valid email\")).required(t(\"Required\")),\n password: Yup.string()\n .required(\"No password provided.\")\n .min(\n 8,\n t(\"Password is too short - should be 8 chars minimum\")\n )\n .matches(\n /(?=.*[0-9])/,\n \"Password must contain a number.\"\n ),\n })}\n >\n {(props) => {\n const {\n values,\n touched,\n errors,\n isSubmitting,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props;\n return (\n
\n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n \n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}\n
\n {/* Forgot\n \n Password?\n */}\n {t(\"Forgot Password?\")}\n
\n
\n \n {t(\"Sign in\")}\n \n
\n {\n signUpEnabled &&\n
\n
\n {t(\"Don’t have an account? Sign up\")}\n
\n
\n }\n \n );\n }}\n \n }\n
\n
\n {t(\"By signing up, you accept our \")}\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n
\n
\n {t(\"Reset your password\")}\n
\n
\n {t(\"Please enter your email address. We will send you an email to reset your password.\")}\n
\n
\n {\n setTimeout(() => {\n setSubmitting(false);\n sendResetPasswordEmail(values);\n }, 500);\n }}\n validationSchema={Yup.object().shape({\n email: Yup.string().email().required(t(\"Required\"))\n })}\n >\n {(props) => {\n const { values, touched, errors, isSubmitting, handleChange, handleBlur, handleSubmit } = props;\n return (\n
\n \n {errors.email && touched.email && (\n
{errors.email}
\n )}\n
\n \n {t(\"Send email\")}\n \n
\n \n );\n }}\n \n\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default withRouter(LoginModal);\n","import LoginModal from 'components/Auth/LoginModal';\nimport ContactPage from 'components/Home/ContactPage';\nimport Loader from 'components/Loader/Loader';\nimport { ProfileContext } from 'context/profile';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, Redirect } from 'react-router-dom';\nimport { isUserLoggedIn } from 'utils/utils';\nimport centered_on_social from '../../assets/centered-on-social-interactions.svg';\nimport down_arrow from '../../assets/down-arrow.png';\nimport logo from '../../assets/header.svg';\nimport illustration from '../../assets/illustration.svg';\nimport match_with_friends from '../../assets/match-with-friends.svg';\nimport photo_1 from '../../assets/photo-1.png';\nimport photo_2 from '../../assets/photo-2.png';\nimport profile from '../../assets/profile.svg';\nimport take_test from '../../assets/take-the-test.svg';\nimport used_by_hr from '../../assets/used-by-hr.svg';\nimport recruiters from '../../assets/recruiters.svg';\nimport open_opportunities from '../../assets/open-opportunities.svg'\nimport MultiLang from '../MultiLang/MultiLang';\nimport './Pro.css';\n\nfunction Pro(props) {\n\n const { t } = useTranslation();\n\n const [email, setEmail] = useState()\n const [passed, setPassed] = useState(false)\n const [className_1, setClassName_1] = useState('paragraph-bigger-1')\n const [className_2, setClassName_2] = useState('paragraph-bigger-2')\n const [read_more_1, setReadMore_1] = useState('read-more-1')\n const [read_more_2, setReadMore_2] = useState('read-more-2')\n let params = new URLSearchParams(window.location.search)\n\n const moreClick_1 = (e) => {\n className_1 === 'paragraph-bigger-1' ? setClassName_1('paragraph-bigger-1-more') : setClassName_1('paragraph-bigger-1')\n setReadMore_1('read-more-hiden')\n }\n\n const profileContext = useContext(ProfileContext);\n\n const checkIsB2B = (profile) => {\n // const profile = getProfile();\n console.log('isB2B Called 123', profile)\n if (profile) {\n return !!(profile.companies && profile.companies.length);\n } else {\n return false;\n }\n }\n\n useEffect(() => {\n console.log('profile context in pro', profileContext.profile)\n }, [profileContext])\n\n if (email) {\n if (profileContext.profile) {\n if (checkIsB2B(profileContext.profile)) {\n return \n } else {\n return (\n \n )\n }\n } else {\n return (\n
\n \n
\n )\n }\n } else {\n return (\n
\n
\n
\n \"work\n
\n
\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n {/* */}\n \n
\n {t(\"Not a company?\")}\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n

Work Well Together

\n
\n
\n
\n lady svg\n
\n
\n
\n {t(\"We help people understand each other better. \")}\n
\n
\n {t(\"How can you save time by enhancing the performance of current and future employees, have more effective teams, and maintain a caring atmosphere? We have the solution. \")}\n
\n
\n
\n
\n
\n
{t(\"How we help you\")}
\n
\n
\n \"take\n
\n
{t(\"Prevent conflicts\")}
\n
\n {t(\"Anticipate high-risk relationships (dysfunctional, conflictive, toxic), reduce communication problems, and assist you in resolving conflicts\")}\n
\n
\n
\n
\n
\n \"learn\n
\n
{t(\"Retain talents\")}
\n
{/* discover-your-domina */}\n {t(\"Ensure harmonious working relationships to develop engagement\")}\n
\n
\n
\n
\n
\n \"match\n
\n
{t(\"Ensure a high level of performance\")}
\n
\n {t(\"Identify levers to improve cohesion, collective performance and well-being at work\")}\n
\n
\n
\n
\n
\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n
\n
\n
{t(\"Why Work Well Together is powerful\")}
\n
\n
\n \"take\n
\n
{t(\"Generates KPI based on 15 years of R&D\")}
\n
\n {t(\"Collective performance indicators, reports and operational action plans, analysis on interpersonal relationships, indicators about the compatibility of talents and candidates with the company’s values, an innovative and unique way to measure social climate\")}\n
\n
\n
\n
\n
\n \"learn\n
\n
{t(\"Tested and approved\")}
\n
{/* discover-your-domina */}\n {t(\"On thousands of persons, more than 20 nationalities, from student to senior, from any background and socio-professional status\")}\n
\n
\n
\n
\n
\n \"match\n
\n
{t(\"They trust us\")}
\n
\n {/* {t(\"Work Well Together allows us to ensure optimal relationships inside our teams. For us, it is a key tool, that we rely on within our quality of worklife actions” said Marina Brugier, HR development Manager from Innothera\")} */}\n \"{t(\"Work Well Together allows us to ensure optimal relationships inside our teams. For us, it is a key tool, that we rely on within our quality of worklife actions\")}\"
\n {t(\"Marina Brugier, HR development Manager from Innothera\")}\n
\n
\n
\n
\n
\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n
\n
\n
\n
\n
\n {t(\"Work Well Together (WWT) is a revolutionary initiative dedicated to improving emotional relationships in the workplace. Developed by an expert clinical psychologist in emotions, WWT uses advanced data analysis to explore and understand the unique relational dynamics within professional environments. \")}\n {t(\"Our mission is to create strong and fulfilling connections in the workplace, improve employees’ emotional and mental well-being, and facilitate meaningful interactions. Guided by the belief that ‘Everything depends on the relationship’, WWT emphasizes the essence of human interactions in professional environments. Whether it’s strengthening a team, enhancing cohesion within a company, or optimizing relationships among colleagues, WWT is the key to more cohesive and productive work environments, where everyone finds their place and feels understood and appreciated. \")}\n {t(\"Thanks to our full-service solution, WWT Relational Solutions, we offer comprehensive support, from the initial questionnaire to personalized coaching. \")}\n {t(\"Derived from over 15 years of research and experimentation, WWT aims to radically transform workplace well-being. As the driving force behind the Be Well Together (BWT) initiative, WWT revolutionizes how we approach professional relationships. \")}\n {t(\"Join us to discover how WWT can transform your professional relationships and guide you toward a future where well-being aligns with performance. \")}\n
\n
\n
\n \"down-arrow\"\n   {t(\"More\")}  \n \"down-arrow\"\n
\n
\n
\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n \n {\n params.has('login') &&\n \n }\n
\n )\n }\n}\n\nexport default Pro;","import React, { useState, useEffect } from 'react';\nimport { Formik } from \"formik\";\nimport * as Yup from 'yup';\nimport './ResetPassword.css';\nimport { MDBBtn, MDBInput } from 'mdbreact';\nimport server from '@config'\nimport axios from 'axios'\nimport Loader from 'components/Loader/Loader';\nimport toast from 'react-hot-toast';\n\nfunction ResetPassword(props) {\n\n const [loading, setLoading] = useState(false);\n const [token, setToken] = useState();\n\n // let token = '';\n\n useEffect(() => {\n // token = new URLSearchParams(window.location.search).get(\"token\");\n setToken(new URLSearchParams(window.location.search).get(\"token\"));\n }, []);\n\n const validateToken = () => {\n let data = {\n token: token\n }\n let config = {\n method: \"post\",\n url: server + '/password_reset/validate_token/',\n data: data\n }\n console.log(config)\n setLoading(true);\n axios(config)\n .then(res => {\n console.log('login response', res);\n setLoading(false);\n const data = res.data;\n if (data.status) {\n } else {\n toast.error('Invalid token');\n }\n })\n .catch((err) => {\n console.log(err)\n setLoading(false);\n toast.error('Invalid token');\n })\n }\n\n useEffect(() => {\n if (token) {\n validateToken();\n }\n }, [token]);\n\n\n const onSubmit = (values) => {\n console.log('on submit', values);\n let data = {\n token: token,\n password: values.password\n }\n let config = {\n method: \"post\",\n url: server + '/password_reset/confirm/',\n data: data\n }\n console.log(config)\n setLoading(true);\n axios(config)\n .then(res => {\n console.log('login response', res);\n setLoading(false);\n const data = res.data;\n toast.success('Your password reset successfully.');\n window.location.replace('/');\n if (data.status) {\n } else {\n toast.error('Failed to reset your password');\n }\n })\n .catch((err) => {\n console.log(err)\n setLoading(false);\n if (err && err.data && err.data.password && err.data.password.length) {\n toast.error(err.data.password[0]);\n } else {\n toast.error('Failed to reset your password');\n }\n })\n }\n\n return (\n
\n
\n \n

Reset Password

\n
\n {\n setTimeout(() => {\n setSubmitting(false);\n onSubmit(values);\n }, 500);\n }}\n validationSchema={Yup.object().shape({\n password: Yup.string()\n .required(\"No password provided.\")\n .min(\n 8,\n \"Password is too short - should be 8 chars minimum.\"\n )\n .matches(\n /(?=.*[0-9])/,\n \"Password must contain a number.\"\n ),\n confirmPassword: Yup.string()\n .required(\"No password provided.\")\n .min(\n 8,\n \"Password is too short - should be 8 chars minimum.\"\n )\n .matches(\n /(?=.*[0-9])/,\n \"Password must contain a number.\"\n ).when(\"password\", {\n is: val => (val && val.length > 0 ? true : false),\n then: Yup.string().oneOf(\n [Yup.ref(\"password\")],\n \"Both password need to be the same\"\n )\n }),\n })}\n >\n {(props) => {\n const {\n values,\n touched,\n errors,\n isSubmitting,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props;\n return (\n
\n \n {errors.password && touched.password && (\n
\n {errors.password}\n
\n )}\n \n {errors.confirmPassword && touched.confirmPassword && (\n
\n {errors.confirmPassword}\n
\n )}\n
\n \n Change Password\n \n
\n \n );\n }}\n \n
\n
\n
\n
\n );\n}\n\nexport default ResetPassword;","import React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\nimport { useAuth } from './context/auth';\nimport { isB2B } from './utils/utils';\n\nfunction PrivateRoute({ component: Component, b2bRoute, ...rest }) {\n\n const { authTokens } = useAuth();\n\n const checkForB2B = () => {\n if (b2bRoute) {\n return isB2B();\n } else {\n return true;\n }\n }\n\n return (\n \n authTokens ? (\n checkForB2B() ?\n \n : \n ) : (\n \n )\n }\n />\n )\n}\n\nexport default PrivateRoute","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m15 18.5452061c2.9119783 0 5.2726031-2.3606248 5.2726031-5.272603 0-2.9119783-2.3606248-5.2726031-5.2726031-5.2726031s-5.27260306 2.3606248-5.27260306 5.2726031c0 2.9119782 2.36062476 5.272603 5.27260306 5.272603zm0 2c-4.0165478 0-7.27260306-3.2560553-7.27260306-7.272603 0-4.0165478 3.25605526-7.2726031 7.27260306-7.2726031s7.2726031 3.2560553 7.2726031 7.2726031c0 4.0165477-3.2560553 7.272603-7.2726031 7.272603zm5.4740598.6600003.8734961.5375361c.7960808.4898958 1.4769039 1.1259867 2.0136706 1.864366-.4797462.4664949-.9977037.8923544-1.549105 1.2732468-.3947437-.571149-.9072672-1.061685-1.5127604-1.4342962l-.8734962-.5375361c-.6878693-.4233042-1.5402128-.4802531-2.2782821-.1522222-1.3672443.6076641-2.9279213.6076641-4.2951656 0-.7380693-.3280309-1.5904128-.271082-2.2782821.1522222l-.87349616.5375361c-.60549328.3726112-1.11801673.8631472-1.51293455 1.4340482-.55122715-.3806444-1.06918466-.8065039-1.54839925-1.2720313.53623503-.7393468 1.21705816-1.3754377 2.01313895-1.8653335l.87349613-.5375361c1.24959138-.7689793 2.79796848-.8724334 4.13875388-.2765287.8501136.3778282 1.8204982.3778282 2.6706118 0 1.3407854-.5959047 2.8891625-.4924506 4.1387539.2765287zm-5.4740598 6.7947936c7.1797017 0 13-5.8202983 13-13 0-7.17970175-5.8202983-13-13-13-7.17970175 0-13 5.82029825-13 13 0 7.1797017 5.82029825 13 13 13zm0 2c-8.28427125 0-15-6.7157288-15-15 0-8.28427125 6.71572875-15 15-15 8.2842712 0 15 6.71572875 15 15 0 8.2842712-6.7157288 15-15 15z\",\n fill: \"#908d95\"\n});\n\nvar SvgProfileIcon = function SvgProfileIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 30,\n viewBox: \"0 0 30 30\",\n width: 30,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgProfileIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/profile-icon.f10b5514.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m9.99981212 15.5452061c2.91197828 0 5.27260308-2.3606248 5.27260308-5.272603 0-2.9119783-2.3606248-5.2726031-5.27260308-5.2726031-2.91197826 0-5.27260306 2.3606248-5.27260306 5.2726031 0 2.9119782 2.3606248 5.272603 5.27260306 5.272603zm0 2c-4.01654776 0-7.27260306-3.2560553-7.27260306-7.272603 0-4.0165478 3.2560553-7.2726031 7.27260306-7.2726031 4.01654778 0 7.27260308 3.2560553 7.27260308 7.2726031 0 4.0165477-3.2560553 7.272603-7.27260308 7.272603zm-7.83290717 7.6988987h15.66581435l-.1708381-1.1958667c-.2131662-1.4921633-1.0789927-2.8122003-2.362708-3.602179l-.8734962-.5375361c-.6878692-.4233042-1.5402127-.4802531-2.2782821-.1522222-1.3672443.6076641-2.92792127.6076641-4.29516557 0-.73806936-.3280309-1.59041284-.271082-2.27828214.1522222l-.87349613.5375361c-1.28371534.7899787-2.14954181 2.1100157-2.36270801 3.602179zm2.35884739-7.0388984c1.24959139-.7689793 2.79796851-.8724334 4.13875392-.2765287.8501136.3778282 1.82049814.3778282 2.67061174 0 1.3407854-.5959047 2.8891625-.4924506 4.1387539.2765287l.8734961.5375361c1.7899323 1.1014968 2.9971866 2.9420737 3.2944122 5.0226529l.3487245 2.4410714c.0782367.5476571-.3467215 1.037638-.8999388 1.037638h-18.1815076c-.55321723 0-.97817545-.4899809-.89993871-1.037638l.34872447-2.4410714c.2972256-2.0805792 1.50447984-3.9211561 3.29441215-5.0226529zm18.47405976-.0235621c-2.8115834 0-5.0908221-2.2792387-5.0908221-5.0908222 0-2.8115834 2.2792387-5.0908221 5.0908221-5.0908221 2.8115835 0 5.0908222 2.2792387 5.0908222 5.0908221 0 2.8115835-2.2792387 5.0908222-5.0908222 5.0908222zm0-2c1.707014 0 3.0908222-1.3838082 3.0908222-3.0908222 0-1.7070139-1.3838082-3.0908221-3.0908222-3.0908221-1.7070139 0-3.0908221 1.3838082-3.0908221 3.0908221 0 1.707014 1.3838082 3.0908222 3.0908221 3.0908222zm-2.1676267 8.7892291-.2262084-1.5834589c-.0199822-.1398749-.0437034-.2787638-.0710817-.4165411h7.256146l-.0217505-.1522539c-.1239985-.8679896-.6276487-1.6358535-1.3743844-2.0953831l-.6114473-.3762753c-.3129919-.1926104-.7008222-.2185231-1.0366559-.0692636-1.1122103.4943156-2.3817719.4943156-3.4939821 0-.3358337-.1492595-.7236641-.1233468-1.036656.0692636l-.5310314.3267886c-.3288094-.5844922-.7324991-1.1252871-1.2016401-1.6080091.024186-.0154697.0485297-.0307442.0730294-.0458209l.6114473-.3762752c.8747139-.5382856 1.9585779-.6107034 2.8971277-.1935701.5950795.2644798 1.2743487.2644798 1.8694282 0 .9385498-.4171333 2.0224138-.3447155 2.8971278.1935701l.6114473.3762752c1.2529526.7710478 2.0980305 2.0594517 2.3060885 3.5158571l.2441071 1.7087499c.0547657.38336-.242705.7263467-.6299571.7263467z\",\n fill: \"#908d95\",\n transform: \"translate(0 -3)\"\n});\n\nvar SvgContactsIcons = function SvgContactsIcons(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 25,\n viewBox: \"0 0 30 25\",\n width: 30,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgContactsIcons, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/contacts-icons.b07446fa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"title\", null, \"landing page, home, house, building, web\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.8,6.78,13.68,1.49a3.1,3.1,0,0,0-3.36,0L2.2,6.78A2.46,2.46,0,0,0,1,8.84V23h9V17.43h4V23h9V8.84A2.46,2.46,0,0,0,21.8,6.78ZM21,21H16V15.43H8V21H3V8.84a.49.49,0,0,1,.26-.39l8.12-5.29a1.14,1.14,0,0,1,1.18,0l8.12,5.29a.49.49,0,0,1,.26.39Z\"\n});\n\nvar SvgHome = function SvgHome(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title === undefined ? _ref2 : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHome, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/home.b7d35b6e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m14.9537545 3c4.6391919 0 8.4 3.7608081 8.4 8.4v1.2775006c0 2.8618103.9739789 5.6384109 2.7617376 7.8731093 1.0476214 1.3095267.1152748 3.2493901-1.5617376 3.2493901l-5.4761959-.0005939c-.3759672 2.0483884-2.1704944 3.600594-4.3275586 3.600594s-3.9515914-1.5522056-4.3275586-3.600594l-5.06868689.0005939c-1.67701242 0-2.60935897-1.9398634-1.56173762-3.2493901 1.7877587-2.2346984 2.76173762-5.011299 2.76173762-7.8731093v-1.2775006c0-4.6391919 3.76080809-8.4 8.39999999-8.4zm2.1962454 20h-4.8c0 1.3254834 1.0745166 2.4 2.4 2.4s2.4-1.0745166 2.4-2.4zm-2.2-18c-3.5346224 0-6.4 2.8653776-6.4 6.4v1.2775006c0 3.3159533-1.12854042 6.5331749-3.2 9.1224994h19.2c-2.0714596-2.5893245-3.2-5.8065461-3.2-9.1224994v-1.2775006c0-3.5346224-2.8653776-6.4-6.4-6.4z\",\n fill: \"#908d95\",\n transform: \"translate(-3 -3)\"\n});\n\nvar SvgNotifIcon = function SvgNotifIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 25,\n viewBox: \"0 0 24 25\",\n width: 24,\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNotifIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/notif-icon.a1f8e232.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react'\nimport { Link } from 'react-router-dom'\nimport './BottomMenu.css'\n\nimport alert from '../../assets/alert.png'\nimport search from '../../assets/search.png'\nimport contacts from '../../assets/contacts.png'\nimport profile from '../../assets/profile_1.png'\nimport { ReactComponent as ProfileIcon } from '../../assets/profile-icon.svg'\nimport { ReactComponent as ContactsIcon } from '../../assets/contacts-icons.svg'\nimport { ReactComponent as HomeIcon } from '../../assets/home.svg'\nimport pink_contacts from '../../assets/pink-contacts.png'\nimport pink_profile from '../../assets/pink-profile.png'\nimport { ReactComponent as NotifIcon } from '../../assets/notif-icon.svg'\n\n\nfunction BottomMenu(props) {\n\n let item1, item2\n if (props.id === 'results') {\n item1 = pink_profile\n item2 = contacts\n } else {\n item1 = profile\n item2 = pink_contacts\n }\n\n const [contactIcon, setContactIcon] = useState(item2)\n const [profileIcon, setProfileIcon] = useState(item1)\n\n const toContacts = () => {\n if (contactIcon === contacts) {\n setContactIcon(pink_contacts)\n } else {\n if (props.id === 'results') {\n setContactIcon(contacts)\n }\n }\n }\n\n const toResults = () => {\n if (profileIcon === profile) {\n setProfileIcon(pink_profile)\n } else {\n if (props.id !== 'results') {\n setProfileIcon(profile)\n }\n }\n }\n\n return (\n
\n
\n
\n \n {/* \"results\" */}\n \n \n \n {/* \"contacts\" */}\n \n \n \n \n \n {/* \"search */}\n \n {/* \"alert */}\n
\n
\n )\n}\nexport default BottomMenu","import React, { useEffect, useState } from 'react'\r\nimport up_icon from '../../../assets/up.png'\r\nimport down_icon from '../../../assets/down.png'\r\nimport './Accordion.css'\r\nimport { getLanguage } from 'utils/utils'\r\n\r\nfunction Accordion(props) {\r\n\r\n const [expand, setExpand] = useState(false)\r\n const [code, setCode] = useState()\r\n const [description, setDescription] = useState()\r\n const handleExpand = () => {\r\n setExpand(!expand)\r\n }\r\n\r\n const lang = getLanguage();\r\n\r\n useEffect(() => {\r\n switch(lang) {\r\n case 'en':\r\n setCode(props.code[0])\r\n setDescription(props.softSkill[0])\r\n break\r\n case 'fr':\r\n setCode(props.code[1])\r\n setDescription(props.softSkill[1])\r\n break\r\n case 'ru':\r\n setCode(props.code[2])\r\n setDescription(props.softSkill[2])\r\n break\r\n default:\r\n break\r\n }\r\n }, [props, lang])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
{code}
\r\n
\r\n
\r\n
\r\n \"accordion-icon\"\r\n
\r\n
\r\n {\r\n expand && \r\n
\r\n {description}\r\n
\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default Accordion","import React, { useEffect, useState } from 'react'\nimport axios from 'axios'\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\nimport BottomMenu from '../BottomMenu/BottomMenu'\nimport ProgressAccordion from './PrgressAccordion/ProgressAccordion'\nimport Accordion from './Accordion/Accordion'\nimport 'react-circular-progressbar/dist/styles.css'\nimport './ComparePage.css'\nimport back_icon from '../../assets/back.png'\nimport compatibility_icon from '../../assets/pink-compatibility.png'\nimport contacts_icon from '../../assets/grey-contacts.png'\n// import down_icon from '../../assets/down.png'\nimport more_icon from '../../assets/more.png'\nimport profile_icon from '../../assets/profile_1.png'\nimport server from '@config'\nimport { Link } from 'react-router-dom'\nimport { getLanguage } from 'utils/utils'\nimport { useTranslation } from 'react-i18next'\nimport UserAvatar from 'react-user-avatar'\nimport toast from 'react-hot-toast';\n\nfunction ComparePage() {\n\n const [name, setName] = useState('')\n const [rate_1, setRate_1] = useState()\n const [rate_2, setRate_2] = useState()\n const [photo_1, setPhoto_1] = useState()\n const [photo_2, setPhoto_2] = useState()\n const [top, setTop] = useState(['', '', ''])\n const [top_fiber, setTopFiber] = useState(['', '', ''])\n const [bottom, setBottom] = useState(['', '', ''])\n const [bottom_fiber, setBottomFiber] = useState(['', '', ''])\n const [softSkills, setSoftSkills] = useState([])\n const [profile, setProfile] = useState({});\n var lang = getLanguage();\n const { t } = useTranslation();\n\n\n useEffect(() => {\n let data = { 'email': localStorage.getItem('email'), 'partner': localStorage.getItem('partner') }\n\n let config = {\n method: 'post',\n url: server + '/result/matching/detail/',\n data: data\n }\n\n if (localStorage.getItem('partner')) {\n axios(config)\n .then(res => {\n // console.log(Math.ceil(res.data.result[\"top_fiber_smooth\"] * 100), \"================\")\n let result = res.data.result\n setName(result['first_name'] + ' ' + result['last_name'])\n setRate_1(result['rui_smooth'])\n setRate_2(result['bottom_fiber_smooth'])\n setPhoto_1(result['picture_url_1'])\n setPhoto_2(result['picture_url_2'])\n setTop([result['top_fiber_en'], result['top_fiber_fr'], result['top_fiber_ru']])\n setTopFiber([result['top_fiber_description_en'], result['top_fiber_description_fr'], result['top_fiber_description_ru']])\n setBottom([result['bottom_fiber_en'], result['bottom_fiber_fr'], result['bottom_fiber_ru']])\n setBottomFiber([result['bottom_fiber_description_en'], result['bottom_fiber_description_fr'], result['bottom_fiber_description_ru']])\n setSoftSkills(result.soft_skills)\n })\n .catch(err => {\n console.log(err)\n toast.error(\"There is an error to get the matching result from the server!!!\")\n })\n } else {\n toast.error('No person is selected to match.');\n window.location.replace('/contacts');\n }\n }, [])\n\n useEffect(() => {\n if (localStorage.getItem('profile')) {\n setProfile(JSON.parse(localStorage.getItem('profile')));\n }\n }, []);\n\n return (\n
\n
\n
\n \n \n \n
{name}
\n \n
\n
\n
\n\n
\n
\n \n
\n \"profile-icon\"\n
{t(\"Profile\")}
\n
\n \n
\n \"compatibility-icon\"\n
{t(\"Matching\")}
\n
\n \n
\n \"contacts-icon\"\n
{t(\"Contacts\")}
\n
\n \n
\n
\n\n
\n

{t(\"Your relational index\")}

\n
\n {/* */}\n {/*
{{\n 'en': top[0],\n 'fr': top[1],\n 'ru': top[2]\n }[lang]\n }
*/}\n
\n {/*
{t(\"Your compatibility\")}:
*/}\n
\n {/* \"inviter\" */}\n \n
\n
\n \n
\n
\n {/* \"receipter\" */}\n \n
\n
\n
{t(\"The strength\")}
\n
{t(\"of your relationship\")}:
\n
{{\n 'en': top[0],\n 'fr': top[1],\n 'ru': top[2]\n }[lang]\n }
\n
\n {\n {\n 'en': top_fiber[0],\n 'fr': top_fiber[1],\n 'ru': top_fiber[2]\n }[lang]\n }\n
\n
\n\n\n\n
\n
{t(\"The point of attention\")}
\n
{t(\"of your relationship\")}:
\n {/* */}\n
{{\n 'en': bottom[0],\n 'fr': bottom[1],\n 'ru': bottom[2]\n }[lang]\n }
\n
\n {\n {\n 'en': bottom_fiber[0],\n 'fr': bottom_fiber[1],\n 'ru': bottom_fiber[2]\n }[lang]\n }\n
\n
\n\n
\n
{t(\"Your common soft skills\")}:
\n
\n {\n softSkills.map((skill, index) => {\n return (\n
\n {{\n 'en': skill.en,\n 'fr': skill.fr,\n 'ru': skill.ru\n }[lang]\n }\n
\n )\n })\n }\n
\n
\n
\n \n
\n )\n}\n\nexport default ComparePage","import { MDBBtn, MDBCol, MDBIcon, MDBInput, MDBModal, MDBModalBody, MDBModalHeader, MDBRow } from 'mdbreact';\nimport React, { useState } from 'react'\nimport { useTranslation } from 'react-i18next';\nimport { EmailIcon, EmailShareButton } from 'react-share';\nimport server from '../../../config';\nimport axios from 'axios';\nimport { gaEvent } from 'utils/utils'\nimport toast from 'react-hot-toast';\n\nfunction InviteEmailModal(props) {\n const [modalState, setModalState] = useState(false)\n const [nameState, setNameState] = useState();\n const [emailState, setEmailState] = useState();\n\n const { t } = useTranslation();\n\n const shareUrl = props.shareUrl;\n\n const toggle = () => {\n setModalState(!modalState)\n }\n\n const onNameChange = (e) => {\n setNameState(e.target.value);\n }\n\n const onEmailChange = (e) => {\n setEmailState(e.target.value);\n }\n\n const onSubmit = () => {\n gaEvent(\"MATCHING\", \"MATCHING_REQUEST_EMAIL\", \"Matching Request with Email\");\n\n console.log('send email clicked');\n let data = {\n recepter: emailState,\n name: nameState,\n referral_link: shareUrl\n }\n let config = {\n method: \"post\",\n url: server + '/send/invite',\n data: data\n }\n console.log(config)\n axios(config)\n .then(res => {\n console.log(res.data['message'])\n toast.success(t('Email sent successfully'));\n setModalState(false);\n })\n .catch(err => {\n console.log(err)\n })\n\n }\n\n return (\n \n toggle()}>\n \n Mail\n \n \n \n
{t(\"Invite someone\")}
\n
\n \n \n \n
\n
\n \n \n
\n {/* Invalid email address */}\n
\n \n {t(\"Send invite\")}\n \n \n
\n \n
\n
\n
\n
\n
\n )\n}\n\nexport default InviteEmailModal;","import React, { useState } from 'react'\n// import axios from 'axios'\nimport { MDBContainer, MDBModal, MDBModalBody, MDBModalHeader, MDBTooltip } from 'mdbreact'\nimport {\n LinkedinShareButton, FacebookShareButton, WhatsappShareButton,\n FacebookIcon, WhatsappIcon, LinkedinIcon\n} from 'react-share'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\nimport { useTranslation } from 'react-i18next'\nimport illustration from '../../../assets/invite-lady.svg'\nimport invite_icon from '../../../assets/red-mail.png'\n// import server from '@config'\nimport '../Results.css'\nimport InviteEmailModal from './InviteEmailModal'\nimport { getLanguage, gaEvent } from 'utils/utils'\n\nfunction InviteModal(props) {\n\n const [modalState, setModalState] = useState(false)\n const [isChecked, setIsChecked] = useState(true)\n\n var lang = getLanguage();\n const { t } = useTranslation();\n // const [copied, setCopied] = useState('no-copied')\n const shareUrl = window.location.origin + '/?ref=' + localStorage.getItem('referral')\n const size = 50\n\n // useEffect (() => {\n // setCopied('no-copied')\n // }, [modalState])\n\n const toggle = () => {\n setModalState(!modalState)\n }\n\n const handleCheck = (e) => {\n setIsChecked(e.target.checked)\n }\n\n return (\n
\n\n
\n \"invite-icon\"\n
{props.title}
\n
\n \n \n \n
{props.title}
\n
\n \n
\n
\n {t(\"Invite your colleagues to take the test to know how you match professionally\")}\n
\n \"illustration\"\n
\n
\n \n \n
\n
{t(\"Invite with\")}:
\n
\n {\n gaEvent(\"MATCHING\", \"MATCHING_REQUEST_LINKEDIN\", \"Matching Request with LinkedIn\");\n }} className=\"social-share-button\">\n \n Linkedin\n \n {\n gaEvent(\"MATCHING\", \"MATCHING_REQUEST_FACEBOOK\", \"Matching Request with Facebook\");\n }} className=\"social-share-button\">\n \n Facebook\n \n {\n gaEvent(\"MATCHING\", \"MATCHING_REQUEST_WHATSAPP\", \"Matching Request with Whatsapp\");\n }} className=\"social-share-button\">\n \n Whatsapp\n \n \n
\n
\n
\n \n
\n gaEvent(\"MATCHING\", \"MATCHING_REQUEST_COPYLINK\", \"Matching Request with Copy Link\")}\n >\n
\n \n
{t(\"Copy the link\")}
\n
\n \n
\n
{\n {\n 'en': 'link copied',\n 'fr': 'lien copié',\n 'ru': ''\n }[lang]\n }
\n \n
\n {/* */}\n
\n
\n\n
\n
\n
\n )\n}\n\nexport default InviteModal;","import React from 'react'\nimport { buildStyles, CircularProgressbar } from 'react-circular-progressbar'\nimport UserAvatar from 'react-user-avatar'\n// import { Link } from 'react-router-dom'\n\nimport './ContactPage.css'\n\nfunction ContactPerson(props) {\n return (\n
\n {/* \"contact-person-img\" */}\n \n
\n
{props.name}
\n
{props.state}
\n {/*
\n
Match
\n
Refuse
\n
*/}\n
\n {props.strength ?\n
\n
\n \n
\n {/*
{props.strength.strength}
*/}\n
\n :\n
\n
\n \n
\n
}\n\n
\n )\n}\n\nexport default ContactPerson","import server from '@config'\nimport axios from 'axios'\nimport { MDBModal, MDBModalBody } from 'mdbreact'\nimport React, { useEffect, useState } from 'react'\nimport toast from 'react-hot-toast'\nimport { useTranslation } from 'react-i18next'\nimport { Link } from 'react-router-dom'\nimport { getLanguage } from 'utils/utils'\nimport BottomMenu from '../BottomMenu/BottomMenu'\nimport InviteModal from '../Results/SubPages/InviteModal'\nimport './ContactPage.css'\nimport ContactPerson from './ContactPerson'\n\nfunction ContactPage() {\n\n const [items, setItems] = useState()\n const [renderItems, setRenderItems] = useState()\n const [fakeUserImage, setFakeUserImage] = useState()\n const [showFakeUserImageModal, setShowFakeUserImageModal] = useState();\n // const history = useHistory()\n const { t } = useTranslation();\n\n useEffect(() => {\n if (items) {\n getFakeUserImage();\n }\n }, [items])\n\n useEffect(() => {\n if (fakeUserImage) {\n setShowFakeUserImageModal(true);\n }\n }, [fakeUserImage])\n\n useEffect(() => {\n let data = { \"email\": localStorage.getItem('email') }\n let config = {\n method: 'post',\n url: server + '/result/matching/',\n data: data\n }\n axios(config)\n .then(res => {\n // Sort b2c and fake matchings by rui_smooth in descending\n if (res.data.result) {\n if (res.data.result.b2c_matching) {\n res.data.result.b2c_matching = res.data.result.b2c_matching.sort((a, b) => b.rui_smooth - a.rui_smooth);\n }\n if (res.data.result.fake_matching) {\n res.data.result.fake_matching = res.data.result.fake_matching.sort((a, b) => b.rui_smooth - a.rui_smooth);\n }\n }\n setItems(res.data.result)\n setRenderItems(res.data.result)\n })\n .catch(err => {\n console.log(err)\n toast.error('there is an error to get the matching result from the server')\n })\n }, [])\n\n const toMatching = (item) => {\n localStorage.setItem('partner', item.email)\n }\n\n const getStrength = (item) => {\n if (item) {\n const strength = {};\n strength.value = item.rui_smooth;\n switch (getLanguage()) {\n case 'en':\n strength.strength = item.top_fiber_en;\n break\n case 'fr':\n strength.strength = item.top_fiber_fr;\n break\n case 'ru':\n strength.strength = item.top_fiber_ru;\n break\n default:\n break\n }\n return strength;\n } else {\n return null;\n }\n }\n\n const filterContacts = (element) => {\n console.log('element', element.target.value);\n const filterInput = element.target.value;\n if (filterInput) {\n const data = { ...items };\n if (data.b2c_matching) {\n data.b2c_matching = data.b2c_matching.filter((item) => {\n const fullName = item.first_name + ' ' + item.last_name;\n return fullName.toLowerCase().includes(filterInput.toLowerCase());\n });\n }\n if (data.fake_matching) {\n data.fake_matching = data.fake_matching.filter((item) => {\n const fullName = item.first_name + ' ' + item.last_name;\n return fullName.toLowerCase().includes(filterInput.toLowerCase());\n });\n }\n setRenderItems(data);\n } else {\n setRenderItems(items);\n }\n }\n\n const getFakeUserImage = () => {\n if (items && items.fake_matching && items.fake_matching?.length >= 2) {\n const user1Id = items.fake_matching[0].fake_user_uuid;\n const user2Id = items.fake_matching[1].fake_user_uuid;\n let config = {\n method: 'get',\n url: `${server}/auth/get_fake_user_image/?user_1=${user1Id}&user_2=${user2Id}`\n }\n axios(config)\n .then(res => {\n if (res && res.data) {\n setFakeUserImage(res.data);\n }\n }).catch((err) => {\n console.warn('err', err);\n })\n\n }\n }\n\n return (\n
\n
\n
\n {/*
{t(\"Invite\")}
*/}\n \n
\n
\n
\n
\n
\n {/*
{t(\"Push notifications disabled\")}
*/}\n {/* */}\n
\n \n filterContacts(element)} />\n
\n
\n
\n \n
\n {\n renderItems ?\n <>\n {\n renderItems?.fake_matching && renderItems?.fake_matching.map && (typeof renderItems?.fake_matching?.map === 'function') && renderItems?.fake_matching?.map((item, index) => {\n return (\n item.is_finished ?\n toMatching(item)}\n >\n \n :\n \n )\n })\n }\n {\n renderItems?.b2c_matching && renderItems?.b2c_matching.map && (typeof renderItems?.b2c_matching?.map === 'function') && renderItems?.b2c_matching?.map((item, index) => {\n return (\n item.is_finished ?\n toMatching(item)}\n >\n \n :\n \n )\n })\n }\n
\n \n :\n null\n }\n
\n setShowFakeUserImageModal(!showFakeUserImageModal)}>\n \n
\n
{t(\"Trop difficile de choisir entre 2 candidats ? On a la solution* !\")}
\n Person img\n
{t(\"*Ce morphing est la synthèse de vos 2 meilleurs matchings\")}
\n
\n setShowFakeUserImageModal(!showFakeUserImageModal)}>\n
\n
\n
\n )\n}\n\nexport default ContactPage","import React from 'react'\nimport { useTranslation } from 'react-i18next';\nimport '../Home/HomePage.css'\nimport logo from '../../assets/header.svg'\nimport profile from '../../assets/profile.svg'\nimport MultiLang from '../MultiLang/MultiLang';\nimport { isUserLoggedIn } from '../../utils/utils';\nimport { Link } from 'react-router-dom';\n\nfunction Header() {\n\n const { t } = useTranslation();\n\n return (\n
\n
\n \"work\n
\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n \n :\n
\n {/* */}\n \n
\n {t(\"Pro Access\")}\n
\n \n
\n }\n\n \n
\n
\n
\n )\n}\n\nexport default Header","import React from 'react'\nimport { useTranslation } from 'react-i18next';\nimport './Slide.css'\nimport slide2Img from '../../../assets/illustration.svg';\nimport slide1Img from '../../../assets/Femme cercle rose.svg';\nimport slide3Img from '../../../assets/Homme cercle vert.svg';\nimport LoginModal from '../../Auth/LoginModal';\nimport { getLanguage, isUserLoggedIn } from '../../../utils/utils';\nimport { Link } from 'react-router-dom';\nimport profile from '../../../assets/profile.svg';\nimport Slider from \"react-slick\";\n\nconst Slide = (props) => {\n\n const { t } = useTranslation();\n var lang = getLanguage();\n\n var settings = {\n arrows: false,\n autoplay: true,\n autoplaySpeed: 5000,\n dots: true,\n infinite: true,\n speed: 800,\n slidesToShow: 1,\n slidesToScroll: 1\n };\n\n return (\n
\n {/* {lang !== 'fr' ? */}\n <>\n
\n \n
\n
\n
\n
\n
{t(\"Discover your relational interactions at work\")}
\n
\n
{t(\"By understanding each other better, we can save time and enhance our teamwork. \")}
\n
\n
\n lady svg\n lady svg\n
\n
\n
\n
\n
\n
\n
\n
{t(\"We reveal the unique emotional signature\")}
\n
{t(\"of each individual or team through science\")}
\n
\n
\n
\n lady svg\n lady svg\n
\n
\n
\n
\n
\n
\n {t(\"Are you interested in the Work Well Together experience? Contact us to receive a link to complete our multiple-choice questionnaire (18 questions) and discover a brief summary of your relational profile.\")}\n
\n \n {/* :\n
\n
\n \n
\n
\n } */}\n {/* {isUserLoggedIn()} */}\n
\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n {isUserLoggedIn() ?\n null :\n
\n {/* */}\n \n
\n {t(\"Pro Access\")}\n
\n \n
\n }\n \n
\n {t(\"How it works\")}\n
\n
\n
\n
\n )\n};\n\nexport default Slide","import React from \"react\";\nimport Slide from \"./Slides/Slide\";\nimport LoginModal from \"../Auth/LoginModal\";\nimport \"./HomePage.css\";\nimport \"swiper/swiper-bundle.css\";\n\nfunction MainPage(props) {\n\n return (\n
\n
\n \n
\n
\n );\n}\n\nexport default MainPage;\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport LoginModal from '../Auth/LoginModal'\nimport take_test from '../../assets/take-the-test.svg'\nimport learn_about from '../../assets/learn-about.svg'\nimport match_with_friends from '../../assets/match-with-friends.svg'\nimport open_opportunities from '../../assets/open-opportunities.svg'\nimport './HomePage.css'\nimport { isUserLoggedIn } from '../../utils/utils'\nimport { Link } from 'react-router-dom'\nimport profile from '../../assets/profile.svg';\n\nfunction SecondPage(props) {\n\n const { t } = useTranslation();\n\n return (\n
\n
\n
{t(\"How it works\")}
\n
\n
\n \"take\n
\n
{t(\"Questionnaire\")}
\n
\n {t(\"Only if you have received a link, \")}\n {t(\"answer 18 \")}\n {t(\"situational questions \")}\n {t(\"in 15-20 minutes. \")}\n
\n
\n {t(\"It is not a evaluation! \")}\n
\n
\n {t(\"No judgement! \")}\n
\n
\n
\n
\n
\n \"learn\n
\n
{t(\"Relational profile\")}
\n
{/* discover-your-domina */}\n {t(\"Discover a brief summary \")}\n {t(\"of your relational profile both in everyday situations \")}\n {t(\"and under stress\")}\n {t(\"in all kindness. \")}\n {t(\"Have your work connections \")}\n {t(\"complete the questionnaire \")}\n {t(\"or as recommended by your employer. \")}\n
\n
\n
\n {/*
\n
{t(\"Our 'Relationers'\")}
\n
\n \"match\n
\n {t(\"Understand your \")}\n {t(\"unique relational interactions. \")}{t(\"Follow the personalized advice and recommendations \"}\n {t(\"friends and colleagues \")}\n {t(\"better collaboration. \")}\n
\n
\n
*/}\n
\n
\n \"match\n
\n
{t(\"Our 'Relationers'\")}
\n
\n {t(\"Understand your \")}\n {t(\"unique relational interactions. \")}\n {t(\"Follow the personalized advice and recommendations \")}\n {t(\"of our certified 'Relationers' to develop \")}\n {t(\"better collaboration. \")}\n
\n
\n
\n
\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n
\n )\n}\n\nexport default SecondPage","import React, { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport LoginModal from '../Auth/LoginModal'\nimport photo_1 from '../../assets/photo-1.png'\nimport photo_2 from '../../assets/photo-2.png'\nimport down_arrow from '../../assets/down-arrow.png'\nimport './ThirdPage.css'\nimport { isUserLoggedIn } from '../../utils/utils'\nimport { Link } from 'react-router-dom'\nimport profile from '../../assets/profile.svg';\n\n\nfunction ThirdPage(props) {\n\n const [className_1, setClassName_1] = useState('paragraph-bigger-1')\n const [className_2, setClassName_2] = useState('paragraph-2')\n const [read_more_1, setReadMore_1] = useState('read-more-1')\n const [read_more_2, setReadMore_2] = useState('read-more-2')\n\n const { t } = useTranslation();\n const moreClick_1 = (e) => {\n className_1 === 'paragraph-bigger-1' ? setClassName_1('paragraph-bigger-1-more') : setClassName_1('paragraph-bigger-1')\n setReadMore_1('read-more-hiden')\n }\n\n return (\n
\n
\n
\n
\n
\n {t(\"Work Well Together (WWT) is a revolutionary initiative dedicated to improving emotional relationships in the workplace. Developed by an expert clinical psychologist in emotions, WWT uses advanced data analysis to explore and understand the unique relational dynamics within professional environments. \")}\n
{t(\"Our mission is to create strong and fulfilling connections in the workplace, improve employees’ emotional and mental well-being, and facilitate meaningful interactions. Guided by the belief that ‘Everything depends on the relationship’, WWT emphasizes the essence of human interactions in professional environments. Whether it’s strengthening a team, enhancing cohesion within a company, or optimizing relationships among colleagues, WWT is the key to more cohesive and productive work environments, where everyone finds their place and feels understood and appreciated. \")}\n
{t(\"Thanks to our full-service solution, WWT Relational Solutions, we offer comprehensive support, from the initial questionnaire to personalized coaching. \")}\n
{t(\"Derived from over 15 years of research and experimentation, WWT aims to radically transform workplace well-being. As the driving force behind the Be Well Together (BWT) initiative, WWT revolutionizes how we approach professional relationships. \")}\n
{t(\"Join us to discover how WWT can transform your professional relationships and guide you toward a future where well-being aligns with performance. \")}\n
\n
\n
\n \"down-arrow\"\n   {t(\"More\")}  \n \"down-arrow\"\n
\n
\n
\n
\n
\n {/* */}\n {isUserLoggedIn() ?\n \n
\n \"profile\n {t(\"My account\")}\n
\n :\n \n }\n
\n
\n )\n}\n\nexport default ThirdPage","import React, { useState, useEffect } from 'react'\nimport { Redirect } from 'react-router-dom'\nimport MultiLang from '../MultiLang/MultiLang'\nimport Header from '../Header/Header'\nimport MainPage from './MainPage'\nimport SecondPage from './SecondPage'\nimport ThirtPage from './ThirdPage'\nimport FourthPage from './FourthPage'\nimport ContactPage from './ContactPage'\nimport LoginModal from 'components/Auth/LoginModal'\n\nfunction HomePage() {\n\n const [email, setEmail] = useState()\n const [passed, setPassed] = useState(false)\n let params = new URLSearchParams(window.location.search)\n\n useEffect(() => {\n // let params = new URLSearchParams(window.location.search)\n // let ref = params.get('ref')\n }, [])\n\n // debugger\n if (email) {\n if (passed) {\n return (\n \n )\n } else {\n return (\n \n )\n }\n } else {\n return (\n
\n {/*
\n \n

*/}\n
\n \n \n \n \n {\n params.has('login') &&\n \n }\n
\n )\n }\n}\n\nexport default HomePage","export function gen_perm(len) {\n\n let rsort = new Array(len);\n for(let idx = 0; idx < len; idx++)\n {\n rsort[idx] = idx+1;\n }\n\n // then proceed to shuffle the rsort array\n for(let idx = 0; idx < len; idx++)\n {\n let swpIdx = idx + Math.floor(Math.random() * (len - idx));\n // now swap elements at idx and swpIdx\n let tmp = rsort[idx];\n rsort[idx] = rsort[swpIdx];\n rsort[swpIdx] = tmp;\n }\n return rsort;\n}\n\nexport function gen_leftIndex(question_answered) {\n \n let rsort = gen_perm(18);\n\n if (question_answered.length > 0) {\n question_answered.forEach(item => {\n let index = rsort.indexOf(item);\n if (index > -1) {\n rsort.splice(index, 1);\n } \n });\n }\n return rsort;\n}\n","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { gen_leftIndex } from \"../../helper/gen_perm\";\r\nimport server from \"@config\";\r\nimport { getLanguage, gaEvent, isB2B } from 'utils/utils'\r\nimport MultiLang from '../MultiLang/MultiLang'\r\nimport toast from 'react-hot-toast';\r\n\r\n\r\nimport \"./QuestionPage.css\";\r\n\r\nconst str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n\r\nfunction QuestionPage() {\r\n\r\n const [questions, setQuestions] = useState([]);\r\n const [answers, setAnswers] = useState([]);\r\n const [quizNum, setQuizNum] = useState(1);\r\n const [chooseNum, setChooseNum] = useState(0);\r\n const [left_quizIndex, setLeftIndex] = useState([]);\r\n const [origin_index, setOriginIndex] = useState(0);\r\n const [question_answered, setQuestionAnswered] = useState(\"\");\r\n const [first_answers, setFirstAnswers] = useState(\"\");\r\n const [second_answers, setSecondAnswers] = useState(\"\");\r\n const [firstAnswer, setFirstAnswer] = useState(0);\r\n const [secondAnswer, setSecondAnswer] = useState(0);\r\n const [number, setNumber] = useState(18);\r\n\r\n const email = localStorage.getItem(\"email\");\r\n const { t } = useTranslation();\r\n const first_exp = t(\r\n \"Select the answers that best describe what you would do\"\r\n );\r\n const second_exp = t(\"Now select your second best choice\");\r\n const third_exp = t(\"Click again on your answers if you want to unselect them\");\r\n const lang = getLanguage();\r\n\r\n const getLeftIndex = () => {\r\n let data = { email: email };\r\n\r\n let config = {\r\n method: \"post\",\r\n url: server + \"/result/response/\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n data: data,\r\n };\r\n\r\n axios(config)\r\n .then((res) => {\r\n let str1 = res.data[\"question_answered\"];\r\n setQuestionAnswered(str1);\r\n setFirstAnswers(res.data[\"first_answers\"]);\r\n setSecondAnswers(res.data[\"second_answers\"]);\r\n let li = [];\r\n if (str1.length > 0) {\r\n str1.split(\",\").map((val) => {\r\n li.push(Number(val));\r\n });\r\n }\r\n li.pop(0);\r\n setLeftIndex(gen_leftIndex(li));\r\n setQuizNum(li.length + 1);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n toast.error(\"Failed to retrieve the questions\");\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getLeftIndex();\r\n gaEvent(\"EVALUATION\", \"EVALUATION_STARTED\", \"Evaluation started\");\r\n let url = \"/response/question/\";\r\n if (sessionStorage.getItem('questionnaire')) {\r\n url += '?questionnaire_type=' + sessionStorage.getItem('questionnaire');\r\n } else if (sessionStorage.getItem('mission')) {\r\n url += '?mission=' + sessionStorage.getItem('mission');\r\n } else if (sessionStorage.getItem('contact')) {\r\n url += '?contact=' + sessionStorage.getItem('contact');\r\n } else if (sessionStorage.getItem('company')) {\r\n url += '?company=' + sessionStorage.getItem('company');\r\n }\r\n axios\r\n .get(server + url, {\r\n header: {\r\n \"Content-type\": \"application/json\",\r\n },\r\n })\r\n .then((res) => {\r\n setQuestions(res.data);\r\n setNumber(res.data.length);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n toast.error(\"Failed to retrieve the questions\");\r\n });\r\n\r\n //request the answer\r\n let answerUrl = \"/response/answer/\";\r\n if (sessionStorage.getItem('questionnaire')) {\r\n answerUrl += '?questionnaire_type=' + sessionStorage.getItem('questionnaire');\r\n } else if (sessionStorage.getItem('mission')) {\r\n answerUrl += '?mission=' + sessionStorage.getItem('mission');\r\n } else if (sessionStorage.getItem('contact')) {\r\n answerUrl += '?contact=' + sessionStorage.getItem('contact');\r\n } else if (sessionStorage.getItem('company')) {\r\n answerUrl += '?company=' + sessionStorage.getItem('company');\r\n }\r\n axios\r\n .get(server + answerUrl, {\r\n header: {\r\n \"Content-type\": \"application/json\",\r\n },\r\n })\r\n .then((res) => {\r\n setAnswers(res.data);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n toast.error(\"Failed to retrieve the answers\");\r\n });\r\n }, []);\r\n\r\n const selectAnswer = (e) => {\r\n const bottom_button_1 = document.getElementById(\"bottom-button-1\");\r\n const bottom_button_2 = document.getElementById(\"bottom-button-2\");\r\n switch (chooseNum) {\r\n case 0:\r\n e.target.className = \"select-answer-active\";\r\n setChooseNum(1);\r\n setFirstAnswer(str.indexOf(e.target.innerHTML) + 1);\r\n bottom_button_1.className = \"bottom-button-active\";\r\n bottom_button_1.innerHTML = e.target.innerHTML;\r\n document.getElementById(\"notification-1\").style.display = \"block\";\r\n document.getElementById(\"oval-1-\" + e.target.innerHTML).style.display =\r\n \"block\";\r\n document.getElementById(\"bottom-div-2\").style.opacity = 1;\r\n document.getElementById(\"explain\").innerHTML = second_exp;\r\n break;\r\n case 1:\r\n if (e.target.className === \"select-answer-active\") {\r\n setChooseNum(0);\r\n setFirstAnswer(0);\r\n e.target.className = \"select-answer\";\r\n bottom_button_1.className = \"bottom-button\";\r\n bottom_button_1.innerHTML = \"1\";\r\n document.getElementById(\"notification-1\").style.display = \"none\";\r\n document.getElementById(\r\n \"oval-1-\" + e.target.innerHTML\r\n ).style.display = \"none\";\r\n document.getElementById(\"bottom-div-2\").style.opacity = 0.5;\r\n document.getElementById(\"explain\").innerHTML = first_exp;\r\n } else {\r\n setChooseNum(2);\r\n setSecondAnswer(str.indexOf(e.target.innerHTML) + 1);\r\n e.target.className = \"select-answer-active\";\r\n bottom_button_2.className = \"bottom-button-active\";\r\n bottom_button_2.innerHTML = e.target.innerHTML;\r\n document.getElementById(\"bottom-div-2\").style.opacity = 1;\r\n document.getElementById(\"notification-2\").style.display = \"block\";\r\n document.getElementById(\r\n \"oval-2-\" + e.target.innerHTML\r\n ).style.display = \"block\";\r\n document.getElementById(\"explain\").innerHTML = third_exp;\r\n document.getElementById(\"next-question\").style.opacity = 0.7;\r\n if (quizNum === number) {\r\n document.getElementById(\"to-word\").style.display = \"block\";\r\n document.getElementById(\"next-question\").style.display = \"none\";\r\n document.getElementById(\"to-word\").style.opacity = 0.5;\r\n }\r\n }\r\n break;\r\n case 2:\r\n if (e.target.className === \"select-answer-active\") {\r\n if (e.target.innerHTML === bottom_button_2.innerHTML) {\r\n setChooseNum(1);\r\n setSecondAnswer(0);\r\n e.target.className = \"select-answer\";\r\n document.getElementById(\r\n \"oval-1-\" + bottom_button_2.innerHTML\r\n ).style.display = \"block\";\r\n bottom_button_2.innerHTML = \"2\";\r\n document.getElementById(\"explain\").innerHTML = second_exp;\r\n document.getElementById(\"bottom-div-2\").style.opacity = 1;\r\n } else if (e.target.innerHTML === bottom_button_1.innerHTML) {\r\n setChooseNum(0);\r\n setFirstAnswer(0);\r\n setSecondAnswer(0);\r\n let label_1 = document.getElementById(\"bottom-button-1\").innerHTML;\r\n let label_2 = document.getElementById(\"bottom-button-2\").innerHTML;\r\n document.getElementById(\"next-question\").style.opacity = 0;\r\n document.getElementById(\"bottom-div-2\").style.opacity = 0.5;\r\n document.getElementById(\"bottom-button-1\").className =\r\n \"bottom-button\";\r\n document.getElementById(\"bottom-button-2\").className =\r\n \"bottom-button\";\r\n document.getElementById(\"bottom-button-1\").innerHTML = \"1\";\r\n document.getElementById(\"bottom-button-2\").innerHTML = \"2\";\r\n document.getElementById(\"notification-1\").style.display = \"none\";\r\n document.getElementById(\"select-answer-\" + label_1).className =\r\n \"select-answer\";\r\n document.getElementById(\"select-answer-\" + label_2).className =\r\n \"select-answer\";\r\n document.getElementById(\"oval-1-\" + label_1).style.display = \"none\";\r\n document.getElementById(\"oval-2-\" + label_2).style.display = \"none\";\r\n document.getElementById(\"explain\").innerHTML = first_exp;\r\n }\r\n bottom_button_2.className = \"bottom-button\";\r\n bottom_button_2.innerHTML = \"2\";\r\n document.getElementById(\"notification-2\").style.display = \"none\";\r\n document.getElementById(\r\n \"oval-2-\" + e.target.innerHTML\r\n ).style.display = \"none\";\r\n document.getElementById(\r\n \"oval-1-\" + e.target.innerHTML\r\n ).style.display = \"none\";\r\n document.getElementById(\"next-question\").style.opacity = 0;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const clickChoice_1 = () => {\r\n let txt_1 = document.getElementById(\"bottom-button-1\").innerHTML;\r\n switch (chooseNum) {\r\n case 0:\r\n break;\r\n case 1:\r\n setChooseNum(0);\r\n setFirstAnswer(0);\r\n document.getElementById(\"bottom-button-1\").className = \"bottom-button\";\r\n document.getElementById(\"select-answer-\" + txt_1).className =\r\n \"select-answer\";\r\n document.getElementById(\"oval-1-\" + txt_1).style.display = \"none\";\r\n document.getElementById(\"bottom-button-1\").innerHTML = \"1\";\r\n document.getElementById(\"notification-1\").style.display = \"none\";\r\n document.getElementById(\"bottom-div-2\").style.opacity = 0.5;\r\n document.getElementById(\"explain\").innerHTML = first_exp;\r\n break;\r\n case 2:\r\n let caption_1 = document.getElementById(\"bottom-button-1\").innerHTML;\r\n let caption_2 = document.getElementById(\"bottom-button-2\").innerHTML;\r\n setChooseNum(0);\r\n setFirstAnswer(0);\r\n setSecondAnswer(0);\r\n document.getElementById(\"next-question\").style.opacity = 0;\r\n document.getElementById(\"bottom-div-2\").style.opacity = 0.5;\r\n document.getElementById(\"bottom-button-1\").className = \"bottom-button\";\r\n document.getElementById(\"bottom-button-2\").className = \"bottom-button\";\r\n document.getElementById(\"bottom-button-1\").innerHTML = \"1\";\r\n document.getElementById(\"bottom-button-2\").innerHTML = \"2\";\r\n document.getElementById(\"notification-1\").style.display = \"none\";\r\n document.getElementById(\"notification-2\").style.display = \"none\";\r\n document.getElementById(\"select-answer-\" + caption_1).className =\r\n \"select-answer\";\r\n document.getElementById(\"select-answer-\" + caption_2).className =\r\n \"select-answer\";\r\n document.getElementById(\"oval-1-\" + caption_1).style.display = \"none\";\r\n document.getElementById(\"oval-2-\" + caption_2).style.display = \"none\";\r\n document.getElementById(\"explain\").innerHTML = first_exp;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const clickChoice_2 = () => {\r\n switch (chooseNum) {\r\n case 0:\r\n break;\r\n case 1:\r\n break;\r\n case 2:\r\n setChooseNum(1);\r\n setSecondAnswer(0);\r\n document.getElementById(\"bottom-button-2\").className = \"bottom-button\";\r\n let txt = document.getElementById(\"bottom-button-2\").innerHTML;\r\n document.getElementById(\"notification-2\").style.display = \"none\";\r\n document.getElementById(\"bottom-button-2\").innerHTML = \"2\";\r\n document.getElementById(\"select-answer-\" + txt).className =\r\n \"select-answer\";\r\n document.getElementById(\"oval-2-\" + txt).style.display = \"none\";\r\n document.getElementById(\"explain\").innerHTML = second_exp;\r\n document.getElementById(\"next-question\").style.opacity = 0;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const clickNext = () => {\r\n window.scrollTo(0, 0);\r\n let label_1 = document.getElementById(\"bottom-button-1\").innerHTML;\r\n let label_2 = document.getElementById(\"bottom-button-2\").innerHTML;\r\n if (chooseNum === 2) {\r\n setQuizNum(quizNum + 1);\r\n setOriginIndex(origin_index + 1);\r\n setChooseNum(0);\r\n setQuestionAnswered(\r\n question_answered + String(left_quizIndex[origin_index]) + \",\"\r\n );\r\n setFirstAnswers(first_answers + String(firstAnswer) + \",\");\r\n setSecondAnswers(second_answers + String(secondAnswer) + \",\");\r\n document.getElementById(\"next-question\").style.opacity = 0;\r\n document.getElementById(\"bottom-div-2\").style.opacity = 0.5;\r\n document.getElementById(\"bottom-button-1\").className = \"bottom-button\";\r\n document.getElementById(\"bottom-button-2\").className = \"bottom-button\";\r\n document.getElementById(\"bottom-button-1\").innerHTML = \"1\";\r\n document.getElementById(\"bottom-button-2\").innerHTML = \"2\";\r\n document.getElementById(\"notification-1\").style.display = \"none\";\r\n document.getElementById(\"notification-2\").style.display = \"none\";\r\n document.getElementById(\"select-answer-\" + label_1).className =\r\n \"select-answer\";\r\n document.getElementById(\"select-answer-\" + label_2).className =\r\n \"select-answer\";\r\n document.getElementById(\"oval-1-\" + label_1).style.display = \"none\";\r\n document.getElementById(\"oval-2-\" + label_2).style.display = \"none\";\r\n document.getElementById(\"explain\").innerHTML = first_exp;\r\n document.getElementById(\"progressBar\").style.width =\r\n (100 * quizNum) / number + \"%\";\r\n\r\n //////////// Store the question and selected answers to the database for current Questioniare page /////////////////\r\n\r\n\r\n let data1 = {\r\n email: email,\r\n question_answered: question_answered + String(left_quizIndex[origin_index]) + \",\",\r\n first_answers: first_answers + String(firstAnswer) + \",\",\r\n second_answers: second_answers + String(secondAnswer) + \",\",\r\n };\r\n\r\n let config1 = {\r\n method: \"put\",\r\n url: server + \"/result/response/\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n data: data1,\r\n };\r\n\r\n gaEvent(\"QUESTION\", \"QUESTION_NUMBER_\" + String(origin_index), \"Question # \" + String(origin_index) + \" answered\");\r\n gaEvent(\"QUESTION\", \"QUESTION_ID_\" + String(left_quizIndex[origin_index]), \"Question ID \" + String(left_quizIndex[origin_index]) + \" answered\");\r\n\r\n axios(config1)\r\n .then((res) => {\r\n console.log(JSON.stringify(res.data), \"Successfully submitted!!!\");\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n toast.error(\"Failed to submit the responses to the questionnaire\");\r\n });\r\n }\r\n };\r\n\r\n const getQuestionIndex = (str) => {\r\n return Number(str.split(\"a\")[0].replace(\"q\", \"\"));\r\n };\r\n\r\n /////////////////// render the page ///////////////\r\n if (quizNum > number) {\r\n return ;\r\n } else {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {t(\"Question\")} {quizNum}\r\n
\r\n {\r\n isB2B() &&\r\n \r\n
\r\n {t(\"Pro Access\")}\r\n
\r\n \r\n }\r\n \r\n
\r\n
\r\n {questions.length > 0 && (\r\n
\r\n {questions.map((item, index) => {\r\n let question_id = \"q\" + String(left_quizIndex[origin_index]);\r\n if (item.question_id === question_id) {\r\n switch (lang) {\r\n case \"en\":\r\n return
{item.en}
;\r\n case \"fr\":\r\n return
{item.fr}
;\r\n case \"ru\":\r\n return
{item.ru}
;\r\n default:\r\n break;\r\n }\r\n }\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n {answers.length > 0 && (\r\n
\r\n {answers\r\n .filter(\r\n (answer) =>\r\n getQuestionIndex(answer.answer_id) ===\r\n left_quizIndex[origin_index]\r\n )\r\n .map((answer, item) => {\r\n return (\r\n
\r\n \r\n {str[item]}\r\n \r\n
\r\n {lang === \"en\"\r\n ? answer.en\r\n : lang === \"fr\"\r\n ? answer.fr\r\n : lang === \"ru\"\r\n ? answer.ru\r\n : \"\"}\r\n
\r\n \r\n 1\r\n \r\n \r\n 2\r\n \r\n
\r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {t(\"Select the answers that best describe what you would do\")}\r\n
\r\n \r\n {t(\"Next\")}\r\n \r\n \r\n \r\n {t(\"Next\")}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n 1\r\n \r\n
\r\n {t(\"Choice\")} 1\r\n
\r\n \r\n 1\r\n \r\n
\r\n
\r\n \r\n 2\r\n \r\n
\r\n {t(\"Choice\")} 2\r\n
\r\n \r\n 2\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default QuestionPage;\r\n","import server from '@config'\nimport axios from 'axios'\nimport { useAuth } from 'context/auth'\nimport React, { useEffect, useState } from 'react'\nimport toast from 'react-hot-toast'\nimport { useTranslation } from 'react-i18next'\nimport { Link } from 'react-router-dom'\nimport UserAvatar from 'react-user-avatar'\nimport { isB2B, logOut } from 'utils/utils'\nimport MultiLang from '../../MultiLang/MultiLang'\n\nfunction Header() {\n\n const [profile, setProfile] = useState()\n const { t, i18n } = useTranslation();\n const { setAuthTokens } = useAuth()\n\n useEffect(() => {\n let data = JSON.stringify({ \"email\": localStorage.getItem(\"email\") })\n\n let config = {\n method: 'post',\n url: server + '/result/profile/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n setProfile(res.data['result'])\n localStorage.setItem('profile', JSON.stringify(res.data['result']));\n })\n .catch(err => {\n console.log(err, 'get profile picture error')\n toast.error('Failed to retrieve the user profile.')\n })\n }, [])\n\n const logOutUser = () => {\n logOut();\n setAuthTokens(null);\n }\n\n if (profile) {\n return (\n
\n
\n
\n
\n \n
\n {profile.first_name} {profile.last_name}\n
\n
\n
\n logOutUser()}>\n
\n \n  {t(\"Logout\")}\n
\n \n {\n isB2B() &&\n \n
\n {t(\"Pro Access\")}\n
\n \n }\n
\n \n
\n
\n
\n
\n
\n )\n } else {\n return (
Loading...
)\n }\n}\nexport default Header","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport lady_picture from '../../../assets/philo.svg'\nimport '../Results.css'\n\nconst TopPage = () => {\n\n const { t } = useTranslation();\n\n return (\n
\n
\n {t(\"Congrats!\")}

{t(\"You have completed the questionnaire.\")}

\n {t(\"Get a complete relational profile from the person who sent you the invite link \")}\n
{t(\"Find potential relational matches in your professional network via your contact \")}\n {t(\"The Work Well Together \")}{t(\"experience continues\")}!\n
{t(\"If you have not received an invitation link and are interested in your profile, please contact us at \")}\n contact@bewelltogether.co\n
\n
\n \"lady\"\n
\n
\n )\n}\n\nexport default TopPage","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport Accordion from './Accordion/Accordion'\n\nimport '../Results.css'\n\nfunction SecondPage(props) {\n\n const { t } = useTranslation();\n\n return (\n
\n
\n
\n
{t(\"An extract of your relational profile\")}
\n
\n
\n \n \n \n \n
\n
\n )\n}\n\nexport default SecondPage","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport two_persons from '../../../../assets/2-persons.svg'\nimport invite_icon from '../../../../assets/red-mail.png'\nconst CallToAction = () => {\n\n const { t } = useTranslation();\n\n return (\n
\n \"two\n
\n
\n {t(\"Do you want to improve your relationships with those around you and experience more tranquility in your life? Then embark on the journey with Be Well Together\")}\n
\n
\n {t(\"Developed by an expert clinical psychologist in emotions, BWT uses advanced data analysis to explore and understand the unique relational dynamics in various life contexts. Be Well Together (BWT) is a revolutionary initiative dedicated to enriching all dimensions of existence—work, family, love, friendship, sports, and education. Whether it’s strengthening a sports team, enhancing family bonds, promoting engagement in a classroom, enriching romantic relationships, or optimizing cohesion within a sports team, BWT is the key to more unified and productive environments where everyone finds their place and feels understood and appreciated. \")}\n
\n
\n {t(\"Contact us to be part of a pilot project\")}\n
\n
\n
window.location = 'mailto:contact@bewelltogether.co'}>\n \"invite-icon\"\n
contact@bewelltogether.co
\n
\n
\n )\n}\n\nexport default CallToAction","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"g\", null);\n\nvar SvgLinkedin = function SvgLinkedin(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 291.319 291.319\",\n style: {\n enableBackground: \"new 0 0 291.319 291.319\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#0E76A8\"\n },\n d: \"M145.659,0c80.45,0,145.66,65.219,145.66,145.66s-65.21,145.659-145.66,145.659S0,226.1,0,145.66 S65.21,0,145.659,0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#FFFFFF\"\n },\n d: \"M82.079,200.136h27.275v-90.91H82.079V200.136z M188.338,106.077 c-13.237,0-25.081,4.834-33.483,15.504v-12.654H127.48v91.21h27.375v-49.324c0-10.424,9.55-20.593,21.512-20.593 s14.912,10.169,14.912,20.338v49.57h27.275v-51.6C218.553,112.686,201.584,106.077,188.338,106.077z M95.589,100.141 c7.538,0,13.656-6.118,13.656-13.656S103.127,72.83,95.589,72.83s-13.656,6.118-13.656,13.656S88.051,100.141,95.589,100.141z\"\n })), _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLinkedin, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/linkedin.db444cb6.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useImperativeHandle, useState } from 'react'\nimport * as htmlToImage from 'html-to-image';\nimport logo from '../../../assets/header.svg'\nimport { useTranslation } from 'react-i18next'\n\nimport './ResultImage.css'\nimport Graph from './Graph/Graph';\nimport { getLanguage } from 'utils/utils';\n\nconst ResultImage = React.forwardRef((props, ref) => {\n const [render, setRender] = useState(false);\n var lang = getLanguage();\n const { t } = useTranslation();\n\n useImperativeHandle(ref, () => ({\n convertHtmlToImage(cb) {\n setRender(true);\n setTimeout(() => {\n const html = document.getElementById('resultImageContainer');\n console.log('html to img', html);\n htmlToImage.toPng(html, { pixelRatio: 1 })\n .then(function (dataUrl) {\n // var img = new Image();\n // img.src = dataUrl;\n // document.body.appendChild(img);\n // console.log('data', dataUrl);\n cb(dataUrl);\n setRender(false);\n })\n .catch(function (error) {\n console.error('oops, something went wrong!', error);\n });\n }, 300);\n\n }\n }));\n\n return (\n
\n {render &&\n
\n {props.profile &&\n
\n {props.profile.first_name && props.profile.first_name[0]}\n {props.profile.first_name} {props.profile.last_name}\n
\n }\n
\n
\n
{t(\"Your relational profile\")}
\n \n
\n
{t(\"Your behaviour and relations\")}
\n
\n
\n
{t(\"On a day to day basis\")}
\n
\n
\n
\n
{t(\"Under stress\")}/{t(\"tension\")}
\n
\n
\n
\n
\n
\n
\n
{t(\"Your\")}
{t(\"strengths and assets\")}
\n
\n
\n {\n props.softSkills.map((skill, index) => {\n return (\n
\n {{\n 'en': skill.en,\n 'fr': skill.fr,\n 'ru': skill.ru\n }[lang]\n }\n
\n )\n })\n }\n
\n
\n \"work\n
\n
\n }\n
\n );\n});\n\nexport default ResultImage;","import React, { createRef, useEffect, useState } from 'react'\nimport { useScreenshot } from 'use-react-screenshot'\nimport axios from 'axios'\nimport Header from './SubPages/Header'\nimport TopPage from './SubPages/TopPage'\nimport FirstPage from './SubPages/FirstPage'\nimport SecondPage from './SubPages/SecondPage'\nimport ThirdPage from './SubPages/ThirdPage'\nimport InviteRec from './SubPages/Relations/InviteRec'\nimport CallToAction from './SubPages/Relations/CallToAction'\nimport CertificateRec from './SubPages/Relations/CertificateRec'\nimport ShareRec from './SubPages/Relations/ShareRec'\nimport BottomMenu from '../BottomMenu/BottomMenu'\nimport server from '@config'\nimport ReactGA from 'react-ga';\nimport toast from 'react-hot-toast';\n\nimport './Results.css'\nimport DownloadRec from './SubPages/Relations/DownloadRec'\n\nfunction Results() {\n\n const [profile, setProfile] = useState()\n const [graphA, setGraphA] = useState()\n const [graphB, setGraphB] = useState()\n const [softSkills, setSoftSkills] = useState([])\n const [wellbeing_expression, setWellbeingExpression] = useState()\n const [relational_communication, setRelationalCommunication] = useState()\n const [approach_to_situations, setApproachToSituations] = useState()\n const [vision_of_the_world, setVisionOfTheWorld] = useState()\n const [top_personal_development, setTopPersonalDevelopment] = useState()\n const [render, setRender] = useState(false)\n const [image, takeScreenshot] = useScreenshot()\n const [fileUrls, setFileUrls] = useState({});\n\n const ref = createRef(null)\n\n const getProfile = () => {\n let data = JSON.stringify({ \"email\": localStorage.getItem(\"email\") });\n ReactGA.set({ userId: localStorage.getItem(\"referral\") });\n\n let config = {\n method: 'post',\n url: server + '/result/profile/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config)\n .then(res => {\n setProfile(res.data['result'])\n localStorage.setItem('profile', JSON.stringify(res.data['result']));\n })\n .catch(err => {\n console.log(err, 'get profile picture error')\n toast.error('Failed to retrieve the user profile.')\n })\n }\n\n useEffect(() => {\n getProfile();\n getIndividualResult();\n }, [])\n\n const getIndividualResult = () => {\n let data = { \"email\": localStorage.getItem('email') }\n let config = {\n method: 'post',\n url: server + '/result/individual_result/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n\n axios(config)\n .then(res => {\n setTopPersonalDevelopment({\n 'en': res.data['top_personal_development_en'],\n 'fr': res.data['top_personal_development_fr'],\n 'ru': res.data['top_personal_development_ru']\n })\n setGraphA({\n 'W': res.data['w_1'],\n 'X': res.data['x_1'],\n 'Y': res.data['y_1'],\n 'Z': res.data['z_1']\n })\n setGraphB({\n 'W': res.data['w_2'],\n 'X': res.data['x_2'],\n 'Y': res.data['y_2'],\n 'Z': res.data['z_2']\n })\n if (res.data.soft_skills) {\n setSoftSkills(res.data.soft_skills)\n } else {\n window.location.href = '/choice';\n }\n setWellbeingExpression({\n 'en': res.data['wellbeing_expression_en'],\n 'fr': res.data['wellbeing_expression_fr'],\n 'ru': res.data['wellbeing_expression_ru']\n })\n setRelationalCommunication({\n 'en': res.data['relational_communication_en'],\n 'fr': res.data['relational_communication_fr'],\n 'ru': res.data['relational_communication_ru']\n })\n setApproachToSituations({\n 'en': res.data['approach_to_situations_en'],\n 'fr': res.data['approach_to_situations_fr'],\n 'ru': res.data['approach_to_situations_ru']\n })\n setVisionOfTheWorld({\n 'en': res.data['vision_of_the_world_en'],\n 'fr': res.data['vision_of_the_world_fr'],\n 'ru': res.data['vision_of_the_world_ru'],\n })\n setFileUrls({\n 'en': {\n complete_profile_file_pdf: res.data['complete_profile_file_pdf_en'],\n relational_cv_file_pdf: res.data['relational_cv_file_pdf_en'],\n relational_cv_file_docx: res.data['relational_cv_file_docx_en']\n },\n 'fr': {\n complete_profile_file_pdf: res.data['complete_profile_file_pdf_fr'],\n relational_cv_file_pdf: res.data['relational_cv_file_pdf_fr'],\n relational_cv_file_docx: res.data['relational_cv_file_docx_fr']\n },\n 'ru': {\n complete_profile_file_pdf: res.data['complete_profile_file_pdf_ru'],\n relational_cv_file_pdf: res.data['relational_cv_file_pdf_ru'],\n relational_cv_file_docx: res.data['relational_cv_file_docx_ru']\n }\n })\n setRender(true)\n })\n .catch(err => {\n console.log(err)\n toast.error(\"Failed to retrieve individual results\")\n })\n }\n\n return (\n
\n
\n { render &&\n
\n \n
\n {/**/}\n {/* */}\n {/* */}\n
\n {/* {profile &&\n }\n \n {profile &&\n \n }\n */}\n \n
\n }\n \n
\n )\n}\n\nexport default Results","import React, { useState, useEffect } from 'react'\r\nimport { Link, Redirect } from 'react-router-dom'\r\nimport axios from 'axios'\r\nimport server from '@config'\r\nimport { useTranslation } from 'react-i18next'\r\nimport './SelectPage.css'\r\nimport { getLanguage, gaEvent, isB2B } from 'utils/utils'\r\nimport toast from 'react-hot-toast';\r\n\r\nfunction SelectPage() {\r\n\r\n const [selects, setSelects] = useState([])\r\n const [words, setWords] = useState([])\r\n const [btnClassName, setClassName] = useState('next-button')\r\n const [selNum, setSelNum] = useState(0)\r\n // const history = useHistory()\r\n const [passed, setPassed] = useState(false)\r\n const lang = getLanguage();\r\n const { t } = useTranslation();\r\n\r\n const onSelect = (e, id) => {\r\n if (e.target.className === \"word-button\" && selects.length < 12) {\r\n e.target.className = \"word-button-select\"\r\n let temp = selects\r\n temp.push(id)\r\n setSelects(temp)\r\n setSelNum(temp.length)\r\n if (temp.length === 12) {\r\n setClassName('next-button-active')\r\n }\r\n } else if (e.target.className === \"word-button-select\" && selects.length <= 12) {\r\n e.target.className = \"word-button\"\r\n let temp = selects\r\n temp.splice(temp.indexOf(id), 1)\r\n setSelects(temp)\r\n setSelNum(temp.length)\r\n if (temp.length === 11) {\r\n setClassName('next-button')\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let data = { \"email\": localStorage.getItem('email') }\r\n gaEvent(\"EVALUATION\", \"EVALUATION_QUESTIONS_DONE\", \"Evaluation Questions Done\");\r\n\r\n let config1 = {\r\n method: 'post',\r\n url: server + '/result/select/',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: data\r\n };\r\n\r\n axios(config1)\r\n .then((res) => {\r\n let temp = res.data['result']\r\n\r\n if (temp.length === 0) {\r\n let config = {\r\n method: 'get',\r\n url: server + '/words/',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: data\r\n };\r\n\r\n axios(config)\r\n .then(res => {\r\n // console.log(res.data, '_+_+_+_+_+_+_')\r\n setWords(res.data)\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n toast.error(\"Failed to retrieve the words\")\r\n });\r\n } else {\r\n setPassed(true)\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n toast.error(\"Failed to retrieve the results\")\r\n });\r\n\r\n }, [])\r\n\r\n const onSubmit = (e) => {\r\n if (e.target.className === 'next-button-active') {\r\n let temp = ''\r\n selects.map(word => {\r\n temp += word + ','\r\n })\r\n\r\n let data = { \"email\": localStorage.getItem('email'), \"result\": temp }\r\n let config = {\r\n method: 'put',\r\n url: server + '/result/select/',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: data\r\n };\r\n\r\n axios(config)\r\n .then(res => {\r\n console.log(res.data, 'select submit message-----')\r\n })\r\n .catch(err => {\r\n console.log(err, 'select submit error message')\r\n toast.error(\"Failed to submit the selected words\")\r\n })\r\n\r\n // history.push('/sort')\r\n setPassed(true)\r\n }\r\n }\r\n\r\n if (!passed) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {t(\"Select the 12 words that are the most important to your eyes\")}\r\n
\r\n {\r\n isB2B() &&\r\n \r\n
\r\n {t(\"Pro Access\")}\r\n
\r\n \r\n }\r\n
\r\n
\r\n {words.length > 0 &&\r\n words.map((word, index) => {\r\n return
onSelect(e, word.word_id)} key={index} className=\"word-button\">\r\n {\r\n {\r\n 'en': word.en,\r\n 'fr': word.fr,\r\n 'ru': word.ru\r\n }[getLanguage()]\r\n }\r\n
\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{selNum} / 12
\r\n
{t(\"word(s) selected\")}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n gaEvent(\"EVALUATION\", \"EVALUATION_WORDS_SELECTION_DONE\", \"Evaluation Words Selection Done\");\r\n return \r\n }\r\n\r\n}\r\n\r\nexport default SelectPage","import React, { useState, useEffect } from 'react'\nimport { Redirect } from 'react-router-dom'\n\nfunction Animation() {\n const [redirect, setRedirect] = useState(false)\n \n useEffect(() => {\n const id = setTimeout(() => setRedirect(true), 5000)\n \n return function cleanup() {\n clearTimeout(id)\n }\n },[redirect])\n\n return redirect\n ? \n : (\n
\n )\n}\n\nexport default Animation\n","import server from '@config'\nimport axios from 'axios'\nimport React, { useEffect, useState } from 'react'\nimport toast from 'react-hot-toast'\nimport { useTranslation } from 'react-i18next'\nimport { Link, Redirect } from 'react-router-dom'\nimport { gaEvent, isB2B } from 'utils/utils'\nimport logo from '../../assets/header.svg'\nimport Animation from './Animation/Animation'\nimport SortList from './SortList'\nimport './SortPage.css'\n\n\nfunction SortPage() {\n\n const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n\n const [words, setWords] = useState([])\n const [result, setResult] = useState([])\n const [flag, setFlag] = useState(1)\n const { t } = useTranslation()\n\n useEffect(() => {\n\n let data = { \"email\": localStorage.getItem('email') }\n\n let config1 = {\n method: 'post',\n url: server + '/result/individual_result/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n axios(config1)\n .then((res) => {\n\n let temp = res.data\n\n if (temp.w_1 === -1) {\n\n setFlag(1)\n let config = {\n method: 'post',\n url: server + '/result/select/',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n }\n\n axios(config)\n .then(res => {\n let temp1 = res.data['result']\n setWords(temp1)\n setResult(temp1)\n })\n\n } else {\n setFlag(3)\n }\n })\n .catch(err => {\n console.log(err, 'selected words load error')\n toast.error(t(\"There was an error when we tried to retrieve your selected words :(\"))\n })\n }, [])\n\n const onSubmit = () => {\n setFlag(2)\n let result_string = ''\n result.map(word => {\n result_string += word.word_id + ','\n })\n\n console.log(result_string)\n\n let data = { \"email\": localStorage.getItem('email'), \"result\": result_string }\n let url = \"/result/individual_result/\";\n if (sessionStorage.getItem('questionnaire')) {\n url += '?questionnaire_type=' + sessionStorage.getItem('questionnaire');\n } else if (sessionStorage.getItem('mission')) {\n url += '?mission=' + sessionStorage.getItem('mission');\n } else if (sessionStorage.getItem('contact')) {\n url += '?contact=' + sessionStorage.getItem('contact');\n } else if (sessionStorage.getItem('company')) {\n url += '?company=' + sessionStorage.getItem('company');\n }\n let config = {\n method: 'put',\n url: server + url,\n headers: {\n 'Content-Type': 'application/json'\n },\n data: data\n };\n\n gaEvent(\"WORD\", \"WORD_PAGE\", \"Sorted words submitted\");\n gaEvent(\"EVALUATION\", \"EVALUATION_DONE\", \"Evaluation finished\");\n\n axios(config)\n .then(res => {\n setFlag(3)\n })\n .catch(err => {\n console.log(err)\n toast.error(t(\"There was an error when we tried to save your sorted words :(\"))\n })\n }\n\n if (flag === 1) {\n return (\n
\n {words.length > 0 &&\n
\n\n
\n
\n
\n \"work\n {\n isB2B() &&\n \n
\n {t(\"Pro Access\")}\n
\n \n }\n
\n
\n {t(\"Please sort the words selected by order of preference\")}\n
\n
\n
\n {numbers.map((number, index) => {\n return
{number}
\n })}\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n }\n
\n )\n } else if (flag === 2) {\n return (\n \n )\n } else {\n gaEvent(\"EVALUATION\", \"EVALUATION_WORDS_SORT_DONE\", \"Evaluation Words Sorting Done\");\n return \n }\n}\n\nexport default SortPage","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\n\nimport Backend from 'i18next-http-backend'\nimport LanguageDetector from 'i18next-browser-languagedetector'\n\nconst options = {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'path', 'subdomain'],\n}\n\ni18n\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n detection: options,\n fallbackLng: 'en',\n supportedLngs: ['en','fr'],\n cleanCode: true,\n debug: false,\n keySeparator: false,\n load: 'languageOnly',\n backend: {\n loadPath: `/locales/{{lng}}/translation.json`\n },\n interpolation: {\n escapeValue: false,\n }\n })\n\nexport default i18n;\n\ni18n.changeLanguage();\ndocument.documentElement.lang = i18n.language;","import axios from 'axios';\nimport { logOut } from './utils/utils';\n\nconst skipTOkenEndpoints = [\n 'auth/user/register',\n 'auth/user/login',\n 'company/country/',\n 'company/state/',\n 'company/city/',\n 'company/department/',\n 'company/company/',\n 'send/contact',\n 'barometer_response',\n 'is_mission_active',\n 'get_company_from_mission'\n];\n\naxios.interceptors.request.use(function (config) {\n if (!skipTOkenEndpoints.filter((e) => config.url.includes(e)).length) {\n const token = localStorage.getItem(\"token\");\n if (token) {\n config.headers.Authorization = 'Token ' + token;\n }\n }\n return config;\n});\n\naxios.interceptors.response.use(\n res => res,\n err => {\n console.log('err', err.response);\n if (err.response.status === 404) {\n throw new Error(`${err.config.url} not found`);\n } else if (err.response.status === 401) {\n logOut();\n window.location.href = '/';\n throw new Error(`${err.config.url} not authorized`);\n }\n throw err.response;\n }\n);","import server from '@config'\r\nimport '@fortawesome/fontawesome-free/css/all.min.css'\r\nimport { getIndividualResult } from 'api/api'\r\nimport axios from 'axios'\r\nimport 'bootstrap-css-only/css/bootstrap.min.css'\r\nimport Barometer from 'components/Admin/Barometer/Barometer'\r\nimport CompanyContacts from 'components/Admin/CompanyContacts/CompanyContacts'\r\nimport Mobilities from 'components/Admin/Mobilities/Mobilities'\r\nimport MobilityForm from 'components/Admin/Mobilities/MobilityForm/MobilityForm'\r\nimport Onboardings from 'components/Admin/Onboarding/Onboarding'\r\nimport OnboardingForm from 'components/Admin/Onboarding/OnboardingForm/OnboardingForm'\r\nimport RecruitmentForm from 'components/Admin/Recruitments/RecruitmentForm/RecruitmentForm'\r\nimport Recruitments from 'components/Admin/Recruitments/Recruitments'\r\nimport TeamBuilding from 'components/Admin/TeamBuilding/TeamBuilding'\r\nimport TeamBuildingForm from 'components/Admin/TeamBuilding/TeamBuildingForm/TeamBuildingForm'\r\nimport Values from 'components/Admin/Values/Values'\r\nimport ValuesForm from 'components/Admin/Values/ValuesForm/ValuesForm'\r\nimport BarometerQuestionnaire from 'components/BarometerQuestionnaire/BarometerQuestionnaire'\r\nimport PrivacyPolicy from 'components/PrivacyPolicy/PrivacyPolicy'\r\nimport Pro from 'components/Pro/Pro'\r\nimport ResetPassword from 'components/ResetPassword/ResetPassword'\r\nimport { ProfileContext } from 'context/profile'\r\nimport { MDBModal, MDBModalBody, MDBModalFooter, MDBModalHeader } from 'mdbreact'\r\nimport 'mdbreact/dist/css/mdb.css'\r\nimport PrivateRoute from 'PrivateRoute'\r\nimport React, { Suspense, useEffect, useState } from 'react'\r\nimport 'react-bootstrap-typeahead/css/Typeahead.css'\r\nimport ReactGA from 'react-ga'\r\nimport toast, { Toaster } from 'react-hot-toast'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { LinkedInPopUp } from 'react-linkedin-login-oauth2'\r\nimport { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom'\r\nimport Analytics from 'react-router-ga'\r\nimport \"slick-carousel/slick/slick-theme.css\"\r\nimport \"slick-carousel/slick/slick.css\"\r\nimport { gaEvent, getProfile, isUserLoggedIn, logOut } from 'utils/utils'\r\nimport './App.css'\r\nimport ComparePage from './components/Compare/ComparePage'\r\nimport ContactPage from './components/Contacts/ContactPage'\r\nimport HomePage from './components/Home/HomePage'\r\n// import PrivateRoute from './PrivateRoute'\r\nimport QuestionPage from './components/Question/QuestionPage'\r\nimport Results from './components/Results/Results'\r\nimport SelectPage from './components/Select/SelectPage'\r\nimport SortPage from './components/Sort/SortPage'\r\nimport { AuthContext } from './context/auth'\r\nimport './i18n'\r\nimport './Interceptor'\r\n\r\n\r\n\r\nfunction App(props) {\r\n\r\n let existingTokens;\r\n if (localStorage.getItem('token')) {\r\n try {\r\n existingTokens = localStorage.getItem(\"token\");\r\n } catch (e) {\r\n console.log('error in existing token', e);\r\n }\r\n }\r\n const [authTokens, setAuthTokens] = useState(existingTokens);\r\n const [profile, setProfile] = useState(null);\r\n const [redirectToChoice, setRedirectToChoice] = useState(null);\r\n const [changeUserConfirmModal, setChangeUserConfirmModal] = useState(false);\r\n\r\n const { i18n, t } = useTranslation();\r\n\r\n const setTokens = (data) => {\r\n if (data) {\r\n // localStorage.setItem(\"tokens\", JSON.stringify(data));\r\n localStorage.setItem(\"token\", data);\r\n }\r\n setAuthTokens(data);\r\n }\r\n\r\n ReactGA.initialize(process.env.REACT_APP_GA_UA_ID);\r\n\r\n useEffect(() => {\r\n const ref = new URLSearchParams(window.location.search).get('ref')\r\n if (ref && isUserLoggedIn()) {\r\n gaEvent(\"MATCHING\", \"MATCHING_ACKNOWLEDGED\", \"Matching Acknowledged\");\r\n let config = {\r\n method: 'post',\r\n url: server + '/auth/user/add_matching',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: {\r\n referral: ref\r\n }\r\n }\r\n\r\n axios(config)\r\n .then(res => {\r\n console.log('res', res);\r\n if (res.data && res.data.status === 1) {\r\n window.location.replace('/contacts');\r\n // window.location.push = 'contacts';\r\n }\r\n }).catch((err) => {\r\n console.log('err', err);\r\n })\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const questionnaireId = new URLSearchParams(window.location.search).get('questionnaire_id')\r\n if (isUserLoggedIn()) { // && questionnaireId\r\n getIndividualResult()\r\n .then((data) => {\r\n console.log('result data', data)\r\n if (data && data.data && data.data.w_1 === -1) {\r\n setRedirectToChoice(true);\r\n } else {\r\n setRedirectToChoice(false);\r\n }\r\n })\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setUserProfile();\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!authTokens) {\r\n setRedirectToChoice(null);\r\n }\r\n }, [authTokens])\r\n\r\n const setUserProfile = () => {\r\n if (isUserLoggedIn() && !localStorage.getItem('profile')) {\r\n getUserProfile();\r\n } else {\r\n setProfile(getProfile());\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n // sessionStorage.removeItem('mission');\r\n // sessionStorage.removeItem('contact');\r\n // sessionStorage.removeItem('questionnaire');\r\n\r\n const mission = new URLSearchParams(window.location.search).get('mission')\r\n const contact = new URLSearchParams(window.location.search).get('contact')\r\n const questionnaire = new URLSearchParams(window.location.search).get('questionnaire_id')\r\n\r\n if (mission || contact || questionnaire) {\r\n // change language to fr if user comes with invitation link\r\n i18n.changeLanguage('fr');\r\n document.documentElement.lang = i18n.language;\r\n }\r\n\r\n if (mission) {\r\n sessionStorage.setItem('mission', mission);\r\n }\r\n if (contact) {\r\n sessionStorage.setItem('contact', contact);\r\n }\r\n if (questionnaire) {\r\n sessionStorage.setItem('questionnaire', questionnaire);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n // Map contact only if route is not barometerquetionnaire route\r\n if (!window.location.href.includes('barometerquestionnaire')) {\r\n const mission = new URLSearchParams(window.location.search).get('mission')\r\n const contact = new URLSearchParams(window.location.search).get('contact')\r\n const company = new URLSearchParams(window.location.search).get('company')\r\n if ((mission || contact || company) && isUserLoggedIn()) {\r\n const data = {};\r\n if (mission) {\r\n data.mission = mission;\r\n }\r\n if (contact) {\r\n data.contact = contact;\r\n }\r\n if (company) {\r\n data.company = company;\r\n }\r\n\r\n let config = {\r\n method: 'post',\r\n url: server + '/auth/user/map_company_contact/',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: data\r\n };\r\n\r\n axios(config)\r\n .then(res => {\r\n if (company) {\r\n toast.success(t('Contact successfully added.'));\r\n }\r\n if (contact) {\r\n toast.success(t('Contact successfully added.'));\r\n }\r\n if (mission) {\r\n toast.success(t('Contact successfully added.'));\r\n }\r\n window.history.replaceState(null, 'WWT', '/');\r\n })\r\n .catch(err => {\r\n if (company) {\r\n toast.error(t('Failed to add to company contact.'));\r\n }\r\n if (contact) {\r\n toast.error(t('Failed to add to company contact.'));\r\n }\r\n if (mission) {\r\n toast.error(t('Failed to add to company mission.'));\r\n }\r\n window.history.replaceState(null, 'WWT', '/');\r\n })\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (profile) {\r\n getIndividualResult()\r\n .then((data) => {\r\n console.log('result data', data)\r\n if (data && data.data && data.data.w_1 === -1) {\r\n setRedirectToChoice(true);\r\n } else {\r\n setRedirectToChoice(false);\r\n }\r\n })\r\n }\r\n }, [profile])\r\n\r\n useEffect(() => {\r\n // get token, email and referral from url params\r\n const token = new URLSearchParams(window.location.search).get('token')\r\n const email = new URLSearchParams(window.location.search).get('email')\r\n const referral = new URLSearchParams(window.location.search).get('referral')\r\n\r\n if (token && email && referral) {\r\n\r\n // if token is already available then it is already logged in with a user\r\n if (localStorage.getItem('token')) {\r\n\r\n // if email from params and localstorage is not same, means we want to imporsanate with another user\r\n // Show popup for confirmation to logout from current user and login with another user\r\n if (localStorage.getItem('email') !== email) {\r\n setChangeUserConfirmModal(true);\r\n } else {\r\n window.location.replace('/');\r\n }\r\n } else {\r\n localStorage.setItem('token', token);\r\n localStorage.setItem('email', email);\r\n localStorage.setItem('referral', referral);\r\n window.location.replace('/');\r\n }\r\n }\r\n }, [])\r\n\r\n const changeUser = () => {\r\n\r\n // logout from current user\r\n logOut();\r\n\r\n // get token, email and referral from url params\r\n const token = new URLSearchParams(window.location.search).get('token')\r\n const email = new URLSearchParams(window.location.search).get('email')\r\n const referral = new URLSearchParams(window.location.search).get('referral')\r\n\r\n // update fields into local storage\r\n localStorage.setItem('token', token);\r\n localStorage.setItem('email', email);\r\n localStorage.setItem('referral', referral);\r\n\r\n // refresh screen with base url to continue it as logged in with new user\r\n window.location.replace('/');\r\n }\r\n\r\n const getUserProfile = () => {\r\n let data = JSON.stringify({ \"email\": localStorage.getItem(\"email\") });\r\n ReactGA.set({ userId: localStorage.getItem(\"referral\") });\r\n\r\n let config = {\r\n method: 'post',\r\n url: server + '/result/profile/',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n data: data\r\n };\r\n\r\n axios(config)\r\n .then(res => {\r\n if (res.data['result']) {\r\n localStorage.setItem('profile', JSON.stringify(res.data['result']));\r\n setProfile(res.data['result']);\r\n }\r\n })\r\n .catch(err => {\r\n })\r\n }\r\n\r\n const isB2B = () => {\r\n const profile = getProfile();\r\n console.log('isB2B Called', profile)\r\n if (profile) {\r\n return !!(profile.companies && profile.companies.length);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const Loader = () => (\r\n
Loading...
\r\n )\r\n\r\n const baseRoute = () => {\r\n if (isB2B() && !(new URLSearchParams(window.location.search).get('token') || new URLSearchParams(window.location.search).get('ref'))) {\r\n return (\r\n \r\n } />\r\n )\r\n } else {\r\n if (redirectToChoice) {\r\n return (\r\n \r\n } />\r\n );\r\n } else {\r\n return (\r\n \r\n } />\r\n )\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n }>\r\n \r\n \r\n \r\n {\r\n baseRoute()\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Change User\r\n \r\n \r\n
${profile?.first_name} ${profile?.last_name} user.
Do you want to logout and login with another user?` }}>\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport '@fortawesome/fontawesome-free/css/all.min.css';\r\nimport 'bootstrap-css-only/css/bootstrap.min.css';\r\nimport 'mdbreact/dist/css/mdb.css';\r\nimport 'moment/locale/fr';\r\nimport { Suspense } from 'react';\r\nimport Loader from 'components/Loader/Loader';\r\n\r\nReactDOM.render(\r\n }>\r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();"],"sourceRoot":""}
\n \n {truncate(mission.mission_name, 30)}\n {mission.mission_name}\n \n {mission.reference}\n \n {mission.candidates}\n {formatDate(mission.mission_creation_date)}{formatDate(mission.mission_end_date)}\n\n \n \n \n \n {/* {\n !mission.mission_archived_date ?\n \n \n : null\n } */}\n \n \n \n \n \n \n \n \n \n }\n animation=\"slide-up\"\n placement=\"bottomRight\"\n onOverlayClick={(e) => onMissionActionClick(mission, e.key)}\n >\n \n \n