{"version":3,"sources":["assets/images/Ilogo.svg","assets/images/gb.png","assets/images/fr.png","assets/images/People.png","assets/images/lock.png","_config.js","constants/actions.js","reducers/errors.js","reducers/questions.js","reducers/answers.js","reducers/briefresponse.js","reducers/chatgpt.js","reducers/marketing.js","reducers/debrief_survey.js","reducers/index.js","constants/api.js","sagas/Questions.js","sagas/Answers.js","sagas/Start.js","sagas/BriefSurvey.js","sagas/ChatGpt.js","sagas/MarketingRoi.js","sagas/DebriefSurvey.js","sagas/index.js","store.js","health/index.js","survey/TeamCulture/Loading.js","survey/TeamCulture/Mood/Selection/Selection.js","survey/TeamCulture/Mood/Selection/Emotion.js","survey/TeamCulture/Mood/Selection/FlippedCard.js","survey/TeamCulture/Mood/Selection/MoodCard.js","survey/TeamCulture/Mood/Selection/MoodSelect.js","survey/TeamCulture/Mood/Selection/index.js","survey/TeamCulture/Mood/Reflection/EmotionCard.js","survey/TeamCulture/Mood/Reflection/index.js","survey/TeamCulture/Mood/Intro.js","constants/animation.js","survey/TeamCulture/Mood/index.js","survey/TeamCulture/TeamIntelligence/SelectTeamMembers.js","survey/TeamCulture/TeamIntelligence/Selection.js","survey/TeamCulture/TeamIntelligence/Question.js","survey/TeamCulture/TeamIntelligence/TeamHealth.js","survey/TeamCulture/TeamIntelligence/Intro.js","survey/TeamCulture/TeamIntelligence/index.js","survey/TeamCulture/Leadership/Intro.js","survey/TeamCulture/Leadership/comment_box.js","survey/TeamCulture/Leadership/styled-list.js","survey/TeamCulture/Leadership/Question.js","survey/TeamCulture/Leadership/comment_box_multi.js","survey/TeamCulture/Leadership/MultiLeaderItem.js","survey/TeamCulture/Leadership/MultiQuestion.js","survey/TeamCulture/Leadership/index.js","survey/TeamCulture/NoToken.js","survey/TeamCulture/End.js","survey/TeamCulture/Message.js","survey/TeamCulture/Sidebar/content.js","survey/TeamCulture/Sidebar/styled.js","survey/TeamCulture/Sidebar/index.js","survey/TeamCulture/styledList.js","survey/TeamCulture/BottomBar.js","survey/TeamCulture/index.js","survey/Personality/PersonalityQuestion.js","survey/Personality/Intro.js","survey/Personality/End.js","survey/Personality/NoToken.js","survey/Personality/index.js","survey/SurveyComponents/Intro.js","survey/EDI/Message.js","survey/EDI/NoToken.js","data/reverseScores.js","utilities/FeedbackRules.js","survey/EDI/Categories.js","survey/EDI/CommentsFeedback.js","survey/EDI/Slider.js","survey/EDI/Questions.js","survey/SurveyComponents/ExistingData.js","survey/SurveyComponents/Checkbox.js","survey/SurveyComponents/Agreement.js","survey/EDI/End.js","ModularQuestions/Slider.js","ModularQuestions/Outcome.js","ModularQuestions/ValuesBuilder.js","survey/EDI/ModularQuestions/index.js","survey/EDI/index.js","survey/EDI/Privacy.js","survey/OTPV2/Shapes.js","survey/OTPV2/Intro.js","survey/OTPV2/Message.js","survey/OTPV2/Language.js","survey/SurveyComponents/LogoAnimations.js","survey/OTPV2/Categories.js","survey/OTPV2/NoToken.js","survey/OTPV2/Slider.js","survey/OTPV2/Questions.js","survey/OTPV2/Comments.js","survey/SurveyComponents/OtpExistingData.js","survey/OTPV2/End.js","survey/OTPV2/CommentsFeedback.js","survey/OTPV2/index.js","survey/OTP/Shapes.js","survey/OTP/Intro.js","survey/OTP/Message.js","survey/OTP/Language.js","survey/OTP/Categories.js","survey/OTP/NoToken.js","survey/OTP/Slider.js","survey/OTP/Questions.js","survey/OTP/Comments.js","survey/OTP/End.js","survey/OTP/CommentsFeedback.js","survey/OTP/index.js","survey/OTP/Privacy.js","survey/Template/Intro.js","survey/Template/End.js","survey/Template/Message.js","survey/Template/NoToken.js","survey/Template/Responses/Likert.js","survey/Template/Responses/TakeAway.js","survey/Template/Responses/Text.js","survey/Template/Responses/Slider.js","survey/Template/QuestionTemplate.js","survey/Template/ThankYou.js","survey/Template/ErrorMessage.js","survey/Template/ReLoadPage.js","survey/Template/index.js","survey/Blink/Intro.js","survey/Blink/form.js","survey/Blink/Inclusion.js","survey/Blink/index.js","survey/Test/subfactor_question_data.js","survey/Test/subfactor_value.js","constants/questionTypes.js","survey/AuditV2/translations.js","survey/AuditV2/Components/Slider.js","survey/AuditV2/questionTypes/Question.js","survey/AuditV2/questionTypes/MultipleChoice.js","survey/AuditV2/Components/ProgressBar.js","survey/AuditV2/Components/Button.js","survey/AuditV2/questionTypes/Feedback.js","survey/AuditV2/Components/CustomDropdown.js","survey/AuditV2/questionTypes/Categories.js","survey/AuditV2/IntroScreens/screen1.js","survey/AuditV2/IntroScreens/screen2.js","survey/AuditV2/IntroScreens/screen4.js","survey/AuditV2/IntroScreens/screen3.js","survey/AuditV2/IntroScreens/screen5.js","survey/AuditV2/IntroScreens/screen7.js","survey/AuditV2/IntroScreens/Custom/HockeyCustom_v2.js","survey/AuditV2/IntroScreens/Custom/HockeyCustom_v3.js","survey/AuditV2/IntroScreens/HockeyCustom.js","survey/AuditV2/Introduction.js","survey/AuditV2/IntroScreens/BulletProgressBar.js","survey/AuditV2/Components/SkipModal.js","survey/AuditV2/chatGpt/FollowUp.js","survey/AuditV2/questionTypes/Submit.js","survey/AuditV2/IntroSection.js","survey/AuditV2/questionTypes/Values.js","survey/AuditV2/questionTypes/CustomCompleted/Hockey_v2.js","survey/AuditV2/questionTypes/CustomCompleted/Hockey_v3.js","survey/AuditV2/questionTypes/Completed.js","survey/AuditV2/Language.js","survey/AuditV2/questionTypes/Comment.js","survey/AuditV2/Survey.js","survey/Context/Slider.js","survey/Context/Question.js","survey/Context/MultipleChoice.js","survey/Context/questions.js","survey/Context/Submit.js","survey/Context/IntroSection.js","survey/Context/ErrorList.js","survey/Context/Dial.js","survey/Context/ROI.js","utilities/Validate.js","survey/Context/MultiSelect.js","survey/Context/index.js","survey/InSurveyPersonality/PersonalityIntro.js","survey/InSurveyPersonality/Personality.js","survey/InSurveyPersonality/index.js","survey/Audit/Intro.js","survey/Audit/Intro1.js","survey/Audit/ArrowIcon.js","survey/Audit/Intro2.js","survey/Audit/Intro3.js","survey/Audit/Message.js","survey/Audit/ReLoadPage.js","survey/Audit/Language.js","survey/Audit/CCIntro/Text.js","survey/Audit/CCIntro/index.js","survey/Audit/NoToken.js","survey/Audit/Categories.js","survey/Audit/CommentsFeedback.js","survey/Audit/GPTprompts/index.js","survey/Audit/Slider.js","survey/Audit/Questions.js","survey/Audit/Comments.js","survey/Audit/End.js","ModularQuestions/index.js","survey/Audit/index.js","constants/messaging.js","survey/SurveyComponents/AuditExistingData.js","survey/AuditV2/Components/NavigationButtons.js","survey/AuditV2/chatGpt/MultiFollowUp.js","survey/AuditV2/Components/SliderOutcome.js","survey/AuditV2/questionTypes/QuestionOutcome.js","survey/AuditV2/questionTypes/QuestionComments.js","survey/AuditV2/questionTypes/PersonalityChoice.js","survey/AuditV2/questionTypes/QuestionValues.js","survey/AuditV2/index.js","utilities/ModularRules.js","survey/AuditV2/SurveyV2.js","survey/Test/index.js","survey/Context/Initial_Report.js","survey/Start/HockeyIntro.js","survey/Start/Language.js","survey/Start/Custom/courtex.js","survey/Start/Custom/HockeyIntro_v2.js","survey/Start/Custom/HockeyIntro_v3.js","survey/Start/Survey.js","survey/Start/Default.js","survey/Start/index.js","survey/Recon/index.js","survey/Demo/screen1.js","survey/Demo/translations.js","survey/Demo/Slider.js","survey/Demo/Question.js","survey/Demo/structurePrompt.js","survey/Demo/Conversation.js","survey/Demo/Finish.js","survey/Demo/Language.js","survey/Demo/index.js","routes/index.js","i18n.js","App.js","serviceWorker.js","index.js","assets/images/caat.png","assets/images/ES.png","assets/images/top-view-smiley-face-growth-arrow 1.png","assets/images/chat.png","assets/images/live-site.svg","assets/images/curiosity.svg","assets/images/enjoyment.svg","assets/images/motivation.svg","assets/images/discontent.svg","assets/images/stress.svg","assets/images/anger.svg","assets/images/intro_mood.png","assets/images/score.png","assets/images/intro.png","assets/images/empty/user.svg","assets/images/person_image.png","survey/OTPV2/s1.svg","survey/OTPV2/s2.svg","survey/OTPV2/s3.svg","survey/OTP/s1.svg","survey/OTP/s2.svg","survey/OTP/s3.svg","assets/images/blink2.png","assets/images/survey.png","assets/images/anonymous.png","assets/images/completed.png","assets/images/Logo blue.png","assets/images/logo_full.png"],"names":["module","exports","currentApi","config","loginapi","authapi","surveyapi","appapi","website","ALL_ERRORS","CLEAR_ALL","SET_ANSWERS","initialState","msg","status","errors","culture_questions","mood_questions","leadership_questions","personality_questions","modular_questions","previous_response","pending","pending_culture_questions","pending_mood_questions","pending_leadership_questions","pending_modular_questions","pending_personality_questions","previous_response_pending","all_answers","culture_survey_status","mood_survey_status","leadership_survey_status","culture_survey_compliance","mood_survey_compliance","leadership_survey_compliance","team_id","employee","employee_name","employee_picture","employee_role","employee_account","time_spent_with","culture_answers","culture_max_ques","culture_high_ans","culture_cur_ques","mood_answers","mood_max_ques","mood_high_ans","mood_max_ans_nos","leader_list","leader_count","leadership_answers","leadership_max_ques","leadership_high_ans","leadership_cur_ques","personality_answers","personality_max_ques","personality_high_ans","personality_cur_ques","personality_complete","personality_survey_status","participants_in_personality","curr_direction","all_survey_types","curr_survey_type","direction","token","isBrowser","mobile","browser","deviceType","osVersion","operating_system","device","user_ip","ansList","_currentRegQues","id","validation_token","modular_question","surveyComponents","survey_token","debrief_schedule","survey_status","questions","response","intro","short","title","intro_completed","intro2_completed","valid_upto","employee_survey_spec","total_question_map","total_categories","total_questions","feedback","modular_response","survey_personality","in_survey_personality","showing_stored_response","answers","visual_question","current_question","current_answer","high_answer","complete","questionSequenceMap","chat_gpt_summary","response_pending","markeingRoi","debrief_survey","employee_added","combineReducers","state","action","type","payload","_","get","message","data","error","_all_survey_types","push","to_delete","completion_status","completion_status_text","deleted_on","token_message","culture_survey_type","mood_survey_type","leadership_survey_type","personality_survey_type","length","curr_que","full_response","response_code","culture_selected_answer","filter","an","ans","map","p","parseInt","_culture_high_ans","leadership_selected","row_id","leader_id","_currentLeaderQues","_leadership_high_ans","_personality_high_ans","_modularQues","component","additional_type","selected","briefresponse","organization_info","survey_sequence","localStorage","clear","chatgpt","marketingRoi","GET_START_SURVEY","axios","urlconfig","GET_CULTURE_QUESTIONS","GET_MOOD_QUESTIONS","GET_LEADERSHIP_QUESTIONS","GET_PERSONALITY_QUESTIONS","GET_PREVIOUS_RESPONSE","POST_ANSWER","post","START_PERSONALITY_ANSWER","UPDATE_PERSONALITY_ANSWER","patch","GET_PERSONALITY_ANSWER","GET_BRIEF_SURVEY","UPDATE_BRIEF_RESPONSE","query","POST_BRIEF_RESPONSE","GET_BRIEF_MODULAR_QUESTIONS","GET_CHAT_GPT_SUMMARY","GET_CHAT_GPT_SUMMARY_MULTI","POST_MARKETING_ROI","DEBRIEF_SURVEY","ADD_EMPLOYEE_TO_DEBRIEF_SURVEY","getCultureQuestions","loadCultureQuestions","getModularQuestions","loadModularQuestions","getMoodQuestions","loadMoodQuestions","getLeadershipQuestions","loadLeadershipQuestions","getPersonalityQuestions","loadPersonalityQuestions","getPreviousResponse","loadPreviousResponse","index","put","call","api","json","takeLatest","takeEvery","all","i","fetchPersonality","answerPersonality","updatePersonality","personalityUpdate","startPersonality","personalityStart","addAnswer","answerAdd","postAnswer","answerSubmit","getStartSurvey","loadStartSurvey","getBriefSurveQuestions","loadBriefSurveyQuestions","briefSurveyResponsePost","postPostSurveyResponse","getUpdateResponse","UpdateResponsePost","fetchUpdateResponse","UpdateResponseFetch","stored_response","getChatGptSummary","loadChatGptSummary","getChatGptSummaryMulti","loadChatGptSummaryMulti","getMarketingRoi","loadMarketingRoi","getDebriefSurvey","loadDebriefSurvey","addEmployeeToDebrief","postEmployeeToDebrief","rootSaga","fork","Questions","Answers","Start","BriefSurvey","ChatGpt","MarketingRoi","DebriefSurvey","sagaMiddleware","createSagaMiddleware","onError","store","dispatch","composeWithDevTools","createStore","rootReducer","applyMiddleware","run","Container","styled","div","Card","IMG","img","Title","Text","Health","src","Image","Loading","style","height","width","display","alignItems","justifyContent","Dimmer","active","inverted","Loader","Oval","props","color","Selection","Icon","name","size","margin","Emotion","end","onClick","selectEmotion","mood","ColorStrip","FlippedCard","values","item","find","e","key","CardInner","flipped","CardFront","Mood","Feelings","Icons","Curiosity","Enjoyment","Motivation","Discontent","Stress","Anger","MoodCard","setFlip","VerticalLine","MoodSelect","remove","cursor","MoodQuestion","moodQuestions","useDispatch","React","useState","emotions","setEmotion","emotion_id","em","Pick","EmotionContainer","sort","a","b","parseFloat","flexDirection","flexWrap","marginBottom","maxWidth","x","_emot","score","feeling","Filler","Next","askComments","Question","EmotionCard","comment","setComment","useEffect","setSelected","Top","Definition","TextContainer","TextBox","value","onChange","target","onBlur","UpdateComments","rows","maxLength","disabled","placeholder","Total","textarea","Reflection","setSize","useLayoutEffect","updateSize","window","innerWidth","innerHeight","addEventListener","removeEventListener","useWindowSize","shift","setShift","getClicked","TopText","SubText","ButtonContainer","Back","newSelect","back","Object","keys","FinishNext","SubmitAnswers","SubTitle","ImageContainer","Intro","Pic","role","next","SlideDirection","SurveyContainer","deviceDetected","deviceDetect","moodAnswers","setMoodAnswer","q","setQ","get_answers","useSelector","shallowEqual","selectedMood","isMobile","osName","survey_type","slice","startSurvey","scrollTo","mood_cur_ques","mood_ques_start","browserName","SwitchTransition","CSSTransition","timeout","classNames","moods","SelectTeamMember","teamList","setIntQuestion","get_questions","employeeId","SubmitAnswer","OtherTeam","tl","DropDownContainer","Dropdown","fluid","multiple","search","selection","options","t","select","StyledSubmitButton","enabled","PrettoSlider","withStyles","root","thumb","backgroundColor","border","marginTop","marginLeft","boxShadow","valueLabel","left","track","borderRadius","rail","Slider","prevScore","cultureAnswers","setStage","currQuestion","setValue","started","setStarted","FoundAns","ca","answer","area","text","Anchor","BackImg","Visual","Value","ColoredValue","textAlign","Change","console","log","SliderContainer","valueLabelDisplay","aria-label","event","newValue","Button","span","SaveAnswer","askFollowUp","team_avg","previous_score","Questioned","ConditionQuestion","Sub","ChangedComments","StyledButton","level","replaceAll","TeamHealth","intQuestion","setAnswer","maxQuestion","setAskFollowUp","indResponse","setIndResponse","teamResponse","setTeamResponse","previous","individual_response","responses","team_response","Number","setQuestion","getAnswer","question","StyledContainer","TeamIntelligence","setSurveyType","useParams","setIntro","setEmployeeId","setTeamList","setCurrQuestion","setMaxQuestion","setCultureAnswers","SubmitTeam","no","culture_cur_comment","comments","SetName","first_name","last_name","email","team","team_list","avatar","picture","BlankUser","Response","s","leaderList","fontWeight","Box","visible","Answer","CommentBox","undefined","ResponseContainer","top","QuestionContainer","QuestionItem","Num","Rating","SubmitButton","leadershipAnswersList","LeadershipQuestion","fullName","setFullName","leaderSelected","setLeaderSelected","showComment","setShowComment","NoClick","category","member","replace","c","Submit","Dismiss","onComplete","MultiLeaderItem","leaderPic","setLeaderPic","ourRef","useRef","ref","onClicked","BlankImage","NextLeader","StartAnswer","Avatar","LeaderContainer","Name","Leader","MultiQuestion","leaderCount","selectedLeader","setSelectedLeader","answerCount","setAnswerCount","selectLeader","Leadership","leadershipQuestionList","setAnswers","setQuestions","setLeaderList","get_leadership_answers","get_leader_list","get_leader_count","answer_copy","SelectedLeader","ll","End","survey","onTime","Date","endDate","setEndDate","format","CustomMessage","toLocaleString","Index","Content","paddingLeft","completed","curr_ques","progress","SectionContainer","surveyType","Selected","SideBar","surveyData","setSurveyData","top_margin","answered","CheckCultureProgress","alt","fontSize","marginRight","CounterContainer","Counter","Space","SurveyList","BottomBar","setDirection","highAnswer","setHighAnswer","zIndex","Survey","tokenMatched","setTokenMatched","cultureQuestionList","setCultureQuestionList","cultureAnswersList","setCultureAnswersList","moodQuestionList","setMoodQuestionList","setLeadershipQuestionList","setLeadershipAnswersList","cultureQues","setCultureQues","moodQues","setMoodQues","leadershipQues","setLeadershipQues","loading","setLoading","surveyCompleted","setSurveyCompleted","surveyStatus","setSurveyStatus","surveyDeletedOn","setSurveyDeletedOn","setTimeout","get_curr_direction","max_response","nextQ","icon","Header","NoToken","words","PersonalityQuestion","highAns","setShowPrev","setShowNext","nextQuestion","PersonalitySurvey","pQuestion","setPQuestion","personalityQuestionList","setPersonalityQuestionList","personalityAnswerList","setPersonalityAnswerList","showPrev","showNext","delayResponse","setDelayResponse","personality_ans","onboard","employee_id","temp","saveAnswer","surveyEnabled","customElement","subTitle","REVERSE","0","1","2","3","4","5","6","7","8","9","10","RunRules","get_brief_response","MinQuestions","MaxQuestions","MinQuestionSet","MaxQuestionSet","maxRows","minRows","rules","getMax","ru","getMin","_revisedValues","val","reverse","m","_ques","ques_order","mm","dimension","factor","fr","es","filterQuestions","averages","criteria","sortedAverages","average","result","avg","relevantQuestions","FactorScoreRules","orgRules","questionAnswers","surveyStandards","factor_averages","groupedData","forEach","entry","totalResponse","count","benchmark","pillars","arrayData","split","get_benchmark_diff_by_factor","get_average_by_factor","CategoryQuestions","prevResponse","employeeCategory","quesResponse","setQuesResponse","formatOptions","setFormatOptions","hasValue","setHasValue","EmployeeCat","name_id","so","getOptionLabel","option","getOptionValue","save","subfactor","priority","button","NewValidationToken","uuidv4","CommentsFeedback","ruleFeedback","setCompletedRuleFeedback","setRuleFeedbackComplete","setFeedbackKey","setRuleFeedback","language","textColor","setAskFeedback","setComplete","totalQues","setTotalQues","currQues","setCurrQues","open","setOpen","closed","setClosed","phase","setPhase","phase2resp","setPhase2resp","phase2Ques","setPhase2Ques","finish","setFinish","prompt","setPrompt","respValue","setRespValue","responseList","setResponseList","getResponse","setGetResponse","get_chat_gpt","current","clearTimeout","_resList","follow_up","follow_up_question","_prompt","SubmitChatGpt","getTypeWriter","document","querySelectorAll","onInit","typewriter","changeDelay","typeString","pauseFor","callFunction","start","close","addEndListener","node","done","f","Score","el","Hidden","show","Button2","EmptyModal","Modal","dimmer","onClose","ModalContent","Actions","Phase2","inline","SliderQ","preValue","saveResult","reversed","res1","setRes1","muiTheme","createMuiTheme","overrides","MuiSlider","mark","isNaN","isInt","ThemeProvider","theme","step","marks","min","max","ClickedOnSlider","onChangeCommitted","commitSlide","Scale","QuestionTemplate","saveQuestionAnswer","resp","order","ExistingDataFound","validationToken","setQuestionNo","setVisualQuestionNo","setShowIntro","setShowIntro2","storedResponse","validToken","setValidToken","timed","setTimed","header","defaultMessage","setDefaultMessage","_validating","timer1","basic","CheckboxWrapper","CheckLabel","CheckboxContainer","svg","HiddenCheckbox","input","attrs","StyledCheckbox","checked","Checkbox","className","defaultChecked","viewBox","points","label","ConsentText","Privacy","Agreement","agreementText","handleConsentCb","hasConsented","to","href","rel","submitAnswer","scale","OutcomeQuestion","currentQuestion","_answer","ValuesBuilder","autoComplete","required","ModularQuestion","setModularComplete","briefResponseId","setEnableNavigation","currentQuestionIndex","setCurrentQuestionIndex","setCurrentQuestion","allQuestions","setAllQuestions","values_builder","feedback_builder","outcome_question","questionInfo","setQuestionInfo","get_modular_questions","_totalQuestions","sno","question_type","on_date","ask_again","brief_schedule_id","questions_list","oq","sub_type","currentresponse","_answers","_questionType","updatedQuestionInfo","MarkCurrentComplete","Outcome","SpinnerContainer","EdiSurvey","showIntro","noResponse","setNoResponse","ruleFeedbackComplete","askFeedback","enableNavigation","completedRuleFeedback","total","runningTotal","culture","sequence","totalQuestions","setTotalQuestions","categoryQues","setCategoryQues","setEmployeeCategory","setValidationToken","setBriefResponseId","storedResponseFound","setStoredResponseFound","briefResponse","setBriefResponse","questionNo","visualQuestionNo","setPrevResponse","checkRole","setCheckRole","setQuestionAnswers","thankMessage","setThankMessage","resetAnswers","setResetAnswers","surveyDeleted","setSurveyDeleted","primaryCategory","setPrimaryCategory","neverAskResponse","setNeverAskResponse","prevFoundResponse","setPrevFoundResponse","consentProvided","setConsentProvided","setAskComments","modularComplete","_questionNo","skip","prevQuestion","PreCloseSurvey","RuleRun","categories","CatRes","ct","factors","idx","flat","arrange_Questions","employee_category","_id","_response","subfactorFound","_subfactor","SurveyName","survey_name","primary_question","pq","aq","parent_id","_seq","_prevResp","_neverAskResp","running_total","CatLength","from","quesType","_empCat","ec","value_id","quesLength","v","includes","commLength","QueType","IntroQuestionAnswer","current_category","category_answer","high_category","saveCategoryAnswer","_complete","consentText","customAgreement","ExistingData","consentCheckedCb","CompleteCategories","_completeCategories","_completeQuestions","_completeComments","checkQuestion","Main_section","padding","hrf","Shapes","Wrapper","Shape2","S2","Shape3","S3","Shape1","S1","EN17","EN18","EN19","EN20","FR17","FR18","FR19","FR20","EN22","lineHeight","FR22","elementRef","agree1","setAgree1","agree2","setAgree2","agree3","setAgree3","agree4","setAgree4","agree5","setAgree5","agree6","setAgree6","agree7","agree8","setAgree8","expand1","setExpand1","expand2","setExpand2","expand3","setExpand3","expand4","setExpand4","expand5","setExpand5","expand6","setExpand6","expand7","setExpand7","Logo","Section","expanded","All","T2","Expand","Language","Choices","L1","fadeInOut","keyframes","LogAnimationContainer","LogAnimation","fill","xmlns","d","x1","y1","x2","y2","gradientUnits","stopColor","offset","stopOpacity","fr_description","description","isNA","setNA","NA","goForward","selectedButton","setSelectedButton","binary","isBinary","handleButtonClick","Controls","BackButton","Comments","saveCommentAnswer","reset_stored_data","removeItem","location","reload","hasMatch","list1","list2","some","OtpSurvey","useSearchParams","searchParams","direct_language","delayedShow","setDelayedShow","employeePermissionExtraDet","setEmployeePermissionExtraDet","checkResponse","setCheckResponse","surveyFeedbackResp","setSurveyFeedbackResp","surveyPersonalityResp","setSurveyPersonalityResp","surveyModularResp","setSurveyModularResp","setLanguage","showLanguage","setShowLanguage","submitError","setSubmitError","get_errors","visualQuestion","dimensions","employee_permission_extra_details","rq","q_order","persona","goBack","questCount","catCount","commCount","setItem","request","RESP","JSON","parse","detail","get_french_name","french_name","emp_survey_structure","survey_structure","get_english_name","en_name","ModuleContainer","clientHeight","EndTextFR","IntroText","OtpExistingData","Likert","TakeAway","res2","setRes2","res3","setRes3","r","ThankYou","errorMessage","SelectedQuestion","setErrorMessage","ErrorMessage","Template","ReLoadPage","Img","Form","Option","Inclusion","Blink","primary_question_subfactor","primary_question_non","TestSubfactorQuestion","steps","primaryQues","setPrimaryQues","Field","Radio","stringify","ModularSurveyQuestionTypes","personalityWordList","saveUpdatedAnswers","currentQuestionDet","sliderValue","setSliderValue","isDragging","setIsDragging","clickedVal","setClickedVal","handleMouseMove","trackRect","getElementById","getBoundingClientRect","clientX","Math","saveValue","handleMouseUp","round","handleTouchMove","touches","handleTouchEnd","handleMouseDown","handleTouchStart","QuesResp","clicked","ques_sort_order","SaveResponse","lerpColor","color1","color2","g","thumbPosition","dots","Array","Dot","TrackWrapper","rect","onMouseDown","onTouchStart","Track","DotsContainer","Thumb","interpolatedColor","getThumbColor","Tooltip","Triangle","ScaleLabelsContainer","ScaleLabel","qualifier","team_qualifier","teamName","Qualifier","bold","QuestionText","MultipleChoice","choices","isVisible","visibleChoices","setVisibleChoices","selectedChoice","setSelectedChoice","timeoutIds","choice","timeoutId","prevVisibleChoices","ChoiceContainer","ListContainer","StyledChoice","delay","ListItem","isSelected","RadioInput","handleSelection","Checkmark","Choice","fadeInMoveDown","css","ul","ProgressBar","quesId","progressPercentage","isLocalhost","hostname","ProgressBarContainer","ProgressText","FilledBar","StyledBackButton","StyledLeaveButton","StyledSkipButton","CustomButton","children","Feedback","setAskNextQuestion","skipNextQuestion","sortOrder","feedbackText","setFeedbackText","textareaRef","scrollHeight","FeedbackContainer","Circle","Description","StyledTextarea","ResponseObj","survey_q_id","org_ref_ques_order","skipNext","onInput","Highlight","CustomDropdown","listId","onSelect","questionLength","selectedOption","DropdownWrapper","DropdownButton","Chevron","DropdownContent","DropdownItem","handleSelect","getOptionName","Categories","organizationName","public_intro","selectedCategory","setSelectedCategory","selectedCategoryQues","setSelectedCategoryQues","selectedCategoryOptions","setSelectedCategoryOptions","CatQues","cq","category_question_id","op","CategoriesContainer","fr_name","es_name","fr_question","EN1","FR1","h2","Screen1","Bold","Screen2","ai_disclaimer","Emoji","Disclaimer","Linked","Screen5","disableNext","agree","setAgree","EN25","FR25","EN26","FR26","Screen7","Reminder","splitText","boldText","normalText","HockeyCustom","translations","LogoArea","Logo2","LogoIL","welcome","subtitle","whatYouNeedToKnow","timeCommitment","honesty","anonymity","dataUsage","interviewOpportunity","beforeYouBegin","quietTime","candidResponses","tollFree","moreInfo","strongNotice","important","EN","nextButton","FR","recommendations","intro_type","HockeyCustom_v2","HockeyCustom_v3","Introduction","IntroductionContainer","screen_id","renderIntro","BulletProgressBar","BulletContainer","Bullet","SkipModal","SkipQuestion","Follow_up","refQues","handleNext","prompt_feedback","prompt_question","org_ref_ques_id","org_ques_order","Skip","IntroSection","emoji","Values","statement","HockeyCompleted2","setStep","QT","whiteSpace","Completed","statusText","completedOn","whitelabel","org_info","setOrgInfo","customMessage","setCustomMessage","endMessage","org_data","Hockey_v2","Hockey_v3","languages","navigate","useNavigate","SelectLanguage","lang","InnerContainer","ES","Options","IntroductionProgress","intro_id","buttonType","setClicked","totalIntro","setIsVisible","surveyFinished","setSurveyFinished","isIntroductionActive","handleBack","TransitionGroup","enter","exit","onEntered","onExited","FollowUp","Comment","renderModule","renderButtons","selectedResponse","setIsClicking","setSelectedResponse","buttonsVisible","ErrorList","errorKeys","setErrorKeys","err","RowContainer","hexToRGBA","hex","alpha","charAt","Error","cleanHex","finalHex","char","join","Dial","strokeWidth","borderPercentage","borderColor","borderCircleRadius","circleCircumference","PI","borderLength","circlePosition","angle","radius","cos","y","sin","getCirclePosition","cx","cy","opacity","transform","stroke","strokeLinecap","strokeDasharray","text-anchor","alignment-baseline","font-size","font-weight","font-family","readiness_questions","roi_questions","Q6","Q8","ROI","showerrors","setEmail","setShowErrors","handleSubmit","pristine","setPristine","calculate_readiness","readiness","calculate_roi","roi","FormSubmit","String","toLowerCase","match","ValidateEmail","getLanguage","getColor","IMG2","Smiley","Data","Block","P","DialContainer","Email","InputContainer","EmailInput","onKeyDown","keyCode","MultiSelect","CheckboxInput","setResponses","showErrors","get_marketingRoi","setVh","vh","documentElement","setProperty","body","preventDefault","questionId","responseId","prevResponses","query_string","finished","prevArray","PersonalityIntro","Personality","UpdateAnswer","InSurveyPersonality","setShowInSurveyPersonality","CompletedPersonality","first","animate","ArrowIcon","clip-path","background","organization","surveyName","primary","organizationInfo","getOrgName","EN_ORG","FR_ORG","page","survey_logo_end","T","TitleTop","Text1","BR","Text2","Text3","bottom","Text4","A","br","customContent","setPage","setShow","TextWrapper","ArrowContainer","control","base","isFocused","styles","useTranslation","getPromptLanguage","getQuestion","getBottomQuestionLanguage","getTopQuestionLanguage","SubTextChange","setBackground","Info","langugage","questionGroup","mod_answers","modResp","modResponses","Audit","i18n","showIntro2","showIntro3","setShowIntro3","feedbackKey","showInSurveyPersonality","setSurveyName","setOrganizationInfo","setSurveyModules","changeLanguage","SurveyPersonality","organization_services","os","sp_earlier","Intro2QuestionAnswer","getBackgroundColor","survey_background","getTextColor","survey_button_text","getSurveyFont","survey_font","end_message","messages","font","toggle","CCIntro","survey_logo","fade","Intro2","organization_name","intro2_fr","intro2","survey_qualifier","Intro3","comment_intro","transition","fadeout","transition2","THANKYOU_MESSAGE","AuditExistingDataFound","resetValidationToken","setCurrentQuestionNo","setCurrentQuestionDet","setQuestionSequenceMap","setShowingStoredResponse","NUMS","skipped","NavigationButtons","introQuestion","StartSurvey","disabledNext","currentQues","sort_order","buttonText","MultiFollowUp","localToken","setRefQues","followUpStrings","followUpQuestions","question_no","_question","SliderOutcome","resetResponsesOnChange","sliderScale","setSliderScale","resetOnChange","sq","get_slider_words","QuestionOutcome","QuestionComments","askOnRefResp","askOnRefQID","askOnRef","isInteger","_refQuesResp","currentAskRefVal","skipQuestion","getDescription","PersonalityChoice","perListNo","QuestionValues","LOCAL_VALIDATION_TOKEN","getItem","AuditSurvey","setOrgRules","showingStoredResponse","questionList","setQuestionList","setLanguages","setStoredResponse","formPayload","setFormPayload","setOrganizationName","setSurveyStandards","askNextQuestion","modSurveyRule","setModSurveyRule","currentQuestionNo","storedTitle","setStoredTitle","setTeamName","setSortOrder","setDisableNext","setHeight","updateHeight","AuditRunRules","_newToken","ModularSurvey","editable","ModularSurveyCheck","survey_standards","question_sort_order","question_titles","EmpPrimary","primaryFrench","_askComments","ac","uuid_str","trim","valid_token","visualTotal","hockeyIntro","survey_sort_order","feedbackLength","catQuesNo","category_id","quesListNo","TotalRows","feedListNo","quesRefId","comListNo","inPerListNo","modSur","ModQues","catTotal","_askOnRef","_quesOnRef","MainQues","mq","ask_on_ref","ref_question_id","filteredResults","ai_follow_up","aiFollowUp","uniqueName","_aiFollowUpList","fq","q_id","introduction","_currQuestion","NextQues","_checkFdbk","_checkResp","curQuesNo","typeOf","_feedbackResp","_questionAnswers","_survey_personality","_modular_response","_curQuesDet","fb","modularQuestion","sc","_modResps","_questionSequnce","quesSeq","_refQues","_curQues","AuditExistingData","newValidationToken","progress_bar","progress_bar2","intro_title","refFollowUpQues","_questionSequenceMap","version","version_description","fadeIn","questionsList","MoveDirection","Transition","TodoList","AnimateOne","change","AnimateTwo","AnimateThree","AnimateFive","number","AnimateText","App","setState","wholeCont","setWholeCont","setChange","todoList","setTodoList","ChangeThis","NumberList","randomNumber","setRandomNumber","Divider","horizontal","as","mode","in","td","InitialReport","HockeyIntro","Courtex","SurveyStart","debriefSurvey","setDebriefSurvey","formErrors","setFormErrors","surveyCreated","setSurveyCreated","get_debrief_survey","submitted","totalErrors","survey_id","Powered","Blue","Chat","getCustomIntro","content","success","Row","Input","ChangeEmailId","email_id","setText","setToken","onSubmit","form","h1","SurveyStartHome","path","element","Default","ChatContainer","MessageContainer","Recon","inputRef","changeQuestion","focus","handleKeyDown","Center","Bottom","ChatInput","SendButton","disabledStyle","SmallText","LOGO","ButtonArea","ES1","setScreen","saveResponse","structureENPrompt","structureFRPrompt","structureESPrompt","Conversation","structurePrompt","loading01","Finish","Demo","screen","setResponse","Sample","renderScreen","routes","Context","OTPV2","OTP","use","initReactI18next","init","resources","en","translation","lng","interpolation","escapeValue","routing","useRoutes","Boolean","ReactDOM","render","navigator","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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","file":"static/js/main.f09707e8.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Ilogo.f71bc5f6.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/fr.398fe564.png\";","module.exports = __webpack_public_path__ + \"static/media/People.2780fd91.png\";","module.exports = \"data:image/png;base64,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\"","export const serverApi = 'https://api.innerlogic.com'\nexport const staginApi = 'https://stg-api.innerlogic.ca'\nexport const localApi = 'http://127.0.0.1:8000'\n\n// Publishable key\nexport const StripeKey = 'pk_test_bowWtykmtAwZxvD0bvdXEycG00LczLxeDB'\nexport const currentApi = serverApi \n\nexport const Environment = 'Development'\n\nexport const SentryDSN_DEV = \"\" \nexport const SentryDSN_PROD = \"https://b353fc5849e94e14be0255bb24eff1fb@o1167548.ingest.sentry.io/6258731\"\nexport const SentryDSN_STG = \"https://77a3a75262414b558301b2aeb57c7b3b@o1167548.ingest.sentry.io/6258797\"\n\nexport const config = {\n loginapi: `${currentApi}/api/account`,\n authapi: `${currentApi}/api/rest-auth`,\n surveyapi: `${currentApi}/api/survey`,\n appapi: `${currentApi}/api/organization`,\n website: `${currentApi}/api/web`,\n};\nexport default config\n","export const ALL_ERRORS = \"ALL_ERRORS\";\nexport const CLEAR_ALL ='CLEAR_ALL';\nexport const VALIDATION_ERRORS = 'VALIDATION_ERRORS'\nexport const AUTH_ERRORS = 'AUTH_ERRORS'\nexport const CLEAR_ERRORS ='CLEAR_ERRORS';\nexport const SG_CLEAR_ERRORS ='SG_CLEAR_ERRORS';\nexport const SG_CLEAR_ALL ='SG_CLEAR_ALL';\nexport const SET_ERROR_STATE = \"SET_ERROR_STATE\"\n//\nexport const GET_ERRORS = \"GET_ERRORS\";\nexport const CREATE_MESSAGE = \"CREATE_MESSAGE\";\nexport const UPDATE_MESSAGE = \"UPDATE_MESSAGE\";\n// \n// \nexport const PENDING_ANSWERS = \"PENDING_ANSWERS\"\nexport const SET_ANSWERS = \"SET_ANSWERS\"\nexport const GET_ANSWERS = \"GET_ANSWERS\";\nexport const LOAD_ANSWERS = \"LOAD_ANSWERS\"; //saga use this\nexport const DELETE_ANSWER = \"DELETE_ANSWER\";\nexport const PULL_ANSWER = \"PULL_ANSWER\"; //saga use this\nexport const FETCH_ANSWER = \"FETCH_ANSWER\";\nexport const FETCH_CULTURE_ANSWER = \"FETCH_CULTURE_ANSWER\";\nexport const FETCH_MOOD_ANSWER = \"FETCH_MOOD_ANSWER\";\nexport const SELECTED_LEADERSHIP = \"SELECTED_LEADERSHIP\";\nexport const RESET_LEADERSHIP = 'RESET_LEADERSHIP';\nexport const FETCH_LEADERSHIP_ANSWER = \"FETCH_LEADERSHIP_ANSWER\";\n\n//\nexport const UPDATE_ANSWER = 'UPDATE_ANSWER'; //saga use this\nexport const EDIT_ANSWER = 'EDIT_ANSWER';\nexport const ADD_ANSWER = 'ADD_ANSWER';\nexport const ADD_CULTURE_ANSWER = 'ADD_CULTURE_ANSWER';\nexport const ADD_MOOD_ANSWER = 'ADD_MOOD_ANSWER';\nexport const ADD_TEAM_ANSWER = 'ADD_TEAM_ANSWER';\nexport const MOOD_UPDATE_COMMENTS = 'MOOD_UPDATE_COMMENTS';\nexport const ADD_LEADERSHIP_ANSWER = 'ADD_LEADERSHIP_ANSWER';\n//\nexport const ADD_PERSONALITY_ANSWER = 'ADD_PERSONALITY_ANSWER';\nexport const FETCH_PERSONALITY_ANSWER = \"FETCH_PERSONALITY_ANSWER\";\nexport const GET_PERSONALITY_ANSWER = \"GET_PERSONALITY_ANSWER\";\nexport const SG_GET_PERSONALITY_ANSWER = \"SG_GET_PERSONALITY_ANSWER\";\nexport const UPDATE_PERSONALITY_ANSWER = \"UPDATE_PERSONALITY_ANSWER\";\nexport const SG_UPDATE_PERSONALITY_ANSWER = \"SG_UPDATE_PERSONALITY_ANSWER\";\nexport const START_PERSONALITY_ANSWER = \"START_PERSONALITY_ANSWER\";\nexport const SG_START_PERSONALITY_ANSWER = \"SG_START_PERSONALITY_ANSWER\";\n//\nexport const SAVE_ANSWER = 'SAVE_ANSWER'; //saga use this\nexport const POST_ANSWER = 'POST_ANSWER';\nexport const SUBMIT_ANSWER = 'SUBMIT_ANSWER'; //saga use this\nexport const CLEAR_ANSWER = 'CLEAR_ANSWER';\n// \nexport const PENDING_QUESTIONS = \"PENDING_QUESTIONS\";\n//\nexport const PENDING_CULTURE_QUESTIONS = \"PENDING_CULTURE_QUESTIONS\";\nexport const PENDING_MOOD_QUESTIONS = \"PENDING_MOOD_QUESTIONS\";\nexport const PENDING_LEADERSHIP_QUESTIONS = \"PENDING_LEADERSHIP_QUESTIONS\";\nexport const PENDING_PERSONALITY_QUESTIONS = \"PENDING_PERSONALITY_QUESTIONS\";\n//\nexport const GET_CULTURE_QUESTIONS = \"GET_CULTURE_QUESTIONS\";\nexport const GET_MOOD_QUESTIONS = \"GET_MOOD_QUESTIONS\";\nexport const GET_LEADERSHIP_QUESTIONS = \"GET_LEADERSHIP_QUESTIONS\";\nexport const GET_PERSONALITY_QUESTIONS = \"GET_PERSONALITY_QUESTIONS\";\nexport const GET_PREVIOUS_RESPONSE = \"GET_PREVIOUS_RESPONSE\"; \nexport const PREVIOUS_RESPONSE_PENDING = \"PREVIOUS_RESPONSE_PENDING\"; \nexport const LOAD_CULTURE_QUESTIONS = \"LOAD_CULTURE_QUESTIONS\"; //saga use this\nexport const LOAD_MOOD_QUESTIONS = \"LOAD_MOOD_QUESTIONS\"; //saga use this\nexport const LOAD_LEADERSHIP_QUESTIONS = \"LOAD_LEADERSHIP_QUESTIONS\"; //saga use this\nexport const LOAD_PERSONALITY_QUESTIONS = \"LOAD_PERSONALITY_QUESTIONS\"; //saga use this\nexport const LOAD_PREVIOUS_RESPONSE = \"LOAD_PREVIOUS_RESPONSE\"; //saga use this\nexport const DELETE_QUESTIONS = \"DELETE_QUESTIONS\";\n//\nexport const ADD_QUESTIONS = \"ADD_QUESTIONS\";\nexport const FETCH_QUESTIONS = \"FETCH_QUESTIONS\"; //saga use this\nexport const UPDATE_QUESTIONSS = 'UPDATE_QUESTIONSS'; //saga use this\nexport const EDIT_QUESTIONS = 'EDIT_QUESTIONS'\nexport const CLEAR_QUESTIONS = 'CLEAR_QUESTIONS';\n//\nexport const PENDING_ALL_MODULAR_QUESTIONS = 'PENDING_ALL_MODULAR_QUESTIONS';\nexport const GET_ALL_MODULAR_QUESTIONS = 'GET_ALL_MODULAR_QUESTIONS'; \nexport const GET_MODULAR_QUESTIONS = \"GET_MODULAR_QUESTIONS\"\nexport const SG_GET_ALL_MODULAR_QUESTIONS = 'SG_GET_ALL_MODULAR_QUESTIONS'; //saga use this\n//\nexport const LOAD_EMOTION_DEFINITIONS = 'LOAD_EMOTION_DEFINITIONS'; //saga use this\nexport const GET_EMOTION_DEFINITIONS = 'GET_EMOTION_DEFINITIONS'\n//\nexport const LOAD_EMOTIONS = 'LOAD_EMOTIONS'; //saga use this\nexport const GET_EMOTIONS = 'GET_EMOTIONS'\n//\nexport const LOAD_MOODS = 'LOAD_MOODS'; //saga use this\nexport const GET_MOODS = 'GET_MOODS'\n//\nexport const LOAD_PERSONALITY = 'LOAD_PERSONALITY'; //saga use this\nexport const GET_PERSONALITY = 'GET_PERSONALITY'\n//\nexport const LOAD_TRAIT_DATA = 'LOAD_TRAIT_DATA'; //saga use this\nexport const GET_TRAIT_DATA = 'GET_TRAIT_DATA'\n//\nexport const LOAD_CULTURE_DATA = 'LOAD_CULTURE_DATA'; //saga use this\nexport const GET_CULTURE_DATA = 'GET_CULTURE_DATA'\n\nexport const SG_GET_CULTURE_DATA = 'SG_GET_CULTURE_DATA'\n//\nexport const PENDING_SURVEY = \"PENDING_SURVEY\";\n//\nexport const START_SURVEY = 'START_SURVEY'; //saga use this\nexport const SG_START_SURVEY = 'SG_START_SURVEY'\n//\nexport const START_BRIEF_SURVEY = 'START_BRIEF_SURVEY'; \nexport const SG_START_BRIEF_SURVEY = 'SG_START_BRIEF_SURVEY'; //saga use this\n// sends updated answers to server\n// export const UPDATE_BRIEF_SURVEY_ANSWERS = 'UPDATE_BRIEF_SURVEY_ANSWERS'; \n// export const SG_UPDATE_BRIEF_SURVEY_ANSWERS = 'SG_UPDATE_BRIEF_SURVEY_ANSWERS'; //saga use this\n// \nexport const NEW_VALIDATION_TOKEN = 'NEW_VALIDATION_TOKEN'\nexport const RESET_VALIDATION_TOKEN = \"RESET_VALIDATION_TOKEN\";\n//\n// export const CREATE_BRIEF_SURVEY = 'CREATE_BRIEF_SURVEY'; \n// export const SG_CREATE_BRIEF_SURVEY = 'SG_CREATE_SURVEY'; //saga use this\n//\nexport const POST_BRIEF_RESPONSE = 'POST_BRIEF_RESPONSE';\n// sends updated answers to server\nexport const UPDATE_STORED_RESPONSE = \"UPDATE_STORED_RESPONSE\";\n\nexport const UPDATE_BRIEF_RESPONSE = 'UPDATE_BRIEF_RESPONSE'; \nexport const SG_UPDATE_BRIEF_RESPONSE = 'SG_UPDATE_BRIEF_RESPONSE';\n// brings asnwers data over api\nexport const UPDATE_BRIEF_RESPONSE_ANSWERS = 'UPDATE_BRIEF_RESPONSE_ANSWERS'; \nexport const SG_UPDATE_BRIEF_RESPONSE_ANSWERS = 'SG_UPDATE_BRIEF_RESPONSE_ANSWERS'; \n// submit the final response\nexport const SG_POST_BRIEF_RESPONSE = 'SG_POST_BRIEF_RESPONSE'; //saga use this\n\n//\nexport const GET_CHAT_GPT_SUMMARY = 'GET_CHAT_GPT_SUMMARY';\nexport const CLEAR_CHAT_GPT_SUMMARY = 'CLEAR_CHAT_GPT_SUMMARY'; \nexport const PENDING_CHAT_GPT_SUMMARY = 'PENDING_CHAT_GPT_SUMMARY'; \nexport const SG_GET_CHAT_GPT_SUMMARY = 'SG_GET_CHAT_GPT_SUMMARY'; //saga use this\nexport const SG_GET_CHAT_GPT_SUMMARY_MULTI = 'SG_GET_CHAT_GPT_SUMMARY_MULTI'; //saga use this\n//\nexport const PENDING_MARKETING_ROI = \"PENDING_MARKETING_ROI\";\nexport const CLEAR_MARKETING_ROI = 'CLEAR_MARKETING_ROI'; \nexport const MARKETING_ROI = 'MARKETING_ROI';\nexport const SG_MARKETING_ROI = 'SG_MARKETING_ROI';\n//\nexport const PENDING_DEBRIEF_SURVEY = 'PENDING_DEBRIEF_SURVEY';\nexport const CLEAR_DEBRIEF_SURVEY = 'CLEAR_DEBRIEF_SURVEY';\nexport const DEBRIEF_SURVEY = 'DEBRIEF_SURVEY';\nexport const SG_DEBRIEF_SURVEY = 'SG_DEBRIEF_SURVEY'; //saga use this\nexport const ADD_EMPLOYEE_TO_DEBRIEF_SURVEY = 'ADD_EMPLOYEE_TO_DEBRIEF_SURVEY';\nexport const SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY = 'SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY'; //saga use this\n//\n","import _ from \"lodash\";\nimport {\n GET_ERRORS,\n ALL_ERRORS,\n VALIDATION_ERRORS,\n CLEAR_ERRORS,\n} from \"constants/actions\";\n\nconst initialState = {\n msg: {},\n status: {},\n errors: {},\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_ERRORS:\n // console.log('reducer error payload', action.payload)\n return {\n msg: action.payload.msg,\n status: action.payload.status,\n };\n case ALL_ERRORS:\n // console.log('reducer error payload', action)\n\n if (_.get(action, \"message.data\")) {\n return {\n msg: action.message,\n errors: action.message.response.data,\n status: action.message.response.status,\n };\n } else if (_.get(action, \"message\")) {\n return {\n msg: action.message,\n errors: action.message.response,\n status: action.message.response,\n };\n } else {\n return {\n msg: action.message,\n errors: action,\n status: action,\n };\n }\n\n case VALIDATION_ERRORS:\n // console.log('reducer error payload', action)\n // console.log('reducer error payload', action.error.response.data)\n if (_.get(action, \"error\")) {\n return {\n msg: action.error.response,\n errors: action.error.response.data,\n status: action.error.response.status,\n };\n } else {\n return {\n msg: action,\n errors: action,\n status: action,\n };\n }\n\n case CLEAR_ERRORS:\n return {\n msg: {},\n status: {},\n errors: {},\n };\n\n default:\n return state;\n }\n}\n","import {\n PENDING_QUESTIONS,\n GET_CULTURE_QUESTIONS,\n GET_MOOD_QUESTIONS,\n GET_LEADERSHIP_QUESTIONS,\n GET_PERSONALITY_QUESTIONS,\n GET_PREVIOUS_RESPONSE,\n PENDING_ALL_MODULAR_QUESTIONS,\n GET_ALL_MODULAR_QUESTIONS,\n GET_MODULAR_QUESTIONS,\n PREVIOUS_RESPONSE_PENDING,\n PENDING_CULTURE_QUESTIONS,\n PENDING_MOOD_QUESTIONS,\n PENDING_LEADERSHIP_QUESTIONS,\n PENDING_PERSONALITY_QUESTIONS,\n FETCH_QUESTIONS,\n CLEAR_QUESTIONS,\n CLEAR_ALL,\n} from \"constants/actions\";\n\nconst initialState = {\n culture_questions: [],\n mood_questions: [],\n leadership_questions: [],\n personality_questions: [],\n modular_questions: [],\n previous_response: [],\n pending: false,\n pending_culture_questions: false,\n pending_mood_questions: false,\n pending_leadership_questions: false,\n pending_modular_questions: false,\n pending_personality_questions: false,\n previous_response_pending: false,\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case PENDING_QUESTIONS:\n return {\n ...state,\n pending: true,\n }\n case PENDING_CULTURE_QUESTIONS:\n return {...state,\n pending_culture_questions: true,\n pending: true,}\n case PENDING_MOOD_QUESTIONS:\n return {...state,\n pending_mood_questions: true,\n pending: true,}\n case PENDING_LEADERSHIP_QUESTIONS:\n return {...state,\n pending_leadership_questions: true,\n pending: true,}\n case PENDING_ALL_MODULAR_QUESTIONS:\n return {...state,\n pending_modular_questions: true,\n pending: true,}\n case PENDING_PERSONALITY_QUESTIONS:\n return {...state,\n pending_personality_questions: true,\n pending: true,}\n case PREVIOUS_RESPONSE_PENDING:\n return {...state,\n previous_response_pending: true,\n pending: true,}\n case GET_CULTURE_QUESTIONS:\n return {\n ...state,\n pending_culture_questions: false,\n culture_questions: action.payload,\n pending: false,\n };\n case GET_MOOD_QUESTIONS:\n return {\n ...state,\n pending_mood_questions: false,\n mood_questions: action.payload,\n pending: false,\n };\n case GET_LEADERSHIP_QUESTIONS:\n return {\n ...state,\n pending_leadership_questions: false,\n leadership_questions: action.payload,\n pending: false,\n };\n case GET_ALL_MODULAR_QUESTIONS:\n const _modularQues = state.modular_questions\n _modularQues[action.payload.component] = action.payload\n return {\n ...state,\n pending_modular_questions: false,\n modular_questions: _modularQues,\n pending: false,\n };\n\n case GET_MODULAR_QUESTIONS:\n return {\n ...state,\n pending_modular_questions: false,\n modular_questions: action.payload?.[0]?.additional_type,\n pending: false,\n };\n case GET_PERSONALITY_QUESTIONS:\n return {\n ...state,\n pending_personality_questions: false,\n personality_questions: action.payload,\n pending: false,\n };\n\n case GET_PREVIOUS_RESPONSE:\n return {\n ...state,\n previous_response_pending: false,\n previous_response: action.payload,\n pending: false,\n };\n\n case FETCH_QUESTIONS:\n return { \n ...state, \n selected: action.payload, \n pending: false,\n };\n\n case CLEAR_QUESTIONS:\n return {\n ...state,\n culture_questions: [],\n mood_questions: [],\n leadership_questions: [],\n personality_questions: [],\n previous_response: [],\n pending: false,\n pending_culture_questions: false,\n pending_mood_questions: false,\n pending_leadership_questions: false,\n pending_personality_questions: false,\n previous_response_pending: false,\n };\n case CLEAR_ALL:\n return {\n ...state,\n culture_questions: [],\n mood_questions: [],\n leadership_questions: [],\n personality_questions: [],\n previous_response: [],\n pending: false,\n pending_culture_questions: false,\n pending_mood_questions: false,\n pending_leadership_questions: false,\n pending_personality_questions: false,\n previous_response_pending: false,\n };\n default:\n return state;\n }\n}\n","import {\n PENDING_ANSWERS,\n\n SET_ANSWERS,\n START_SURVEY,\n // GET_ANSWERS,\n // DELETE_ANSWER,\n FETCH_CULTURE_ANSWER,\n // FETCH_MOOD_ANSWER,\n SELECTED_LEADERSHIP,\n // FETCH_LEADERSHIP_ANSWER,\n // FETCH_PERSONALITY_ANSWER,\n // EDIT_ANSWER,\n // ADD_ANSWER,\n GET_PERSONALITY_ANSWER,\n UPDATE_PERSONALITY_ANSWER,\n ADD_CULTURE_ANSWER,\n ADD_MOOD_ANSWER,\n ADD_TEAM_ANSWER,\n MOOD_UPDATE_COMMENTS,\n ADD_LEADERSHIP_ANSWER,\n RESET_LEADERSHIP,\n ADD_PERSONALITY_ANSWER,\n POST_ANSWER,\n CLEAR_ANSWER,\n CLEAR_ALL,\n} from \"constants/actions\";\n\n\nconst initialState = {\n pending: false,\n\n all_answers: [], // for submitting optional\n // 0 inactive 1 active (part of this survey token) 2 inprocess 3 completed\n culture_survey_status: 0,\n mood_survey_status: 0,\n leadership_survey_status: 0,\n //\n culture_survey_compliance: 0,\n mood_survey_compliance: 0,\n leadership_survey_compliance: 0,\n //\n team_id: '',\n employee: \"\",\n employee_name: \"\",\n employee_picture: \"\",\n employee_role: 0,\n employee_account: 0,\n time_spent_with: [],\n //\n culture_answers: [],\n culture_max_ques: 0,\n culture_high_ans: 0,\n culture_cur_ques: 0,\n //\n mood_answers: [],\n mood_max_ques: 0,\n mood_high_ans: 0,\n mood_max_ans_nos: 0,\n //\n leader_list: [],\n leader_count: 0,\n leadership_answers: [],\n leadership_max_ques: 0,\n leadership_high_ans: 0,\n leadership_cur_ques: 0,\n //\n personality_answers: [],\n personality_max_ques: 0,\n personality_high_ans: 0,\n personality_cur_ques: 0,\n personality_complete: false,\n\n personality_survey_status: 0,\n participants_in_personality: 0,\n // 1 culture 2 mood, 3 leadership 4 personality\n curr_direction: 1,\n all_survey_types: [],\n curr_survey_type: 0,\n direction: 0,\n //\n token: '',\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n};\n// function to check if array are same\n// function arrayEquals(a, b) {\n// return (\n// Array.isArray(a) &&\n// Array.isArray(b) &&\n// a.length === b.length &&\n// a.every((val, index) => val === b[index])\n// );\n// }\nlet ansList = [];\nlet _currentRegQues = 0;\nlet ans = [];\n\n// leadership_survey_type: 1\n// mood_survey_type: 1\n// personality_survey_type: 0\n// culture_answers: get_answers.culture_answers,\n// employee: get_answers,\n// token: get_answers,\n// device: get_answers,\n// mobile: get_answers,\n// browser: get_answers,\n// operating_system: get_answers,\n// user_ip: get_answers,\n// culture_survey_compliance: get_answers,\n// mood_survey_compliance: get_answers,\n// leadership_survey_compliance: get_answers,\n// participants_in_personality: get_answers,\n// culture_answers: get_answers,\n// mood_answers: get_answers,\n// leadership_answers: get_answers,\n// personality_answers: s\n\nexport default function Answers(state = initialState, action) {\n switch (action.type) {\n case PENDING_ANSWERS:\n return {\n ...state,\n pending: true\n }\n\n case START_SURVEY:\n const _all_survey_types = [];\n if (action.payload[0]?.culture_survey_compliance) {\n _all_survey_types.push(1);\n }\n if (action.payload[0]?.mood_survey_compliance) {\n _all_survey_types.push(2);\n }\n if (action.payload[0]?.leadership_survey_compliance) {\n _all_survey_types.push(3);\n }\n if (action.payload[0]?.participants_in_personality) {\n _all_survey_types.push(4);\n }\n\n return {\n ...state,\n pending: false,\n to_delete: action.payload[0]?.to_delete,\n completion_status: action.payload[0]?.completion_status,\n completion_status_text: action.payload[0]?.completion_status_text,\n deleted_on: action.payload[0]?.deleted_on,\n valid_upto: action.payload[0]?.valid_upto,\n token_message: action.payload[0]?.token_message,\n culture_survey_status: action.payload[0]?.culture_survey_type,\n mood_survey_status: action.payload[0]?.mood_survey_type,\n leadership_survey_status: action.payload[0]?.leadership_survey_type,\n personality_survey_status: action.payload[0]?.personality_survey_type,\n employee: action.payload[0]?.employee,\n employee_name: action.payload[0]?.employee_name,\n employee_role: action.payload[0]?.employee_role,\n employee_account: action.payload[0]?.employee_account,\n employee_picture: action.payload[0]?.employee_picture,\n team_id: action.payload[0]?.team_id,\n leader_list: action.payload[0]?.leader_list,\n leader_count: action.payload[0]?.leader_list?.length,\n token: action.payload[0]?.token,\n all_survey_types: _all_survey_types,\n curr_survey_type: _all_survey_types[0],\n culture_survey_compliance: action.payload[0]?.culture_survey_compliance,\n mood_survey_compliance: action.payload[0]?.mood_survey_compliance,\n leadership_survey_compliance:\n action.payload[0]?.leadership_survey_compliance,\n participants_in_personality:\n action.payload[0]?.participants_in_personality,\n };\n\n case GET_PERSONALITY_ANSWER:\n let curr_que = 1\n if (action.payload.full_response.personality_cur_ques > 1) {\n curr_que = action.payload.full_response.personality_cur_ques - 1\n }\n\n if (action.payload.response_code === 0) {\n return {\n ...state,\n response_code: action.payload.response_code,\n message: action.payload.message\n\n };\n }\n else\n return {\n ...state,\n participants_in_personality: action.payload.full_response.participants_in_personality,\n personality_answers: action.payload.full_response.personality_answers,\n personality_complete: action.payload.full_response.personality_complete,\n personality_cur_ques: curr_que,\n // personality_high_ans: action.payload.full_response.personality_high_ans,\n personality_max_ques: action.payload.full_response.personality_max_ques,\n personality_survey_status: action.payload.full_response.personality_survey_status,\n };\n\n case UPDATE_PERSONALITY_ANSWER:\n return {\n ...state,\n };\n\n case SET_ANSWERS:\n // culture_high_ans\n let culture_high_ans = state.culture_high_ans;\n if (action.payload.culture_high_ans > state.culture_high_ans) {\n culture_high_ans = action.payload.culture_high_ans;\n }\n // mood_high_ans\n // let _mood_high_ans = state.mood_answers.length;\n // if (action.payload.mood_high_ans > state.mood_high_ans) {\n // mood_high_ans = state.mood_answers.length;\n // }\n // leadership_high_ans\n let leadership_high_ans = state.leadership_high_ans;\n if (action.payload.leadership_high_ans > state.leadership_high_ans) {\n leadership_high_ans = action.payload.leadership_high_ans;\n }\n // personality_high_ans\n // console.log(action.payload)\n return {\n ...state,\n ...action.payload,\n culture_high_ans,\n // mood_high_ans: _mood_high_ans,\n leadership_high_ans,\n };\n case FETCH_CULTURE_ANSWER:\n let culture_selected_answer = {};\n if (\n state.culture_answers.filter((an) => an.id === action.payload.id)[0]\n ) {\n culture_selected_answer = {\n culture_answers: state.culture_answers.filter(\n (ans) => ans.id === action.payload.id\n )[0],\n };\n }\n return {\n ...state,\n [action.payload.id]: culture_selected_answer,\n pending: false,\n culture_cur_ques: action.payload.id,\n };\n case ADD_CULTURE_ANSWER:\n if (\n state.culture_answers.filter((an) => an.id === action.payload.id)[0]\n ) {\n state = {\n ...state,\n culture_answers: state.culture_answers.filter(\n (ans) => ans.id !== action.payload.id\n ),\n };\n }\n ansList = [];\n _currentRegQues = action.payload.id;\n\n ans = [...state.culture_answers, action.payload];\n ans.map((p) => ansList.push(p.id));\n if (parseInt(action.payload.id + 1) <= state.culture_max_ques) {\n _currentRegQues = action.payload.id + 1;\n }\n let _culture_high_ans = state.culture_high_ans;\n if (action.payload.culture_high_ans > state.culture_high_ans) {\n _culture_high_ans = action.payload.culture_high_ans;\n }\n\n return {\n ...state,\n culture_answers: [...state.culture_answers, action.payload],\n culture_high_ans: _culture_high_ans,\n culture_cur_ques: _currentRegQues,\n };\n\n case ADD_TEAM_ANSWER:\n return {\n ...state,\n time_spent_with: action.payload,\n };\n case ADD_MOOD_ANSWER:\n\n if (state.mood_answers.filter((an) => an.id === action.payload.id)[0]) {\n state = {\n ...state,\n mood_answers: state.mood_answers.filter(\n (ans) => ans.id !== action.payload.id\n ),\n };\n }\n return {\n ...state,\n mood_answers: [...state.mood_answers, action.payload],\n };\n\n case MOOD_UPDATE_COMMENTS:\n\n if (state.mood_answers.filter((an) => an.id === action.payload.id)[0]) {\n state = {\n ...state,\n mood_answers: state.mood_answers.filter(\n (ans) => ans.id !== action.payload.id\n ),\n };\n }\n return {\n ...state,\n mood_answers: [...state.mood_answers, action.payload],\n };\n case SELECTED_LEADERSHIP:\n return {\n ...state,\n leadership_selected: action.payload.leadership_selected,\n leader_list: action.payload.leader_list,\n };\n case RESET_LEADERSHIP:\n return {\n ...state,\n leadership_high_ans: 0,\n leadership_cur_ques: 0,\n curr_direction: 1,\n };\n // case FETCH_LEADERSHIP_ANSWER:\n // let leader_selected_answer = {};\n // if (\n // state.leadership_answers.filter((an) => an.id === action.payload.id\n // && an.leader_id === action.payload.leader_id)[0]\n // ) {\n // leader_selected_answer = {\n // leadership_answers: state.leadership_answers.filter(\n // (ans) => ans.id === action.payload.id\n // && ans.leader_id === action.payload.leader_id\n // )[0],\n // };\n // }\n // return {\n // ...state,\n // [action.payload.id]: leader_selected_answer,\n // pending: false,\n // leadership_cur_ques: action.payload.id,\n // };\n\n case ADD_LEADERSHIP_ANSWER:\n // console.log(action.payload)\n if (\n state.leadership_answers.filter((an) => an.row_id ===\n `${action.payload.leader_id}${action.payload.id}`)[0]\n ) {\n state = {\n ...state,\n leadership_answers: state.leadership_answers.filter(\n (ans) => ans.row_id !==\n `${action.payload.leader_id}${action.payload.id}`\n ),\n };\n }\n // ansList = [];\n let _currentLeaderQues = action.payload.id;\n\n // ans = [...state.leadership_answers, action.payload];\n // ans.map((p) => ansList.push(p.id));\n\n if (state.leader_count === 1) {\n if (parseInt(action.payload.id + 1) <= state.leadership_max_ques) {\n _currentLeaderQues = action.payload.id + 1;\n }\n }\n\n let _leadership_high_ans = state.leadership_high_ans;\n if (action.payload.leadership_high_ans > state.leadership_high_ans) {\n _leadership_high_ans = action.payload.leadership_high_ans;\n }\n // console.log(_currentLeaderQues)\n // console.log(_leadership_high_ans)\n return {\n ...state,\n leadership_answers: [...state.leadership_answers, action.payload],\n leadership_high_ans: _leadership_high_ans,\n leadership_cur_ques: _currentLeaderQues,\n };\n\n\n\n case ADD_PERSONALITY_ANSWER:\n if (\n state.personality_answers.filter((an) => an.id === action.payload.id)[0]\n ) {\n state = {\n ...state,\n personality_answers: state.personality_answers.filter(\n (ans) => ans.id !== action.payload.id\n ),\n };\n }\n ansList = [];\n _currentRegQues = action.payload.id;\n\n ans = [...state.personality_answers, action.payload];\n ans.map((p) => ansList.push(p.id));\n if (parseInt(action.payload.id + 1) <= state.personality_max_ques) {\n _currentRegQues = action.payload.id + 1;\n }\n let _personality_high_ans = state.personality_high_ans;\n if (action.payload.personality_high_ans > state.personality_high_ans) {\n _personality_high_ans = action.payload.personality_high_ans;\n }\n\n return {\n ...state,\n personality_answers: [...state.personality_answers, action.payload],\n personality_high_ans: _personality_high_ans,\n personality_cur_ques: _currentRegQues,\n };\n case POST_ANSWER:\n return {\n ...state,\n all_answers: [\n ...state.culture_answers,\n ...state.mood_answers,\n ...state.leadership_answers,\n ...state.personality_answers,\n action.payload,\n ],\n };\n case CLEAR_ANSWER:\n return {\n ...state,\n pending: false,\n\n all_answers: [], // for submitting optional\n // 0 inactive 1 active (part of this survey token) 2 inprocess 3 completed\n culture_survey_status: 0,\n mood_survey_status: 0,\n leadership_survey_status: 0,\n //\n culture_survey_compliance: 0,\n mood_survey_compliance: 0,\n leadership_survey_compliance: 0,\n //\n team_id: '',\n employee: \"\",\n employee_name: \"\",\n employee_picture: \"\",\n employee_role: 0,\n employee_account: 0,\n time_spent_with: [],\n //\n culture_answers: [],\n culture_max_ques: 0,\n culture_high_ans: 0,\n culture_cur_ques: 0,\n //\n mood_answers: [],\n mood_max_ques: 0,\n mood_high_ans: 0,\n mood_max_ans_nos: 0,\n //\n leader_list: [],\n leader_count: 0,\n leadership_answers: [],\n leadership_max_ques: 0,\n leadership_high_ans: 0,\n leadership_cur_ques: 0,\n //\n personality_answers: [],\n personality_max_ques: 0,\n personality_high_ans: 0,\n personality_cur_ques: 0,\n personality_complete: false,\n\n personality_survey_status: 0,\n participants_in_personality: 0,\n // 1 culture 2 mood, 3 leadership 4 personality\n curr_direction: 1,\n all_survey_types: [],\n curr_survey_type: 0,\n direction: 0,\n //\n token: '',\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n };\n\n case CLEAR_ALL:\n return {\n ...state,\n pending: false,\n\n all_answers: [], // for submitting optional\n // 0 inactive 1 active (part of this survey token) 2 inprocess 3 completed\n culture_survey_status: 0,\n mood_survey_status: 0,\n leadership_survey_status: 0,\n //\n culture_survey_compliance: 0,\n mood_survey_compliance: 0,\n leadership_survey_compliance: 0,\n //\n team_id: '',\n employee: \"\",\n employee_name: \"\",\n employee_picture: \"\",\n employee_role: 0,\n employee_account: 0,\n time_spent_with: [],\n //\n culture_answers: [],\n culture_max_ques: 0,\n culture_high_ans: 0,\n culture_cur_ques: 0,\n //\n mood_answers: [],\n mood_max_ques: 0,\n mood_high_ans: 0,\n mood_max_ans_nos: 0,\n //\n leader_list: [],\n leader_count: 0,\n leadership_answers: [],\n leadership_max_ques: 0,\n leadership_high_ans: 0,\n leadership_cur_ques: 0,\n //\n personality_answers: [],\n personality_max_ques: 0,\n personality_high_ans: 0,\n personality_cur_ques: 0,\n personality_complete: false,\n\n personality_survey_status: 0,\n participants_in_personality: 0,\n // 1 culture 2 mood, 3 leadership 4 personality\n curr_direction: 1,\n all_survey_types: [],\n curr_survey_type: 0,\n direction: 0,\n //\n token: '',\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n };\n default:\n return state;\n }\n}\n","import {\n PENDING_SURVEY,\n START_BRIEF_SURVEY,\n NEW_VALIDATION_TOKEN,\n RESET_VALIDATION_TOKEN,\n UPDATE_STORED_RESPONSE,\n UPDATE_BRIEF_RESPONSE,\n UPDATE_BRIEF_RESPONSE_ANSWERS,\n POST_BRIEF_RESPONSE,\n CLEAR_ANSWER,\n CLEAR_ALL,\n} from \"constants/actions\";\n\n\nconst initialState = {\n id: null,\n pending: false,\n validation_token: false,\n modular_question: [],\n\n surveyComponents: [],\n survey_token: false,\n debrief_schedule: false,\n employee: false,\n survey_status: 0,\n //\n questions: [],\n response: [],\n //\n intro: [],\n short: [],\n title: [],\n intro_completed: false,\n intro2_completed: false,\n valid_upto: false,\n employee_name: false,\n employee_survey_spec: {},\n //\n total_question_map: {},\n total_categories: 0,\n total_questions: 0,\n\n feedback: [],\n modular_response: {},\n survey_personality: {},\n in_survey_personality: false,\n showing_stored_response: false,\n // stored data\n // answers: localStorage.getItem(\"answers\"),\n // visual_question : localStorage.getItem(\"visual_question\"),\n // current_question: localStorage.getItem(\"current_question\"),\n // current_answer: localStorage.getItem(\"current_answer\"),\n // high_answer: localStorage.getItem(\"high_answer\"),\n // complete: false,\n\n answers: {},\n visual_question: 0,\n current_question: 0,\n current_answer: 0,\n high_answer: 0,\n complete: false,\n //\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n questionSequenceMap: {}\n};\n\nexport default function BriefReponse(state = initialState, action) {\n // console.log(action.payload)\n switch (action.type) {\n case PENDING_SURVEY:\n return {\n ...state,\n pending: false\n }\n case START_BRIEF_SURVEY:\n return {\n ...state,\n pending: false,\n id: action.payload[0]?.id,\n response: action.payload?.[0],\n to_delete: action.payload[0]?.to_delete,\n valid_upto: action.payload[0]?.valid_upto,\n deleted_on: action.payload[0]?.deleted_on,\n survey_status: action.payload[0]?.survey_status,\n surveyComponents: action.payload?.[0].organization_info.survey_sequence,\n token_message: action.payload[0]?.token_message,\n intro: action.payload?.[0]?.questions?.intro,\n short: action.payload?.[0]?.questions?.short,\n questions: action.payload?.[0]?.questions?.questions,\n total_questions: action.payload?.[0]?.questions?.questions?.length,\n title: action.payload?.[0]?.questions?.title,\n employee: action.payload?.[0]?.employee,\n employee_name: action.payload?.[0]?.employee_name,\n survey_token: action.payload?.[0]?.token,\n debrief_schedule: action.payload?.[0]?.debrief_schedule,\n employee_survey_spec: action.payload?.[0]?.employee_survey_spec,\n questionSequenceMap: action.payload?.[0]?.questionSequenceMap,\n modular_response: action.payload?.[0]?.modular_response,\n validation_token: action.payload?.[0]?.validation_token,\n modular_questions: action.payload?.[0]?.additional_type,\n \n }\n case UPDATE_STORED_RESPONSE:\n \n return {\n ...state,\n showing_stored_response: action.payload,\n pending: false,\n }\n case UPDATE_BRIEF_RESPONSE:\n // if (action.payload?.validation_token) {\n // localStorage.setItem(\"validation_token\", action.payload?.validation_token); \n // }\n \n return {\n ...state,\n ...action.payload,\n pending: false\n }\n case UPDATE_BRIEF_RESPONSE_ANSWERS:\n return {\n ...state,\n ...action.payload,\n // response: action.payload,\n pending: false\n }\n case NEW_VALIDATION_TOKEN:\n \n return {\n ...state,\n validation_token: action.payload,\n pending: false,\n }\n\n case RESET_VALIDATION_TOKEN:\n localStorage.clear();\n return {\n ...state,\n validation_token: false,\n pending: false,\n }\n case POST_BRIEF_RESPONSE:\n return {\n ...state,\n ...action.payload,\n pending: false\n }\n case CLEAR_ANSWER:\n return {\n ...state,\n survey_token: false,\n validation_token: false,\n debrief_schedule: false,\n employee: false,\n answers: [],\n //\n questions: [],\n response: [],\n intro: [],\n title: [],\n valid_upto: false,\n employee_name: false,\n total_questions: 0,\n //\n visual_question: 0,\n current_question: 0,\n current_answer: 0,\n high_answer: 0,\n complete: false,\n //\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n };\n\n case CLEAR_ALL:\n return {\n ...state,\n survey_token: false,\n validation_token: false,\n debrief_schedule: false,\n employee: false,\n answers: [],\n modular_question: [],\n surveyComponents: [],\n //\n questions: [],\n response: [],\n intro: [],\n title: [],\n valid_upto: false,\n employee_name: false,\n total_questions: 0,\n //\n visual_question: 0,\n current_question: 0,\n current_answer: 0,\n high_answer: 0,\n complete: false,\n //\n isBrowser: [],\n mobile: [],\n browser: [],\n deviceType: [],\n osVersion: [],\n operating_system: [],\n device: [],\n user_ip: '',\n };\n default:\n return state;\n }\n}\n","import {\n GET_CHAT_GPT_SUMMARY,\n CLEAR_CHAT_GPT_SUMMARY,\n PENDING_CHAT_GPT_SUMMARY,\n CLEAR_ALL,\n } from \"constants/actions\";\n \n const initialState = {\n chat_gpt_summary: false,\n response_pending: false,\n };\n \n export default function (state = initialState, action) {\n switch (action.type) {\n case PENDING_CHAT_GPT_SUMMARY:\n return {\n ...state,\n response_pending: true\n }\n case GET_CHAT_GPT_SUMMARY:\n return {\n ...state,\n chat_gpt_summary: action.payload,\n response_pending: false\n }\n case CLEAR_CHAT_GPT_SUMMARY:\n return {...state,\n ...initialState\n }\n \n case CLEAR_ALL:\n return {...state,\n ...initialState\n }\n default:\n return state;\n }\n }\n ","import {\n PENDING_MARKETING_ROI,\n MARKETING_ROI,\n CLEAR_MARKETING_ROI,\n } from \"constants/actions\";\n \n\n const initialState = {\n pending: false,\n markeingRoi: {}\n }\n\n\nexport default function MarketingRoi(state = initialState, action) {\n switch (action.type) {\n case PENDING_MARKETING_ROI:\n return {\n ...state,\n pending: true\n }\n \n case MARKETING_ROI:\n return {\n ...state,\n pending: false,\n markeingRoi: action.payload\n }\n\n case CLEAR_MARKETING_ROI:\n return {\n ...state,\n pending: false,\n markeingRoi: {}\n }\n \n default:\n return state;\n }\n }","import {\n PENDING_DEBRIEF_SURVEY,\n DEBRIEF_SURVEY,\n ADD_EMPLOYEE_TO_DEBRIEF_SURVEY,\n CLEAR_DEBRIEF_SURVEY,\n} from \"constants/actions\";\n\nconst initialState = {\n pending: false,\n debrief_survey: {},\n employee_added: false,\n};\n\nexport default function DebriefSurvey(state = initialState, action) {\n switch (action.type) {\n case PENDING_DEBRIEF_SURVEY:\n return {\n ...state,\n pending: true,\n };\n\n case DEBRIEF_SURVEY:\n return {\n ...state,\n pending: false,\n debrief_survey: action.payload,\n };\n case ADD_EMPLOYEE_TO_DEBRIEF_SURVEY:\n return {\n ...state,\n pending: false,\n employee_added: action.payload,\n };\n case CLEAR_DEBRIEF_SURVEY:\n return {\n ...state,\n pending: false,\n debrief_survey: {},\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\n\nimport errors from \"./errors\";\nimport questions from \"./questions\";\nimport answers from \"./answers\";\nimport briefresponse from \"./briefresponse\"\nimport chatgpt from \"./chatgpt\";\nimport marketingRoi from \"./marketing\";\nimport debrief_survey from \"./debrief_survey\"\n\n\nexport default combineReducers({\n errors,\n answers,\n questions,\n briefresponse,\n chatgpt,\n marketingRoi,\n debrief_survey,\n});\n","import axios from \"axios\";\nimport urlconfig from \"../_config\";\nconst VERSION = \"v1\";\n\nexport const GET_START_SURVEY = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/start-survey/${payload ? payload : ''}`);\n\nexport const GET_CULTURE_QUESTIONS = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/culture-questions/${payload ? payload : ''}`);\n\nexport const GET_MOOD_QUESTIONS = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/mood-questions/${payload ? payload : ''}`);\n\nexport const GET_LEADERSHIP_QUESTIONS = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/leadership-questions/${payload ? payload : ''}`);\n\nexport const GET_PERSONALITY_QUESTIONS = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/personality-questions/${payload ? payload : ''}`);\n\nexport const GET_PREVIOUS_RESPONSE = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/previous-response/${payload ? payload : ''}`);\n\n\nexport const POST_ANSWER = (answers) =>\n axios.post(`${urlconfig.surveyapi}/${VERSION}/survey-response/`, answers);\n\nexport const START_PERSONALITY_ANSWER = (payload) => {\n return axios.post(\n `${urlconfig.surveyapi}/${VERSION}/personality-updates/`,\n payload);\n}\nexport const UPDATE_PERSONALITY_ANSWER = (token, payload) => {\n return axios.patch(\n `${urlconfig.surveyapi}/${VERSION}/personality-updates/${token}/`,\n payload);\n}\n\nexport const GET_PERSONALITY_ANSWER = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/personality-updates/${payload ? `${payload}` : ''}`);\n\nexport const GET_CULTURE = () => {\n return;\n};\n\nexport const GET_MOODS = () => {\n return;\n};\n\nexport const GET_BRIEF_SURVEY = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/brief-token/${payload ? payload : ''}`);\n\nexport const UPDATE_BRIEF_RESPONSE = (payload) => {\n return axios.patch(`${urlconfig.surveyapi}/${VERSION}/brief-token/${payload?.id}/${payload?.query ? payload?.query : ''}`, payload);\n}\n\nexport const POST_BRIEF_RESPONSE = (answers) =>\n axios.post(`${urlconfig.surveyapi}/${VERSION}/brief-response/`, answers);\n\nexport const GET_BRIEF_MODULAR_QUESTIONS = (payload) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/brief-component-question/${payload ? payload : ''}`);\n\nexport const GET_CHAT_GPT_SUMMARY = (payload) => {\n return axios.post(\n `${urlconfig.surveyapi}/${VERSION}/chat-gpt-summary/`,\n payload);\n}\n\nexport const GET_CHAT_GPT_SUMMARY_MULTI = (payload) => {\n return axios.post(\n `${urlconfig.surveyapi}/${VERSION}/chat-gpt-summary-multi/`,\n payload);\n}\n\nexport const POST_MARKETING_ROI = (marketingRoi) =>\n axios.post(`${urlconfig.surveyapi}/${VERSION}/marketing-response/`, marketingRoi);\n\n// for debrief survey w/o employee id\nexport const DEBRIEF_SURVEY = (token) =>\n axios.get(`${urlconfig.surveyapi}/${VERSION}/debrief-survey/${token}/`);\n\n\nexport const ADD_EMPLOYEE_TO_DEBRIEF_SURVEY = (payload) =>\n axios.post(`${urlconfig.surveyapi}/${VERSION}/debrief-survey/add-new/`, payload);\n","import { put, call, all, takeLatest, takeEvery } from \"redux-saga/effects\";\n\nimport {\n PENDING_QUESTIONS,\n GET_CULTURE_QUESTIONS,\n GET_MOOD_QUESTIONS,\n GET_LEADERSHIP_QUESTIONS,\n GET_PERSONALITY_QUESTIONS,\n PENDING_ALL_MODULAR_QUESTIONS,\n GET_ALL_MODULAR_QUESTIONS,\n SG_GET_ALL_MODULAR_QUESTIONS,\n LOAD_CULTURE_QUESTIONS,\n LOAD_MOOD_QUESTIONS,\n LOAD_LEADERSHIP_QUESTIONS,\n LOAD_PERSONALITY_QUESTIONS,\n PREVIOUS_RESPONSE_PENDING,\n GET_PREVIOUS_RESPONSE,\n LOAD_PREVIOUS_RESPONSE,\n ALL_ERRORS,\n} from \"constants/actions\";\n\nimport * as api from \"constants/api\";\n\nfunction* getCultureQuestions(action) {\n yield put({ type: PENDING_QUESTIONS });\n try {\n const json = yield call(api.GET_CULTURE_QUESTIONS, action.payload);\n yield put({ type: GET_CULTURE_QUESTIONS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadCultureQuestions() {\n yield takeLatest(LOAD_CULTURE_QUESTIONS, getCultureQuestions);\n}\n\nfunction* getModularQuestions(action) {\n yield put({ type: PENDING_QUESTIONS });\n yield put({ type: PENDING_ALL_MODULAR_QUESTIONS });\n try {\n const json = yield call(api.GET_BRIEF_MODULAR_QUESTIONS, action.payload);\n yield put({ type: GET_ALL_MODULAR_QUESTIONS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadModularQuestions() {\n yield takeEvery(SG_GET_ALL_MODULAR_QUESTIONS, getModularQuestions);\n}\n\nfunction* getMoodQuestions(action) {\n yield put({ type: PENDING_QUESTIONS });\n try {\n const json = yield call(api.GET_MOOD_QUESTIONS, action.payload);\n yield put({ type: GET_MOOD_QUESTIONS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadMoodQuestions() {\n yield takeLatest(LOAD_MOOD_QUESTIONS, getMoodQuestions);\n}\n\n\nfunction* getLeadershipQuestions(action) {\n yield put({ type: PENDING_QUESTIONS });\n try {\n const json = yield call(api.GET_LEADERSHIP_QUESTIONS, action.payload);\n yield put({ type: GET_LEADERSHIP_QUESTIONS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadLeadershipQuestions() {\n yield takeLatest(LOAD_LEADERSHIP_QUESTIONS, getLeadershipQuestions);\n}\n\nfunction* getPersonalityQuestions(action) {\n yield put({ type: PENDING_QUESTIONS });\n try {\n const json = yield call(api.GET_PERSONALITY_QUESTIONS, action.payload);\n yield put({ type: GET_PERSONALITY_QUESTIONS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadPersonalityQuestions() {\n yield takeLatest(LOAD_PERSONALITY_QUESTIONS, getPersonalityQuestions);\n}\n\n\nfunction* getPreviousResponse(action) {\n yield put({ type: PENDING_QUESTIONS });\n yield put({type: PREVIOUS_RESPONSE_PENDING})\n try {\n const json = yield call(api.GET_PREVIOUS_RESPONSE, action.payload);\n yield put({ type: GET_PREVIOUS_RESPONSE, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadPreviousResponse() {\n yield takeLatest(LOAD_PREVIOUS_RESPONSE, getPreviousResponse);\n}\n\nexport default function* index() {\n yield all([loadCultureQuestions(),\n loadModularQuestions(),\n loadMoodQuestions(),\n loadLeadershipQuestions(),\n loadPersonalityQuestions(),\n loadPreviousResponse()\n ]);\n}\n\n","import { put, call, all, takeLatest, takeEvery } from \"redux-saga/effects\";\nimport * as api from \"constants/api\";\n\nimport {\n // GET_ANSWERS,\n // LOAD_ANSWERS,\n // DELETE_ANSWER,\n // PULL_ANSWER,\n // FETCH_ANSWER,\n // UPDATE_ANSWER,\n // EDIT_ANSWER,\n // ADD_CULTURE_ANSWER,\n // ADD_MOOD_ANSWER,\n // ADD_LEADERSHIP_ANSWER,\n // ADD_PERSONALITY_ANSWER,\n GET_PERSONALITY_ANSWER,\n SG_GET_PERSONALITY_ANSWER,\n UPDATE_PERSONALITY_ANSWER,\n SG_UPDATE_PERSONALITY_ANSWER,\n START_PERSONALITY_ANSWER,\n SG_START_PERSONALITY_ANSWER,\n ADD_ANSWER,\n SAVE_ANSWER,\n POST_ANSWER,\n SUBMIT_ANSWER,\n // CLEAR_ANSWER,\n // CLEAR_ALL,\n ALL_ERRORS,\n} from \"constants/actions\";\n\n\nfunction* fetchPersonality(action) {\n try {\n const json = yield call(api.GET_PERSONALITY_ANSWER, action.payload);\n yield put({ type: GET_PERSONALITY_ANSWER, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.message });\n }\n}\n\nexport function* answerPersonality() {\n yield takeLatest(SG_GET_PERSONALITY_ANSWER, fetchPersonality);\n}\n\nfunction* updatePersonality(action) {\n // console.log(action.payload)\n try {\n const json = yield call(\n api.UPDATE_PERSONALITY_ANSWER, \n action.payload.token, \n action.payload);\n\n yield put({ type: UPDATE_PERSONALITY_ANSWER, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.message });\n }\n}\n\nexport function* personalityUpdate() {\n yield takeLatest(SG_UPDATE_PERSONALITY_ANSWER, updatePersonality);\n}\n\nfunction* startPersonality(action) {\n try {\n const json = yield call(api.START_PERSONALITY_ANSWER, action.payload);\n yield put({ type: START_PERSONALITY_ANSWER, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.message });\n }\n}\n\nexport function* personalityStart() {\n yield takeEvery(SG_START_PERSONALITY_ANSWER, startPersonality);\n}\n\nfunction* addAnswer(action) {\n try {\n const json = yield call(api.POST_ANSWER, action.payload);\n\n yield put({ type: ADD_ANSWER, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.message });\n }\n}\n\nexport function* answerAdd() {\n yield takeLatest(SAVE_ANSWER, addAnswer);\n}\n\nfunction* postAnswer(action) {\n try {\n const json = yield call(api.POST_ANSWER, action.payload);\n\n yield put({ type: POST_ANSWER, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.message });\n }\n}\n\nexport function* answerSubmit() {\n yield takeLatest(SUBMIT_ANSWER, postAnswer);\n}\n\nexport default function* index() {\n yield all([\n answerPersonality(),\n personalityUpdate(),\n personalityStart(),\n answerAdd(),\n answerSubmit(),\n ]);\n}\n","import { put, call, all, takeLatest } from \"redux-saga/effects\";\n\nimport { START_SURVEY, SG_START_SURVEY, \n ALL_ERRORS } from \"constants/actions\";\n\nimport * as api from \"constants/api\";\n\nfunction* getStartSurvey(action) {\n try {\n const json = yield call(api.GET_START_SURVEY, action.payload);\n yield put({ type: START_SURVEY, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadStartSurvey() {\n yield takeLatest(SG_START_SURVEY, getStartSurvey);\n}\n\n\nexport default function* index() {\n yield all([loadStartSurvey(),\n \n ]);\n}\n","import { put, call, all, takeLatest } from \"redux-saga/effects\";\nimport * as api from \"constants/api\";\n\nimport {\n PENDING_SURVEY,\n START_BRIEF_SURVEY,\n SG_START_BRIEF_SURVEY,\n GET_MODULAR_QUESTIONS,\n POST_BRIEF_RESPONSE,\n SG_POST_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE_ANSWERS,\n // GET_BRIEF_MODULAR_QUESTIONS,\n // SG_GET_BRIEF_MODULAR_QUESTIONS,\n UPDATE_BRIEF_RESPONSE_ANSWERS,\n ALL_ERRORS,\n} from \"constants/actions\";\n\n\nfunction* getBriefSurveQuestions(action) {\n yield put({ type: PENDING_SURVEY });\n try {\n const json = yield call(api.GET_BRIEF_SURVEY, action.payload);\n yield put({ type: START_BRIEF_SURVEY, payload: json.data });\n yield put({ type: GET_MODULAR_QUESTIONS, payload: json.data})\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e.response });\n }\n}\n\nexport function* loadBriefSurveyQuestions() {\n yield takeLatest(SG_START_BRIEF_SURVEY, getBriefSurveQuestions);\n}\n\nfunction* briefSurveyResponsePost(action) {\n yield put({ type: PENDING_SURVEY });\n try {\n const json = yield call(api.POST_BRIEF_RESPONSE, action.payload);\n yield put({ type: POST_BRIEF_RESPONSE, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, error: e.response });\n }\n }\n \n export function* postPostSurveyResponse() {\n yield takeLatest(SG_POST_BRIEF_RESPONSE, briefSurveyResponsePost);\n }\n\n function* getUpdateResponse(action) {\n yield put({ type: PENDING_SURVEY });\n try {\n const json = yield call(api.UPDATE_BRIEF_RESPONSE, action.payload);\n yield put({ type: UPDATE_BRIEF_RESPONSE, payload: json.data.stored_response });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n }\n \n export function* UpdateResponsePost() {\n yield takeLatest(SG_UPDATE_BRIEF_RESPONSE, getUpdateResponse);\n }\n\n\n function* fetchUpdateResponse(action) {\n yield put({ type: PENDING_SURVEY });\n try {\n const json = yield call(api.UPDATE_BRIEF_RESPONSE, action.payload);\n yield put({ type: UPDATE_BRIEF_RESPONSE_ANSWERS, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n }\n \n export function* UpdateResponseFetch() {\n yield takeLatest(SG_UPDATE_BRIEF_RESPONSE_ANSWERS, fetchUpdateResponse);\n }\n\n // function* fetchModularQuestion(action) {\n // yield put({ type: PENDING_SURVEY });\n // try {\n // const json = yield call(api.GET_BRIEF_MODULAR_QUESTIONS, action.payload);\n // yield put({ type: GET_BRIEF_MODULAR_QUESTIONS, payload: json.data });\n // } catch (e) {\n // yield put({ type: ALL_ERRORS, message: e });\n // }\n // }\n \n // export function* ModularQuestionFetch() {\n // yield takeLatest(SG_GET_BRIEF_MODULAR_QUESTIONS, fetchModularQuestion);\n // }\n\nexport default function* index() {\n yield all([\n loadBriefSurveyQuestions(),\n postPostSurveyResponse(),\n UpdateResponsePost(),\n UpdateResponseFetch(),\n // ModularQuestionFetch(),\n ]);\n }\n","import { put, call, all, takeLatest } from \"redux-saga/effects\";\n\nimport {\n GET_CHAT_GPT_SUMMARY,\n SG_GET_CHAT_GPT_SUMMARY,\n SG_GET_CHAT_GPT_SUMMARY_MULTI,\n PENDING_CHAT_GPT_SUMMARY,\n ALL_ERRORS,\n} from \"constants/actions\";\n\nimport * as api from \"constants/api\";\n\nfunction* getChatGptSummary(action) {\n yield put({ type: PENDING_CHAT_GPT_SUMMARY });\n try {\n const json = yield call(api.GET_CHAT_GPT_SUMMARY, action.payload);\n yield put({ type: GET_CHAT_GPT_SUMMARY, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadChatGptSummary() {\n yield takeLatest(SG_GET_CHAT_GPT_SUMMARY, getChatGptSummary);\n}\n\nfunction* getChatGptSummaryMulti(action) {\n yield put({ type: PENDING_CHAT_GPT_SUMMARY });\n try {\n const json = yield call(api.GET_CHAT_GPT_SUMMARY_MULTI, action.payload);\n yield put({ type: GET_CHAT_GPT_SUMMARY, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadChatGptSummaryMulti() {\n yield takeLatest(SG_GET_CHAT_GPT_SUMMARY_MULTI, getChatGptSummaryMulti);\n}\n\nexport default function* index() {\n yield all([\n loadChatGptSummary(),\n loadChatGptSummaryMulti()\n ]);\n}\n\n","import { put, call, all, takeLatest } from \"redux-saga/effects\";\n\nimport {\n PENDING_MARKETING_ROI,\n MARKETING_ROI,\n SG_MARKETING_ROI,\n ALL_ERRORS,\n} from \"constants/actions\";\n\nimport * as api from \"constants/api\";\n\nfunction* getMarketingRoi(action) {\n yield put({ type: PENDING_MARKETING_ROI });\n try {\n const json = yield call(api.POST_MARKETING_ROI, action.payload);\n yield put({ type: MARKETING_ROI, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadMarketingRoi() {\n yield takeLatest(SG_MARKETING_ROI, getMarketingRoi);\n}\n\n\nexport default function* index() {\n yield all([loadMarketingRoi()\n ]);\n}\n\n","import { put, call, all, takeLatest } from \"redux-saga/effects\";\n\nimport {\n PENDING_DEBRIEF_SURVEY,\n DEBRIEF_SURVEY,\n SG_DEBRIEF_SURVEY,\n ADD_EMPLOYEE_TO_DEBRIEF_SURVEY,\n SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY,\n ALL_ERRORS,\n} from \"constants/actions\";\n\nimport * as api from \"constants/api\";\n\nfunction* getDebriefSurvey(action) {\n yield put({ type: PENDING_DEBRIEF_SURVEY });\n try {\n const json = yield call(api.DEBRIEF_SURVEY, action.payload);\n yield put({ type: DEBRIEF_SURVEY, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* loadDebriefSurvey() {\n yield takeLatest(SG_DEBRIEF_SURVEY, getDebriefSurvey);\n}\n\nfunction* addEmployeeToDebrief(action) {\n yield put({ type: PENDING_DEBRIEF_SURVEY });\n try {\n const json = yield call(api.ADD_EMPLOYEE_TO_DEBRIEF_SURVEY, action.payload);\n yield put({ type: ADD_EMPLOYEE_TO_DEBRIEF_SURVEY, payload: json.data });\n } catch (e) {\n yield put({ type: ALL_ERRORS, message: e });\n }\n}\n\nexport function* postEmployeeToDebrief() {\n yield takeLatest(SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY, addEmployeeToDebrief);\n}\nexport default function* index() {\n yield all([loadDebriefSurvey(), postEmployeeToDebrief()]);\n}\n","import { all, fork } from 'redux-saga/effects';\nimport Questions from \"./Questions\";\nimport Answers from \"./Answers\"\nimport Start from \"./Start\"\nimport BriefSurvey from \"./BriefSurvey\"\nimport ChatGpt from \"./ChatGpt\"\nimport MarketingRoi from './MarketingRoi';\nimport DebriefSurvey from \"./DebriefSurvey\"\n\nexport function* rootSaga() {\n yield all([\n fork(Questions),\n fork(Answers),\n fork(Start),\n fork(BriefSurvey),\n fork(ChatGpt),\n fork(MarketingRoi),\n fork(DebriefSurvey),\n ]);\n}\n\nexport default rootSaga","import { createStore, applyMiddleware } from 'redux';\nimport { composeWithDevTools } from \"redux-devtools-extension/developmentOnly\";\nimport createSagaMiddleware from 'redux-saga';\n// import { logger } from 'redux-logger';\nimport rootReducer from \"./reducers\";\nimport { SET_ERROR_STATE } from \"constants/actions\";\n\nimport { rootSaga } from 'sagas/index'\n\n// import LogRocket from 'logrocket';\n// this where we initialize state\nconst initialState = {};\n\nconst sagaMiddleware = createSagaMiddleware({\n onError: () => {\n store.dispatch({ type: SET_ERROR_STATE })\n }\n})\n\nconst composeEnhancers = composeWithDevTools({\n // Specify here name, actionsBlacklist, actionsCreators and other options\n});\n\nconst store = createStore(\n rootReducer,\n initialState,\n composeWithDevTools(\n applyMiddleware(sagaMiddleware)\n ),\n);\n\n// const store = createStore(\n// rootReducer,\n// initialState,\n// applyMiddleware(sagaMiddleware)\n// ,\n// );\n\nsagaMiddleware.run(rootSaga)\n\nexport default store;","import Image from 'assets/images/live-site.svg'\nimport React from \"react\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n\theight:100%;\n\twidth:100%;\n\tdisplay:flex;\n\tmargin-top:100px;\n\tjustify-content:center;\n`\n\nconst Card = styled.div`\n\twidth: 600px;\n height: 462px;\n border-radius: 8px;\n box-shadow: 0 4px 20px 0 #ececec;\n background-color: #ffffff;\n display:flex;\n flex-direction:column;\n align-items:center;\n justify-content:space-evenly;\n`\nconst IMG = styled.img`\n\twidth: 170px;\n height: 170px;\n`\n\nconst Title = styled.div`\n\tfont-size: 23px;\n font-weight: bold;\n text-align: center;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom:8px;\n`\n\nconst Text = styled.div`\n\tfont-size: 16px;\n line-height: 1.31;\n text-align: center;\n color: #4a4a4a;\n font-family: \"Red Hat Display\", sans-serif;\n max-width:472px;\n`\n\n\n\nconst Health = () =>{\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\tCool!\n\t\t\t\t\tIt's all good\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t)\n}\n\nexport default Health","import React from \"react\";\nimport {Loader,Dimmer} from 'semantic-ui-react'\n\n\n\nconst Loading = ()=>{\n\t\n\treturn (\n\t\t
\n\t\t\tLoading\n\t\t
\n\t)\n}\n\n\nexport default Loading","import React from \"react\";\nimport { Icon } from \"semantic-ui-react\";\nimport styled from 'styled-components';\n\nconst Oval = styled.div`\n width: 16px;\n height: 16px;\n border-radius:8px;\n border-style: solid;\n border-width: 1px;\n border-color:${props=>'rgb('+props.color+')'};\n background-color: ${props=>props.selected?'rgb('+props.color+')' :\"white\"};\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n margin-right:14px;\n min-width:16px;\n\n @media only screen and (min-width:992px){\n width: 24px;\n height: 24px;\n border-radius:12px;\n min-width:24px;\n }\n`\n\n\nconst Selection = (props) => {\n\n return (\n \n {props.selected?:\"\"}\n \n );\n};\n\nexport default Selection","import React from \"react\";\nimport styled from \"styled-components\";\nimport Selection from \"./Selection\";\n\n\nconst Emotion = (props) => {\n// console.log(props.selected)\n return (\n props.selectEmotion(props.mood)}\n >\n \n \n {props.mood.name}\n \n );\n};\n\nexport default Emotion;\n\nconst Container = styled.div`\n height: 20%;\n width: 100%;\n border-bottom: ${(props) => (props.end === 4 ? \"1px solid #e9e9e9\" : null)};\n display: flex;\n flex-direction: row;\n position: relative;\n align-items: center;\n padding-left: 15px;\n font-family: \"Red Hat Display\", sans-serif;\n font-size: 12px;\n\n @media only screen and (min-width: 992px) {\n padding-left: 15px;\n font-size: 14px;\n }\n`;\n\nconst ColorStrip = styled.div`\n height: 100%;\n width: 8px;\n background-color: ${(props) => \"rgba(\" + props.color + \")\"};\n position: absolute;\n left: 0px;\n top: 0px;\n`;","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport Emotion from \"./Emotion\";\n\nconst Card = styled.div`\n border-radius: 5px;\n box-shadow: 0 2px 10px 0 #ececec;\n background-color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n flex-direction: column;\n transform: rotateY(180deg);\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-backface-visibility: hidden; /* Safari */\n backface-visibility: hidden;\n`;\n\n\nconst FlippedCard = (props) => {\n\n return (\n \n {props.values.map((item, i) => {\n return (\n id === item.id)}\n selectEmotion={(e) => props.selectEmotion(e)}\n key={i}\n />\n )\n }\n \n )}\n \n );\n};\n\nexport default FlippedCard;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport FlippedCard from \"./FlippedCard\";\n\nimport Curiosity from \"assets/images/curiosity.svg\";\nimport Enjoyment from \"assets/images/enjoyment.svg\";\nimport Motivation from \"assets/images/motivation.svg\";\nimport Discontent from \"assets/images/discontent.svg\";\nimport Stress from \"assets/images/stress.svg\";\nimport Anger from \"assets/images/anger.svg\";\n\nconst Card = styled.div`\n width:50%;\n height:18vh;\n border-radius: 5px;\n box-shadow: 0 2px 10px 0 #ececec;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n flex-direction: column;\n background-color: transparent;\n perspective: 1000px;\n\n @media only screen and (min-width:768px) and (max-height:750px){\n width: 200px;\n height: 150px;\n margin-bottom:5px;\n }\n\n @media only screen and (min-width:992px) and (min-height:750px){\n width: 200px;\n height: 200px;\n margin-bottom:30px;\n }\n\n\n\n\n`;\n\nconst CardInner = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n transition: transform 0.8s;\n transform-style: preserve-3d;\n transform: ${(props) => (props.flipped ? \"rotateY(180deg)\" : \"none\")};\n`;\nconst CardFront = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n -webkit-backface-visibility: hidden; /* Safari */\n backface-visibility: hidden;\n background-color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n font-size: 14px;\n\n @media only screen and (min-width:992px){\n font-size: 18px;\n }\n`;\n\nconst Mood = styled.div`\n font-weight: bold;\n line-height: 1.11;\n font-family: \"Red Hat Display\", sans-serif;\n color: ${(props) => \"rgba(\" + props.color + \")\"}; \n`;\n\nconst Feelings = styled.div`\n line-height: 1.11;\n font-family: \"Red Hat Display\", sans-serif;\n color: ${(props) => \"rgba(\" + props.color + \")\"};\n`;\n\nconst Icon = styled.img`\n height:5vh;\n width:5vh;\n margin-bottom:5px;\n\n @media only screen and (min-width:992px){\n margin-bottom: 21px;\n height:auto;\n }\n`;\n\nconst Icons = {\n Curiosity: Curiosity,\n Enjoyment: Enjoyment,\n Motivation: Motivation,\n Discontent: Discontent,\n Stress: Stress,\n Anger: Anger,\n};\n\nconst MoodCard = (props) => {\n const { mood } =props\n\n return (\n \n \n props.setFlip(props.i)}>\n \n {mood.name}\n \n feelings\n \n \n props.selectEmotion(e)}\n selected={props.selected}\n />\n \n \n );\n};\n\nexport default MoodCard;\n","import styled from 'styled-components';\nimport React from 'react';\nimport { Icon } from \"semantic-ui-react\";\n\nconst Container = styled.div`\n\tpadding:0 15px 0 15px;\n \theight: 25px;\n border-radius: 26.5px;\n background-color: ${(props) => 'rgba('+props.color+')'};\n display:flex;\n flex-direction:row;\n align-items:center;\n justify-content:center;\n \tmargin-right:5px;\n font-size: 14px;\n margin-top:5px;\n\n @media only screen and (min-width:992px) and (min-height:750px){\n \tfont-size: 20px;\n\t\theight: 45px;\n\t\tmargin-right:13px;\n }\n`\nconst Emotion = styled.div`\n font-weight: 500;\n color: #ffffff;\n font-family: 'Red Hat Display', sans-serif;\n margin-right:10px;\n`\n\nconst VerticalLine = styled.div`\n\theight:100%;\n\twidth:1px;\n\tbackground-color:white;\n\tmargin-right:10px;\n`\n\nconst MoodSelect = (props) =>{\nconst {item} =props\n\n\treturn (\n\t\tprops.remove(item.id)}>\n\t\t\t{item.name}\n\t\t\t\n\t\t\t\n\t\t\n\t\t)\n}\n\n\nexport default MoodSelect","import styled from \"styled-components\";\nimport React from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { SET_ANSWERS } from \"constants/actions\";\nimport MoodCard from \"./MoodCard\";\nimport MoodSelect from \"./MoodSelect\";\n\nconst MoodQuestion = (props) => {\n const { moodQuestions } = props;\n const dispatch = useDispatch();\n const [flipped, setFlip] = React.useState(null);\n const [emotions, setEmotion] = React.useState([]);\n// console.log(emotions)\n// console.log(moodQuestions)\n const selectEmotion = (selected) => {\n\n if (emotions.length < 3) {\n if (emotions.filter((p) => p.id === selected.id)[0]) {\n setEmotion(emotions.filter((em) => em.id !== selected.id));\n } else {\n let _emot = emotions;\n // _emot.push(selected)\n _emot.push({\n sort: emotions.length + 1,\n id: selected.id,\n name: selected.name,\n color: selected.color,\n score: selected.score,\n feeling: selected.feeling,\n });\n setEmotion(_emot.sort((a, b) => parseFloat(a.sort) - parseFloat(b.sort)));\n }\n setFlip(null);\n }\n\n dispatch({\n type: SET_ANSWERS,\n payload: { mood_answers: emotions.sort((a, b) => parseFloat(a.sort) - parseFloat(b.sort)),\n },\n });\n };\n\n const remove = (emotion_id) => {\n setEmotion(emotions.filter((em) => em.id !== emotion_id));\n dispatch({\n type: SET_ANSWERS,\n payload: { \n mood_answers: emotions.filter((em) => em.id !== emotion_id)\n },\n \n });\n };\n\n\n return (\n \n \n In relation to work lately, what emotions best describe how you’ve been\n feeling?\n \n\n Pick up to 3 emotions\n\n \n {emotions.sort((a, b) => parseFloat(a.sort) - parseFloat(b.sort)).map((item, i) => (\n \n ))}\n \n\n \n {moodQuestions\n ? moodQuestions.map((item, i) => {\n return (\n setFlip(x)}\n selectEmotion={(e) => selectEmotion(e)}\n selected={emotions}\n key={i}\n />\n );\n })\n : \"\"}\n \n\n {emotions.length === 0 ? (\n \n ) : (\n props.askComments(emotions)}>Next\n )}\n \n );\n};\n\nexport default MoodQuestion;\n\nconst Container = styled.div`\n position:absolute;\n top:30px;\n\n @media only screen and (min-width: 992px) {\n top:10vh;\n min-height:750px;\n }\n`\n\n// const TopText = styled.div`\n// color: #4a4a4a;\n// font-size: 18px;\n// font-weight: 500;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-bottom: 10px;\n// `;\n\nconst Question = styled.div`\n color: #4a4a4a;\n font-size: 23px;\n font-family: \"Red Hat Display\", sans-serif;\n font-weight: bold;\n max-width: 672px;\n line-height: normal;\n margin-bottom: 10px;\n\n @media(max-height:600px){\n font-size:16px;\n }\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-bottom: 20px;\n }\n\n @media (max-height:900){\n margin-bottom: 10px;\n }\n`;\n\nconst Pick = styled.div`\n color: #4a4a4a;\n font-size: 14px;\n font-weight: 500;\n font-family: \"Red Hat Display\", sans-serif;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: 10px;\n }\n`;\n\nconst EmotionContainer = styled.div`\n height: 55px;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n @media only screen and (min-width: 768px) and (max-height:750px){\n height:30px;\n }\n\n @media only screen and (min-width: 992px) and (min-height:750px){\n margin-bottom: 30px;\n height: 50px;\n }\n\n\n`;\n\nconst Next = styled.div`\n width: 111px;\n height: 47px;\n border-radius: 5px;\n background-color: #fff0cf;\n color: #4a4a4a;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 0px;\n cursor: pointer;\n\n @media only screen and (min-width: 768px) and (max-height:850px) {\n margin-top: -20px;\n }\n\n @media only screen and (min-width: 992px) and (min-height:850px) {\n margin-top: 20px;\n }\n`;\n\nconst Filler = styled.div`\n height: 47px;\n margin-top: 10px;\n @media only screen and (min-width: 992px) {\n margin-top: 90px;\n }\n`;\n\n// const moods = [\n// \"Curiosity\",\n// \"Enjoyment\",\n// \"Motivation\",\n// \"Discontent\",\n// \"Stress\",\n// \"Anger\",\n// ];\n","import styled from \"styled-components\";\nimport React from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { MOOD_UPDATE_COMMENTS } from \"constants/actions\";\n// import definition from \"data/emotion_definitions.json\"\n\n\nconst EmotionCard = (props) => {\nconst dispatch = useDispatch();\n const { mood } = props;\n const [comment, setComment] = React.useState(\"\");\n\n const select = () => {\n if (!props.selected) {\n props.setSelected();\n }\n };\n\n React.useEffect(() => {\n if (props.mood.comment) {\n setComment(props.mood.comment)\n }\n }, [props])\n\n function UpdateComments(e) {\n dispatch({type: MOOD_UPDATE_COMMENTS, payload : {...mood, comment: e}})\n }\n\n// console.log(mood)\n\n return (\n select()}>\n \n {mood.name}\n {mood.feeling}\n \n \n setComment(e.target.value)}\n onBlur={(e) => UpdateComments(e.target.value)}\n rows=\"8\"\n maxLength=\"300\"\n disabled={!props.selected}\n placeholder=\"Add reflection comments here\"\n />\n \n {comment? comment.length: 0}/300\n \n );\n};\n\nexport default EmotionCard;\n\nconst Top = styled.div`\n width: 100%;\n height: 120px;\n background-color: ${(props) => \"rgba(\" + props.color + \")\"};\n display: flex;\n justify-content: center;\n flex-direction: column;\n padding: 16px;\n`;\nconst Emotion = styled.div`\n font-size: 23px;\n font-weight: bold;\n color: #ffffff;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 10px;\n`;\n\nconst Definition = styled.div`\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n line-height: 1.31;\n color: #ffffff;\n`;\n\nconst TextContainer = styled.div`\n width: 100%;\n height: 180px;\n padding: 12px;\n`;\n\nconst Container = styled.div`\n border-radius: 5px;\n box-shadow: 0 2px 10px 0 #ececec;\n width: calc(100vw - 30px);\n min-width: 285px;\n max-width: 300px;\n display: flex;\n align-items: center;\n flex-direction: column;\n overflow: hidden;\n margin-right: 24px;\n opacity: ${(props) => (props.selected ? 1 : 0.2)};\n z-index: ${(props) => (props.selected ? 2 : 1)};\n user-select: ${(props) => (props.selected ? \"auto\" : \"none\")};\n cursor: ${(props) => (props.selected ? \"auto\" : \"pointer\")};\n position: absolute;\n left: ${(props) => (props.selected ? 0 : \"500px\")};\n top: 0;\n transition: left 500ms;\n\n :hover {\n opacity: ${(props) => (props.selected ? 1 : 0.4)};\n }\n\n @media only screen and (min-width: 500px) {\n width: 300px;\n position: static;\n }\n`;\n\nconst TextBox = styled.textarea`\n width: 100%;\n line-height: 1.31;\n color: #4a4a4a;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n border: none;\n resize: none;\n cursor: ${(props) => (props.selected ? \"auto\" : \"pointer\")};\n\n &:focus {\n outline: none;\n }\n\n ::placeholder {\n color: #4a4a4a;\n }\n`;\n\nconst Total = styled.div`\n font-size: 12px;\n font-weight: 900;\n color: #696969;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n padding-right: 12px;\n padding-bottom: 12px;\n font-family: \"Red Hat Display\", sans-serif;\n`;","import styled from \"styled-components\";\nimport React, { useLayoutEffect, useState } from \"react\";\n\n\nimport EmotionCard from \"./EmotionCard\";\n\nfunction useWindowSize() {\n\n const [size, setSize] = useState([0, 0]);\n useLayoutEffect(() => {\n function updateSize() {\n let width =\n window.innerWidth < 992 ? window.innerWidth : window.innerWidth - 304;\n setSize([width, window.innerHeight]);\n }\n window.addEventListener(\"resize\", updateSize);\n updateSize();\n return () => window.removeEventListener(\"resize\", updateSize);\n }, []);\n return size;\n}\n\nconst Reflection = (props) => {\n\n const [selected, setSelected] = React.useState(0);\n const [\n width, \n // height\n ] = useWindowSize();\n const [shift, setShift] = useState(0);\n\n const getNext = () => {\n if (selected < Object.keys(props.answers).length - 1) {\n setSelected(selected + 1);\n if (width - (selected + 2) * 324 < 0) {\n setShift((selected + 2) * 324 - width);\n } else {\n setShift(0);\n }\n }\n // \n };\n\n const getClicked = (i) => {\n setSelected(i);\n if (width - (i + 1) * 324 < 0) {\n setShift((i + 1) * 324 - width);\n } else {\n setShift(0);\n }\n };\n\n const back = () => {\n let newSelect = selected > 0 ? selected - 1 : 0;\n setSelected(newSelect);\n if (width - (newSelect + 1) * 324 < 0) {\n setShift((newSelect + 1) * 324 - width);\n } else {\n setShift(0);\n }\n };\n\n\n\n return (\n \n Take a moment to reflect\n \n Improve the emotional intelligence of yourself and your team by\n reflecting on the cause of each emotion you selected\n \n \n {props.answers.map((item, i) => {\n return (\n getClicked(i)}\n key={i}\n />\n );\n })}\n \n \n back()} selected={selected}>\n Back\n \n {selected < Object.keys(props.answers).length - 1 ? (\n getNext()}>Next\n ) : (\n props.SubmitAnswers()}>\n Finish\n \n )}\n \n \n );\n};\n\nexport default Reflection;\n\n\nconst TopText = styled.div`\n color: #4a4a4a;\n font-size: 23px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 10px;\n margin-top:30px;\n`;\n\nconst SubText = styled.p`\n line-height: 1.31;\n letter-spacing: normal;\n color: #4a4a4a;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 30px;\n display: flex;\n\n`;\nconst Next = styled.div`\n width: 111px;\n height: 47px;\n border-radius: 5px;\n background-color: #fff0cf;\n color: #4a4a4a;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nconst FinishNext = styled.div`\n width: 111px;\n height: 47px;\n border-radius: 5px;\n background-color: #fff0cf;\n color: #4a4a4a;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\nconst Back = styled.div`\n font-family: \"Red Hat Display\", sans-serif;\n font-size: 16px;\n color: ${(props) => (props.selected === 0 ? \"grey\" : \"black\")};\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n display: none;\n }\n`;\n\nconst Container = styled.div`\n width: calc(100% - 15px);\n position:absolute;\n top:50px;\n\n @media (max-height:600px){\n top:20px;\n }\n\n @media only screen and (min-width: 992px) {\n width: calc(100vw - 274px);\n }\n`;\n\nconst ButtonContainer = styled.div`\n margin-top: 10px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n @media only screen and (min-width: 992px) {\n margin-top: 90px;\n }\n\n @media only screen and (min-width:768px) and (max-height:750px){\n margin-top:40px;\n }\n`;\n\nconst EmotionContainer = styled.div`\n display: flex;\n flex-direction: row;\n overflow: hidden;\n position: relative;\n min-height: 300px;\n transition: margin-left 500ms;\n\n @media only screen and (min-width: 992px) {\n margin-left: ${(props) => -props.shift + \"px\"};\n }\n`;","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/intro_mood.png'\n\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n line-height:1;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n color: #4a4a4a;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #6a00ff;\n color: white;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n top:200px;\n position: absolute;\n\n @media only screen and (max-width:768px){\n top:10%;\n }\n\n @media(max-height:750px){\n top:5%;\n }\n`\nconst Image = styled.img`\n height:250px;\n margin-bottom:20px;\n\n @media(max-width:768px){\n width:60%;\n height:auto;\n }\n\n @media(max-height:650px){\n width:30%;\n height:auto;\n }\n`\n\nconst ImageContainer = styled.div`\n width:654px;\n display:flex;\n justify-content:center;\n\n @media(max-width:768px){\n width:100%;\n }\n`\n\n\nconst Intro = (props) =>{\n\n\treturn (\n\t\t\n \n \n \n\t\t\tMood Check-in\n {parseInt(props.role) === 21 ?\n Your responses in this section are completely anonymous. :\n parseInt(props.role) === 11 ?\n Your responses in this section are only shared with your team leader(s)\n : Your responses in this section are only visible to both team leader(s),\n and your team members.}\n\t\t\tprops.next()}>Begin\n\t\t\n\n\t\t)\n}\n\n\nexport default Intro","//export const SlideDirection = [\"SlideDown\", \"SlideUp\", \"SlideStay\"];\nexport const SlideDirection = [\"slide-down\", \"slide-up\", \"SlideStay\"];\nexport const TRANSITIONSPEED = 800","import React from \"react\";\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\nimport { SET_ANSWERS, SUBMIT_ANSWER } from \"constants/actions\";\n\nimport MoodQuestion from \"./Selection/index\";\nimport Reflection from \"./Reflection/index\";\nimport styled from \"styled-components\";\nimport Intro from \"./Intro\";\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED } from \"constants/animation\"\n\nimport \"survey/survey.css\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nconst SurveyContainer = styled.div`\n padding: 15px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100vw;\n box-sizing: border-box;\n min-height:750px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n }\n`;\nconst deviceDetected = deviceDetect();\nconst Mood = (props) => {\n const dispatch = useDispatch();\n\n const { moodQuestions } = props;\n const [moodAnswers, setMoodAnswer] = React.useState({});\n const [q, setQ] = React.useState(0);\n\n const { get_answers } = useSelector(\n (state) => ({\n get_answers: state.answers,\n }),\n shallowEqual\n );\n\n const SubmitAnswers = (selectedMood) => {\n // check for next required survey on the list\n // dispatch({type: ADD_MOOD_ANSWER, payload : selectedMood})\n dispatch({\n type: SUBMIT_ANSWER,\n payload: {\n mood_answers: get_answers.mood_answers,\n employee: get_answers.employee,\n token: get_answers.token,\n device: deviceDetected,\n mobile: isMobile ? \"Yes\" : \"No\",\n browser: isBrowser ? \"Desktop\" : \"Other Devise\",\n operating_system: osName,\n user_ip: get_answers.user_ip,\n mood_survey_compliance: get_answers.mood_survey_compliance,\n mood_high_ans: 3,\n },\n });\n\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_survey_type: get_answers.all_survey_types[1],\n survey_type: get_answers.all_survey_types[1],\n all_survey_types: get_answers.all_survey_types.slice(1),\n },\n });\n };\n\n function startSurvey() {\n window.scrollTo(0, 0)\n dispatch({\n type: SET_ANSWERS,\n payload: {\n mood_cur_ques: 0,\n mood_ques_start: true,\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n mood_high_ans: 2,\n },\n });\n setQ(q + 1);\n }\n\n React.useEffect(() => {\n if (get_answers?.mood_answers.length > 1) {\n setMoodAnswer(\n get_answers.mood_answers.sort(\n (a, b) => parseFloat(a.id) - parseFloat(b.id)\n )\n );\n } else {\n setMoodAnswer(get_answers.mood_answers);\n }\n }, [get_answers]);\n\n function askComments(e) {\n // console.log(e)\n // setMoodAnswer(e)\n window.scrollTo(0, 0)\n setQ(q + 1);\n dispatch({\n type: SET_ANSWERS,\n payload: {\n mood_high_ans: 3,\n },\n });\n }\n\n function ShowResponse() {\n if (q === 0) {\n return (\n \n )\n }\n if (q === 1) {\n return (\n \n )\n }\n if (q === 2) {\n return (\n \n \n )\n }\n }\n\n return (\n \n \n \n {ShowResponse()}\n \n \n\n \n );\n};\n\nexport default Mood;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Dropdown } from 'semantic-ui-react'\n\nconst SelectTeamMember = (props) => {\nconst {selected, teamList, setIntQuestion, \n get_questions, employeeId, SubmitAnswer} = props\n const select = (e, t) => {\n // console.log(t)\n if (t.value.length < 11) {\n props.setSelected(t.value)\n }\n }\n\n\n React.useEffect(() => {\n setIntQuestion(get_questions.questions.filter(\n\t\t\tp => p.id === 1)[0])\n }, [setIntQuestion, get_questions]);\n // console.log(props.teamList)\nconst OtherTeam = teamList.filter(tl => tl.id !== employeeId)\n// console.log(OtherTeam)\n\nreturn (\n \n Select the members from your organization that you spent the most time working or collaborating with this week.\n Please select at least 1 person and at most 10\n \n select(e, t)}\n />\n \n \n {/* */}\n Submit\n \n \n )\n}\n\n\nexport default SelectTeamMember\n\n\nconst Container = styled.div`\n top:50px;\n position: absolute;\n width:90%;\n display:flex;\n flex-direction:column;\n box-sizing: border-box;\n\n\n\n @media(max-height:600px){\n top:30px;\n }\n\n @media(min-width:992px) and (min-height:650px){\n top:200px;\n }\n`\n\n\nconst Question = styled.div`\nfont-size: 18px;\nwidth: 700px;\nfont-family: 'Red Hat Display', sans-serif;\nline-height: 1.3;\nmargin-top:14px;\nmax-width:100%;\n\nfont-weight:500;\n@media only screen and (min-width:992px) and (max-height:700px){\n font-size: 20px;\n margin-top:28px;\n}\n\n@media only screen and (min-width:992px) and (min-height:700px){\n font-size: 23px;\n margin-top:28px;\n}\n`\n\nconst DropDownContainer = styled.div`\n\tmax-width:700px;\n\twidth:100%;\n\tmargin-top:30px;\n\tmargin-bottom:20px;\n\n @media(max-width:768px){\n margin-bottom:0px;\n }\n`\n\nconst SubText = styled.div`\n\tmax-width: 700px;\n\tfont-family: 'Red Hat Display', sans-serif;\n\tmargin-top:10px;\n`\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: ${props => props.enabled ? \"#6a00ff\" : \"grey\"}; \n// color:white;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// justify-content:center;\n// align-items:center;\n// cursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\n// width:100px;\n// margin-top:50px;\n\n// @media (max-height:600px){\n// margin-top:30px;\n// }\n// `\n\nconst StyledSubmitButton = styled.div`\nheight: 40px;\nborder-radius: 10px;\nbackground-color: ${props => props.enabled ? \"#008000\" : \"grey\"}; \ncolor:white;\nfont-size: 16px;\nfont-weight: bold;\nfont-family: 'Red Hat Display', sans-serif;\ndisplay:flex;\njustify-content:center;\nalign-items:center;\ncursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\nwidth:100px;\nmargin-top:50px;\n\n@media (max-height:600px){\n margin-top:30px;\n}\n`\n\nconst ButtonContainer = styled.div`\n\twidth:700px;\n`\n","\nimport React from 'react';\nimport styled from 'styled-components';\n// import { Dropdown, Input } from 'semantic-ui-react'\nimport Slider from '@material-ui/core/Slider';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Pic from 'assets/images/score.png'\n\nconst PrettoSlider = withStyles({\n root: {\n color: 'grey',\n height: 8,\n },\n thumb: {\n height: 24,\n width: 24,\n backgroundColor: '#FA675C',\n color:'#FA675C',\n border: '2px solid currentColor',\n marginTop: -8,\n marginLeft: -12,\n '&:focus, &:hover, &$active': {\n boxShadow: 'inherit',\n },\n },\n active: {},\n valueLabel: {\n left: 'calc(-50% + 4px)',\n },\n track: {\n height: 8,\n borderRadius: 4,\n },\n rail: {\n height: 8,\n borderRadius: 4,\n },\n})(Slider);\n\n\n\n\nconst Selection = (props) => {\n const { prevScore, cultureAnswers, setStage, currQuestion } = props\n const [value, setValue] = React.useState(0)\n const [started, setStarted] = React.useState(false)\n\n\n const handleChange = (event, newValue) => {\n setValue(newValue);\n setStarted(true)\n };\n\n const getWord = () => {\n if (value === 0 && !started) {\n return \"\"\n }\n if (value < 20) {\n return 'Not at all'\n }\n if (value < 40) {\n return \"Not much\"\n }\n if (value < 60) {\n return \"Somewhat\"\n }\n if (value < 80) {\n return \"Mostly\"\n }\n return \"Absolutely\"\n }\n\n function getDifference() {\n\n if (value === 0 || !prevScore) {\n return \"\"\n }\n if (value - prevScore < 0) {\n return (
\n This is a  {(value - prevScore)}%  change from last week\n
)\n }\n\n\n if (value - prevScore > 0) {\n return (
\n This is a  +{(value - prevScore)}%  change from last week\n
)\n }\n console.log('3')\n return (
\n This is a {` ${(value - prevScore)}%`} change from last week\n
)\n\n \n }\n function NextQuestion() {\n if (value > 0) {\n setStage(value)\n }\n \n }\n// console.log(currQuestion)\n// console.log(cultureAnswers)\nReact.useEffect(() => {\n const FoundAns = cultureAnswers.filter(ca => ca.id=== currQuestion)?.[0]\n if (FoundAns) {\n setValue(FoundAns.answer)\n }\n else {\n setValue(0)\n }\n \n}, [cultureAnswers, currQuestion]);\n return (\n \n {props.area}\n {props.text}\n {/* Please select at least 1 person and at most 10 */}\n\n \n \n {value?value+'%':\"\"}\n {getWord()}\n
\n {getDifference(70)} \n
\n
\n \n \n \n \n \n \n \n
\n )\n\n}\n\nexport default Selection\n\n\n\n\n\n\nconst Container = styled.div`\n top:50px;\n position: absolute;\n width:90%;\n display:flex;\n flex-direction:column;\n\n @media(max-width:768px){\n height:calc(100vh - 50px);\n top:50px;\n display:flex;\n flex-direction:column;\n }\n\n @media(max-height:600px){\n top:50px;\n }\n\n @media(min-width:992px) and (min-height:850px){\n top:200px;\n }\n\n \n`\n\nconst Visual = styled.div`\n width:700px;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n justify-content:center;\n font-size:40px;\n font-weight:bold;\n line-height:1;\n margin-bottom:5px;\n height:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`\n\nconst BackImg = styled.img`\n position:absolute;\n width:250px;\n height:250px;\n top:-55%;\n left:calc(350px - 125px);\n\n @media(max-width:768px){\n left:calc(50% - 125px);\n \n }\n \n\n @media(max-height:640px){\n width:250px;\n height:250px;\n left:calc(50% - 125px);\n top:-55%;\n }\n\n`\n\nconst Anchor = styled.div`\n position:relative;\n margin-top:100px;\n margin-bottom:80px;\n width:700px;\n \n\n @media(max-width:768px){\n margin-top:50px;\n margin-bottom:80px;\n width:100%;\n }\n\n @media(max-height:600px) and (min-width:768px){\n margin-top:80px;\n margin-bottom:50px;\n }\n\n @media(max-height:600px) and (max-width:768px){\n margin-top:30px;\n margin-bottom:50px;\n }\n`\n\nconst Question = styled.div`\nfont-size: 16px;\nfont-weight: bold;\nwidth: 700px;\nfont-family: 'Red Hat Display', sans-serif;\nline-height: 1.6;\nmargin-top:14px;\nmax-width:95%;\nmargin-bottom:10px;\n\n\n@media only screen and (min-width:992px) and (max-height:700px){\n font-size: 20px;\n margin-top:28px;\n}\n\n@media only screen and (min-width:992px) and (min-height:700px){\n font-size: 23px;\n margin-top:28px;\n}\n\n@media (max-width:768px){\n\tmargin-bottom:60px;\n\tfont-size:16px;\n\tfont-weight:bold;\n}\n`\n\nconst Change = styled.span`\ncolor:${props => props.color ? props.color : \"grey\"};\nfont-weight: 800;\n\n`\n\n\nconst Title = styled.div`\nfont-size: 16px;\nfont-family: 'Red Hat Display', sans-serif;\nwidth: 700px;\n\n\n@media(max-width:768px){\n\tfont-size:14px;\n}\n`\n\nconst SliderContainer = styled.div`\n\tmax-width:700px;\n\n`\n\nconst Value = styled.div`\n\tfont-family: 'Red Hat Display', sans-serif;\n\twidth:700px;\n\tdisplay:flex;\n\tjustify-content:center;\n\theight:25px;\n\t\tfont-size:20px;\n\n @media(max-width:768px){\n width:100%;\n }\n`\nconst ColoredValue = styled.div`\n\tfont-family: 'Red Hat Display', sans-serif;\n\twidth:130px;\n\tdisplay:flex;\n\tjustify-content:center;\n align-items:center;\n\theight:50px;\n\tmargin-bottom:20px;\n\t\tfont-size:12px;\n\tcolor:# ${props => props.color ? \"#7F7F7F\" : props.color};\n white-space:pre-wrap;\n\n @media(max-width:768px){\n width:130px;\n }\n`\n\nconst Button = styled.div`\nheight: 40px;\nborder-radius: 10px;\nbackground-color: ${props => props.enabled ? \"#6a00ff\" : \"grey\"}; \ncolor:white;\nfont-size: 16px;\nfont-weight: bold;\nfont-family: 'Red Hat Display', sans-serif;\ndisplay:flex;\njustify-content:center;\nalign-items:center;\ncursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\nwidth:100px;\nmargin-top:50px;\n\n@media (max-height:600px){\n margin-top:20px;\n}\n`\nconst ButtonContainer = styled.div`\n\twidth:700px;\n`","\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Question = (props) => {\n const { SaveAnswer, \n setComment, comment, askFollowUp,\n answer, team_avg, previous_score, area\n } = props\n\n function ChangedComments(e) {\n setComment(e.target.value)\n }\n\n // console.log(askFollowUp)\n\n return (\n \n \n \n \n Providing feedback helps your team grow stronger\n ChangedComments(e)}\n maxLength=\"400\"\n />\n\n \n {/* {currQuestion !== maxQuestion ? */}\n Next\n {/* :\n \n } */}\n\n \n \n )\n}\n\n// answer={answer}\n// comment={comment}\n// setComment={setComment}\n// askFollowUp={askFollowUp}\n// team_avg={Number(teamResponse.score)} // team_avg\n// previous_score={Number(indResponse.score)} // previous_score\n// area={intQuestion.area}\n// SaveAnswer={SaveAnswer}\n\nexport default Question\n\nconst ConditionQuestion = ({ askFollowUp, answer, team_avg, previous_score, area }) => {\n // console.log(answer, team_avg, previous_score, area)\n // team_avg = 77\n // console.log(askFollowUp)\n\n // // console.log(answer)\n // console.log(previous_score)\n // // if (isNaN(parseFloat(previous_score))) {\n // // return \"Are there any comments you'd like to make on your %s score?\".replaceAll('%s', area)\n // // }\n // // console.log(\"here 1\")\n // // if (askFollowUp) {\n // // console.log(askFollowUp?.filter(l => l.level === 1)[0])\n\n if (answer > previous_score) {\n // 1 0 1\n if (answer < team_avg) {\n return askFollowUp?.find(({ level }) => level === 1)?.comment.replaceAll('%s', area)\n }\n // 1 1 0\n if (previous_score > team_avg) {\n return askFollowUp?.find(({ level }) => level === 2)?.comment.replaceAll('%s', area)\n }\n // 1 0 1\n\n if (previous_score < team_avg && answer > team_avg) {\n return askFollowUp?.find(({ level }) => level === 3)?.comment.replaceAll('%s', area)\n }\n\n if(previous_score===team_avg){\n \treturn askFollowUp?.find(({ level }) => level === 2)?.comment.replaceAll('%s', area)\n }\n }\n if (answer < previous_score && previous_score < team_avg) {\n return askFollowUp?.find(({ level }) => level === 4)?.comment.replaceAll('%s', area)\n }\n if (answer < previous_score && answer > team_avg && previous_score > team_avg) {\n return askFollowUp?.find(({ level }) => level === 5)?.comment.replaceAll('%s', area)\n }\n if (answer < previous_score && previous_score > team_avg && answer < team_avg) {\n return askFollowUp?.find(({ level }) => level === 6)?.comment.replaceAll('%s', area)\n }\n\n // }\n\n return \"Are there any comments you'd like to make on your %s score?\".replaceAll('%s', area)\n //No change in score???? \n // Same as team average???\n \n}\n\nconst Container = styled.div`\n top:15%;\n position: absolute;\n width:90%;\n display:flex;\n flex-direction:column;\n\n\n\n\n @media(max-height:600px){\n top:5%;\n }\n\n\n @media(min-width:992px) and (min-height:650px){\n top:200px;\n }\n`\n\nconst Questioned = styled.div`\nfont-size: 18px;\nwidth: 700px;\nfont-family: 'Red Hat Display', sans-serif;\nline-height: 1.3;\nmargin-top:14px;\nmax-width:100%;\nmargin-bottom:40px;\n\n\n@media only screen and (min-width:992px) and (max-height:700px){\n font-size: 20px;\n margin-top:28px;\n}\n\n@media only screen and (min-width:992px) and (min-height:700px){\n font-size: 23px;\n margin-top:28px;\n}\n`\n\nconst Sub = styled.div`\n\tfont-family: 'Red Hat Display', sans-serif;\n\twidth:700px;\n\tfont-size:12px;\n\tmax-width:95%;\n`\n\n// const Box = styled.div`\n// width: calc(100% - 30px);\n// border-radius: 8px;\n// background-color: #7c2aef;\n// margin-top: 32px;\n// overflow: hidden;\n\n// @media only screen and (min-width: 992px) {\n// width: 401px;\n// }\n// `;\n// const Answer = styled.div`\n// font-size: 18px;\n// font-weight: bold;\n// color: white;\n// width: 100%;\n// border-bottom: 1px solid white;\n// padding: 15px;\n// font-family: \"Red Hat Display\", sans-serif;\n// `;\n\nconst SubText = styled.textarea`\n max-width: 700px;\n color: black;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n background-color: #f8f8f8;\n border-radius: 8px;\n border: none;\n padding: 15px;\n margin: 12px 12px 12px 0px;\n\n &:focus {\n outline: none;\n }\n\n ::placeholder {\n color: #b8b8b8;\n }\n`;\n\nconst StyledButton = styled.div`\nheight: 40px;\nborder-radius: 10px;\nbackground-color: ${props => props.enabled ? \"#6a00ff\" : \"grey\"}; \ncolor:white;\nfont-size: 16px;\nfont-weight: bold;\nfont-family: 'Red Hat Display', sans-serif;\ndisplay:flex;\njustify-content:center;\nalign-items:center;\ncursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\nwidth:100px;\nmargin-top:50px;\n\n@media (max-height:600px){\n margin-top:30px;\n}\n`\n// const StyledSubmitButton = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: ${props => props.enabled ? \"#008000\" : \"grey\"}; \n// color:white;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// justify-content:center;\n// align-items:center;\n// cursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\n// width:100px;\n// margin-top:50px;\n\n// @media (max-height:600px){\n// margin-top:30px;\n// }\n// `\n\nconst ButtonContainer = styled.div`\n\twidth:700px;\n`","import React from 'react';\n// import styled from 'styled-components';\n// import { Dropdown, Input } from 'semantic-ui-react'\n// import Slider from '@material-ui/core/Slider';\n// import { withStyles } from '@material-ui/core/styles';\nimport Selection from './Selection'\nimport Question from './Question'\n\n// const Question_templates = [\n// \t\"It’s good to see your %s improving since our last check-in, however your %s is still below the team average. \\nWhat would help improve your clarity even more moving forward?\",\n// \t\"It’s good to see your %s score improving since our last check-in, and even better to see it remaining above the team average. \\nWhat helps keep your clarity high within our team?\",\n// \t\"It’s good to see your %s score improving since our last check-in, and even better to see it go above the team average. \\nWhat has to continue happening to keep your clarity high?\",\n// \t\"Your %s has decreased since our last check-in and remains below the team average. Let’s learn from this: \\nWhy do you think your %s isn’t improving within our team?\",\n// \t\"Your %s has decreased since our last check-in but is still above the team average. Let’s get curious about this: \\nWhat do you think caused your %s to decrease?\",\n// \t\"Your %s has decreased since our last check-in and is now below the team average. Let’s learn from this: \\nWhat has changed to cause your %s to decrease and dip below the team average?\"\n// ]\n\n// const areas = ['Trust', 'Clarity', 'Communication', 'Alignment', 'Resilience', 'Impact']\n\n// const questions = ['Lately, i’ve been comfortable sharing my honest opinions and ideas on this team, even if they differ from others.',\n// \t'I have a clear understanding of my role and what’s expected of me right nowon this team.',\n// \t'Information and ideas are being expressed clearly, directly, and respectfully lately within our team.',\n// \t'Lately on our team I feel like we share the same values.',\n// \t'I’m able to handle difficulties and cope with challenges effectively right now.',\n// \t'I understand how what I’m working on right now contributes to our team’s bigger mission or goal.'\n// ]\n\n\n\n\nconst TeamHealth = (props) => {\n\tconst { get_questions, previous_response,\n\t\tintQuestion, setIntQuestion,\n\t\tcomment, setComment,\n\t\tanswer, setAnswer, cultureAnswers,\n\t\tSaveAnswer, SubmitAnswer,\n\t\tcurrQuestion, maxQuestion } = props\n\n\tconst [askFollowUp, setAskFollowUp] = React.useState(false)\n\n\tconst [indResponse, setIndResponse] = React.useState(false)\n\tconst [teamResponse, setTeamResponse] = React.useState(false)\n\n\tconst getAnswer = (a) => {\n\t\tprops.setAnswer(a)\n\t\tprops.setQuestion()\n\t}\n\t// console.log(get_questions)\n// console.log(get_questions.previous)\n\n\tReact.useEffect(() => {\n\t\tsetIntQuestion(get_questions?.questions.filter(\n\t\t\tp => p.id === currQuestion)[0])\n\t\tsetAskFollowUp(get_questions?.previous)\n\t\t// \n\t}, [get_questions, currQuestion, setIntQuestion])\n\n\tReact.useEffect(() => {\n\t\tif (previous_response?.individual_response?.responses) {\n\t\t\tsetIndResponse(previous_response?.individual_response?.responses.filter(p => p.id === currQuestion)[0])\n\t\t}\n\n\t\tif (previous_response?.team_response) {\n\t\t\tsetTeamResponse(previous_response?.team_response.filter(p => p.id === currQuestion)[0])\n\t\t}\n\n\t}, [previous_response, currQuestion])\n\n\t// console.log(answer)\n\t// if (askFollowUp) {\n\t// \tconsole.log(askFollowUp?.find(({ level }) => level === 1))\n\t// }\n\n\t// console.log(indResponse)\n\t// console.log(teamResponse)\n\t// console.log(get_questions.questions)\n\t// console.log(get_questions.previous)\n\t// console.log(previous_response?.individual_response?.responses.filter(p => p.id === currQuestion)[0])\n\t// console.log(previous_response?.team_response.filter(p => p.id === currQuestion)[0])\n\t// ?.responses\n\treturn (\n\t\t<>\n\t\t\t{!answer ?\n\t\t\t\t getAnswer(a)}\n\t\t\t\t\ttext={intQuestion?.question}\n\t\t\t\t\tarea={intQuestion?.area}\n\t\t\t\t\tsetAnswer={setAnswer}\n\t\t\t\t\tcultureAnswers={cultureAnswers}\n\t\t\t\t\tcurrQuestion={currQuestion}\n\t\t\t\t\tprevScore={indResponse?.score}\n\t\t\t\t/>\n\t\t\t\t:\n\t\t\t\t\n\t\t\t}\n\t\t\n\t)\n\t\n}\n\nexport default TeamHealth\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { useDispatch } from \"react-redux\";\nimport { SET_ANSWERS } from \"constants/actions\";\n// import { Button } from 'semantic-ui-react'\n// import { Link } from \"react-router-dom\";\nimport Pic from 'assets/images/intro.png'\n\n\n\nconst Intro = (props) => {\n const {currQuestion} = props\n const dispatch = useDispatch();\n function StartSurvey() {\n dispatch({\n type: SET_ANSWERS,\n payload: { culture_cur_ques: currQuestion + 1, curr_direction: 1 },\n });\n props.next()\n }\n\n \n return (\n \n \n \n \n Team Health Check\n\n\n {/* eslint-disable-next-line eqeqeq */}\n {parseInt(props.role) == 21 ?\n Your responses in this section are completely anonymous. :\n // eslint-disable-next-line eqeqeq\n parseInt(props.role) == 11 ?\n Your responses in this section are only shared with your team leader(s)\n : Your responses in this section are only visible to both team leader(s),\n and your team members.}\n\n\n {/* missing no of team members your [12] team members */}\n Begin\n \n );\n};\n\nexport default Intro;\n\nconst Title = styled.div`\n font-size: 30px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 20px;\n color: black;\n line-height: 1;\n\n @media only screen and (min-width: 992px) {\n font-size: 72px;\n margin-bottom: 50px;\n }\n\n\n`;\nconst SubTitle = styled.div`\n font-size: 16px;\n line-height: 1.17;\n color: black;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 20px;\n max-width: 654px;\n\n @media only screen and (min-width: 992px) {\n font-size: 72px;\n margin-bottom: 50px;\n font-size: 24px;\n }\n`;\n\n// const StyledMessage = styled.div`\n// font-size: 18px;\n// line-height: 1.17;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// flex-direction: column;\n// padding: 15px;\n// background-color: black;\n// color: white;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-bottom: 20px;\n// max-width: 654px;\n\n// @media only screen and (min-width: 992px) {\n// font-size: 72px;\n// margin-bottom: 50px;\n// font-size: 24px;\n// }\n// `;\n\nconst Next = styled.div`\n width: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #6a00ff;\n color: white;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n margin-bottom:40px;\n\n @media(max-width:768px){\n margin-top:30px;\n }\n`;\n\nconst StyledContainer = styled.div`\n position: absolute;\n\n top:100px;\n width: calc(100vw - 30px);\n\n @media(max-width:768px){\n top:10%;\n\n\n }\n\n @media(max-height:750px){\n top:5%;\n }\n`;\n\nconst Image = styled.img`\n height:200px;\n margin-bottom:20px;\n\n @media(max-width:768px){\n width:80%;\n height:auto;\n }\n\n @media(max-width:767px) and (max-height:750px){\n width:60%;\n }\n\n \n`\n\nconst ImageContainer = styled.div`\n width:654px;\n display:flex;\n justify-content:center;\n\n @media(max-width:768px){\n width:100%;\n }\n\n`\n","import React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nimport \"survey/survey.css\";\nimport SelectTeamMember from './SelectTeamMembers'\n// import RankTime from './RankTime'\nimport TeamHealth from './TeamHealth'\n// import Background from './Background'\n// import ErrorRedo from \"./ErrorRedo\";\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport {TRANSITIONSPEED} from \"constants/animation\"\n\nimport Intro from './Intro'\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport {\n LOAD_CULTURE_QUESTIONS,\n LOAD_MOOD_QUESTIONS,\n LOAD_LEADERSHIP_QUESTIONS,\n SET_ANSWERS,\n SG_START_SURVEY,\n LOAD_PREVIOUS_RESPONSE,\n ADD_CULTURE_ANSWER,\n SUBMIT_ANSWER,\n ADD_TEAM_ANSWER,\n} from \"constants/actions\";\n\nimport BlankUser from \"assets/images/empty/user.svg\"\nconst TeamIntelligence = (props) => {\n // console.log(props)\n const {setSurveyType} = props\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n let { token } = useParams();\n \n\n const [selected, setSelected] = React.useState([])\n const [question, setQuestion] = React.useState(1)\n const [intro,setIntro] = React.useState(true)\n\n const [intQuestion, setIntQuestion] = React.useState([])\n // const [answer,setAnswer] = React.useState(null)\n\n const [answer, setAnswer] = React.useState(false);\n const [comment, setComment] = React.useState(null);\n\n const [employeeId, setEmployeeId] = React.useState(false)\n\n const [teamList, setTeamList] = React.useState([])\n\n const [currQuestion, setCurrQuestion] = React.useState(0);\n const [maxQuestion, setMaxQuestion] = React.useState(0);\n const [cultureAnswers, setCultureAnswers] = React.useState([]);\n\n useEffect(() => {\n // Run! Like go get some data from an API.\n if (token) {\n dispatch({ type: SG_START_SURVEY, payload: `?token=${token}` });\n dispatch({ type: LOAD_PREVIOUS_RESPONSE, payload: `?token=${token}` });\n dispatch({ type: LOAD_CULTURE_QUESTIONS, payload: `?token=${token}` });\n dispatch({ type: LOAD_MOOD_QUESTIONS, payload: `?token=${token}` });\n dispatch({ type: LOAD_LEADERSHIP_QUESTIONS, payload: `?token=${token}` });\n }\n }, [dispatch, token]);\n\n const { get_questions,\n previous_response,\n get_answers, } = useSelector(\n (state) => ({\n get_questions: state.questions.culture_questions.questions,\n previous_response: state.questions.previous_response,\n get_answers: state.answers,\n\n }),\n shallowEqual\n );\n\n function SubmitTeam(no) {\n // console.log(no)\n dispatch({\n type: ADD_TEAM_ANSWER,\n payload: selected,\n })\n setQuestion(no)\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_direction: 1,\n culture_max_ques: 6,\n culture_cur_ques: 1,\n culture_cur_comment: 0,\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n },\n });\n setCurrQuestion(1)\n }\n\n React.useEffect(() => {\n if (get_answers?.culture_cur_ques) {\n setCurrQuestion(get_answers.culture_cur_ques);\n setMaxQuestion(get_answers.culture_max_ques);\n }\n if (get_answers?.employee) {\n setEmployeeId(get_answers.employee)\n }\n \n setCultureAnswers(get_answers?.culture_answers)\n \n }, [get_answers]);\n // function startSurvey() {\n\n // }\n\n const SaveAnswer = () => {\n dispatch({\n type: ADD_CULTURE_ANSWER,\n payload: {\n id: intQuestion.id,\n answer: answer,\n comments: comment,\n },\n });\n dispatch({\n type: SET_ANSWERS,\n payload: {\n culture_high_ans: intQuestion.id,\n curr_direction: 1,\n },\n });\n // let response = [answer, comment];\n setAnswer(null);\n setComment(null);\n window.scrollTo(0, 0)\n setQuestion(question + 1)\n // props.next(response);\n };\n //\n // console.log(selected)\n// console.log(get_answers.token)\n\n const SubmitAnswer = () => {\n setSurveyType(2)\n \n // dispatch({\n // type: ADD_CULTURE_ANSWER,\n // payload: {\n // id: intQuestion.id,\n // answer: answer,\n // comments: comment,\n // },\n // });\n \n // console.log(get_answers.culture_answers)\n // console.log(get_answers.culture_answers.length)\n\n \n dispatch({\n type: ADD_TEAM_ANSWER,\n payload: selected,\n })\n\n dispatch({\n type: SUBMIT_ANSWER,\n payload: {\n culture_answers: [\n ...get_answers.culture_answers,\n // { id: intQuestion.id, answer: answer, comments: comment },\n ],\n time_spent_with: selected,\n employee: get_answers.employee,\n token: get_answers.token,\n device: deviceDetected,\n mobile: isMobile ? \"Yes\" : \"No\",\n browser: isBrowser ? \"Desktop\" : \"Other Devise\",\n operating_system: osName,\n user_ip: get_answers.user_ip,\n culture_survey_compliance: get_answers.culture_survey_compliance,\n },\n });\n\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_survey_type: get_answers.all_survey_types[1],\n survey_type: get_answers.all_survey_types[1],\n all_survey_types: get_answers.all_survey_types.slice(1),\n },\n });\n\n // history.push(`/survey/${token}`)\n // props.next(response);\n };\n // console.log(get_questions)\n // console.log(previous_response)\n\n React.useEffect(() => {\n function SetName(p) {\n if (p.first_name) {\n return `${p.first_name} ${p.last_name}`\n } else {\n return p.email\n }\n }\n const team = []\n if (previous_response?.team_list) {\n previous_response.team_list.map(p => {\n // console.log(p.picture)\n return team.push(\n {\n \"id\": p.id,\n \"key\": p.id,\n \"text\": SetName(p),\n \"value\": p.id,\n \"image\": { avatar: true, src: p.picture ? p.picture : BlankUser },\n })\n })\n }\n setTeamList(team)\n }, [previous_response.team_list])\n\n // useEffect(() => {\n // if (previous_response?.team_list) {\n // setTeamList(previous_response?.team_list)\n // }\n // },[previous_response])\n // console.log(question)\n\n function ShowResponse() {\n // the intro page\n if (intro) {\n return (\n setIntro(false)}\n currQuestion={get_answers.culture_cur_ques}\n key={0}/>\n )\n }\n // all responses start here \n // there are 6 questions with follow up \n // the seventh question would be \n // about the team\n return (\n \n )\n }\n\n return (\n <>\n \n \n\n \n\t\t\t\t\t\n {ShowResponse()}\n \n \n\n \n \n \n )\n}\n\n\nexport default TeamIntelligence\n\nfunction Response({ selected, setSelected,\n employeeId,\n setQuestion, teamList,\n intQuestion, setIntQuestion,\n comment, setComment,\n answer, setAnswer,\n cultureAnswers,\n get_questions,\n SubmitAnswer, SaveAnswer,\n previous_response,\n currQuestion, maxQuestion,\n question }) {\n\n if (currQuestion === 7) {\n return setSelected(s)}\n employeeId={employeeId}\n // setQuestion={() => setQuestion(2)} key={question}\n // SubmitTeam={() => SubmitTeam(2)} # replace with submit option\n teamList={teamList}\n SubmitAnswer={SubmitAnswer}\n get_questions={get_questions}\n setIntQuestion={setIntQuestion}\n />\n\n }\n\n // console.log(\"question\", question)\n // console.log(\"currQuestion\", currQuestion)\n // console.log(intQuestion)\n // console.log(get_questions.questions.filter(\n // p => p.id === 1)[0])\n\n // if (question === 2) {\n // return SubmitTeam(3)}\n // // setQuestion={() => SubmitTeam(3)}\n // key={question} friendOptions={teamList} />\n // }\n\n if (question > 0) {\n\n return setQuestion(question + 1)}\n question={question}\n get_questions={get_questions}\n answer={answer}\n cultureAnswers={cultureAnswers}\n setAnswer={setAnswer}\n comment={comment}\n setComment={setComment}\n setIntQuestion={setIntQuestion}\n previous_response={previous_response}\n intQuestion={intQuestion}\n SaveAnswer={SaveAnswer}\n // SubmitAnswer={SubmitAnswer}\n currQuestion={currQuestion}\n maxQuestion={maxQuestion}\n />\n\n }\n return

Loading ...

\n\n}\n\n\nconst SurveyContainer = styled.div`\n padding: 15px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100vw;\n box-sizing: border-box;\n min-height:750px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n }\n`;\n\nconst Container = styled.div`\nheight:100vh;\nmin-height:650px;\nwidth:100vw;\ndisplay:flex;\nflex-direction:row;\nposition:relative;\n\n@media only screen and (min-width:992px){\n height:100vh;\n}\n\n`\n\n// const StyledMessage = styled.div`\n// font-size: 18px;\n// line-height: 1.17;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// flex-direction: column;\n// padding: 15px;\n// background-color: black;\n// color: white;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-bottom: 20px;\n// max-width: 654px;\n\n// @media only screen and (min-width: 992px) {\n// font-size: 72px;\n// margin-bottom: 50px;\n// font-size: 24px;\n// }\n// `;\n\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Intro = (props) => {\r\n const { leaderList } = props;\r\n function StartSurvey() {\r\n props.next();\r\n }\r\n\r\n return (\r\n \r\n Leadership Pulse\r\n \r\n Your responses in this section are completely anonymous.\r\n \r\n {/* missing no of team members your [12] team members */}\r\n {leaderList.map((p, i) => {\r\n return (\r\n \r\n
Leader's being evaluated:
\r\n {p.first_name} {p.last_name}\r\n
\r\n );\r\n })}\r\n StartSurvey()}>Start\r\n
\r\n );\r\n};\r\n\r\nexport default Intro;\r\n\r\nconst Title = styled.div`\r\n font-size: 50px;\r\n font-weight: bold;\r\n font-family: \"Red Hat Display\", sans-serif;\r\n margin-bottom: 20px;\r\n color: #4a4a4a;\r\n line-height: 1;\r\n\r\n @media only screen and (min-width: 992px) {\r\n font-size: 72px;\r\n margin-bottom: 50px;\r\n }\r\n`;\r\nconst SubTitle = styled.div`\r\n font-size: 18px;\r\n line-height: 1.17;\r\n color: #4a4a4a;\r\n font-family: \"Red Hat Display\", sans-serif;\r\n margin-bottom: 20px;\r\n max-width: 654px;\r\n\r\n @media only screen and (min-width: 992px) {\r\n font-size: 72px;\r\n margin-bottom: 50px;\r\n font-size: 24px;\r\n }\r\n`;\r\n\r\nconst Next = styled.div`\r\n width: 170px;\r\n height: 47px;\r\n border-radius: 5px;\r\n background-color: white;\r\n color: black;\r\n font-size: 16px;\r\n font-weight: bold;\r\n font-family: \"Red Hat Display\", sans-serif;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n`;\r\n\r\nconst Container = styled.div`\r\n margin-top: 20vh;\r\n position: absolute;\r\n width: calc(100vw - 30px);\r\n left:0px;\r\n\r\n @media only screen and (min-width: 992px) {\r\n margin-top: 20vh;\r\n }\r\n @media only screen and (max-width:992px){\r\n left:10px;\r\n }\r\n`;\r\n\r\n// const InnerContainer = styled.div`\r\n// float: left;\r\n// width: 33.33%; /* three boxes (use 25% for four, and 50% for two, etc) */\r\n// padding: 50px;\r\n// word-wrap: break-word;\r\n// `;\r\n","import styled from \"styled-components\";\nimport React from \"react\";\n\nconst Box = styled.div`\n width: calc(100% - 30px);\n border-radius: 8px;\n background-color: white;\n margin-top: ${(props) => (props.visible != null ? \"32px\" : \"10px\")};\n max-height: ${(props) => (props.visible != null ? \"300px\" : \"0px\")};\n transition: max-height 1s ease;\n overflow: hidden;\n\n @media only screen and (min-width: 992px) {\n width: 401px;\n }\n`;\nconst Answer = styled.div`\n font-size: 18px;\n font-weight: bold;\n color: black;\n width: 100%;\n border-bottom: 1px solid white;\n padding: 15px;\n font-family: \"Red Hat Display\", sans-serif;\n`;\n\nconst SubText = styled.textarea`\n width: calc(100% - 24px);\n color: black;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n background-color: #d9d9d9;\n border-radius: 8px;\n border: none;\n padding: 15px;\n margin: 12px;\n\n &:focus {\n outline: none;\n }\n\n ::placeholder {\n color: black;\n }\n`;\n\nconst CommentBox = (props) => {\n \n return (\n \n {props.answer}\n props.setComment(e.target.value)}\n />\n \n );\n};\n\nexport default CommentBox;\n","import styled from 'styled-components';\r\n\r\n// const width = 500;\r\n\r\nexport const SurveyContainer = styled.div`\r\npadding:10px;\r\nwidth:100%;\r\nposition:absolute;\r\nmargin-top:10vh;\r\nleft:0px;\r\n\r\n@media only screen and (min-width:992px){\r\n padding:30px;\r\n}\r\n\r\n@media only screen and (max-width:992px){\r\n left:0px;\r\n}\r\n`\r\n\r\nexport const Highlight = styled.div`\r\n z-index:1;\r\n background-color:#ffe175;\r\n width:100%;\r\n height:${props=>props.comment?'350px':'150px'};\r\n position:absolute;\r\n top:${props=>props.top*130+20+'px'};\r\n border-radius:10px;\r\n transition:all 500ms;\r\n\r\n @media only screen and (min-width:992px){\r\n width:600px;\r\n top:${props=>props.top*110+50+'px'};\r\n height:${props=>props.comment?'400px':'200px'};\r\n}\r\n\r\n`;\r\n\r\nexport const LeaderContainer = styled.div`\r\n width:100vw;\r\ndisplay:flex;\r\nflex-direction:column;\r\n\r\n @media only screen and (min-width:992px){\r\n width:600px;\r\n margin-top:40px;\r\n }\r\n`;\r\nexport const ResponseContainer = styled.div`\r\n overflow-y:scroll;\r\n max-height:80vh;\r\n position:relative;\r\n\r\n`\r\n\r\nexport const IMG = styled.img`\r\nmargin-bottom:8px;\r\nheight:50px;\r\nmargin-right:22px;\r\n`\r\n\r\nexport const Avatar = styled.img`\r\n width: 45px;\r\n height: 45px;\r\n border: solid 2px #ffffff;\r\n border-radius: 22.5px;\r\n min-width:45px;\r\n`;\r\n\r\n\r\nexport const Name = styled.div`\r\n font-size:18px;\r\n color:black;\r\n margin-left:10px;\r\n font-weight: bold;\r\n`\r\n\r\nexport const Leader = styled.div`\r\n display:flex;\r\n flex-direction:row;\r\n align-items:center;\r\n`\r\n\r\nexport const Question = styled.div`\r\nfont-size: 16px;\r\nfont-weight: 500;\r\nwidth: 700px;\r\nfont-family: 'Red Hat Display', sans-serif;\r\ncolor:#4a4a4a;\r\nline-height: 1.6;\r\nmargin-top:14px;\r\nmax-width:100%;\r\n\r\n@media only screen and (min-width:992px){\r\n font-size: 20px;\r\n margin-top:28px;\r\n\r\n}\r\n`\r\n\r\nexport const Title = styled.div`\r\nfont-size: 23px;\r\nfont-weight: bold;\r\nfont-family: 'Red Hat Display', sans-serif;\r\ncolor:#4a4a4a;\r\n`\r\n\r\nexport const Sub = styled.div`\r\nfont-size: 14px;\r\nfont-family: 'Red Hat Display', sans-serif;\r\nmargin-top:12px;\r\ncolor:#4a4a4a;\r\n`\r\n\r\nexport const QuestionContainer = styled.div`\r\nwidth:100vw;\r\nheight:65px;\r\nmargin-top:10px;\r\ndisplay:flex;\r\nflex-direction:row;\r\n\r\n @media only screen and (min-width:992px){\r\n width:600px;\r\n margin-top:10px;\r\n }\r\n`\r\n\r\nexport const QuestionItem = styled.div`\r\n width:18%;\r\n height:65px;\r\n display:flex;\r\n flex-direction:column;\r\n align-items:center;\r\n justify-content:center;\r\n font-family: 'Red Hat Display', sans-serif;\r\n border-radius:${(props) =>\r\n props.i === 1 ? \"7px 0px 0px 7px\" : props.i === 5 ? \"0 7px 7px 0\" : \"none\"};\r\n border:1px solid #4a4a4a;\r\n cursor:${(props) => (props.selected ? \"pointer\" : \"auto\")};\r\n background-color:${(props) => (props.answer === props.i ? \"white\" : \"none\")};\r\n color:${(props) => (props.answer === props.i ? \"black\" : \"#4a4a4a\")};\r\n\r\n @media only screen and (min-width:992px){\r\n height:85px;\r\n width:20%;\r\n }\r\n `;\r\n\r\nexport const Num = styled.div`\r\nfont-size: 18px;\r\nfont-weight: bold;\r\n\r\n@media only screen and (min-width:992px){\r\n font-size: 18px;\r\n}\r\n`\r\nexport const Rating = styled.div`\r\nfont-size: 10px;\r\nfont-weight: 500;\r\nmargin-top:0px;\r\ndisplay:${props=>props.selected?'flex':'none'};\r\n\r\n@media only screen and (min-width:992px){\r\n font-size: 14px;\r\n margin-top:2px;\r\n display:${props=>props.selected?'flex':'none'};\r\n}\r\n`\r\n\r\nexport const Scale = styled.div`\r\nwidth:600px;\r\ndisplay:flex;\r\nflex-direction:row;\r\njustify-content:space-between;\r\nmargin-top:20px;\r\nfont-size: 146x;\r\nfont-family: 'Red Hat Display', sans-serif;\r\ncolor:white;\r\n`\r\n\r\nexport const Button = styled.div`\r\nheight: 40px;\r\nborder-radius: 10px;\r\nbackground-color: ${props => props.enabled? \"rgba(255, 255, 255,1)\": \"rgba(255, 255, 255,0.2)\" }; \r\ncolor: ${props => props.enabled? \"rgba(0, 0, 0,1)\": \"rgba(0, 0, 0,0.2)\" }; \r\nfont-size: 16px;\r\nfont-weight: bold;\r\nfont-family: 'Red Hat Display', sans-serif;\r\ndisplay:flex;\r\njustify-content:center;\r\nalign-items:center;\r\ncursor:${props => props.enabled? \"pointer\" : \"not-allowed\"};\r\nwidth:100px;\r\nmargin-top:50px;\r\n`\r\n\r\nexport const SubmitButton = styled(Button)`\r\nwidth: 170px;\r\nheight: 47px;\r\nborder-radius: 5px;\r\nbackground-color: ${props => props.enabled? \"#ffffff\": \"#bbc7bd\" }; \r\ncolor: ${props => props.enabled? \"#4a4a4a\": \"white\" }; ;\r\nfont-size: 16px;\r\nfont-weight: bold;\r\nfont-family: \"Red Hat Display\", sans-serif;\r\ncursor:${props => props.enabled? \"pointer\" : \"not-allowed\"};\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\ncursor: pointer;\r\n\r\n`\r\n\r\nexport const CounterContainer = styled.div`\r\nposition:absolute;\r\nbottom:50px;\r\nright:50px;\r\ndisplay:flex;\r\nflex-direction:row;\r\nalign-items:center;\r\n`\r\n\r\nexport const Counter = styled.div`\r\npadding:10px 15px 10px 15px;\r\nbackground-color:#4f00f7;\r\ncolor:white;\r\nfont-family: 'Red Hat Display', sans-serif;\r\nfont-size:16px;\r\nborder-radius:7px;\r\nmargin-right:25px;\r\n`\r\n\r\nexport const Container = styled.div`\r\nbackground-image: linear-gradient(308deg, #6d00aa , #6a00ff );\r\nheight:100vh;\r\nwidth:100%;\r\n`\r\n\r\n","import React, { useState } from \"react\";\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport {\n ADD_LEADERSHIP_ANSWER,\n RESET_LEADERSHIP,\n // PULL_ANSWER,\n SUBMIT_ANSWER,\n SET_ANSWERS,\n} from \"constants/actions\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n // deviceType,\n osName,\n // osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport CommentBox from \"./comment_box\";\n\nimport {\n SurveyContainer,\n // IMG,\n Title,\n Question,\n QuestionContainer,\n QuestionItem,\n Num,\n Rating,\n Button,\n SubmitButton,\n} from \"./styled-list\";\n\n\nconst leadershipAnswersList = [\n \"Not at all\",\n \"Not much\",\n \"Somewhat\",\n \"Mostly\",\n \"Absolutely\",\n];\n\nconst LeadershipQuestion = (props) => {\n const deviceDetected = deviceDetect();\n const [fullName, setFullName] = React.useState(false);\n // const [leaderPic, setLeaderPic] = React.useState(false);\n const [leaderSelected, setLeaderSelected] = React.useState(false);\n const { question, leaderList } = props;\n const dispatch = useDispatch();\n const [answer, setAnswer] = useState(false);\n const [comment, setComment] = useState(false);\n const [showComment, setShowComment] = useState(false);\n\n const { get_answers } = useSelector(\n (state) => ({\n get_answers: state.answers,\n }),\n shallowEqual\n );\n// console.log(leadershipAnswersList)\n// console.log(leadershipAnswersList.filter((p) => p.id === question.id)[0]);\n\n React.useEffect(() => {\n setLeaderSelected(leaderList[0]);\n setFullName(`${leaderList[0].first_name} ${leaderList[0].last_name}`);\n // setLeaderPic(`https://storage.googleapis.com/innerlogic_staging_storage_2020/${leaderList[0].picture}`)\n }, [leaderList]);\n // console.log(leaderSelected);\n\n React.useEffect(() => {\n if (get_answers?.leadership_answers) {\n setAnswer(\n get_answers.leadership_answers.find(\n ({ id, leader_id }) =>\n id === question.id && leader_id === leaderSelected.leader_id\n )?.answer\n );\n setComment(\n get_answers.leadership_answers.find(\n ({ id, leader_id }) =>\n id === question.id && leader_id === leaderSelected.leader_id\n )?.comments\n );\n }\n }, [get_answers, question, leaderSelected]);\n\n function NoClick() {\n // optional error message\n }\n\n React.useEffect(() => {\n // console.log(answer!==false && answer!==undefined)\n if (answer!==false && answer!==undefined) {\n setShowComment(true)\n } else {\n setShowComment(false)\n }\n },[answer])\n\n // console.log(leaderPic);\n\n const SaveAnswer = () => {\n dispatch({\n type: ADD_LEADERSHIP_ANSWER,\n payload: {\n row_id: `${leaderSelected.leader_id}${question.id}`,\n leader_id: leaderSelected.leader_id,\n id: question.id,\n answer: answer,\n comments: comment,\n },\n });\n dispatch({\n type: SET_ANSWERS,\n payload: {\n leadership_high_ans: question.id,\n curr_direction: 1,\n },\n });\n let response = [answer, comment];\n setAnswer(null);\n setComment(null);\n\n props.next(response);\n };\n\n const SubmitAnswer = () => {\n dispatch({\n type: ADD_LEADERSHIP_ANSWER,\n payload: {\n row_id: `${leaderSelected.leader_id}${question.id}`,\n leader_id: leaderSelected.leader_id,\n id: question.id,\n answer: answer,\n comments: comment,\n },\n });\n\n dispatch({\n type: SUBMIT_ANSWER,\n payload: {\n leadership_answers: [\n ...get_answers.leadership_answers,\n {\n row_id: `${leaderSelected.leader_id}${question.id}`,\n leader_id: leaderSelected.leader_id,\n id: question.id,\n answer: answer,\n comments: comment,\n },\n ],\n employee: get_answers.employee,\n token: get_answers.token,\n device: deviceDetected,\n mobile: isMobile? \"Yes\" : \"No\",\n browser: isBrowser? \"Desktop\" : \"Other Devise\",\n operating_system: osName,\n user_ip: get_answers.user_ip,\n leadership_survey_compliance: get_answers.leadership_survey_compliance,\n },\n });\n\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_survey_type: get_answers.all_survey_types[1],\n survey_type: get_answers.all_survey_types[1],\n all_survey_types: get_answers.all_survey_types.slice(1),\n },\n });\n dispatch({\n type: RESET_LEADERSHIP,\n });\n // props.next(response);\n };\n\n // console.log(get_answers.leadership_max_ques === get_answers.leadership_cur_ques);\n // console.log(get_answers.leadership_max_ques);\n // console.log(question);\n // console.log(question.member);\n return (\n \n \n {question.category}\n \n {question.member.replace(\"%s\", fullName)}\n setComment(c)}\n />\n\n \n {[1, 2, 3, 4, 5].map((item, i) => {\n return (\n setAnswer(item)}\n key={i}\n >\n {item}\n \n {leadershipAnswersList[item - 1]}\n \n \n \n );\n })}\n \n\n {get_answers.leadership_max_ques === get_answers.leadership_cur_ques ? (\n \n Submit\n \n ) : (\n \n )}\n \n );\n};\n\nexport default LeadershipQuestion;\n","import styled from \"styled-components\";\nimport React from \"react\";\n\nconst Box = styled.div`\n width: 100%;\n border-radius: 8px;\n background-color: white;\n margin-top: ${(props) => (props.visible != null ? \"15px\" : \"10px\")};\n max-height: ${(props) => (props.visible != null ? \"300px\" : \"0px\")};\n transition: max-height 500ms;\n overflow: hidden;\n z-index:3;\n\n @media only screen and (max-width:992px){\n margin-bottom:10px;\n }\n\n\n`;\nconst Answer = styled.div`\n font-size: 18px;\n font-weight: bold;\n color: black;\n width: 100%;\n border-bottom: 1px solid white;\n padding: 15px 15px 0px 15px;\n font-family: \"Red Hat Display\", sans-serif;\n`;\n\nconst SubText = styled.textarea`\n width: calc(100% - 24px);\n color: black;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n background-color: #d9d9d9;\n border-radius: 8px;\n border: none;\n padding: 15px;\n margin: 12px;\n\n &:focus {\n outline: none;\n }\n\n ::placeholder {\n color: black;\n }\n`;\n\nconst Submit = styled.div`\n border-radius: 10px;\n background-color: #f9d144;\n text-align: center;\n color: #696969;\n font-size: 12px;\n font-weight: 900;\n font-family: \"Red Hat Display\", sans-serif;\n width:100px;\n height:35px;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Dismiss = styled.div`\n font-size: 12px;\n font-weight: 900;\n text-align: center;\n color: #696969;\n font-family: \"Red Hat Display\", sans-serif;\n margin-right:10px;\n margin-left:10px;\n cursor:pointer;\n`\n\nconst CommentBox = (props) => {\n\n// console.log(props.visible)\n return (\n \n {props.answer}\n props.setComment(e.target.value)}\n />\n
\n props.onComplete()}>SUBMIT\n props.onComplete()}>DISMISS\n
\n
\n );\n};\n\nexport default CommentBox;\n","import styled from \"styled-components\";\nimport React, { useState, useRef } from \"react\";\nimport CommentBox from \"./comment_box_multi\";\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport {\n ADD_LEADERSHIP_ANSWER,\n} from \"constants/actions\";\n\nimport BlankImage from \"assets/images/person_image.png\"\n\nconst leadershipAnswersList = [\n \"Not at all\",\n \"Not much\",\n \"Somewhat\",\n \"Mostly\",\n \"Absolutely\",\n];\n\n\n\nconst MultiLeaderItem = (props) => {\n const { selected, leaderSelected, question,\n } = props;\n const dispatch = useDispatch();\n const [answer, setAnswer] = useState(false);\n const [comment, setComment] = useState(false);\n const [showComment, setShowComment] = useState(false);\n const [fullName, setFullName] = React.useState(false);\n const [leaderPic, setLeaderPic] = React.useState(false);\n // const [visible, setVisible] = useState(null);\n const ourRef = useRef(null);\n\n\n\n React.useEffect(() => {\n setFullName(\n `${leaderSelected.first_name} ${leaderSelected.last_name}`\n );\n setLeaderPic(`https://storage.googleapis.com/innerlogic_staging_storage_2020/${leaderSelected.picture}`)\n }, [leaderSelected]);\n\n const { get_answers } = useSelector(\n (state) => ({\n get_answers: state.answers,\n }),\n shallowEqual\n );\n // console.log(leaderSelected)\n // https://storage.googleapis.com/innerlogic_staging_storage_2020/\n\n React.useEffect(() => {\n if (get_answers?.leadership_answers) {\n setAnswer(\n get_answers.leadership_answers.find(\n ({ id, leader_id }) =>\n id === question.id && leader_id === leaderSelected.leader_id\n )?.answer\n );\n // setShowComment(true)\n setComment(\n get_answers.leadership_answers.find(\n ({ id, leader_id }) =>\n id === question.id && leader_id === leaderSelected.leader_id\n )?.comments\n );\n }\n }, [get_answers, question, leaderSelected]);\n\n // function NoClick() {\n // // optional error message\n // }\n\n React.useEffect(() => {\n if (answer && selected ) {\n setShowComment(true)\n } else {\n setShowComment(false)\n }\n },[answer, selected])\n // console.log(question);\n\n const StartAnswer = (item) => {\n // console.log(item);\n dispatch({\n type: ADD_LEADERSHIP_ANSWER,\n payload: {\n row_id: `${leaderSelected.leader_id}${question.id}`,\n leader_id: leaderSelected.leader_id,\n id: question.id,\n answer: item,\n comments: comment,\n },\n });\n \n setShowComment(true)\n // let response = [answer, comment];\n // setAnswer(null);\n // setComment(null);\n // if (selected) {\n // setAnswer(item);\n // setVisible(true);\n // props.onCommentOpen(true);\n // }\n };\n\n const SaveAnswer = () => {\n // console.log(item);\n dispatch({\n type: ADD_LEADERSHIP_ANSWER,\n payload: {\n row_id: `${leaderSelected.leader_id}${question.id}`,\n leader_id: leaderSelected.leader_id,\n id: question.id,\n answer: answer,\n comments: comment,\n },\n });\n setShowComment(true)\n props.NextLeader()\n // let response = [answer, comment];\n setAnswer(null);\n setComment(null);\n if (selected) {\n // setAnswer(item);\n // setVisible(true);\n setShowComment(false)\n // props.onCommentOpen(true);\n }\n };\n\n // const onComplete = () => {\n // setVisible(null);\n // props.onCommentOpen();\n // props.onComplete(false);\n // };\n\n // const selectAnswer = (item) => {};\n\n // console.log(selected)\n\n return (\n props.onClicked(leaderSelected.leader_id)}\n >\n \n \n {selected ? (\n {question.member.replace(\"%s\", fullName)}\n ) : (\n {fullName}\n )}\n \n\n setComment(c)}\n onComplete={() => SaveAnswer()}\n />\n\n \n {[1, 2, 3, 4, 5].map((item, i) => {\n return (\n StartAnswer(item)}\n key={item}\n selected={selected}\n >\n {item}\n \n {leadershipAnswersList[item - 1]}\n \n \n );\n })}\n \n {/* */}\n \n );\n};\n\nexport default MultiLeaderItem;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n height: ${(props) => (props.selected ? \"65px\" : \"25px\")};\n display: flex;\n flex-direction: row;\n margin-bottom: ${(props) => (props.selected ? \"20px\" : 0)};\n z-index: 3;\n\n @media only screen and (min-width: 992px) {\n width: 100%;\n max-width: 600px;\n margin-top: 10px;\n }\n`;\n\nconst QuestionItem = styled.div`\n\twidth:18%;\n\theight:height:${(props) => (props.selected ? \"85px\" : \"35px\")};\n\tdisplay:flex;\n\tflex-direction:column;\n\talign-items:center;\n\tjustify-content:center;\n\tfont-family: 'Red Hat Display', sans-serif;\n\tborder-radius:${(props) =>\n props.i === 1 ? \"7px 0px 0px 7px\" : props.i === 5 ? \"0 7px 7px 0\" : \"none\"};\n\tborder:1px solid #4a4a4a;\n\tcursor:${(props) => (props.selected ? \"pointer\" : \"auto\")};\n\tbackground-color:${(props) => (props.answer === props.i ? \"white\" : \"none\")};\n\tcolor:${(props) => (props.answer === props.i ? \"black\" : \"#4a4a4a\")};\n\n\t@media only screen and (min-width:992px){\n\t height:${(props) => (props.selected ? \"85px\" : \"25px\")};\n\t width:20%;\n\t}\n\t`;\n\nconst Num = styled.div`\n font-size: 18px;\n font-weight: bold;\n\n @media only screen and (min-width: 992px) {\n font-size: 18px;\n }\n`;\nconst Rating = styled.div`\n font-size: 10px;\n font-weight: 500;\n margin-top: 0px;\n display: ${(props) => (props.selected ? \"flex\" : \"none\")};\n\n @media only screen and (min-width: 992px) {\n font-size: 14px;\n margin-top: 2px;\n display: ${(props) => (props.selected ? \"flex\" : \"none\")};\n }\n`;\n\nconst Avatar = styled.img`\n width: 45px;\n height: 45px;\n border: solid 2px #ffffff;\n border-radius: 22.5px;\n min-width: 45px;\n`;\n\nconst LeaderContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n padding: 20px;\n cursor: pointer;\n transition: background-color 500ms ease-in;\n\n @media only screen and (min-width: 992px) {\n background-color:${(props) => (props.selected ? \"#ffe175\" : \"0\")};\n width: 600px;\n margin-top: ${(props) => (props.selected ? \"40px\" : \"0\")};\n padding: ${(props) => (props.selected ? \"20px\" : \"10px\")};\n z-index: 999;\n }\n`;\nconst Name = styled.div`\n font-size: 18px;\n color: black;\n margin-left: 10px;\n font-weight: bold;\n`;\n\nconst Leader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n z-index: 3;\n`;\n\nconst Question = styled.div`\n font-size: 14px;\n font-weight: bold;\n width: 700px;\n margin-left: 10px;\n font-family: \"Red Hat Display\", sans-serif;\n color: #4a4a4a;\n line-height: 1.6;\n margin-top: 14px;\n\n @media only screen and (min-width: 992px) {\n font-size: 18px;\n }\n`;\n","import React, { useState } from \"react\";\nimport MultiLeaderItem from './MultiLeaderItem'\n\nimport { useDispatch } from \"react-redux\";\n\nimport {\n \n RESET_LEADERSHIP,\n SUBMIT_ANSWER,\n SET_ANSWERS,\n} from \"constants/actions\";\n\nimport {\n SurveyContainer,\n Title,\n Button,\n SubmitButton,\n ResponseContainer,\n} from \"./styled-list\";\n\n\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n osName,\n deviceDetect,\n} from \"react-device-detect\";\n\nconst MultiQuestion = (props) => {\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n const { question, leadershipAnswersList,\n get_answers, leaderCount, leaderList } = props;\n\n\n const [selected,setSelected] = useState(0)\n const [selectedLeader,setSelectedLeader] = useState(0)\n const [answerCount, setAnswerCount] = useState(0);\n\n\n const NextQuestion = () => {\n let _currentLeaderQues = question.id\n if (parseInt(question.id + 1) <= get_answers.leadership_max_ques) {\n _currentLeaderQues = question.id + 1;\n }\n dispatch({\n type: SET_ANSWERS,\n payload: {\n leadership_high_ans: question.id,\n leadership_cur_ques: _currentLeaderQues,\n curr_direction: 1,\n },\n });\n \n };\n\n\n\n const SubmitAnswer = () => {\n // dispatch({\n // type: ADD_LEADERSHIP_ANSWER,\n // payload: {\n // row_id: `${leaderSelected.leader_id}${question.id}`,\n // leader_id: leaderSelected.leader_id,\n // id: question.id,\n // answer: answer,\n // comments: comment,\n // },\n // });\n\n dispatch({\n type: SUBMIT_ANSWER,\n payload: {\n leadership_answers: get_answers.leadership_answers,\n employee: get_answers.employee,\n token: get_answers.token,\n device: deviceDetected,\n mobile: isMobile? \"Yes\" : \"No\",\n browser: isBrowser? \"Desktop\" : \"Other Devise\",\n operating_system: osName,\n user_ip: get_answers.user_ip,\n leadership_survey_compliance: get_answers.leadership_survey_compliance,\n },\n });\n\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_survey_type: get_answers.all_survey_types[1],\n survey_type: get_answers.all_survey_types[1],\n all_survey_types: get_answers.all_survey_types.slice(1),\n },\n });\n dispatch({\n type: RESET_LEADERSHIP,\n });\n // props.next(response);\n };\n\n // console.log(get_answers.leadership_max_ques === get_answers.leadership_cur_ques);\n // console.log(get_answers);\n // console.log(leadershipAnswersList.filter((p) => p.id === question.id).length);\nfunction selectLeader(id) {\n // console.log(\"Leader Selected\",id)\n // console.log(leaderList.find(({leader_id})=> leader_id === id)[0])\n setSelectedLeader(leaderList.filter((p) => p.leader_id === id)[0])\n}\n\n// console.log(leaderList[selected])\n// console.log(selectedLeader)\n\nfunction NextLeader() {\n if (selected < leaderCount){\n setSelected(selected+1)\n // setSelectedLeader(selected+1)\n }\n // console.log(leaderList)\n // console.log(leaderCount)\n}\n\nReact.useEffect(() =>\n{\n setSelectedLeader(leaderList[selected])\n},[leaderList, selected])\n\nReact.useEffect(()=>{\n setAnswerCount(leadershipAnswersList.filter((p) => p.id === question.id).length)\n},[leadershipAnswersList, question])\n\n// console.log(selected)\n\n return (\n \n \n {question.category}\n \n\n \n\n {leaderList.map((item,i)=> \n setSelected(selected+1)} \n\n\n />)}\n\n \n \n \n\n\n\n {get_answers.leadership_max_ques === get_answers.leadership_cur_ques ? (\n \n Submit\n \n ) : (\n \n )\n }\n \n );\n};\n\nexport default MultiQuestion;\n","import styled from \"styled-components\";\nimport React from \"react\";\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\nimport { SET_ANSWERS, SELECTED_LEADERSHIP } from \"constants/actions\";\n\nimport Intro from \"./Intro\";\n\nimport LeadershipQuestion from \"./Question\";\nimport MultiQuestion from \"./MultiQuestion\";\n\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport {TRANSITIONSPEED} from \"constants/animation\"\n\nimport \"survey/survey.css\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\n// const width = 500;\n\nconst deviceDetected = deviceDetect();\nconst Leadership = (props) => {\n const dispatch = useDispatch();\n const { leadershipQuestionList } = props;\n const [answers, setAnswers] = React.useState([]);\n const [currQuestion, setCurrQuestion] = React.useState(0);\n const [questions, setQuestions] = React.useState([]);\n const [maxQuestion, setMaxQuestion] = React.useState(0);\n const [leaderList, setLeaderList] = React.useState([]);\n\n\n const { get_answers, get_leadership_answers,\n get_leader_list, get_leader_count } = useSelector(\n (state) => ({\n get_answers: state.answers,\n get_leadership_answers: state.answers.leadership_answers,\n get_leader_list: state.answers.leader_list,\n get_leader_count: state.answers.leader_count,\n }),\n shallowEqual\n );\n\n React.useEffect(() => {\n setCurrQuestion(get_answers.leadership_cur_ques);\n setMaxQuestion(get_answers.leadership_max_ques);\n }, [get_answers]);\n\n React.useEffect(() => {\n if (get_leader_list) {\n setLeaderList(get_leader_list);\n }\n }, [get_leader_list]);\n\n\n\n\n React.useEffect(() => {\n if (leadershipQuestionList?.questions) {\n setQuestions(\n leadershipQuestionList.questions.find(\n ({ id }) => id === get_answers.leadership_cur_ques\n )\n );\n }\n }, [leadershipQuestionList, get_answers]);\n\n function startSurvey() {\n dispatch({\n type: SET_ANSWERS,\n payload: {\n leadership_cur_ques: 1,\n curr_direction: 1,\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n },\n });\n }\n\n const next = (data) => {\n window.scrollTo(0, 0)\n if (answers.length > currQuestion + 1) {\n setAnswers((answers) => [...answers, data]);\n } else {\n let answer_copy = answers;\n answer_copy[currQuestion - 1] = data;\n setAnswers(answer_copy);\n }\n };\n\n function SelectedLeader(e) {\n dispatch({\n type: SELECTED_LEADERSHIP,\n payload: {\n leadership_selected: e,\n leader_list: get_answers.leader_list.filter(\n (ll) => ll.leader_id !== e.leader_id\n ),\n },\n });\n }\n\n // console.log(get_leadership_answers)\n // console.log(questions)\n// console.log(get_leadership_answers.filter((p) => p.id === questions.id))\n\n // function Filter() {\n // // leader_id=110, id=2 => remove this\n // // {leader_id: 110, id: 2, answer: 5, comments: undefined}\n // const Leader = SurveyAnswers.filter(dl => dl.leader_id !== 110)\n // const Survey = Leader.filter(dl => dl.id !== 2 )\n // console.log(Leader)\n // console.log(Survey)\n // const NewList = [...Leader, ...Survey]\n // console.log(NewList)\n // }\n // Filter()\n\n return (\n \n \n\t\t\t\t\t\n <>\n {currQuestion === 0 ? (\n \n ) : (\n \"\"\n )}\n {get_leader_count > 1 && currQuestion>0 ? \n next(data)}\n // answer={\n // answers.length >= currQuestion ? answers[currQuestion] : null\n // }\n />\n : currQuestion > 0 &&\n currQuestion <= get_answers.leadership_max_ques ?\n next(data)}\n // answer={\n // answers.length >= currQuestion ? answers[currQuestion] : null\n // }\n />\n :\"\"}\n\n {/* need to work on this */}\n {/* {currQuestion === 7 ? : \"\"} */}\n \n \n \n \n \n \n );\n};\n\nexport default Leadership;\n\n// const Leadership = (props) => {\n// const dispatch = useDispatch();\n// const { leadershipQuestionList, leadershipAnswersList } = props;\n// const [answers, setAnswers] = React.useState([]);\n// const [currQuestion, setCurrQuestion] = React.useState(0);\n// const [questions, setQuestions] = React.useState([]);\n// const [maxQuestion, setMaxQuestion] = React.useState(0);\n// const [leaderList, setLeaderList] = React.useState([]);\n// const [leaderSelected, setLeaderSelected] = React.useState(null)\n\n// const { get_answers, get_leader_list } = useSelector(\n// (state) => ({\n// get_answers: state.answers,\n// get_leader_list: state.answers.leader_list,\n// }),\n// shallowEqual\n// );\n\n// React.useEffect(() => {\n// setCurrQuestion(get_answers.leadership_cur_ques);\n// setMaxQuestion(get_answers.leadership_max_ques);\n// }, [get_answers]);\n\n// React.useEffect(() => {\n// if (get_leader_list) {\n// setLeaderList(get_leader_list);\n// }\n// }, [get_leader_list]);\n\n// React.useEffect(() => {\n// if (get_answers) {\n// setLeaderSelected(get_answers.leadership_selected);\n// }\n// }, [get_answers]);\n\n// React.useEffect(() => {\n// if (leadershipQuestionList?.questions) {\n// setQuestions(\n// leadershipQuestionList.questions.find(\n// ({ id }) => id === get_answers.leadership_cur_ques\n// )\n// );\n// }\n// }, [leadershipQuestionList, get_answers]);\n\n// function startSurvey() {\n// dispatch({\n// type: SET_ANSWERS,\n// payload: {\n// leadership_cur_ques: 1,\n// curr_direction: 1,\n// },\n// });\n// }\n\n// const next = (data) => {\n// if (answers.length > currQuestion + 1) {\n// setAnswers((answers) => [...answers, data]);\n// } else {\n// let answer_copy = answers;\n// answer_copy[currQuestion - 1] = data;\n// setAnswers(answer_copy);\n// }\n// };\n\n// function SelectedLeader(e) {\n// dispatch({\n// type: SELECTED_LEADERSHIP,\n// payload: {\n// leadership_selected: e,\n// leader_list: get_answers.leader_list.filter(\n// (ll) => ll.leader_id !== e.leader_id\n// ),\n// },\n// });\n// }\n\n// // console.log()\n\n// // function Filter() {\n// // // leader_id=110, id=2 => remove this\n// // // {leader_id: 110, id: 2, answer: 5, comments: undefined}\n// // const Leader = SurveyAnswers.filter(dl => dl.leader_id !== 110)\n// // const Survey = Leader.filter(dl => dl.id !== 2 )\n// // console.log(Leader)\n// // console.log(Survey)\n// // const NewList = [...Leader, ...Survey]\n// // console.log(NewList)\n// // }\n// // Filter()\n\n// return (\n// \n// \n// {currQuestion === 0 ? (\n// \n// ) : (\n// \"\"\n// )}\n// {\n// currQuestion > 0 &&\n// currQuestion <= get_answers.leadership_max_ques ? (\n// next(data)}\n// // answer={\n// // answers.length >= currQuestion ? answers[currQuestion] : null\n// // }\n// />\n// ) : (\n// \"\"\n// )}\n\n// {/* need to work on this */}\n// {/* {currQuestion === 7 ? : \"\"} */}\n// \n// \n// );\n// };\n\n// export default Leadership;\n\nconst SurveyContainer = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n height: 100vh;\n position: relative;\n width: 100vw;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n }\n`;\n\n// const IMG = styled.img`\n// margin-bottom: 8px;\n// height: 50px;\n// margin-right: 22px;\n// `;\n\n// const Question = styled.div`\n// font-size: 23px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// color: white;\n// margin-top: 28px;\n// `;\n\n// const Title = styled.div`\n// font-size: 23px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// color: white;\n// `;\n\n// const Sub = styled.div`\n// font-size: 14px;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-top: 12px;\n// color: white;\n// `;\n\n// const QuestionContainer = styled.div`\n// width: ${width + \"px\"};\n// height: 65px;\n// margin-top: 40px;\n// display: flex;\n// flex-direction: row;\n// `;\n\n// const QuestionItem = styled.div`\n// width: 20%;\n// height: 65px;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// font-size: 28px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// border-radius: ${(props) =>\n// props.i == 0 ? \"7px 0px 0px 7px\" : props.i == 4 ? \"0 7px 7px 0\" : \"none\"};\n// border: 1px solid white;\n// cursor: pointer;\n// background-color: ${(props) => (props.answer == props.i ? \"white\" : \"none\")};\n// color: ${(props) => (props.answer == props.i ? \"#6a00ff\" : \"white\")};\n// `;\n\n// const Scale = styled.div`\n// width: ${width + \"px\"};\n// display: flex;\n// flex-direction: row;\n// justify-content: space-between;\n// margin-top: 20px;\n// font-size: 146x;\n// font-family: \"Red Hat Display\", sans-serif;\n// color: white;\n// `;\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n// const CounterContainer = styled.div`\n// position: absolute;\n// bottom: 50px;\n// right: 50px;\n// display: flex;\n// flex-direction: row;\n// align-items: center;\n// `;\n\n// const Counter = styled.div`\n// padding: 10px 15px 10px 15px;\n// background-color: #4f00f7;\n// color: white;\n// font-family: \"Red Hat Display\", sans-serif;\n// font-size: 16px;\n// border-radius: 7px;\n// margin-right: 25px;\n// `;\n\n// const Container = styled.div`\n// background-image: linear-gradient(308deg, #6d00aa, #6a00ff);\n// height: 100vh;\n// width: 100%;\n// `;\n\n// function useKeyPress(targetKey) {\n// // State for keeping track of whether key is pressed\n// const [keyPressed, setKeyPressed] = React.useState(false);\n\n// // If pressed key is our target key then set to true\n// const downHandler = ({ key }) => {\n// if (key === targetKey) {\n// setKeyPressed(true);\n// }\n// };\n\n// // If released key is our target key then set to false\n// /* const upHandler = ({ key }) => {\n// if (key === targetKey) {\n// setKeyPressed(false);\n// }\n// };*/\n\n// // Add event listeners\n// React.useEffect(() => {\n// window.addEventListener(\"keydown\", downHandler);\n// // window.addEventListener('keyup', upHandler);\n// // Remove event listeners on cleanup\n// return () => {\n// window.removeEventListener(\"keydown\", downHandler);\n// // window.removeEventListener('keyup', upHandler);\n// };\n// }, []); // Empty array ensures that effect is only run on mount and unmount\n\n// return keyPressed;\n// }\n","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = (props) =>{\n\n\treturn (\n\t\t\n
\n \n\n\t\t\t No Details Found\n
\n\t\t\tWe are unable to locate the details of your survey, please try clicking on the link we sent you \n\t\t\t\n\t\t
\n\n\t\t)\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n color:${props=>props.survey===3?'#4a4a4a':'black'};\n line-height:1;\n max-width:654px;\n\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\n// const SubTitle = styled.div`\n// \tfont-size: 18px;\n// \tline-height: 1.17;\n// color: ${props=>props.survey==3?'#4a4a4a':'white'};\n// font-family: 'Red Hat Display', sans-serif;\n// margin-bottom:20px;\n// max-width:654px;\n\n// @media only screen and (min-width:992px){\n// font-size: 72px;\n// margin-bottom:50px;\n// font-size: 24px;\n// }\n// `\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n \n`\n\nconst End = (props) =>{\n\n\treturn (\n\t\t\n\t\t\tThank you for participating\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t)\n}\n\n\nexport default End","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\nimport format from \"date-fns/format\";\n\nconst End = ({ message, onTime, status }) => {\n const [endDate, setEndDate] = React.useState(Date())\n\n console.log(status)\n\n React.useEffect(() => {\n if (onTime) {\n setEndDate(format(new Date(onTime), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [onTime])\n\n let CustomMessage = 'We are unable to get information about this survey'\n \n if (status === 3) {\n CustomMessage = 'This survey has been completed'\n }\n if (status > 4 && status < 11) {\n CustomMessage = 'This survey has been closed and is no longer accessible'\n }\n if (status === 100) {\n CustomMessage = 'Hmm! It looks like this survey has expired'\n }\n\n return (\n \n
\n \n\n \n {CustomMessage}\n \n
\n\n {endDate ? `Updated on ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}` : ''}\n\n \n\n
\n\n )\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Icon } from \"semantic-ui-react\";\n\nconst Index = styled.div`\n font-size: 12px;\n font-weight: 900;\n font-family: \"Red Hat Display\", sans-serif;\n color: ${(props) => props.color};\n`;\n\nconst Title = styled.div`\n font-size: 20px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n`;\n\nconst Content = (props) => {\n\t// console.log(props)\n return (\n \n {props.i}\n \n {/* eslint-disable-next-line eqeqeq */}\n {props.data.title==\"Culture\"?\"Team health\":props.data.title}{\" \"}\n <span style={{ marginLeft: 5 }}>\n {props.data.completed && props.data.curr_ques ? (\n <Icon name=\"check circle\" />\n ) : (\n\t\t\tprops.data.curr_ques? props.data.progress : \"\"\n )}\n </span>\n \n \n );\n};\n\nexport default Content;\n","import styled from \"styled-components\";\r\n\r\nexport const Container = styled.div`\r\n width: 274px;\r\n min-width: 274px;\r\n height: 100vh;\r\n min-height:600px;\r\n background-color: #f3eaff;\r\n \r\n box-sizing: border-box;\r\n display: none;\r\n\r\n @media only screen and (min-width: 992px) {\r\n display: inline;\r\n z-index: 999;\r\n padding: 70px 36px 36px 36px;\r\n }\r\n`;\r\n\r\nexport const Avatar = styled.img`\r\nheight:45px;\r\nwidth: 45px;\r\nborder-radius:22.5px;\r\n`\r\n\r\nexport const IMG = styled.div`\r\n width: 45px;\r\n height: 45px;\r\n border: solid 2px #ffffff;\r\n border-radius: 22.5px;\r\n display:flex;\r\n align-items:center;\r\n overflow:hidden;\r\n justify-content:center;\r\n`;\r\nexport const Name = styled.div`\r\n font-size: 16px;\r\n font-family: \"Red Hat Display\", sans-serif;\r\n margin-left: 17px;\r\n color: #4a4a4a;\r\n`;\r\n\r\nexport const SectionContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n border-left: ${(props) =>\r\n props.surveyType === 1 ? \"1px solid #979797\" : \"1px solid #979797\"};\r\n position: relative;\r\n color:#4a4a4a;\r\n`;\r\n\r\nexport const Selected = styled.div`\r\n position: absolute;\r\n top: ${(props) => props.top + \"px\"};\r\n left: -1px;\r\n width: 4px;\r\n background-color: #4a4a4a;\r\n height: 85px;\r\n color: #4a4a4a;\r\n`;\r\n","import React, { useState } from \"react\";\nimport { useSelector, shallowEqual } from \"react-redux\";\nimport Content from \"./content\";\nimport { Icon } from 'semantic-ui-react'\nimport { Container, IMG, Avatar, Name, SectionContainer, Selected } from \"./styled\";\n\nconst SideBar = ({ surveyType }) => {\n // const [survey, setSurvey] = useState([]);\n // const [\n // // answers, \n // setAnswers] = useState([]);\n // const [\n // // currQuestion, \n // setCurrQuestion] = useState(0);\n // const [\n // // maxQuestion, \n // setMaxQuestion] = useState(0);\n // const [\n // // highAnswer, \n // setHighAnswer] = useState(0);\n const [surveyData, setSurveyData] = useState([]);\n\n\n const { get_answers } = useSelector(\n (state) => ({\n get_answers: state.answers,\n }),\n shallowEqual\n );\n\n // React.useEffect(() => {\n // setAnswers(get_answers);\n // switch (surveyType) {\n // case 1:\n // // culture\n // setMaxQuestion(get_answers.culture_max_ques);\n // setCurrQuestion(get_answers.culture_cur_ques);\n // setHighAnswer(get_answers.culture_high_ans);\n // return;\n // case 2:\n // // mood\n // setMaxQuestion(get_answers.mood_max_ques);\n // setCurrQuestion(get_answers.mood_cur_ques);\n // setHighAnswer(get_answers.mood_high_ans);\n // return;\n // case 3:\n // // leadership\n // setMaxQuestion(get_answers.leadership_max_ques);\n // setCurrQuestion(get_answers.leadership_cur_ques);\n // setHighAnswer(get_answers.leadership_high_ans);\n // return;\n // default:\n // setMaxQuestion(0);\n // setCurrQuestion(0);\n // setHighAnswer(0);\n // return;\n // }\n // }, [get_answers, surveyType]);\n\n React.useEffect(() => {\n // if (get_answers) {\n // setAnswers(get_answers);\n // }\n function CheckCultureCompleted() {\n if (surveyType > 1) {\n return true\n }\n return get_answers.culture_max_ques === get_answers.culture_cur_ques\n }\n\n function CheckCultureProgress() {\n if (surveyType === 1) {\n return `${get_answers.culture_cur_ques}/${get_answers.culture_max_ques}`\n }\n \n }\n\n function CheckMoodCompleted() {\n if (surveyType > 2) {\n return true\n }\n return get_answers.mood_max_ques === get_answers.mood_cur_ques\n }\n\n function CheckMoodProgress() {\n if (surveyType > 2) {\n return true\n }\n return `${get_answers.mood_high_ans}/${get_answers.mood_max_ques}`\n }\n\n setSurveyData([\n {\n id: 1,\n survey_type: 1,\n title: \"Culture\",\n top_margin: 0,\n curr_ques: get_answers.culture_cur_ques,\n answered: get_answers.culture_high_ans,\n completed: CheckCultureCompleted(),\n progress: CheckCultureProgress(),\n },\n {\n id: 2,\n survey_type: 2,\n top_margin: 85,\n title: \"Mood\",\n curr_ques: get_answers.mood_cur_ques ? get_answers.mood_cur_ques : \"\",\n answered: get_answers.mood_high_ans,\n completed: CheckMoodCompleted(),\n progress: CheckMoodProgress(),\n },\n {\n id: 3,\n survey_type: 3,\n top_margin: 165,\n title: \"Leadership\",\n curr_ques: get_answers.leadership_cur_ques,\n answered: get_answers.leadership_high_ans,\n completed:\n get_answers.leadership_max_ques === get_answers.leadership_cur_ques,\n progress: `${get_answers.leadership_cur_ques}/${get_answers.leadership_max_ques}`,\n },\n ]);\n }, [get_answers, surveyType]);\n\n // const SurveyData = [\n // { survey_type: 1, title: \"Culture\",\n // top_margin: 0, completed: false,\n // progress: \"1/6\" },\n // { survey_type: 2, top_margin: 85,\n // title: \"Mood\", completed: false, progress: \"0/3\" },\n // { survey_type: 3, top_margin: 165,\n // title: \"Leadership\", completed: false, progress: \"0/8\" },\n // ];\n\n return (\n \n \n \n {get_answers?.employee_picture ? :\n \n }\n \n {/* eslint-disable-next-line eqeqeq */}\n {get_answers?.employee_name ? get_answers.employee_name == 'None None' ? \"\" : get_answers.employee_name : \"\"} \n \n\n \n survey_type === surveyType)?.top_margin\n : \"\"\n }\n // top={170}\n surveyType={surveyType}\n />\n\n {surveyData\n ? surveyData.map((item, i) => (\n\n \n ))\n\n : \"\"}\n \n \n );\n};\n\nexport default SideBar;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\nheight:100vh;\nmin-height:650px;\nwidth:100vw;\nbackground-image: ${props=>props.survey===3?\n 'linear-gradient(94deg, #ffb347 2%, #ffcc33 109%)': 'none'};\ndisplay:flex;\nflex-direction:row;\n\n@media only screen and (min-width:992px){\n height:100vh;\n}\n\n`\n\nexport const CounterContainer = styled.div`\nposition:absolute;\nbottom:10px;\nright:20px;\ndisplay:flex;\nflex-direction:row;\nalign-items:center;\ncolor:${props=>props.type===3? 'black' :'#4a4a4a'};\nfont-size:14px;\n\n @media only screen and (min-width:992px){\n bottom:50px;\n right:50px;\n font-size:20px;\n }\n\n @media(max-height:650px){\n display:none;\n }\n`\n\nexport const Counter = styled.div`\npadding:5px 10px 5px 10px;\nbackground-color: ${props=>props.type===1? 'rgba(30, 33, 114,0.3)' : props.type===3? 'white' : '#9b9b9b'};\nfont-family: 'Red Hat Display', sans-serif;\nfont-size:12px;\nborder-radius:7px;\nmargin-right:10px;\n\n\n @media only screen and (min-width:992px){\n padding:10px 25px 10px 25px;\n font-size:16px;\n margin-right:25px;\n }\n`\n\nexport const Title = styled.div`\nfont-size: 14px;\nfont-weight: bold;\nfont-family: 'Red Hat Display', sans-serif;\n\n\n @media only screen and (min-width:992px){\n margin-bottom:5px;\n font-size:20px;\n }\n`\n\nexport const Space= styled.div`\n\n @media only screen and (min-width:992px){\n width:20px;\n }\n`","import React, { useState } from \"react\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { SET_ANSWERS } from \"constants/actions\";\n\nimport { Icon } from \"semantic-ui-react\";\nimport { CounterContainer, Counter, Title, Space } from \"./styledList\";\n\nconst SurveyList = [\n {\n id: 1,\n name: \"Team health\",\n },\n {\n id: 2,\n name: \"Mood\",\n },\n {\n id: 3,\n name: \"Leadership\",\n },\n];\nconst BottomBar = ({ setDirection, surveyType }) => {\n const dispatch = useDispatch();\n const [currQuestion, setCurrQuestion] = useState(0);\n const [maxQuestion, setMaxQuestion] = useState(0);\n const [highAnswer, setHighAnswer] = useState(0);\n\n const { get_answers } = useSelector(\n (state) => ({\n get_answers: state.answers,\n }),\n shallowEqual\n );\n\n React.useEffect(() => {\n switch (surveyType) {\n case 1:\n // culture\n setMaxQuestion(get_answers.culture_max_ques);\n setCurrQuestion(get_answers.culture_cur_ques);\n setHighAnswer(get_answers.culture_high_ans);\n return;\n case 2:\n // mood\n setMaxQuestion(get_answers.mood_max_ques);\n setCurrQuestion(get_answers.mood_high_ans);\n setHighAnswer(get_answers.mood_high_ans);\n return;\n case 3:\n // leadership\n setMaxQuestion(get_answers.leadership_max_ques);\n setCurrQuestion(get_answers.leadership_cur_ques);\n setHighAnswer(get_answers.leadership_high_ans);\n return;\n default:\n setMaxQuestion(0);\n setCurrQuestion(0);\n setHighAnswer(0);\n return;\n }\n }, [get_answers, surveyType]);\n\n // current survey type\n\n // console.log(answers);\n\n const back = () => {\n // console.log(\"back\");\n // if (q !== 0) {\n setDirection(0);\n // setQ(q - 1);\n // }\n if (currQuestion - 1 > 0) {\n switch (surveyType) {\n case 1:\n // culture\n\n dispatch({\n type: SET_ANSWERS,\n payload: { culture_cur_ques: currQuestion - 1, curr_direction: 0 },\n });\n return;\n case 2:\n // mood\n dispatch({\n type: SET_ANSWERS,\n payload: { mood_cur_ques: currQuestion - 1, curr_direction: 0 },\n });\n return;\n case 3:\n // leadership\n dispatch({\n type: SET_ANSWERS,\n payload: {\n leadership_cur_ques: currQuestion - 1,\n curr_direction: 0,\n },\n });\n return;\n default:\n return;\n }\n }\n };\n\n const forward = () => {\n // console.log(\"forward\", highAnswer);\n // if (answers.length > q) {\n setDirection(1);\n // setQ(q + 1);\n // }\n\n if (currQuestion <= highAnswer && currQuestion + 1 <= maxQuestion) {\n switch (surveyType) {\n case 1:\n // culture\n\n dispatch({\n type: SET_ANSWERS,\n payload: { culture_cur_ques: currQuestion + 1, curr_direction: 1 },\n });\n return;\n case 2:\n // mood\n dispatch({\n type: SET_ANSWERS,\n payload: { mood_cur_ques: currQuestion + 1, curr_direction: 1 },\n });\n return;\n case 3:\n // leadership\n dispatch({\n type: SET_ANSWERS,\n payload: {\n leadership_cur_ques: currQuestion + 1,\n curr_direction: 1,\n },\n });\n return;\n default:\n return;\n }\n }\n };\n\n return (\n <>\n \n \n
\n \n {surveyType\n ? SurveyList.find(({ id }) => id === surveyType)?.name\n : \"\"}\n \n {currQuestion >= 0? `${currQuestion} of ${maxQuestion}` : ''}\n
\n
\n {surveyType !==2 ? (\n
\n \n \n \n
)\n : ' '}\n \n
\n \n );\n};\n\nexport default BottomBar;\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Loading from './Loading'\r\nimport {\r\n LOAD_CULTURE_QUESTIONS,\r\n LOAD_MOOD_QUESTIONS,\r\n LOAD_LEADERSHIP_QUESTIONS,\r\n SET_ANSWERS,\r\n SG_START_SURVEY,\r\n} from \"constants/actions\";\r\n\r\nimport Mood from \"./Mood/index\";\r\n\r\nimport TeamIntelligence from \"./TeamIntelligence/index\";\r\nimport Leadership from \"./Leadership/index\";\r\n\r\nimport NoToken from \"./NoToken\"\r\nimport End from \"./End\"\r\nimport SurveyMessage from \"./Message\"\r\n\r\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\r\nimport {TRANSITIONSPEED} from \"constants/animation\"\r\n\r\nimport SideBar from \"./Sidebar/index\";\r\nimport BottomBar from \"./BottomBar\";\r\n// import \"./survey.css\";\r\nimport { Message, Icon } from \"semantic-ui-react\";\r\n\r\nimport { Container as StyledContainer } from \"./styledList\";\r\n\r\nconst Survey = () => {\r\n const dispatch = useDispatch();\r\n // const search = window.location.search;\r\n // const params = new URLSearchParams(search);\r\n // const token = params.get(\"token\");\r\n // token is not query string but a param\r\n let { id, token } = useParams();\r\n\r\n const [tokenMatched, setTokenMatched] = useState([]);\r\n\r\n const [cultureQuestionList, setCultureQuestionList] = useState([]);\r\n const [cultureAnswersList, setCultureAnswersList] = useState([]);\r\n const [moodQuestionList, setMoodQuestionList] = useState([]);\r\n\r\n const [leadershipQuestionList, setLeadershipQuestionList] = useState([]);\r\n const [leadershipAnswersList, setLeadershipAnswersList] = useState([]);\r\n\r\n const [surveyType, setSurveyType] = React.useState(0);\r\n const [direction, setDirection] = React.useState(1);\r\n\r\n const [cultureQues, setCultureQues] = React.useState(false);\r\n const [moodQues, setMoodQues] = React.useState(false);\r\n const [leadershipQues, setLeadershipQues] = React.useState(false);\r\n\r\n const [loading, setLoading] = React.useState(true)\r\n\r\n const [surveyCompleted, setSurveyCompleted] = useState([]);\r\n // const [surveyMessage, setSurveyMessage] = useState(false);\r\n\r\n\tconst [surveyStatus, setSurveyStatus] = useState(0)\r\n\t// const [validUpto, setValidUpto] = useState(false)\r\n\t// const [surveyDeleted, setSurveyDeleted] = useState(false);\r\n\tconst [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\r\n\r\n useEffect(() => {\r\n setTimeout(() => setLoading(false), 1000);\r\n });\r\n\r\n useEffect(() => {\r\n // Run! Like go get some data from an API.\r\n\r\n if (token) {\r\n dispatch({ type: SG_START_SURVEY, payload: `?token=${token}` });\r\n dispatch({ type: LOAD_CULTURE_QUESTIONS, payload: `?token=${token}` });\r\n dispatch({ type: LOAD_MOOD_QUESTIONS, payload: `?token=${token}` });\r\n dispatch({ type: LOAD_LEADERSHIP_QUESTIONS, payload: `?token=${token}` });\r\n }\r\n }, [dispatch, token]);\r\n\r\n const { get_questions, get_curr_direction,\r\n get_answers, survey_type } = useSelector(\r\n (state) => ({\r\n get_questions: state.questions,\r\n get_curr_direction: state.answers.curr_direction,\r\n //get this from question token\r\n get_answers: state.answers,\r\n survey_type: state.answers.curr_survey_type,\r\n }),\r\n shallowEqual\r\n );\r\n\r\n useEffect(() => {\r\n if (get_answers.token === token) {\r\n if (get_answers.culture_survey_compliance ||\r\n get_answers.mood_survey_compliance ||\r\n get_answers.leadership_survey_compliance\r\n ) {\r\n setTokenMatched(true)\r\n } else {\r\n setTokenMatched(false)\r\n }\r\n } else {\r\n setTokenMatched(false)\r\n }\r\n setSurveyCompleted(get_answers.all_survey_types.length)\r\n\r\n // setSurveyDeleted(get_answers?.to_delete)\r\n setSurveyDeletedOn(get_answers?.deleted_on)\r\n // setSurveyMessage(get_answers?.token_message)\r\n setSurveyStatus(get_answers?.completion_status ? get_answers?.completion_status : 0)\r\n\t\t// setValidUpto(new Date(get_answers?.answers?.valid_upto).valueOf() < new Date().valueOf())\r\n\r\n\r\n // console.log(get_answers)\r\n }, [get_answers, token])\r\n\r\n \r\n\r\n useEffect(() => {\r\n\r\n if (get_questions && survey_type) {\r\n setCultureQuestionList(get_questions.culture_questions.questions);\r\n setCultureAnswersList(get_questions.culture_questions.questions?.options);\r\n setMoodQuestionList(get_questions.mood_questions.questions);\r\n setLeadershipQuestionList(get_questions.leadership_questions.questions);\r\n setLeadershipAnswersList(\r\n get_questions.leadership_questions.questions?.options\r\n );\r\n setSurveyType(survey_type);\r\n setCultureQues(get_questions.pending_culture_questions);\r\n setMoodQues(get_questions.pending_mood_questions);\r\n setLeadershipQues(get_questions.pending_leadership_questions);\r\n }\r\n\r\n }, [dispatch, get_questions, id, token, survey_type]);\r\n\r\n // culture question additional question for team related question\r\n useEffect(() => {\r\n dispatch({\r\n type: SET_ANSWERS,\r\n payload: {\r\n culture_max_ques: cultureQuestionList?.questions?.length + 1,\r\n mood_max_ques: moodQuestionList?.max_response,\r\n leadership_max_ques: leadershipQuestionList?.questions?.length,\r\n curr_survey_type: survey_type,\r\n culture_survey_status: 1,\r\n mood_survey_status: 1,\r\n leadership_survey_status: 1,\r\n mood_high_ans: 1,\r\n },\r\n });\r\n }, [\r\n dispatch,\r\n cultureQuestionList,\r\n moodQuestionList,\r\n leadershipQuestionList,\r\n survey_type,\r\n ]);\r\n\r\n // Get list of answer ids from the answer list\r\n // use the list to check if all questions are\r\n // answered\r\n useEffect(() => {\r\n if (survey_type) {\r\n setSurveyType(survey_type);\r\n }\r\n }, [survey_type]);\r\n useEffect(() => {\r\n setDirection(get_curr_direction);\r\n }, [get_curr_direction]);\r\n\r\n // old code\r\n const [q, setQ] = React.useState(0);\r\n\r\n const nextQ = (i) => {\r\n setDirection(1);\r\n setQ(q + 1);\r\n };\r\n // old code end\r\n\r\n // console.log(surveyDeleted)\r\n\r\n if (loading) {\r\n return \r\n }\r\n // console.log(surveyStatus)\r\n\r\n if (!tokenMatched) {\r\n return (\r\n \r\n \r\n\t\t\t\t\t\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n }\r\n // console.log('reached here')\r\n if (surveyDeletedOn) {\r\n // console.log(get_answers?.deleted_on)\r\n return (\r\n \r\n\r\n \r\n\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (!surveyCompleted) {\r\n return (\r\n \r\n \r\n\t\t\t\t\t\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (!surveyType)\r\n {\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 {surveyType === 1 && (\r\n cultureQues ? (\r\n \r\n \r\n \r\n Just one second\r\n We are fetching that content for you.\r\n \r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n {surveyType === 2 && (\r\n moodQues ? (\r\n \r\n \r\n \r\n Just one second\r\n We are fetching that content for you.\r\n \r\n \r\n ) : (\r\n nextQ(i)}\r\n moodQuestions={moodQuestionList}\r\n key={q}\r\n // Start={Start}\r\n direction={direction}\r\n setSurveyType={setSurveyType}\r\n />\r\n )\r\n )}\r\n\r\n {surveyType === 3 && (\r\n leadershipQues ? (\r\n \r\n \r\n \r\n Just one second\r\n We are fetching that content for you.\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 Survey;\r\n","import styled from \"styled-components\";\nimport React from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nimport {\n ADD_PERSONALITY_ANSWER,\n SET_ANSWERS,\n SG_UPDATE_PERSONALITY_ANSWER,\n // SG_START_PERSONALITY_ANSWER,\n SUBMIT_ANSWER,\n} from \"constants/actions\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n // deviceType,\n osName,\n // osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nconst words = [\"Disagree\", \"\", \"Neutral\", \"\", \"Agree\"];\n\nconst PersonalityQuestion = (props) => {\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n const { question, highAns, answer, get_answers } = props;\n // const [answer, setAnswer] = useState([]);\n\n React.useEffect(() => {\n // setAnswer(props.answer);\n }, [props]);\n\n const nextQuestion = (i) => {\n // setAnswer(i);\n\n setTimeout(() => {\n props.next(i);\n // setAnswer(null);\n SaveAnswer(i);\n props.setShowNext(false)\n }, 150);\n \n\n };\n\n // React.useEffect(() => {\n\n \n // }, [answer, dispatch, get_answers])\n // console.log(get_answers)\n\n const SaveAnswer = (i) => {\n dispatch({\n type: ADD_PERSONALITY_ANSWER,\n payload: {\n id: question.id,\n answer: i,\n },\n });\n dispatch({\n type: SET_ANSWERS,\n payload: {\n personality_high_ans: question.id,\n curr_direction: 1,\n },\n });\n let response = [answer];\n // setAnswer(null);\n props.setShowPrev(true)\n props.next(response);\n\n dispatch({\n type: SG_UPDATE_PERSONALITY_ANSWER,\n payload: {\n token: get_answers.token,\n full_response: {\n personality_answers: get_answers.personality_answers,\n personality_max_ques: get_answers.personality_max_ques,\n personality_high_ans: get_answers.personality_high_ans,\n personality_cur_ques: get_answers.personality_cur_ques,\n personality_complete: get_answers.personality_complete,\n personality_survey_status: get_answers.personality_survey_status,\n participants_in_personality: get_answers.participants_in_personality,\n } \n },\n })\n };\n// console.log(get_answers)\n// console.log(get_answers.personality_answers)\n const SubmitAnswer = () => {\n dispatch({\n type: ADD_PERSONALITY_ANSWER,\n payload: {\n id: question.id,\n answer: answer,\n },\n });\n\n dispatch({\n type: SUBMIT_ANSWER,\n payload: {\n personality_answers: [\n ...get_answers.personality_answers,\n { id: question.id, answer: answer },\n ],\n\n employee: get_answers.employee,\n token: get_answers.token,\n device: deviceDetected,\n mobile: isMobile? \"Yes\" : \"No\",\n browser: isBrowser? \"Desktop\" : \"Other Devise\",\n operating_system: osName,\n user_ip: get_answers.user_ip,\n participants_in_personality: get_answers.participants_in_personality,\n },\n });\n\n dispatch({\n type: SET_ANSWERS,\n payload: {\n personality_complete: true,\n },\n });\n\n };\n// console.log(get_answers.personality_cur_ques)\n// console.log(get_answers.personality_high_ans)\n return (\n \n {`I ${question.question}`}\n\n \n {[0, 1, 2, 3, 4].map((item, i) => {\n return (\n (highAns < 101 ? nextQuestion(i + 1) : \"\")}\n key={i}\n >\n {item + 1}\n {words[i]}\n \n );\n })}\n \n {get_answers.personality_high_ans === 100 && (\n \n Submit Answers\n \n )}\n \n );\n};\n\nexport default PersonalityQuestion;\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 25%;\n padding: 20px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 25%;\n }\n`;\n\n// const IMG = styled.img`\n// margin-bottom: 8px;\n// height: 50px;\n// margin-right: 22px;\n// `;\n\nconst Question = styled.div`\n font-size: 16px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\n// const Title = styled.div`\n// font-size: 23px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// color: white;\n// `;\n\n// const Sub = styled.div`\n// font-size: 14px;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-top: 12px;\n// color: white;\n// `;\n\nconst QuestionItem = styled.div`\n width: 18%;\n height: 55px;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-radius: ${(props) =>\n props.i === 1 ? \"7px 0px 0px 7px\" : props.i === 5 ? \"0 7px 7px 0\" : \"none\"};\n border: 1px solid white;\n cursor: pointer;\n background-color: ${(props) => (props.answer === props.i ? \"white\" : \"none\")};\n color: ${(props) => (props.answer === props.i ? \"#6a00ff\" : \"white\")};\n\n &:active {\n background: white;\n color:#6a00ff;\n }\n\n @media only screen and (min-width: 992px) {\n height: 85px;\n width: 20%;\n\n &:hover {\n background: white;\n color: #6a00ff;\n }\n &:active {\n background: #6a00ff;\n color:white;\n }\n }\n\n \n`;\n\nconst QuestionContainer = styled.div`\n width: 100vw;\n height: 65px;\n margin-top: 10px;\n display: flex;\n flex-direction: row;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\nconst Num = styled.div`\n font-size: 18px;\n font-weight: bold;\n margin-top: 10px;\n\n @media only screen and (min-width: 992px) {\n font-size: 24px;\n margin-top: 20px;\n }\n`;\nconst Rating = styled.div`\n font-size: 10px;\n font-weight: 500;\n margin-top: 0px;\n\n @media only screen and (min-width: 992px) {\n font-size: 15px;\n margin-top: 10px;\n }\n`;\n\n// const Scale = styled.div`\n// width: 600px;\n// display: flex;\n// flex-direction: row;\n// justify-content: space-between;\n// margin-top: 20px;\n// font-size: 146x;\n// font-family: \"Red Hat Display\", sans-serif;\n// color: white;\n// `;\n\nconst Button = styled.div`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n`;\n\n// const CounterContainer = styled.div`\n// position: absolute;\n// bottom: 50px;\n// right: 50px;\n// display: flex;\n// flex-direction: row;\n// align-items: center;\n// `;\n\n// const Counter = styled.div`\n// padding: 10px 15px 10px 15px;\n// background-color: #4f00f7;\n// color: white;\n// font-family: \"Red Hat Display\", sans-serif;\n// font-size: 16px;\n// border-radius: 7px;\n// margin-right: 25px;\n// `;\n\n// const Container = styled.div`\n// background-image: linear-gradient(308deg, #6d00aa, #6a00ff);\n// height: 100vh;\n// width: 100%;\n// `;\n\nconst SubmitButton = styled(Button)`\n width: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n // color: white;\n // background-color: white;\n color: #6A00FF;\n font-size: 16px;\n font-weight: bold;\n cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Intro = (props) =>{\n\n\treturn (\n\t\t\n\t\t\tBig 5 Personality Assessment\n\t\t\tPlease be aware that your summary results will be visible to your team members. \n This is to aid in the development of both self and others awareness. There is no good or \n bad when it comes to personality results. Simply follow your gut when answering each question.\n\t\t\tprops.next()}>Begin\n\t\t\n\n\t\t)\n}\n\nexport default Intro\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n \n`\n\nconst End = (props) =>{\n\n\treturn (\n\t\t\n\t\t\tThank you for participating\n\t\t\tYour results will appear in your inbox shortly!\n\t\t\t\n\t\t\n\n\t\t)\n}\n\n\nexport default End","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = (props) =>{\n\n\treturn (\n\t\t\n
\n \n\n\t\t\t Survey Closed\n
\n\t\t\tThis survey has closed.\n\t\t\t\n\t\t
\n\n\t\t)\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\n\nimport PersonalityQuestion from \"./PersonalityQuestion\";\n\nimport Intro from \"./Intro\";\nimport End from \"./End\";\nimport styled from \"styled-components\";\nimport { Icon, Loader } from \"semantic-ui-react\";\n\nimport NoToken from \"./NoToken\";\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport \"../survey.css\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\nimport {\n SET_ANSWERS,\n LOAD_PERSONALITY_QUESTIONS,\n SG_START_SURVEY,\n SG_GET_PERSONALITY_ANSWER,\n // SG_UPDATE_PERSONALITY_ANSWER,\n SG_START_PERSONALITY_ANSWER,\n} from \"constants/actions\";\n\nimport {TRANSITIONSPEED, SlideDirection} from \"constants/animation\"\n\nconst deviceDetected = deviceDetect();\nconst PersonalitySurvey = () => {\n const dispatch = useDispatch();\n // const search = window.location.search;\n // const params = new URLSearchParams(search);\n // const token = params.get(\"token\");\n let { token } = useParams();\n\n const [pQuestion, setPQuestion] = useState(0);\n const [direction, setDirection] = useState(1);\n const [tokenMatched, setTokenMatched] = useState([]);\n const [answers, setAnswer] = useState([]);\n const [personalityQuestionList, setPersonalityQuestionList] = useState([]);\n const [personalityAnswerList, setPersonalityAnswerList] = useState([]);\n\n const [showPrev, setShowPrev] = useState(false);\n const [showNext, setShowNext] = useState(false);\n const [delayResponse, setDelayResponse] = useState(false);\n\n useEffect(() => {\n // Run! Like go get some data from an API.\n\n if (token) {\n dispatch({\n type: LOAD_PERSONALITY_QUESTIONS,\n payload: `?token=${token}`,\n });\n dispatch({\n type: SG_START_SURVEY,\n payload: `?token=${token}`,\n });\n dispatch({\n type: SG_GET_PERSONALITY_ANSWER,\n payload: `?token=${token}`,\n });\n }\n }, [dispatch, token]);\n\n const {\n get_questions,\n // survey_type,\n get_answers,\n personality_ans,\n personality_high_ans,\n personality_cur_ques,\n personality_complete,\n } = useSelector(\n (state) => ({\n get_questions: state.questions,\n //get this from question token\n survey_type: state.answers.curr_survey_type,\n personality_ans: state.answers.personality_answers,\n get_answers: state.answers,\n personality_high_ans: state.answers.personality_high_ans,\n personality_cur_ques: state.answers.personality_cur_ques,\n personality_complete: state.answers.personality_complete,\n }),\n shallowEqual\n );\n\n // Get list of question ids from the question list\n // use the list to check if all questions are\n // answered\n useEffect(() => {\n if (get_questions) {\n setPersonalityQuestionList(\n get_questions.personality_questions.questions?.onboard\n );\n setPersonalityAnswerList(personality_ans);\n }\n }, [dispatch, get_questions, personality_ans]);\n\n useEffect(() => {\n setTokenMatched(get_answers.token === token);\n setPQuestion(get_answers.personality_cur_ques);\n\n setTimeout(() => {\n setDelayResponse(get_answers.token !== token);\n }, 5000);\n }, [get_answers, token]);\n\n const back = () => {\n if (personality_high_ans > 0) {\n setDirection(0);\n setPQuestion(pQuestion - 1);\n dispatch({\n type: SET_ANSWERS,\n payload: {\n personality_cur_ques: pQuestion - 1,\n curr_direction: 0,\n },\n });\n setShowNext(true);\n }\n setShowPrev(false);\n };\n\n const forward = () => {\n if (answers.length > pQuestion) {\n setDirection(1);\n setPQuestion(pQuestion + 1);\n dispatch({\n type: SET_ANSWERS,\n payload: {\n personality_cur_ques: pQuestion + 1,\n curr_direction: 0,\n },\n });\n setShowNext(false);\n setShowPrev(true);\n }\n };\n\n const nextQ = (i) => {\n if (pQuestion === answers.length) {\n setAnswer((answers) => [...answers, i]);\n } else {\n let temp = answers;\n temp[pQuestion] = i;\n setAnswer(temp);\n }\n\n setDirection(1);\n if (pQuestion < 100) {\n setPQuestion(pQuestion + 1);\n }\n };\n\n function Start() {\n dispatch({\n type: SET_ANSWERS,\n payload: {\n curr_direction: 1,\n personality_cur_ques: 1,\n personality_max_ques: 100,\n token: token,\n isBrowser,\n mobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n operating_system: osName,\n device: deviceDetected,\n },\n });\n if (get_answers?.response_code) {\n // dispatch({\n // type: SG_UPDATE_PERSONALITY_ANSWER,\n // payload: {\n // full_response: get_answers },\n // })\n } else {\n dispatch({\n type: SG_START_PERSONALITY_ANSWER,\n payload: {\n employee_id: get_answers.employee,\n token: get_answers.token,\n participants_in_personality: get_answers.participants_in_personality,\n full_response: {\n personality_answers: get_answers.personality_answers,\n personality_max_ques: get_answers.personality_max_ques || 100,\n personality_high_ans: get_answers.personality_high_ans || 0,\n personality_cur_ques: get_answers.personality_cur_ques || 1,\n personality_complete: get_answers.personality_complete,\n personality_survey_status: get_answers.personality_survey_status,\n participants_in_personality:\n get_answers.participants_in_personality,\n },\n },\n });\n }\n setPQuestion(pQuestion + 1);\n }\n\n if (!tokenMatched) {\n return (\n \n \n\t\t\t\t\t\n <>{delayResponse ? : }\n \n \n \n );\n }\n\n return (\n \n \n\t\t\t\t\t\n <>\n {/* Start */}\n\n {pQuestion === 0 && }\n {personality_cur_ques > 0 &&\n !personality_complete &&\n personalityQuestionList?.length > 0 && (\n id === personality_cur_ques\n )}\n highAns={personality_high_ans}\n setShowPrev={setShowPrev}\n setShowNext={setShowNext}\n setDirection={setDirection}\n get_answers={get_answers}\n answer={\n personalityAnswerList.find(\n ({ id }) => id === personality_cur_ques\n )?.answer\n }\n next={(data) => nextQ(data)}\n key={pQuestion}\n />\n )}\n\n {/* End */}\n {personality_complete && }\n {/* */}\n \n \n \n\n \n \n
\n Personality\n {personality_cur_ques} of 100 questions\n
\n
\n back()}\n />\n \n\n forward()}\n />\n
\n
\n );\n};\n\nexport default PersonalitySurvey;\n\nconst Container = styled.div`\n height: 100vh;\n width: 100vw;\n background-color: #15056b;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst CounterContainer = styled.div`\n position: absolute;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 20px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n background-color: rgba(30, 33, 114, 0.3);\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n padding: 10px 25px 10px 25px;\n font-size: 16px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: 5px;\n font-size: 20px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst Intro = (props) =>{\n const {saveAnswer, title, intro, surveyEnabled=true, customElement } = props;\n\n const handleNext = () => {\n if (surveyEnabled) {\n saveAnswer();\n }\n }\n\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t{intro}\n {customElement}\n\t\t\t handleNext()}>Begin\n\t\t\n\t\t)\n}\n\nIntro.propTypes = {\n saveAnswer: PropTypes.func,\n title: PropTypes.string,\n surveyEnabled: PropTypes.bool,\n intro: PropTypes.node,\n customElement: PropTypes.node,\n}\n\n/******** Styles ****************************************************/\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 34px;\n margin-bottom:20px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n margin-bottom:30px;\n font-size: 20px;\n line-height:1.4;\n }\n`;\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #009370;\n color: rgba(0, 0, 0,0.9);\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n margin-top: 25px;\n cursor: pointer;\n ${(props) => !props.enabled && `\n opacity: 0.4;\n cursor:auto;\n `}\n`\n\nconst Container = styled.div`\n position:absolute;\n top:5%;\n padding:20px;\n @media only screen and (min-width:992px){\n left: 25%;\n }\n`\n\nexport default Intro;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport format from \"date-fns/format\";\n\nconst End = ({ message, onTime }) => {\n const [endDate, setEndDate] = useState(Date())\n // console.log( message, onTime)\n\n useEffect(() => {\n if (onTime) {\n setEndDate(format(new Date(onTime), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [onTime])\n\n // const Start = format(onTime, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\n return (\n \n \n {message ? message :\n 'Looks like we have already recieved your survey response'\n }\n \n\n {endDate ? `Received on ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}` : ''}\n \n \n\n\n \n\n )\n}\n\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = ({ title, subTitle }) => {\n\n return (\n \n
\n \n\n \n {title ? title : \"Survey completed\"}\n
\n \n {subTitle ? subTitle :\n \"This survey has been successfully submitted.\"}\n\n
\n\n )\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","export const REVERSE = {\n 0: 10,\n 1: 9,\n 2: 8,\n 3: 7,\n 4: 6,\n 5: 5,\n 6: 4,\n 7: 3,\n 8: 2,\n 9: 1,\n 10: 0\n}","import {REVERSE} from \"data/reverseScores\"\n\nexport function RunRules(props) {\n const { \n questions,\n get_brief_response\n } = props\n\n const MinQuestions = []\n const MaxQuestions = []\n\n const MinQuestionSet = []\n const MaxQuestionSet = []\n\n let maxRows = 0\n let minRows = 0\n\n\n if (get_brief_response?.response?.organization_info?.rules) {\n // console.log(\"get_brief_response?.response?.organization_info?.rules\", get_brief_response?.response?.organization_info?.rules)\n const getMax = get_brief_response?.response?.organization_info?.rules?.filter(ru => ru?.type === \"max\")?.[0]?.rows > 0\n maxRows = get_brief_response?.response?.organization_info?.rules?.filter(ru => ru?.type === \"max\")?.[0]?.rows\n const getMin = get_brief_response?.response?.organization_info?.rules?.filter(ru => ru?.type === \"min\")?.[0]?.rows > 0\n minRows = get_brief_response?.response?.organization_info?.rules?.filter(ru => ru?.type === \"min\")?.[0]?.rows\n\n // console.log(getMax)\n // console.log(maxRows)\n // console.log(getMin)\n // console.log(minRows)\n // console.log(questions)\n // console.log(\"get_brief_response?.answers?.questions\", get_brief_response?.answers?.questions)\n\n if (get_brief_response?.answers?.questions) {\n // const MaxScore = 10\n // reverse_score = MaxScore + 1 - your_score\n const _revisedValues = Object.values(get_brief_response?.answers?.questions).map(val => {\n // console.log(\"Check for reverse \", val)\n if (val?.reverse === true) {\n // console.log(\"reversed for ############\", val)\n return (\n {\n ...val,\n response: REVERSE[val.response]\n }\n )\n }\n return { ...val }\n })\n\n if (getMax) {\n const maxValues = _revisedValues.sort((a, b) => b.response - a.response);\n\n maxValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n // filter based on factor and dimensions\n const _found = MaxQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n\n if (!_found) {\n MaxQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n \n MaxQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'max'\n })\n }\n\n return null\n })\n\n // maxValues.slice(0, maxRows).map(m => {\n // const _ques = questions[m.ques_order - 1]\n // MaxQuestions.push({\n // ...m,\n // fr: _ques?.fr,\n // question: _ques?.question,\n // feedback: \"\",\n // dimension: _ques?.dimension,\n // factor: _ques?.factor,\n // type: 'max'\n // })\n // return null\n // })\n }\n\n if (getMin) {\n const minValues = _revisedValues.sort((a, b) => a.response - b.response);\n // console.log(minValues.sort((a,b) => a.response - b.response).slice(0,maxRows));\n \n // console.log(minValues)\n \n minValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n\n // filter based on factor and dimensions\n const _found = MinQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n\n if (!_found) {\n \n MinQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n\n MinQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'min'\n })\n }\n\n return null\n })\n \n // // console.log(minValues)\n // minValues.slice(0, minRows).map(m => {\n // const _ques = questions[m.ques_order - 1]\n // finalMinList.push({\n // ...m,\n // fr: _ques?.fr,\n // question: _ques?.question,\n // feedback: \"\",\n // dimension: _ques?.dimension,\n // factor: _ques?.factor,\n // type: 'min'\n // })\n // return null\n // })\n \n }\n }\n\n // console.log(finalMaxList)\n // console.log(\"finalMinList\", finalMinList)\n // console.log(\"MinQuestionSet\", MinQuestionSet)\n // console.log(\"MaxQuestions\", MaxQuestions)\n // MaxQuestions.slice(0, maxRows)\n // MinQuestions.slice(0, minRows)\n }\n \n \n // console.log([\n // ...MaxQuestions, \n // ...MinQuestions\n // ])\n\n return (\n [\n ...MinQuestions.slice(0, minRows),\n ...MaxQuestions.slice(0, maxRows)\n ]\n )\n}\n\n\nexport function AuditRunRules( questions, orgRules, questionAnswers,surveyStandards) {\n const MinQuestions = []\n const MaxQuestions = []\n\n const MinQuestionSet = []\n const MaxQuestionSet = []\n\n let maxRows = 0\n let minRows = 0\n\n //Implementation of lowest scores by factor. We fall back to the old method if this fails\n try {\n return FactorScoreRules(questions,orgRules,questionAnswers,surveyStandards)\n } catch (error) {\n console.log(error)\n }\n \n\n if (orgRules) {\n // console.log(\"orgRules\", orgRules)\n const getMax = orgRules?.filter(ru => ru?.type === \"max\")?.[0]?.rows > 0\n maxRows = orgRules?.filter(ru => ru?.type === \"max\")?.[0]?.rows\n const getMin = orgRules?.filter(ru => ru?.type === \"min\")?.[0]?.rows > 0\n minRows = orgRules?.filter(ru => ru?.type === \"min\")?.[0]?.rows\n\n\n\n if (questionAnswers?.questions) {\n // const MaxScore = 10\n // reverse_score = MaxScore + 1 - your_score\n const _revisedValues = Object.values(questionAnswers?.questions).map(val => {\n // console.log(\"Check for reverse \", val)\n if (val?.reverse === true) {\n // console.log(\"reversed for ############\", val)\n return (\n {\n ...val,\n response: REVERSE[val.response]\n }\n )\n }\n return { ...val }\n })\n\n if (getMax) {\n const maxValues = _revisedValues.sort((a, b) => b.response - a.response);\n\n maxValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n // filter based on factor and dimensions\n const _found = MaxQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n\n if (!_found) {\n MaxQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n \n MaxQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'max'\n })\n }\n\n return null\n })\n\n }\n\n if (getMin) {\n const minValues = _revisedValues.sort((a, b) => a.response - b.response);\n // console.log(minValues.sort((a,b) => a.response - b.response).slice(0,maxRows));\n \n // console.log(minValues)\n \n minValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n\n // filter based on factor and dimensions\n const _found = MinQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n\n if (!_found) {\n \n MinQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n\n MinQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'min'\n })\n }\n\n return null\n })\n \n\n \n }\n }\n\n\n }\n \n\n return (\n [\n ...MinQuestions.slice(0, minRows),\n ...MaxQuestions.slice(0, maxRows)\n ]\n )\n}\n\nconst get_average_by_factor = (questionAnswers) => {\n\n const groupedData = {};\n\n questionAnswers.forEach(entry => {\n const key = `${entry.id}_${entry.factor}`;\n if (!groupedData[key]) {\n groupedData[key] = {\n totalResponse: 0,\n count: 0,\n average: 0\n };\n }\n\n groupedData[key].totalResponse += entry.response;\n groupedData[key].count += 1;\n groupedData[key].average = groupedData[key].totalResponse / groupedData[key].count;\n });\n\n const arrayData = Object.keys(groupedData).map(key => {\n const [id, factor] = key.split('_').map(Number);\n return {\n id,\n factor,\n ...groupedData[key]\n };\n });\n \n arrayData.sort((a, b) => a.average - b.average);\n\n return arrayData\n\n}\n\n\nconst get_benchmark_diff_by_factor = (questionAnswers,surveyStandards) => {\n\n const groupedData = {};\n\n questionAnswers.forEach(entry => {\n const key = `${entry.id}_${entry.factor}`;\n if (!groupedData[key]) {\n groupedData[key] = {\n totalResponse: 0,\n count: 0,\n average: 0\n };\n }\n \n\n groupedData[key].totalResponse += entry.response;\n groupedData[key].count += 1;\n\n const average = groupedData[key].totalResponse / groupedData[key].count;\n\n let factor = entry.factor\n\n let dimension = \"dimension\" in entry ?entry.dimension:entry.id\n\n const benchmark = surveyStandards?.response?.pillars.filter(s => s.id === dimension && s.factor === factor)[0].average;\n groupedData[key].average = average - benchmark\n });\n\n const arrayData = Object.keys(groupedData).map(key => {\n const [id, factor] = key.split('_').map(Number);\n return {\n id,\n factor,\n ...groupedData[key]\n };\n });\n \n arrayData.sort((a, b) => a.average - b.average);\n\n return arrayData\n\n}\n\n\nfunction filterQuestions(questions, averages, criteria = 'highest') {\n // Sort averages based on the given criteria\n const sortedAverages = criteria === 'highest'\n ? [...averages].sort((a, b) => b.average - a.average) \n : [...averages].sort((a, b) => a.average - b.average);\n\n const result = [];\n\n for (let avg of sortedAverages) {\n const { factor, id } = avg;\n\n // Get the relevant questions for this factor-id pairing\n const relevantQuestions = questions.filter(q => q.factor === factor && q.id === id);\n\n // Sort these relevant questions based on the given criteria\n relevantQuestions.sort((a, b) => criteria === 'highest' ? b.response - a.response : a.response - b.response);\n\n if (relevantQuestions.length > 0) {\n result.push(relevantQuestions[0]); // Pick the top question\n }\n }\n\n return result;\n}\n\nconst FactorScoreRules = (questions, orgRules, questionAnswers,surveyStandards) => {\n const MinQuestions = []\n const MaxQuestions = []\n\n const MinQuestionSet = []\n const MaxQuestionSet = []\n\n let maxRows = 0\n let minRows = 0\n\n if (orgRules) {\n\n const getMax = orgRules?.filter(ru => ru?.type === \"max\")?.[0]?.rows > 0\n maxRows = orgRules?.filter(ru => ru?.type === \"max\")?.[0]?.rows\n\n const getMin = orgRules?.filter(ru => ru?.type === \"min\")?.[0]?.rows > 0\n minRows = orgRules?.filter(ru => ru?.type === \"min\")?.[0]?.rows\n\n if (questionAnswers?.questions) {\n\n const _revisedValues = Object.values(questionAnswers?.questions).map(val => {\n // console.log(\"Check for reverse \", val)\n if (val?.reverse === true) {\n // console.log(\"reversed for ############\", val)\n return (\n {\n ...val,\n response: REVERSE[val.response]\n }\n )\n }\n return { ...val }\n })\n\n\n let factor_averages\n if(surveyStandards && surveyStandards?.response){\n console.log('has survey standards')\n factor_averages = get_benchmark_diff_by_factor(_revisedValues,surveyStandards)\n }else{\n factor_averages = get_average_by_factor(_revisedValues)\n } \n\n console.log(factor_averages)\n\n if (getMax) {\n const maxValues = filterQuestions(_revisedValues,factor_averages,'highest')\n \n maxValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n // filter based on factor and dimensions\n const _found = MaxQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n\n if (!_found) {\n MaxQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n \n MaxQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'max'\n })\n }\n\n return null\n })\n\n }\n\n if (getMin) {\n const minValues = filterQuestions(_revisedValues,factor_averages,'lowest')\n\n \n minValues.map(m => {\n const _ques = questions[m.ques_order - 1]\n \n // filter based on factor and dimensions\n const _found = MinQuestionSet.filter(mm => mm?.dimension === _ques?.dimension && mm?.factor === _ques?.factor)?.[0]\n if (!_found) {\n \n MinQuestionSet.push({dimension:_ques?.dimension,\n factor: _ques?.factor})\n \n MinQuestions.push({\n ...m,\n fr: _ques?.fr,\n es: _ques?.es,\n question: _ques?.question,\n feedback: \"\",\n dimension: _ques?.dimension,\n factor: _ques?.factor,\n type: 'min'\n })\n }\n \n return null\n })\n\n }\n\n }\n }\n\n return (\n [\n ...MinQuestions.slice(0, minRows),\n ...MaxQuestions.slice(0, maxRows)\n ]\n )\n\n\n}\n\nexport default RunRules;","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nimport Select from \"react-select\";\n\nconst CategoryQuestions = (props) => {\n\tconst { id, prevResponse, \n\t\t data, employeeCategory } = props\n\n\tconst [quesResponse, setQuesResponse] = useState(null)\n\tconst [formatOptions, setFormatOptions] = useState([])\n\tconst [hasValue, setHasValue] = useState(false)\n\t\n\tconsole.log(data)\n\n\tuseEffect(() => {\n\t\tsetFormatOptions(data.answers.map((item, key) => {\n\t\t\treturn {\n\t\t\t\ttext: item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t}\n\t\t}))\n\t}, [data, quesResponse]);\n\n\tuseEffect(() => {\n\t\tconst EmployeeCat = employeeCategory.find(\n\t\t\t({ name_id }) => name_id === data?.id)\n\t\tsetQuesResponse(null)\n\t\tif (EmployeeCat) {\n\t\t\tsetQuesResponse(data.answers.filter(an => an.name === EmployeeCat.value\n\t\t\t).map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\ttext: item.name,\n\t\t\t\t\tvalue: item.id\n\t\t\t\t}\n\t\t\t})[0])\n\t\t}\n\t}, [employeeCategory, data]);\n\t\n\n\tuseEffect(() => {\n\t\tsetHasValue(false)\n\t\tif (quesResponse) {\n\t\t\tsetHasValue(true)\n\t\t}\n\t}, [quesResponse]);\n\n\tuseEffect(() => {\n\t\tif (prevResponse?.response !== null) {\n\t\t\tif (!quesResponse) {\n\t\t\t\tsetQuesResponse(formatOptions.filter(so => so.value === prevResponse?.response)[0])\n\t\t\t}\n\t\t}\n\t}, [prevResponse, formatOptions, quesResponse]);\n\n\tconst next = () => {\n\t\tprops.save({\n\t\t\tid: data.id,\n\t\t\tresponse: quesResponse?.value,\n\t\t\t// question: props.data.question,\n\t\t\tsubfactor: data?.subfactor,\n\t\t\tpriority: data?.priority\n\t\t})\n\t\tsetQuesResponse(null)\n\t\tsetHasValue(false)\n\t}\n\n\tconst getQuestion = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{data.question}\n\t\t\t\t\n\t\t\t\t\t option.text}\n\t\t\t\t\t\tgetOptionValue={(option) => option.value}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)\n\t}\n\n\treturn (\n\t\t\n\t\t\t{getQuestion()}\n\t\t\t next()}\n\t\t\t\tdisabled={!hasValue}\n\t\t\t\tid=\"next\">\n\t\t\t\tNext\n\t\t\t\n\t\t\n\t)\n}\n\n\nexport default CategoryQuestions\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n width:100%;\n\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 15%;\n }\n`;\n\n\nconst DropDownContainer = styled.div`\n padding: 0px;\n left: 0%;\n top: 10%;\n\n width:600px;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React, { useEffect, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { Modal,Button,Loader } from 'semantic-ui-react'\nimport \"../survey.css\";\nimport Typewriter from 'typewriter-effect';\nimport {REVERSE} from \"data/reverseScores\"\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport {\n SG_GET_CHAT_GPT_SUMMARY,\n} from \"constants/actions\";\n\nimport { v4 as uuidv4 } from 'uuid';\nconst NewValidationToken = uuidv4()\n\nconst CommentsFeedback = ({ id, ruleFeedback,\n setCompletedRuleFeedback,\n setFeedbackKey,\n setRuleFeedback,\n setRuleFeedbackComplete,\n language,\n textColor,\n setAskFeedback,\n setComplete }) => {\n\n const dispatch = useDispatch();\n // console.log(ruleFeedback)\n const [totalQues, setTotalQues] = useState(0)\n const [currQues, setCurrQues] = useState(0)\n const [open, setOpen] = useState(false)\n const [closed, setClosed] = useState(false)\n const [phase, setPhase] = useState(0)\n const [phase2resp, setPhase2resp] = useState('')\n const [phase2Ques, setPhase2Ques] = useState('')\n const [finish, setFinish] = useState(0)\n const [loading,setLoading] = useState(true)\n const timeout = useRef(null)\n const [prompt,setPrompt] = useState('')\n\n\n const [respValue, setRespValue] = useState('')\n const [responseList, setResponseList] = useState([])\n const [getResponse, setGetResponse] = useState({})\n\n const { get_chat_gpt } = useSelector(\n (state) => ({\n get_chat_gpt: state.chatgpt,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n if(get_chat_gpt?.response_pending === true){\n timeout.current = setTimeout(()=>{\n setLoading(false)\n setFinish(0)\n setPhase(0)\n save()\n },15000)\n }\n\n if(get_chat_gpt?.response_pending === false){\n clearTimeout(timeout.current)\n timeout.current = null\n }\n setPhase2Ques(get_chat_gpt.chat_gpt_summary?.response)\n setLoading(get_chat_gpt?.response_pending)\n\n\n return () => {\n clearTimeout(timeout.current)\n }\n\n },[get_chat_gpt])\n\n function SubmitChatGpt() {\n let _prompt = `Context:\nThe following is feedback from a culture analysis survey. The feedback is a response to the following statement: ${getResponse?.question} \\n\nFeedback:\\n${respValue}\\n\nQuestion:\\nWhat follow up question would a world class culture consultant ask based on the feedback given that would help create recommendations for the organization to address these issues? Make sure your response is simple enough for an 7th grader to understand. Only return the question istelf. \\n\nResponse:\\n`\n setPrompt(_prompt)\n dispatch({\n type: SG_GET_CHAT_GPT_SUMMARY,\n payload: {\n payload: _prompt,\n token: NewValidationToken\n }\n });\n }\n\n useEffect(() => {\n setTotalQues(ruleFeedback?.length)\n }, [ruleFeedback]);\n\n useEffect(() => {\n setGetResponse(ruleFeedback[currQues])\n }, [ruleFeedback, currQues]);\n\n const save = () => {\n const _resList = responseList\n _resList.push({\n ...getResponse,\n feedback: respValue,\n follow_up: phase2resp,\n follow_up_question: phase2Ques,\n prompt\n })\n setResponseList(_resList)\n\n if (currQues + 2 > totalQues) {\n setCompletedRuleFeedback(_resList)\n setRuleFeedbackComplete(true)\n setAskFeedback(false)\n setComplete(true)\n\n return\n }\n\n if (currQues + 1 <= totalQues) {\n setCurrQues(currQues + 1)\n }\n\n\n \n setRespValue('')\n setPhase2Ques('')\n setPhase2resp('')\n // \n }\n\n const next = () =>{\n if(phase == 0 && (respValue.length > 0) && getResponse.type === 'min'){\n SubmitChatGpt()\n setPhase(1)\n setFinish(0)\n }\n else if((phase==0 && (respValue.length > 0 || closed)) || (phase==1 && (phase2resp.length> 0 || closed))){\n save()\n setFinish(0)\n setPhase(0)\n }else{\n setOpen(true)\n }\n }\n\n const close = () =>{\n setOpen(false)\n setClosed(true)\n }\n\n\n const getQuestion = () => {\n if (getResponse.type === 'min') {\n return 'Can you provide additional feedback supporting the score you gave?'\n }\n\n return 'We noticed you scored this question higher than most. Can you provide additional feedback supporting the score you gave?'\n }\n\n const getTopQuestion = () =>{\n if (getResponse.type === 'min') {\n return 'We noticed you scored the following statement amongst the lowest overall:'\n }\n\n return 'You scored the following statement the highest:'\n }\n\n const getTypeWriter = (i) =>{\n if(i <= finish && i==1){\n document.querySelectorAll(\".Typewriter__cursor\")[0].style.display = \"none\"\n return {\n typewriter.changeDelay(17)\n .typeString(language && language === 1 ? getResponse?.fr : getResponse?.question)\n .pauseFor(100)\n .callFunction(() => {\n setFinish(2)\n })\n .start();\n }}\n />\n }\n\n if(i<=finish && i==2){\n document.querySelectorAll(\".Typewriter__cursor\")[1].style.display = \"none\"\n return {\n typewriter.changeDelay(17)\n .typeString(getQuestion())\n .callFunction(() => {\n setFinish(3)\n })\n .start();\n }}\n />\n }\n\n return ''\n }\n \n \n\n return (\n <>\n \n \n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames=\"feedback\"\n >\n \n\n {phase==1?\n setFinish(f)} phase2Ques={phase2Ques} loading={loading}/>\n :<>\n \n {\n typewriter.changeDelay(17)\n .typeString(getTopQuestion())\n .pauseFor(100)\n .callFunction((el) => {\n setFinish(1)\n })\n .start()\n\n }}\n />\n \n \n \n \n {getTypeWriter(1)}\n \n \n \n {getTypeWriter(2)}\n \n \n }\n \n phase==0?setRespValue(e.target.value):setPhase2resp(e.target.value)} />\n \n \n next()}\n color={textColor} \n id={`comment_button_${currQues}_${phase}`}\n >\n {language === 1 ? 'Suivant' : 'Next'}\n \n\n \n \n \n \n \n \n \n )\n}\n\nexport default CommentsFeedback\n\nconst EmptyModal = ({open,close}) =>{\n \n return (\n close()}>\n Your Feedback Matters! 🌟\n \n We understand that your time is precious, but we'd like to take\n a moment to emphasize how important your feedback is to us.\n Your thoughts and insights can make a world of difference! \n 🌍 By sharing your experiences, you help us:\n
    \n
  • Drive meaningful change 🛠️ - Your feedback pinpoints areas for \n improvement, enabling us to prioritize and implement impactful changes.
  • \n
  • \n Reinforce our strengths 💪 - Your positive feedback helps us maintain \n and enhance the features that resonate with you, ensuring exceptional services.\n
  • \n
  • \n Influence strategic decisions 🧭 - Your input informs our \n decision-making process, leading to a more responsive and user-focused organization.\n
  • \n
\n \n
\n \n \n \n \n \n\n )\n}\n\nconst Phase2 = ({setFinish,phase2Ques,loading}) =>{\n\n if(loading){\n return \n }\n\n return (\n \n {\n typewriter.changeDelay(17)\n .typeString(phase2Ques)\n .pauseFor(100)\n .callFunction((el) => {\n setFinish(3)\n })\n .start()\n\n }}\n />\n )\n}\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n color: white;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 18px;\n font-weight: 500;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.6;\n font-style:italic;\n margin-bottom: 20px;\n margin-left:20px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 20px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 18px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button2 = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props => props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\n\nconst TopText = styled.div`\n font-size: 18px;\n max-width:600px;\n line-height:1.6;\n white-space: pre-line;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 10px;\n \n }\n\n`\n\nconst Score = styled.div`\n font-size:18px;\n margin-bottom:20px;\n margin-top:10px;\n line-height:1.6;\n max-width:600px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n }\n`\n\nconst Hidden = styled.div`\n opacity:${props => props.show? 1 : 0};\n transition: opacity 0.8s ease-in-out;\n`\n\nconst ModalContent = styled.div`\n padding:20px;\n font-size:16px;\n line-height:1.6;\n font-family:Poppins, sans-serif;\n\n @media (max-width:768px){\n font-size:14px;\n }\n`","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\n\n\n\n// const PrettoSlider = withStyles({\n// root: {\n// color: 'grey',\n// height: 8,\n// },\n// thumb: {\n// height: 24,\n// width: 24,\n// backgroundColor: '#FA675C',\n// color: '#FA675C',\n// border: '2px solid currentColor',\n// marginTop: -8,\n// marginLeft: -12,\n// '&:focus, &:hover, &$active': {\n// boxShadow: 'inherit',\n// },\n// },\n// active: {},\n// valueLabel: {\n// left: 'calc(-50% + 4px)',\n// },\n// track: {\n// height: 8,\n// borderRadius: 4,\n// },\n// rail: {\n// height: 8,\n// borderRadius: 4,\n// },\n// })(Slider);\n\nfunction isInt(value) {\n return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))\n}\n\nconst SliderQ = ({ preValue, saveResult, id, color,language,reversed }) => {\n\n const [res1, setRes1] = React.useState(0)\n // const [clicked, setClicked] = React.useState(false)\n let muiTheme = createMuiTheme({\n overrides:{\n MuiSlider: {\n thumb:{\n 'color':'#009370',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#009370'\n },\n rail: {\n color: 'black'\n }\n }\n}\n});\n\n\n\n // console.log(preValue)\n // console.log(clicked)\n // console.log(preValue !== undefined)\n\n React.useEffect(() => {\n if (isInt(preValue)) {\n setRes1(preValue)\n // setClicked(true)\n }\n else {\n setRes1(0)\n // setClicked(false)\n }\n }, [preValue]);\n\n function ClickedOnSlider(t) {\n // setClicked(true)\n setRes1(t)\n \n }\n\n function commitSlide(t) {\n saveResult(t)\n \n }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // setClicked(false)\n // }\n\n return (\n \n { }\n \n ClickedOnSlider(t)}\n onChangeCommitted={(e, t) => commitSlide(t)}\n />\n \n \n
{language===1?\"Pas du tout d'accord\":\"Strongly disagree\"}
\n
{language===1?\"Neutre\":\"Neutral\"}
\n
{language===1?\"Tout à fait d'accord\":\"Strongly agree\"}
\n
\n\n {/* save()}\n disabled={!clicked}\n color={color}\n id=\"next\">\n {language===1?\"Suivant\":\"Next\"}\n */}\n
\n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\n// const Button = styled.button`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// border: 0;\n// box-shadow: none;\n// color: ${props=>props.color};\n// font-size: 16px;\n// font-weight: bold;\n\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// // display: none;\n\n// :disabled{\n// background-color:lightgrey;\n// color:grey;\n// cursor:not-allowed;\n// opacity:0.5;\n// }\n\n\n// @media only screen and (min-width: 992px), (min-height: 760px) {\n// display: flex;\n// }\n// `;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`\n\n\nconst Scale = styled.div`\n width:calc(100% + 40px);\n margin-left:-20px;\n display:flex;\n justify-content:space-between;\n color:white;\n font-size:12px;\n`","import React, { useEffect, useState } from \"react\";\nimport Slider from './Slider'\nimport styled from \"styled-components\";\n\n\nconst QuestionTemplate = ({ saveQuestionAnswer,\n id,\n question,\n response,\n data, ...props }) => {\n\n const [respValue, setRespValue] = useState(0)\n\n const save = (resp) => {\n saveQuestionAnswer({\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question.order,\n response: resp,\n role: question?.role,\n\t\t\treverse: question?.reverse,\n })\n }\n\n useEffect(() => {\n if (response) {\n setRespValue(response?.response)\n } else {\n setRespValue(null)\n }\n }, [response]);\n\n return (\n \n {question?.question}\n save(resp)} />\n \n \n )\n}\n\nexport default QuestionTemplate\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n width:100%;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\n\n\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n\n// const SubmitButton = styled(Button)`\n// width: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n// // color: white;\n// // background-color: white;\n// color: #6A00FF;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// cursor: pointer;\n// `;\n\n","import React, { useState, useEffect } from 'react'\n\nimport { useDispatch } from \"react-redux\";\n\nimport { Button, Header, Icon, Modal } from 'semantic-ui-react'\n\nimport {\n RESET_VALIDATION_TOKEN,\n UPDATE_BRIEF_RESPONSE_ANSWERS,\n // SG_UPDATE_BRIEF_RESPONSE_ANSWERS,\n} from \"constants/actions\";\n\nfunction ExistingDataFound({ validationToken,\n setQuestionNo,\n setVisualQuestionNo,\n show = true,\n setShowIntro,\n setShowIntro2,\n storedResponse }) {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(false)\n\n const [validToken, setValidToken] = useState(false)\n const [timed, setTimed] = useState(false)\n const [defaultMessage, setDefaultMessage] = useState({\n header: \"Searching ...\",\n text: \"Looking for earlier response, please wait ...\"\n })\n\n useEffect(() => {\n setOpen(show)\n }, [show]);\n\n\n function ResetSurvey() {\n setOpen(false)\n dispatch(\n {\n type: RESET_VALIDATION_TOKEN,\n payload: false\n }\n )\n // window.location.reload();\n }\n\n // console.log(validationToken)\n // console.log(storedResponse?.validation_token)\n // console.log(storedResponse)\n useEffect(() => {\n const _validating = validationToken === storedResponse?.validation_token\n setTimed(false)\n const timer1 = setTimeout(() => {\n if (_validating) {\n setDefaultMessage({\n header: \"Exiting data found\",\n text: \"Would you like to resume from you last left off?\"\n })\n } else {\n setDefaultMessage({\n header: \"Unable to retrive\",\n text: \"Unfortunately we have not been able to retrive any information on this survey\"\n })\n dispatch(\n {\n type: RESET_VALIDATION_TOKEN,\n payload: false\n }\n )\n localStorage.clear();\n }\n setTimed(true)\n setValidToken(_validating)\n }, 5000);\n return () => clearTimeout(timer1);\n\n \n }, [dispatch, validationToken, storedResponse]);\n\n function Continue() {\n dispatch({\n type: UPDATE_BRIEF_RESPONSE_ANSWERS,\n payload: storedResponse\n });\n setQuestionNo(storedResponse?.current_question)\n setShowIntro(storedResponse?.intro_completed)\n setOpen(false)\n\n if (storedResponse?.visual_question) {\n setVisualQuestionNo(storedResponse?.visual_question)\n }\n if (storedResponse?.intro2_completed) {\n setShowIntro2(storedResponse?.intro2_completed)\n }\n\n }\n\n return (\n \n
\n \n {timed ? <>\n {validToken ?\n \n : \n }\n \n : \n }\n {defaultMessage?.header}\n\n
\n \n

\n {defaultMessage?.text}\n

\n
\n \n \n \n \n \n \n \n )\n}\n\nexport default ExistingDataFound","import React from 'react'\nimport styled from 'styled-components'\n\nconst Checkbox = ({ className, checked, id, ...props }) => (\n \n \n \n \n \n \n \n \n {props.language===1?\"Je suis d'accord\":props.label}\n \n \n);\n\n/******** Styles ****************************************************/\n\nconst CheckboxWrapper = styled.div`\n display: flex;\n color: ${props=>props.color};\n align-items:center;\n padding-bottom: 15px;\n`;\n\nconst CheckLabel = styled.div`\n margin-left: 10px;\n font-size: 12px;\n cursor: pointer;\n @media only screen and (min-width: 992px) {\n font-size: 14px;\n };\n`;\n\nconst CheckboxContainer = styled.div`\n display: inline-block;\n vertical-align: middle;\n margin-right: 10px;\n`\n\nconst Icon = styled.svg`\n fill: none;\n stroke: white;\n stroke-width: 2px;\n`\n\nconst HiddenCheckbox = styled.input.attrs({ type: 'checkbox' })`\n border: 0;\n clip: rect(0 0 0 0);\n clippath: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n`\n\nconst StyledCheckbox = styled.div`\n display: inline-block;\n width: 16px;\n height: 16px;\n background: ${props => (props.checked ? 'black' : 'lightgrey')};\n border-radius: 3px;\n transition: all 150ms;\n flex: 1;\n cursor: pointer;\n ${HiddenCheckbox}:focus + & {\n box-shadow: 0 0 0 3px #009370;\n }\n ${Icon} {\n visibility: ${props => (props.checked ? 'visible' : 'hidden')}\n }\n`;\n\nexport default Checkbox;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Checkbox from './Checkbox';\nimport { Link } from \"react-router-dom\";\n\nconst Agreement = (props) => {\n const {agreementText, id, handleConsentCb, hasConsented,color,language,fontSize,type} = props;\n\n return (\n <>\n \n {agreementText}\n \n {type==='EDI' || type==='OTP'?\n Privacy & Research Statement:\n {language===1?\"Déclaration de confidentialité\":\"Privacy Statement\"}\n }\n \n\n \n handleConsentCb(!hasConsented)} \n language={language}\n label={'I agree'}\n color={color} />\n \n \n );\n};\n\nAgreement.propTypes = {\n handleConsentCb: PropTypes.func,\n agreementText: PropTypes.string,\n hasConsented: PropTypes.bool,\n}\n\n/******** Styles ****************************************************/\n\nconst ConsentText = styled.div`\n font-size: 18px;\n line-height: 1.4;\n color: ${props=>props.color};\n font-family: 'Barlow', sans-serif;\n\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: ${props=>props.fontSize?props.fontSize:'20px'};\n line-height:1.4;\n }\n`;\n\nconst Privacy = styled.div`\n font-size: 12px;\n line-height: 1.17;\n margin-bottom:20px;\n\n @media only screen and (min-width:992px){\n \n font-size: 14px;\n }\n`\n\n\nexport default Agreement; ","import React from 'react';\nimport styled from 'styled-components';\n\nconst End = (props) =>{\n const {title, intro, submitAnswer} = props\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t{intro}\n\t\t\tsubmitAnswer()} id=\"end\">Submit\n\t\t\n\n\t\t)\n}\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\n\n\n\n// const PrettoSlider = withStyles({\n// root: {\n// color: 'grey',\n// height: 8,\n// },\n// thumb: {\n// height: 24,\n// width: 24,\n// backgroundColor: '#FA675C',\n// color: '#FA675C',\n// border: '2px solid currentColor',\n// marginTop: -8,\n// marginLeft: -12,\n// '&:focus, &:hover, &$active': {\n// boxShadow: 'inherit',\n// },\n// },\n// active: {},\n// valueLabel: {\n// left: 'calc(-50% + 4px)',\n// },\n// track: {\n// height: 8,\n// borderRadius: 4,\n// },\n// rail: {\n// height: 8,\n// borderRadius: 4,\n// },\n// })(Slider);\n\nfunction isInt(value) {\n return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))\n}\n\nconst SliderQ = ({ id, preValue, saveResult,color=\"#4048FF\",language,reversed,scale }) => {\n\n const [res1, setRes1] = React.useState(0)\n // const [clicked, setClicked] = React.useState(false)\n let muiTheme\n\n\n if(reversed){\n muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#002046',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#002046'\n },\n rail: {\n color: '#054ea3'\n }\n }\n }})\n }\n else if(color===\"#4048FF\"){\n muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#66D686;',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#66D686'\n },\n rail: {\n color: '#054ea3'\n }\n }\n}})\n }else{\n muiTheme = createMuiTheme({\n overrides:{\n MuiSlider: {\n thumb:{\n color,\n },\n mark:{\n color:'white'\n },\n track: {\n color\n },\n rail: {\n color: 'black'\n }\n }\n}\n});\n }\n\n\n\n // console.log(preValue)\n // console.log(clicked)\n // console.log(preValue !== undefined)\n\n React.useEffect(() => {\n if (isInt(preValue)) {\n setRes1(preValue)\n // setClicked(true)\n }\n else {\n setRes1(0)\n // setClicked(false)\n }\n }, [preValue]);\n\n function ClickedOnSlider(t) {\n // setClicked(true)\n setRes1(t)\n \n }\n\n function commitSlide(t) {\n saveResult(t)\n \n }\n\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // setClicked(false)\n // }\n\n return (\n \n { }\n \n ClickedOnSlider(t)}\n onChangeCommitted={(e, t) => commitSlide(t)}\n />\n \n \n
{scale?scale[0]:language===1?\"Pas du tout d'accord\":\"Strongly disagree\"}
\n
{scale?.length == 3? scale[1] : language===1?\"Neutre\":\"Neutral\"}
\n
{scale?scale[scale.length-1]:language===1?\"Tout à fait d'accord\":\"Strongly agree\"}
\n
\n\n {/* save()}\n disabled={!clicked}\n color={color}\n id=\"next\">\n {language===1?\"Suivant\":\"Next\"}\n */}\n
\n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\n// const Button = styled.button`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// border: 0;\n// box-shadow: none;\n// color: ${props=>props.color};\n// font-size: 16px;\n// font-weight: bold;\n\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// // display: none;\n\n// :disabled{\n// background-color:lightgrey;\n// color:grey;\n// cursor:not-allowed;\n// opacity:0.5;\n// }\n\n\n// @media only screen and (min-width: 992px), (min-height: 760px) {\n// display: flex;\n// }\n// `;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`\n\n\nconst Scale = styled.div`\n width:calc(100% + 40px);\n margin-left:-20px;\n display:flex;\n justify-content:space-between;\n color:white;\n font-size:12px;\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport Slider from './Slider'\n\n\nconst OutcomeQuestion = ({\n currentQuestion,\n saveAnswer,\n}) => {\n\n // const [respValue, setRespValue] = useState(0)\n\n\n // useEffect(() => {\n // setRespValue('')\n // if (currentQuestion?.response) {\n // setRespValue(currentQuestion?.response)\n // }\n // }, [currentQuestion]);\n\n const save = (resp) => {\n const _answer = {...currentQuestion}\n _answer['response'] = resp\n\n saveAnswer(_answer)\n // setRespValue('')\n // \n}\n console.log(currentQuestion)\n return (\n <>\n \n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames=\"feedback\"\n >\n \n\n\n \n\n {currentQuestion?.question}\n save(resp)} />\n \n \n\n\n \n \n \n\n \n\n \n )\n}\n\nexport default OutcomeQuestion\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Container = styled.div`\n padding:30px;\n position:relative;\n width:100%;\n`\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props => props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\n\n\nconst ValuesBuilder = ({\n currentQuestion,\n saveAnswer,\n language\n}) => {\n\n const [respValue, setRespValue] = useState('')\n \n useEffect(() => {\n setRespValue('')\n if (currentQuestion?.response) {\n setRespValue(currentQuestion?.response)\n }\n }, [currentQuestion]);\n\n\n const save = () => {\n const _answer = {...currentQuestion}\n _answer['response'] = respValue\n saveAnswer(_answer)\n setRespValue('')\n // \n }\n\n return (\n <>\n \n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames=\"feedback\"\n >\n \n\n {language==1? currentQuestion?.fr :currentQuestion?.question}\n
\n setRespValue(e.target.value)} />\n\n save()}\n id={`valuesButton_${currentQuestion?.id}`}\n disabled={currentQuestion?.required? respValue?.length === 0: false}\n >\n Next\n \n
\n \n
\n \n
\n\n\n \n )\n}\n\nexport default ValuesBuilder\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 18px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.6;\n margin-bottom:10px;\n white-space: pre-line;\n margin-bottom: 20px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 20px;\n }\n`;\n\nconst SubText = styled.input`\n width:250px;\n color: black;\n font-size: 16px;\n background-color:white;\n border:none;\n padding:10px;\n border-radius:10px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props => props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\n\nimport { Dimmer, Loader, Segment, Icon } from \"semantic-ui-react\";\n\nimport Outcome from \"ModularQuestions/Outcome\";\nimport ValuesBuilder from \"ModularQuestions/ValuesBuilder\";\n\nimport {\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n} from \"constants/actions\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\";\n\nconst ModularQuestion = ({\n id,\n setModularComplete,\n token,\n briefResponseId,\n setEnableNavigation,\n language,\n}) => {\n const dispatch = useDispatch();\n\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\n const [currentQuestion, setCurrentQuestion] = useState(false);\n\n const [allQuestions, setAllQuestions] = useState([]);\n const [answers, setAnswers] = useState({});\n const [questionInfo, setQuestionInfo] = useState({\n values_builder: {},\n feedback_builder: {},\n outcome_question: {},\n });\n\n const { get_brief_response, get_modular_questions } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n get_modular_questions: state.questions,\n }),\n shallowEqual\n );\n\n // console.log(\"modular_question\", get_modular_questions.modular_questions);\n\n // Extract feedback_builder questions\n useEffect(() => {\n const _totalQuestions = [];\n\n if (\n get_modular_questions?.modular_questions?.feedback_builder?.questions?.[0]\n ?.questions\n ) {\n let sno = 1;\n get_modular_questions.modular_questions.feedback_builder.questions[0].questions.forEach(\n (q) =>\n _totalQuestions.push({\n question_type: \"feedback_builder\",\n sno: sno,\n order: sno++,\n ...q,\n })\n );\n setQuestionInfo({\n ...questionInfo,\n feedback_builder: {\n label: \"Feedback Builder\",\n value: \"feedback_builder\",\n on_date: new Date(),\n ask_again: 1, //\"based on toggle in admin app\"\n briefResponseId: briefResponseId,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n ...get_modular_questions?.modular_questions?.feedback_builder,\n questions_list: _totalQuestions,\n responses: [],\n },\n });\n }\n\n if (\n get_modular_questions?.modular_questions?.feedback_builder?.questions?.[0]\n ?.questions\n ) {\n let sno = 1;\n get_modular_questions.modular_questions.values_builder.questions[0].questions.forEach(\n (q) =>\n _totalQuestions.push({\n question_type: \"values_builder\",\n sno: sno,\n order: sno++,\n ...q,\n })\n );\n setQuestionInfo({\n ...questionInfo,\n values_builder: {\n label: \"Values Builder\",\n value: \"values_builder\",\n on_date: new Date(),\n ask_again: 1, //\"based on toggle in admin app\"\n briefResponseId: briefResponseId,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n ...get_modular_questions?.modular_questions?.values_builder,\n questions_list: _totalQuestions,\n responses: [],\n },\n });\n }\n\n if (get_modular_questions?.modular_questions?.outcome_question?.questions) {\n let sno = 1;\n get_modular_questions.modular_questions.outcome_question.questions.map(\n (oq) =>\n oq.questions.forEach((q) =>\n _totalQuestions.push({\n question_type: \"outcome_question\",\n sub_type: oq.name,\n sno: sno,\n order: sno++,\n ...q,\n })\n )\n );\n setQuestionInfo({\n ...questionInfo,\n outcome_question: {\n label: \"Outcome question\",\n value: \"outcome_question\",\n on_date: new Date(),\n ask_again: 1, //\"based on toggle in admin app\"\n briefResponseId: briefResponseId,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n ...get_modular_questions?.modular_questions?.outcome_question,\n questions_list: _totalQuestions,\n responses: [],\n },\n });\n }\n\n setAllQuestions(_totalQuestions);\n const timer1 = setTimeout(() => {\n if (_totalQuestions?.length === 0) {\n setModularComplete(true);\n }\n }, 1000);\n return () => clearTimeout(timer1);\n }, [get_modular_questions]);\n\n useEffect(() => {\n if (allQuestions?.length > 0) {\n setCurrentQuestion(allQuestions[currentQuestionIndex]);\n }\n }, [\n currentQuestionIndex,\n allQuestions,\n setModularComplete,\n setEnableNavigation,\n ]);\n\n // console.log(\"currentQuestionIndex\", currentQuestionIndex);\n // console.log(\"allQuestions?.length\", allQuestions?.length);\n const saveAnswer = (currentresponse) => {\n const _answers = { ...answers }; // Create a shallow copy of answers\n\n // Initialize the nested objects if they don't exist\n if (!_answers[currentresponse?.question_type]) {\n _answers[currentresponse?.question_type] = {};\n }\n\n // Assign currentresponse to the appropriate question type and id\n _answers[currentresponse?.question_type][currentresponse?.sno] =\n currentresponse;\n\n const responses = Object.values(_answers[currentresponse?.question_type]);\n\n const _questionType = currentresponse?.question_type;\n\n const updatedQuestionInfo = {\n ...questionInfo,\n [_questionType]: {\n ...questionInfo[_questionType],\n responses: responses,\n },\n };\n \n setQuestionInfo(updatedQuestionInfo);\n\n setAnswers(_answers);\n\n if (currentQuestionIndex + 2 > allQuestions?.length) {\n // run this function to update the redux store\n // after the last question has been answered\n MarkCurrentComplete(updatedQuestionInfo);\n setModularComplete(true);\n setEnableNavigation(true);\n }\n\n setCurrentQuestionIndex(currentQuestionIndex + 1);\n };\n\n // console.log(allQuestions)\n // console.log(\"questionInfo\", questionInfo);\n // console.log(\"answers\", answers);\n // console.log(\"allQuestions\", allQuestions);\n\n function MarkCurrentComplete(updatedQuestionInfo) {\n const payload = {\n visual_question: get_brief_response?.visual_question,\n current_question: get_brief_response?.current_question,\n current_answer: get_brief_response?.current_answer,\n high_answer: get_brief_response?.high_answer,\n answers: get_brief_response?.answers,\n complete: get_brief_response?.complete,\n intro_completed: get_brief_response?.intro_completed,\n intro2_completed: get_brief_response?.intro2_completed,\n validation_token: get_brief_response?.validation_token,\n feedback: get_brief_response?.feedback,\n survey_personality: get_brief_response?.survey_personality,\n in_survey_personality: get_brief_response?.in_survey_personality,\n modular_response: updatedQuestionInfo,\n };\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: get_brief_response?.validation_token,\n },\n });\n }\n }\n // console.log(\"currentQuestion\", currentQuestion)\n // console.log(\"currentQuestionIndex\", currentQuestionIndex)\n return (\n \n \n {!currentQuestion ? (\n \n \n \n ) : (\n <>\n {currentQuestion?.question_type === \"outcome_question\" && (\n \n )}\n\n {(currentQuestion?.question_type === \"values_builder\") |\n (currentQuestion?.question_type === \"feedback_builder\") && (\n \n )}\n \n )}\n \n \n );\n};\n\nexport default ModularQuestion;\n\nconst SpinnerContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n\n .spinner.icon {\n font-size: 2em; /* Adjust the size as needed */\n }\n`;\n","import React, { useEffect, useState } from \"react\";\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n// import { Dimmer, Loader } from 'semantic-ui-react'\n\n// import Personality from '../InSurveyPersonality'\n\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n\tSG_START_BRIEF_SURVEY,\n\tNEW_VALIDATION_TOKEN,\n\tRESET_VALIDATION_TOKEN,\n\t// CLEAR_ALL,\n\tSG_POST_BRIEF_RESPONSE,\n\tUPDATE_BRIEF_RESPONSE,\n\tSG_UPDATE_BRIEF_RESPONSE\n} from \"constants/actions\";\n\nimport {\n\t// BrowserView,\n\t// MobileView,\n\tisBrowser,\n\tisMobile,\n\tdeviceType,\n\tosName,\n\tosVersion,\n\tdeviceDetect,\n} from \"react-device-detect\";\n\nimport Intro from \"../SurveyComponents/Intro\";\n\nimport SurveyMessage from \"./Message\";\n\nimport styled from \"styled-components\";\nimport { Icon } from \"semantic-ui-react\";\n\nimport NoToken from \"./NoToken\";\n\nimport { RunRules } from \"utilities/FeedbackRules\"\nimport CategoryQuestion from \"./Categories\";\nimport CommentsFeedback from './CommentsFeedback'\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\"\n\nimport \"../survey.css\";\n\nimport QuestionTemplate from './Questions'\n// import CommentTemplate from './Comments'\nimport ExistingDataFound from \"survey/SurveyComponents/ExistingData\";\n\nimport Agreement from \"survey/SurveyComponents/Agreement\";\nimport End from \"./End\";\nimport ModularQuestion from \"survey/EDI/ModularQuestions/index\";\n\nconst categoryType = \"category\"\nconst questionsType = \"questions\"\nconst commentsType = \"comments\"\n\nconst arrange_Questions = (questions) => {\n\tif (questions) {\n\t\treturn questions?.factors.map((factor, f) => {\n\t\t\treturn factor?.questions.map((q, idx) => {\n\t\t\t\treturn {\n\t\t\t\t\tquestion: q.q,\n\t\t\t\t\tfactor: f,\n\t\t\t\t\tq: idx,\n\t\t\t\t\trole: q.role,\n\t\t\t\t\treverse: q.reverse,\n\t\t\t\t\torder: q.id\n\t\t\t\t}\n\t\t\t})\n\t\t}).flat().flat().sort((a, b) => a.order - b.order)\n\t}\n}\n\n\nconst EdiSurvey = () => {\n\tconst dispatch = useDispatch();\n\tconst deviceDetected = deviceDetect();\n\n\tlet { token } = useParams();\n\n\tconst [direction, setDirection] = useState(1);\n\tconst [showPrev, setShowPrev] = useState(true);\n\tconst [showNext, setShowNext] = useState(true);\n\tconst [role] = useState(null)\n\tconst [showIntro, setShowIntro] = useState(false)\n\tconst [noResponse, setNoResponse] = useState(false)\n\tconst [ruleFeedback, setRuleFeedback] = useState(false)\n\tconst [ruleFeedbackComplete, setRuleFeedbackComplete] = useState(true)\n\tconst [askFeedback, setAskFeedback] = useState(false)\n\tconst [enableNavigation, setEnableNavigation] = useState(true)\n\tconst [completedRuleFeedback, setCompletedRuleFeedback] = useState([])\n\n\tconst [defaultMessage, setDefaultMessage] = useState({\n\t\ttitle: \"Survey completed\",\n\t\tsubTitle: \"This survey has been successfully submitted\"\n\t})\n\t// \n\tconst [totalQuestions, setTotalQuestions] = useState({\n\t\ttotal: 0,\n\t\trunningTotal: 0,\n\t\tquestions: 0,\n\t\tculture: 0,\n\t\tsequence: {}\n\t})\n\tconst [questions, setQuestions] = useState([])\n\tconst [categoryQues, setCategoryQues] = useState([])\n\tconst [employeeCategory, setEmployeeCategory] = useState([])\n\t// stored persisting response\n\tconst [validationToken, setValidationToken] = useState(false)\n\tconst [briefResponseId, setBriefResponseId] = useState(false)\n\tconst [storedResponseFound, setStoredResponseFound] = useState(false)\n\t//\n\tconst [briefResponse, setBriefResponse] = useState([])\n\tconst [questionNo, setQuestionNo] = useState(0)\n\tconst [visualQuestionNo, setVisualQuestionNo] = useState(0)\n\t//\n\tconst [prevResponse, setPrevResponse] = useState({})\n\t//\n\tconst [checkRole, setCheckRole] = useState(false)\n\n\tconst [questionAnswers, setQuestionAnswers] = useState({})\n\n\tconst [thankMessage, setThankMessage] = useState(false)\n\tconst [complete, setComplete] = useState(false)\n\n\tconst [surveyStatus, setSurveyStatus] = useState(0)\n\tconst [resetAnswers, setResetAnswers] = useState(false)\n\tconst [surveyDeleted, setSurveyDeleted] = useState(false);\n\tconst [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\n\tconst [primaryCategory, setPrimaryCategory] = useState(false);\n\tconst [neverAskResponse, setNeverAskResponse] = useState(false);\n\tconst [prevFoundResponse, setPrevFoundResponse] = useState(false);\n\n\tconst [consentProvided, setConsentProvided] = useState(false);\n\tconst [language, setLanguage] = React.useState(0)\n\tconst [askComments, setAskComments] = useState(false);\n\n\tconst [modularComplete, setModularComplete] = useState(false)\n\n\tconst { get_brief_response } = useSelector(\n\t\t(state) => ({\n\t\t\tget_brief_response: state.briefresponse,\n\t\t}),\n\t\tshallowEqual\n\t);\n\n\tuseEffect(() => {\n\t\tsetRuleFeedbackComplete(true)\n\t\tconst RuleRun = RunRules({ questions, get_brief_response })\n\t\t// console.log(\"Feedback Rules\", RuleRun)\n\t\tif (RuleRun.length > 0) {\n\t\t\tsetRuleFeedbackComplete(false)\n\t\t}\n\t\tsetRuleFeedback(RuleRun)\n\t}, [get_brief_response, questions]);\n\n\t// question no based on role skip logic\n\t// step 1 set role\n\tuseEffect(() => {\n\t\tif (questionAnswers?.categories) {\n\t\t\tconst CatRes = Object.values(questionAnswers?.categories)\n\t\t\tsetCheckRole(CatRes.filter(ct => ct.priority === \"secondary\")?.[0]?.response)\n\t\t}\n\t}, [questionAnswers]);\n\n\t// // Ask Comments\n\tuseEffect(() => {\n\t\tif (get_brief_response?.response?.questions?.comments) {\n\t\t\tif (get_brief_response?.response?.questions?.comments?.length > 0) {\n\t\t\t\tsetAskComments(get_brief_response?.response?.questions?.comments)\n\t\t\t}\n\t\t}\n\t}, [get_brief_response]);\n\n\tuseEffect(() => {\n\t\tif (get_brief_response && !complete) {\n\t\t\tsetQuestions(arrange_Questions(get_brief_response?.response?.questions))\n\t\t\tsetEmployeeCategory(get_brief_response?.response?.employee_category)\n\t\t\tsetCategoryQues(get_brief_response?.response?.culture_questions?.sort((a, b) => a?.id - b?.id))\n\t\t}\n\n\t}, [get_brief_response, complete]);\n\n\t// primary Response \n\tuseEffect(() => {\n\t\tlet _id = ''\n\t\tlet _response = 0\n\t\tlet subfactorFound = false\n\t\tlet _subfactor = null\n\t\tconst SurveyName = get_brief_response?.response?.survey_name\n\n\t\tif (get_brief_response?.response?.primary_question) {\n\t\t\tget_brief_response.response.primary_question.map(pq => {\n\t\t\t\t_id = pq.id\n\t\t\t\tif (pq?.subfactor) {\n\t\t\t\t\tsubfactorFound = true\n\t\t\t\t}\n\t\t\t\tpq && pq.answers.map(aq => {\n\t\t\t\t\tif (aq?.name === SurveyName) {\n\n\t\t\t\t\t\tif (subfactorFound) {\n\t\t\t\t\t\t\t_subfactor = aq?.id\n\t\t\t\t\t\t\t_response = aq?.parent_id\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_response = aq?.id\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t})\n\t\t\t\treturn null\n\t\t\t})\n\t\t}\n\n\t\tsetBriefResponseId(get_brief_response?.id)\n\n\t\tif (get_brief_response?.validation_token) {\n\t\t\tsetValidationToken(get_brief_response?.validation_token)\n\t\t\tif (get_brief_response?.response?.stored_response?.high_answer > 2) {\n\t\t\t\tsetStoredResponseFound(true)\n\t\t\t} else {\n\t\t\t\tsetStoredResponseFound(false)\n\t\t\t}\n\t\t} else {\n\t\t\tsetStoredResponseFound(false)\n\t\t\tsetValidationToken(false)\n\t\t}\n\n\t\tsetShowIntro(get_brief_response?.intro_completed)\n\t\t// setShowIntro2(get_brief_response?.intro2_completed)\n\t\t// setStoredResponse(get_brief_response?.storedResponse)\n\n\t\tsetPrimaryCategory({\n\t\t\tid: _id,\n\t\t\tresponse: _response,\n\t\t\tsubfactor: _subfactor,\n\t\t\tpriority: \"primary\"\n\t\t})\n\n\t}, [get_brief_response]);\n\n\n\t//skip questions\n\tuseEffect(() => {\n\t\tconst _seq = {}\n\t\t// const _empCat = employeeCategory\n\t\t// add category question nos to list\n\n\t\tconst _prevResp = {}\n\t\tconst _neverAskResp = {}\n\n\t\tlet running_total = 0\n\t\tlet total = 0\n\t\tlet CatLength = 0\n\t\tif (categoryQues) {\n\t\t\tcategoryQues.map((q) => {\n\t\t\t\tif (q?.input === \"always_ask\") {\n\t\t\t\t\t// console.log(q)\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `always_ask ${q.id}`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\t// change this to ids\n\t\t\t\tif (q?.input === \"ask_if_not_found\") {\n\t\t\t\t\t// setPrevFoundResponse\n\t\t\t\t\tconst _empCat = employeeCategory.filter(ec => ec.name_id === q.id)?.[0]?.value_id\n\t\t\t\t\tif (_empCat) {\n\t\t\t\t\t\t// skip question if response found\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tCatLength += 1\n\t\t\t\t\t\ttotal += 0\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tfrom: `ask_if_not_found ${q.id}`,\n\t\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_prevResp[running_total] = {\n\t\t\t\t\t\t\tid: q.id,\n\t\t\t\t\t\t\tresponse: _empCat,\n\t\t\t\t\t\t\tpriority: q.priority\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// ask question if response NOT found\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tCatLength += 1\n\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tfrom: `ask_if_not_found ${q.id}`,\n\t\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t// change this to ids\n\t\t\t\tif (q?.input === \"never_ask\") {\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 0\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `never_ask ${q.id}`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\n\t\t\t\t\tconst _empCat = employeeCategory.filter(ec => ec.name_id === q.id)?.[0]?.value_id\n\n\t\t\t\t\t_neverAskResp[running_total] = {\n\t\t\t\t\t\tid: q.id,\n\t\t\t\t\t\tresponse: _empCat ? _empCat : null,\n\t\t\t\t\t\tpriority: q.priority\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tif (!q?.input) {\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `undefined`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t}\n\n\t\t// console.log(\"employeeCategory\", employeeCategory)\n\t\t// console.log(\"_neverAskResp\", _neverAskResp)\n\t\t// console.log(\"_prevResp\", _prevResp)\n\n\t\tsetPrevFoundResponse(_prevResp)\n\t\tsetNeverAskResponse(_neverAskResp)\n\n\t\tlet quesLength = 0\n\t\tif (questions) {\n\t\t\tquestions.map((q, v) => {\n\t\t\t\tif (checkRole) {\n\t\t\t\t\tif (q?.role) {\n\t\t\t\t\t\tif (q?.role.includes(checkRole)) {\n\t\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\t\tquesLength += 1\n\t\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\t\tfrom: \"question for specific role\",\n\t\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\t\t// quesLength += 1\n\t\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\t\tfrom: \"question not included role specifics\",\n\t\t\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tquesLength += 1\n\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\tfrom: \"question without role\",\n\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t} else {\n\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tquesLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\tfrom: \"no role checked\",\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tlet commLength = 0\n\t\tif (askComments) {\n\t\t\taskComments.map((q, v) => {\n\t\t\t\trunning_total += 1\n\t\t\t\tcommLength += 1\n\t\t\t\ttotal += 1\n\t\t\t\t_seq[running_total] = {\n\t\t\t\t\tquesType: commentsType,\n\t\t\t\t\tskip: false,\n\t\t\t\t\tsno: running_total\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tsetTotalQuestions({\n\t\t\ttotal: total,\n\t\t\trunningTotal: running_total,\n\t\t\tquestions: quesLength,\n\t\t\tcategory: CatLength, // add primaryCategory\n\t\t\tcomments: commLength,\n\t\t\tsequence: _seq\n\t\t})\n\t}, [questions, categoryQues, askComments, checkRole, employeeCategory]);\n\n\t\n\n\t// console.log(questionAnswers)\n\t// if the number of questions changes based on responses\n\t// reset or remove the older questions which were answered\n\tuseEffect(() => {\n\t\tsetResetAnswers(true)\n\t}, [totalQuestions.total]);\n\n\tuseEffect(() => {\n\t\tif (resetAnswers && questionAnswers?.categories !== undefined) {\n\t\t\tsetResetAnswers(false)\n\t\t\tlet _quesAns = questionAnswers\n\n\t\t\tsetQuestionAnswers({\n\t\t\t\tcategories: _quesAns?.categories,\n\t\t\t\tquestions: {},\n\t\t\t\tcomments: {}\n\t\t\t})\n\t\t}\n\t}, [resetAnswers, questionAnswers, dispatch, totalQuestions, questionNo]);\n\n\tfunction nextQuestion() {\n\t\tlet _questionNo = questionNo + 1\n\t\twhile (_questionNo <= totalQuestions?.runningTotal) {\n\t\t\tif (totalQuestions.sequence[_questionNo]?.skip) {\n\t\t\t\t_questionNo++\n\t\t\t} else {\n\t\t\t\tsetQuestionNo(_questionNo)\n\t\t\t\tsetVisualQuestionNo(visualQuestionNo + 1)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction prevQuestion() {\n\t\tlet _questionNo = questionNo - 1\n\t\twhile (_questionNo >= 1) {\n\t\t\tif (totalQuestions.sequence[_questionNo]?.skip) {\n\t\t\t\t_questionNo--\n\t\t\t} else {\n\t\t\t\tsetQuestionNo(_questionNo)\n\t\t\t\tsetVisualQuestionNo(visualQuestionNo - 1)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\t// console.log(\"undo this at PreCloseSurvey\")\n\tfunction PreCloseSurvey() {\n\t\tif ((questionNo + 1) <= totalQuestions.runningTotal) {\n\t\t\tnextQuestion()\n\t\t\treturn false\n\t\t} else {\n\t\t\t// undo thois\n\t\t\t// console.log(\"un do this\")\n\t\t\tif (!ruleFeedbackComplete) {\n\t\t\t\tsetAskFeedback(true)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsetAskFeedback(false)\n\t\t\tsetComplete(true)\n\t\t\treturn true\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (get_brief_response?.response) {\n\t\t\tsetNoResponse(false)\n\t\t} else {\n\t\t\tsetNoResponse(true)\n\t\t}\n\t}, [get_brief_response]);\n\n\tuseEffect(() => {\n\t\tsetPrevResponse(null)\n\t\tif (questionNo) {\n\t\t\tconst QueType = totalQuestions?.sequence?.[questionNo]?.quesType\n\t\t\t// console.log(QueType)\n\t\t\tif (QueType === categoryType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.categories?.[questionNo])\n\t\t\t}\n\t\t\tif (QueType === questionsType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.questions?.[questionNo])\n\t\t\t}\n\t\t\tif (QueType === commentsType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.comments?.[questionNo])\n\t\t\t}\n\t\t}\n\t}, [totalQuestions, get_brief_response.answers, questionNo]);\n\n\tuseEffect(() => {\n\t\tsetShowPrev(false)\n\t\tsetShowNext(false)\n\t\tsetBriefResponse(get_brief_response)\n\t\tif (!questionNo) {\n\t\t\tsetShowPrev(false)\n\t\t\tsetShowNext(false)\n\t\t}\n\t\tif (questionNo === 1) {\n\t\t\tsetShowPrev(false)\n\t\t\tif ((questionNo) <= (get_brief_response?.high_answer)) {\n\t\t\t\tif (questionNo < totalQuestions?.total) {\n\t\t\t\t\tsetShowNext(true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (questionNo > 1) {\n\t\t\tsetShowPrev(true)\n\t\t\tif ((questionNo) <= (get_brief_response?.high_answer)) {\n\t\t\t\tif (questionNo < totalQuestions?.total) {\n\t\t\t\t\tsetShowNext(true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// \n\t\tsetSurveyDeleted(get_brief_response?.to_delete ? get_brief_response?.to_delete : false)\n\t\tsetSurveyDeletedOn(get_brief_response?.deleted_on ? get_brief_response?.deleted_on : false)\n\t\tsetSurveyStatus(get_brief_response?.survey_status ? get_brief_response?.survey_status : 0)\n\t\tsetQuestionAnswers(get_brief_response?.answers)\n\n\t}, [get_brief_response, questionNo, totalQuestions]);\n\n\n\tuseEffect(() => {\n\t\t// Run! Like go get some data from an API.\n\t\tif (token) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_START_BRIEF_SURVEY,\n\t\t\t\tpayload: `?token=${token}`\n\t\t\t});\n\t\t}\n\t}, [dispatch, token]);\n\n\t//\n\t// useEffect(() => {\n\t// \tconst _seq = {}\n\t// \t// add category question nos to list\n\t// \tlet CatLength = 0\n\t// \tif (categoryQues) {\n\t// \t\tCatLength = categoryQues?.length\n\t// \t\tcategoryQues.map((q, v) => _seq[v + 1] = \"category\")\n\t// \t}\n\n\t// \tif (questions) {\n\t// \t\tquestions.map((q, v) => _seq[v + CatLength + 1] = \"question\")\n\t// \t}\n\n\t// \tsetTotalQuestions({\n\t// \t\ttotal: questions?.length + CatLength,\n\t// \t\tquestions: questions?.length,\n\t// \t\tcategory: CatLength,\n\t// \t\tsequence: _seq\n\t// \t})\n\t// }, [questions, categoryQues]);\n\n\n\n\tfunction submitAnswer() {\n\t\tconst CompleteCategories = { \n\t\t\t...questionAnswers?.categories, \n\t\t\t...prevFoundResponse, ...neverAskResponse }\n\t\tif (CompleteCategories) {\n\t\t\tCompleteCategories[0] = primaryCategory\n\t\t}\n\n\t\tlet _completeCategories = []\n\t\tif (CompleteCategories) {\n\t\t\t_completeCategories = Object.values(CompleteCategories)\n\t\t}\n\n\t\tlet _completeQuestions = []\n\t\tif (questionAnswers.questions) {\n\t\t\t_completeQuestions = Object.values(questionAnswers.questions)\n\t\t}\n\n\t\tlet _completeComments = []\n\t\tif (questionAnswers.comments) {\n\t\t\t_completeComments = Object.values(questionAnswers.comments)\n\t\t}\n\n\t\tconst surveyComponents = get_brief_response?.modular_response\n\n\n\t\tdispatch({\n\t\t\ttype: SG_POST_BRIEF_RESPONSE,\n\t\t\tpayload: {\n\t\t\t\tsurvey_token: briefResponse?.survey_token,\n\t\t\t\tdebrief_schedule: briefResponse?.debrief_schedule,\n\t\t\t\temployee: briefResponse?.employee,\n\t\t\t\tresponse: {\n\t\t\t\t\tquestions: {\n\t\t\t\t\t\tquestions: _completeQuestions,\n\t\t\t\t\t\tcategories: _completeCategories,\n\t\t\t\t\t\tcomments: _completeComments,\n\t\t\t\t\t},\n\n\t\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\t\tfeedback: completedRuleFeedback,\n\t\t\t\t\tmodular_response: surveyComponents,\n\t\t\t\t},\n\t\t\t\tfull_response: {\n\t\t\t\t\tisBrowser: isBrowser,\n\t\t\t\t\tisMobile: isMobile,\n\t\t\t\t\tbrowser: deviceDetected.browserName,\n\t\t\t\t\tdeviceType,\n\t\t\t\t\tosVersion,\n\t\t\t\t\tosName,\n\t\t\t\t\tdeviceDetected: deviceDetected,\n\t\t\t\t\tresponse: {\n\t\t\t\t\t\tquestions: {\n\t\t\t\t\t\t\tquestions: _completeQuestions,\n\t\t\t\t\t\t\tcategories: _completeCategories,\n\t\t\t\t\t\t\tcomments: _completeComments,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\t\t\tfeedback: completedRuleFeedback,\n\t\t\t\t\t\tmodular_response: surveyComponents,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tdispatch(\n\t\t\t{\n\t\t\t\ttype: RESET_VALIDATION_TOKEN,\n\t\t\t\tpayload: null\n\t\t\t}\n\t\t)\n\n\t\tsetThankMessage(true)\n\n\t}\n\n\tconst IntroQuestionAnswer = () => {\n\t\tconst CatLength = categoryQues ? categoryQues.length : 0;\n\t\tsetDirection(1)\n\t\tconst NewValidationToken = uuidv4()\n\t\tconst payload = {\n\t\t\tcurrent_question: CatLength > 0 ? 0 : 1,\n\t\t\tcurrent_answer: 0,\n\t\t\thigh_answer: 0,\n\t\t\tanswers: {\n\t\t\t\tcategories: {},\n\t\t\t\tquestions: {},\n\t\t\t\tcomments: {}\n\t\t\t},\n\t\t\tcomplete: false,\n\t\t\tintro_completed: true,\n\t\t\tvalidation_token: NewValidationToken,\n\t\t\tmodular_response: get_brief_response?.modular_response,\t\t\t\n\t\t}\n\n\t\tsetDirection(1)\n\t\tdispatch({\n\t\t\ttype: NEW_VALIDATION_TOKEN,\n\t\t\tpayload: NewValidationToken\n\t\t})\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload: {\n\t\t\t\ttotal_categories: CatLength,\n\t\t\t\ttotal_questions: totalQuestions?.runningTotal,\n\t\t\t\tcurrent_category: CatLength > 0 ? 1 : 0,\n\t\t\t\tcategory_answer: 0,\n\t\t\t\thigh_category: 0,\n\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\t...payload\n\t\t\t}\n\t\t});\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}&start=true`,\n\t\t\t\t\tvalidation_token: NewValidationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\n\t\tsetShowIntro(true)\n\t\tnextQuestion()\n\t}\n\n\tconst saveCategoryAnswer = (response) => {\n\t\tlet _answers = questionAnswers?.categories\n\t\tsetDirection(1)\n\t\tif (_answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\n\t\tsetQuestionAnswers({\n\t\t\tquestion: questionAnswers.question,\n\t\t\tcategories: _answers,\n\t\t})\n\n\t\tlet _complete = PreCloseSurvey()\n\n\t\tconst payload = {\n\t\t\tcurrent_question: questionNo,\n\t\t\tcurrent_answer: questionNo,\n\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\tanswers: {\n\t\t\t\tquestions: questionAnswers?.questions,\n\t\t\t\tcomments: questionAnswers?.comments,\n\t\t\t\tcategories: _answers\n\t\t\t},\n\t\t\tcomplete: _complete,\n\t\t\tintro_completed: showIntro,\n\t\t\tvalidation_token: validationToken,\n\t\t\tsurvey_personality: get_brief_response?.survey_personality,\n in_survey_personality: get_brief_response?.in_survey_personality,\n\t\t\tmodular_response: get_brief_response?.modular_response,\n\t\t}\n\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload\n\t\t});\n\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}`,\n\t\t\t\t\tvalidation_token: validationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\n\t}\n\n\n\t// const saveQuestionAnswer = (response) => {\n\t// \tlet _answers = questionAnswers.question\n\t// \tsetDirection(1)\n\t// \tif (_answers?.questionNo) {\n\t// \t\t_answers.questionNo = response\n\n\t// \t} else {\n\t// \t\t_answers[questionNo] = response\n\t// \t}\n\t// \tsetQuestionAnswers({\n\t// \t\tcategories: questionAnswers.categories,\n\t// \t\tquestion: _answers\n\t// \t})\n\n\t// \tlet _complete = PreCloseSurvey()\n\n\t// \tconst payload = {\n\t// \t\tcurrent_question: questionNo,\n\t// \t\tcurrent_answer: questionNo,\n\t// \t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t// \t\tanswers: {\n\t// \t\t\tcategories: questionAnswers?.categories,\n\t// \t\t\tcomments: questionAnswers?.comments,\n\t// \t\t\tquestions: _answers\n\t// \t\t},\n\t// \t\tcomplete: _complete,\n\t// \t\tintro_completed: showIntro,\n\t// \t\tvalidation_token: validationToken,\n\t// \t}\n\t// \tdispatch({\n\t// \t\ttype: UPDATE_BRIEF_RESPONSE,\n\t// \t\tpayload\n\t// \t});\n\t// \t// persist with api\n\t// \tdispatch({\n\t// \t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t// \t\tpayload: {\n\t// \t\t\tid: briefResponseId,\n\t// \t\t\tstored_response: payload,\n\t// \t\t\tquery: `?token=${token}`,\n\t// \t\t\tvalidation_token: validationToken,\n\t// \t\t}\n\t// \t})\n\t// }\n\n\tconst saveQuestionAnswer = (response) => {\n\t\t// console.log(response)\n\n\t\tlet _answers = questionAnswers.questions\n\t\tsetDirection(1)\n\t\tif (_answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\t\tsetQuestionAnswers({\n\t\t\tcategories: questionAnswers?.categories,\n\t\t\tcomments: questionAnswers?.comments,\n\t\t\tquestions: _answers\n\t\t})\n\t\tlet _complete = PreCloseSurvey()\n\t\tconst payload = {\n\t\t\tvisual_question: visualQuestionNo,\n\t\t\tcurrent_question: questionNo,\n\t\t\tcurrent_answer: questionNo,\n\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\tanswers: {\n\t\t\t\tcategories: questionAnswers?.categories,\n\t\t\t\tcomments: questionAnswers?.comments,\n\t\t\t\tquestions: _answers\n\t\t\t},\n\t\t\tcomplete: _complete,\n\t\t\tintro_completed: showIntro,\n\t\t\tvalidation_token: validationToken,\n\t\t\tmodular_response: get_brief_response?.modular_response,\n\t\t}\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload\n\t\t});\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tstored_response: payload,\n\t\t\t\t\tquery: `?token=${token}`,\n\t\t\t\t\tvalidation_token: validationToken,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t}\n\n\n\tconst forward = () => {\n\t\tif (briefResponse?.high_answer >= questionNo) {\n\t\t\tsetPrevResponse(null)\n\t\t\tsetDirection(1)\n\t\t\tif ((questionNo + 1) <= totalQuestions.runningTotal) {\n\t\t\t\tnextQuestion()\n\t\t\t\tsetComplete(false)\n\t\t\t} else {\n\t\t\t\tsetComplete(true)\n\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst back = () => {\n\t\tif (questionNo > 1) {\n\t\t\tsetDirection(0)\n\t\t\tsetPrevResponse(null)\n\t\t\tsetComplete(false)\n\t\t\tif ((questionNo) === totalQuestions.runningTotal) {\n\t\t\t\tsetComplete(false)\n\t\t\t\tif (questionNo === briefResponse?.current_question) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\tcurrent_question: 0,\n\t\t\t\t\t\t\tcurrent_answer: 0,\n\t\t\t\t\t\t\tcomplete: false\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tprevQuestion()\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprevQuestion()\n\t\t\t}\n\t\t}\n\t}\n\n\t// function PreCloseSurvey() {\n\t// \tif ((questionNo + 1) <= totalQuestions.runningTotal) {\n\t// \t\tsetQuestionNo(questionNo + 1)\n\t// \t\treturn false\n\t// \t} else {\n\t// \t\tif (!ruleFeedbackComplete) {\n\t// \t\t\tsetAskFeedback(true)\n\t// \t\t\treturn false\n\t// \t\t}\n\t// \t\tsetAskFeedback(false)\n\t// \t\tsetComplete(true)\n\t// \t\treturn true\n\t// \t}\n\t// }\n\n\n\n\tuseEffect(() => {\n\t\tif (role != null) {\n\t\t\tsetQuestions(questions.filter(f => (f.role === null || f.role === role)))\n\t\t}\n\t}, [role, questions])\n\n\tuseEffect(() => {\n\t\t// setPageLoading(true);\n\t\tsetDefaultMessage({\n\t\t\ttitle: \"Looking for Survey\",\n\t\t\tsubTitle: \"Please wait while we try and get that survey loaded\"\n\t\t})\n\t\tconst timer1 = setTimeout(() => {\n\t\t\tsetDefaultMessage({\n\t\t\t\ttitle: \"No Survey details found\",\n\t\t\t\tsubTitle: \"Unfortunately we have not been retrive any information on this survey\"\n\t\t\t})\n\t\t}, 5000);\n\t\treturn () => clearTimeout(timer1);\n\t}, [noResponse]);\n\n\t// console.log(totalQuestions?.sequence[questionNo])\n\t// console.log(questionNo)\n\t// console.log(\"complete\", complete)\n\t// console.log(\"modularComplete\", modularComplete)\n\t// console.log(\"askFeedback\", askFeedback)\n\n\tconst Main_section = () => {\n\t\tconst introText = \"nuLogic processes your personal data and aggregates responses on behalf of your employer. Your personal data is never directly personally identifiable to your employer and is only ever presented in an anonymized fashion. Please consult our privacy & research statement for further details.\"\n\t\tconst consentText = \"Do you consent with your personal data being processed as described above? You must click accept in order to give your feedback.\";\n\t\tconst customAgreement = ( setConsentProvided(checked)}\n\t\t\ttype={'EDI'}\n\t\t\thasConsented={consentProvided} />);\n\n\t\tif (!showIntro) {\n\t\t\t// ask for existing data in storage\n\t\t\tif (storedResponseFound) {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn setConsentProvided(response)}\n\t\t\t\tcustomElement={customAgreement}\n\t\t\t\tsurveyEnabled={consentProvided}\n\t\t\t/>\n\t\t}\n\n\t\tif (complete) {\n\t\t\t// before we close check for any additonal modular questions which are enabled\n\t\t\tif (!modularComplete) {\n\t\t\t\treturn \n\t\t\t}\n\n\t\t\tif (modularComplete) {\n\t\t\treturn submitAnswer()}\n\t\t\t\tintro={'You have completed all the questions in this survey. Please submit your responses'} />\n\t\t\t}\n\t\t}\n\n\t\tif (askFeedback) {\n\t\t\treturn submitAnswer()}\n\t\t\t\tsetAskFeedback={setAskFeedback}\n\t\t\t\tsetComplete={setComplete}\n\t\t\t/>\n\t\t}\n\n\t\tif (totalQuestions?.sequence[questionNo]?.quesType === categoryType) {\n\t\t\treturn \n\t\t}\n\t\tif (!complete) {\n\t\t\tif (totalQuestions?.sequence[questionNo]?.quesType === questionsType) {\n\t\t\t\treturn saveQ(r)}\n\t\t\t\t\tsaveQuestionAnswer={saveQuestionAnswer}\n\t\t\t\t\tresponse={prevResponse}\n\t\t\t\t\ttextColor={'#009370'}\n\t\t\t\t\tquestion={questions.filter(\n\t\t\t\t\t\tq => q.order === questionNo - totalQuestions?.category\n\t\t\t\t\t)[0]}\n\t\t\t\t/>\n\t\t\t}\n\t\t\t// if (totalQuestions?.sequence[questionNo]?.quesType === commentsType) {\n\t\t\t// \treturn saveQ(r)}\n\t\t\t// \t\tsaveCommentAnswer={saveCommentAnswer}\n\t\t\t// \t\tresponse={prevResponse}\n\t\t\t// \t\ttextColor={getTextColor()}\n\t\t\t// \t\tlanguage={language}\n\t\t\t// \t\tquestion={askComments.filter(\n\t\t\t// \t\t\tq => Number(q.order) === questionNo - totalQuestions?.category\n\t\t\t// \t\t)[0]}\n\t\t\t// \t/>\n\t\t\t// }\n\t\t}\n\n\t\t// if (comments.length < CultureAuditQuestion.question.comments.length) {\n\t\t// \treturn saveComment(r)}\n\t\t// \t\tdata={CultureAuditQuestion.question.comments[comment_index]} />\n\t\t// }\n\t\t// if (complete) {\n\t\t// \treturn
\n\t\t// }\n\n\n\t\treturn \n\n\n\t}\n\n\tif (noResponse) {\n\t\treturn \n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t}\n\tif (!token) {\n\t\treturn \n\t}\n\n\tif (thankMessage) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\n\t}\n\n\tif (surveyDeleted) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t)\n\t}\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{Main_section()}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{enableNavigation && showIntro &&\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tEDI Survey\n\t\t\t\t\t\t{visualQuestionNo === 0 ? 1 : visualQuestionNo} of {totalQuestions?.total} questions\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
}\n\n\t\t
\n\t)\n}\n\n/******** Styles ****************************************************/\n\nconst Container = styled.div`\n height: 100vh;\n width: 100vw;\n background-color: rgba(0, 0, 0,0.9);\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst CounterContainer = styled.div`\n position: absolute;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 20px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n background-color: rgba(236, 236, 236, 0.3);\n font-family: \"Red Hat Display\", sans-serif;\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n @media only screen and (min-width: 992px) {\n padding: 10px 25px 10px 25px;\n font-size: 16px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n @media only screen and (min-width: 992px) {\n margin-bottom: 5px;\n font-size: 20px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;\n\nexport default EdiSurvey\n","import React from \"react\";\n\n\nconst Privacy = () =>{\n\n\treturn (\n\t\t
\n\t\t\t

NuLogic Privacy & Research Statement

\n\n\t\t\t

NuLogic (“NuLogic”, “we”, “us” or “our”) takes steps intended to meet privacy principles and \n\t\t\trequirements with respect to personal information under applicable Canadian privacy legislation. \n\t\t\tThe purpose of this statement is to inform our customers and other individuals we deal with \n\t\t\t(“you” or “your”) how we collect, use, disclose and protect your personal information. Personal \n\t\t\tinformation is information about an identifiable individual, as more particularly described \n\t\t\tunder applicable privacy legislation. This statement applies to our collection, use and \n\t\t\tdisclosure of personal information in Canada. This statement does not apply to information \n\t\t\tabout our employees or to information that is not personal information.

\n\n\t\t\t

Data Controller and Data Processor

\n\n\t\t\t

NuLogic’s business customers are the data controllers for most of the information that is \n\t\t\tentered into the NuLogic web application, website, and supporting systems or that is shared \n\t\t\tperiodically with NuLogic employees to deliver services. This positions NuLogic as the data \n\t\t\tprocessor for most information stored and processed by NuLogic. There are some pieces of \n\t\t\tinformation that are collected directly by NuLogic to facilitate security, logging, and \n\t\t\tapplication performance. These items include IP address and behavior within the NuLogic \n\t\t\tplatform. For these pieces of information NuLogic acts as the data controller and processor. \n\t\t\tAdditionally, NuLogic employs a variety of technologies and partners that periodically act \n\t\t\tas sub-processors. If users have any questions or concerns about the processing and handling \n\t\t\tof their personal information, they may reach out to NuLogic directly by email at mike@NuLogic.com.\n\t\t\t

\n\n\t\t\t

Personal Information We Collect

\n\n\t\t\t

NuLogic and its agents and representatives collect personal information in a number \n\t\t\tof circumstances in the course of assisting organizations in their mandate to analyze, \n\t\t\timprove and track diversity and inclusion in the workplace. Personal information we collect includes:\n\t\t\t

\n\n\t\t\t
    \n\t\t\t\t
  • demographic characteristics, including but not limited to gender, ethnicity, sexual identity, and disability;
  • \n\t\t\t\t
  • details on role/position in place of employment, including but not limited to level in organization, office location, business unit;
  • \n\t\t\t\t
  • sentiment around personal experiences of inclusion in the workplace
  • \n\t\t\t\t
  • such other information we may collect with your consent or as permitted or required by law.
  • \n\t\t\t
\n\n\t\t\t

All personal information above is collected with explicit consent in the form of an opt-in box prior to any \n\t\t\tdisclosure of information. Consent is digitally recorded and logged, including IP address and date of consent. \n\t\t\tSee section on Consent for more information.

\n\n\t\t\t

Use of Personal Information

\t\n\t\t\t

NuLogic generally uses personal information for the following purposes:

\n\n\t\t\t
    \n\t\t\t\t
  • provide your employer or community with aggregated insights on diversity and inclusion in their organization
  • \n\t\t\t\t
  • track progress on diversity and inclusion in your workplace or community
  • \n\t\t\t\t
  • create sector-specific diversity and inclusion benchmarks
  • \n\t\t\t\t
  • publish aggregated findings and statistics to raise awareness on diversity and inclusion through traditional and social media
  • \n\t\t\t\t
  • managing, administering, collecting or otherwise enforcing accounts;
  • \n\t\t\t\t
  • maintaining business records for reasonable periods, and generally managing and administering our business including defending and bringing legal actions;
  • \n\t\t\t\t
  • meeting legal, regulatory, insurance, security and processing requirements; and
  • \n\t\t\t\t
  • otherwise with consent or as permitted or required by law
  • \n\t\t\t\t
  • Aggregated and annonymized research in collaboration with Champlain College. See Appendix A below for complete research participation agreement.
  • \n\t\t\t
\n\n\t\t\t

Mode, Place, and Methods of Processing the Data

\n\n\t\t\t

NuLogic takes appropriate security measures to prevent unauthorized access, disclosure, modification, or data destruction.

\n\t\t\t

Data is processed using computers or tech-enabled tools, following organizational policies and procedures strictly related to the purposes indicated. \n\t\t\tIn some cases, data may be accessible to NuLogic employees involved with the NuLogic website’s operation, the NuLogic web application (platform), \n\t\t\tand supporting applications. Data may also be accessible to external parties appointed, if necessary, as data processors\n\t\t\t or sub-processors by NuLogic. External parties may include third-party technical service providers, hosting providers,\n\t\t\t and IT companies.

\n\n\t\t\t

Legal Basis of Processing

\n\n

NuLogic may process personal data relating to users if one of the following applies:

\n\n
  • Users have given their consent for one or more specific purposes.
  • \n
  • Provision of data is necessary for the performance of an agreement with the user.
  • \n
  • Processing is necessary for compliance with a legal obligation.
  • \n
  • Processing is necessary for the legitimate interests pursued by the controller or by a third party.
\n\n\n\n

In any case, NuLogic will gladly help clarify the specific legal basis that applies to the processing, mainly whether the provision of personal data is a statutory or contractual requirement or a requirement necessary to enter into a contract.

\n\n\n\n

Your Consent

\n\n\n\n

Consent to the collection, use and disclosure of personal information may be given in various ways. Consent can be express (for example, orally, electronically or on a form you may sign describing the intended uses and disclosures of personal information) or implied (for example, when you provide information necessary for a service you have requested). You may provide your consent in some circumstances where notice has been provided to you about our intentions with respect to your personal information and you have not withdrawn your consent for an identified purpose, such as by using an “opt out” option provided, if any. Consent may be given by your authorized representative (such as a legal guardian or a person having a power of attorney). Generally, by providing us with personal information, we will assume that you consent to our collection, use and disclosure of such information for the purposes identified or described in this privacy statement, if applicable, or otherwise at the time of collection.

\n\n\n\n

You may withdraw your consent to our collection, use and disclosure of personal information at any time, subject to contractual and legal restrictions and reasonable notice. Note that if you withdraw your consent to certain uses of your personal information, we may no longer be able to provide certain of our products or services to your employer or community. Note also that where we have provided or are providing services to you, your consent will be valid for so long as necessary to fulfil the purposes described in this Privacy Statement or otherwise at the time of collection, and you may not be permitted to withdraw consent to certain necessary uses and disclosures (for example, but not limited to, maintaining reasonable business and transaction records, disclosures to Canadian and foreign government entities as required to comply with laws, and reporting on credit information after credit has been granted, if applicable).

\n\n\n\n

NuLogic collects, uses and discloses your personal information with your consent, except as permitted or required by law. We may be required or permitted under statute or regulation to collect, use or disclose personal information without your consent, for example to comply with a court order, to comply with local or federal regulations or a legally permitted inquiry by a government agency, or to collect a debt owed to us.

\n\n\n\n

Security

\n\n\n\n

We take reasonable steps to protect your personal information using physical, electronic or procedural security measures appropriate to the sensitivity of the information in our custody or control, which may include safeguards to protect against loss or theft, as well as unauthorized access, disclosure, copying, use or modification. Authorized employees, agents and mandataries of NuLogic who require access to your personal information in order to fulfil their job requirements will have access to your personal information.

\n\n\n\n

Retention Time

\n\n\n\n

Personal data is processed and stored for as long as required to fulfill the purpose for which it is collected.

\n\n\n\n

Therefore:

\n\n\n\n
  • Personal data collected for the performance of a contract between NuLogic and a business customer is retained until such contract has been entirely performed or the business customer asks for the data to be deleted.
  • Personal data collected for NuLogic’s legitimate interests shall be retained as long as needed to fulfill such purposes. Users may find specific information regarding NuLogic’s legitimate interests within the relevant sections of this document or by contacting NuLogic.
\n\n\n\n

NuLogic may be allowed to retain personal information for a more extended period whenever the user has given consent to such processing, as long as such consent is not withdrawn. Furthermore, NuLogic may be obliged to retain personal data for a more extended period whenever required to perform a legal obligation or upon order of an authority.

\n\n\n\n

Once the retention period expires, the user’s personal data will be securely deleted.

\n\n\n\n

The Purposes of Processing

\n\n\n\n

The data concerning the user is collected to allow NuLogic to provide its services, as well as for the following purposes: analytics, user database management, managing contacts and sending messages, handling payments, interaction with external social networks and platforms, remarketing and behavioral targeting, contacting the user, displaying content from external platforms, hosting and backend infrastructure, interaction with live chat platforms, and spam protection.

\n\n\n\n

Users can find further detailed information about such purposes of processing and the specific personal data used for each purpose in the respective sections of this document.

\n\n\n\n

Detailed Information on the Processing of Personal Data

\n\n\n\n

Personal data is collected for the following purposes and using the following services and third parties:

\n\n\n\n

Analytics

\n\n\n\n

The services contained in this section enable NuLogic to monitor and analyze web traffic and can be used to keep track of user behavior.

\n\n\n\n

HubSpot Analytics (HubSpot, Inc.)

\n\n\n\n

HubSpot Analytics is an analytics service provided by HubSpot, Inc.

\n\n\n\n

Personal data collected: cookies and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy

\n\n\n\n

Google Analytics (Google Inc.)

\n\n\n\n

Google Analytics is a web analysis service provided by Google Inc. (“Google”). Google utilizes the data collected to track and examine the use of this application, to prepare reports on its activities, and to share the reports with other Google services.

\n\n\n\n

Google may use the data collected to contextualize and personalize the ads of its own advertising network.

\n\n\n\n

Personal data collected: cookies and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy

\n\n\n\n

Contacting the User

\n\n\n\n

Contact Form (The NuLogic Web Application)

\n\n\n\n

By filling in the contact form with their data, users authorize the NuLogic web application to use these details to reply to requests for information, quotes, or any other kind of request as indicated by the form’s header.

\n\n\n\n

Personal data collected: address, city, company name, country, email address, first name, last name, phone number, job role, province, state, and ZIP/Postal code.

\n\n\n\n

Displaying Content from External Platforms

\n\n\n\n

This type of service allows users to view content hosted on external platforms directly from the pages of the NuLogic web application and interact with them.

\n\n\n\n

This type of service might still collect web traffic data for the pages where the service is installed, even when users do not use it.

\n\n\n\n

Google Fonts (Google Inc.)

\n\n\n\n

Google Fonts is a typeface visualization service provided by Google Inc. that allows this Application to incorporate content of this kind on its pages.

\n\n\n\n

Personal data collected: usage data and various types of data as specified in the service’s privacy policy.

\n\n\n\n

Place of processing: US – Privacy Policy. Privacy Shield participant.

\n\n\n\n

Hosting and Back-End Infrastructure

\n\n\n\n

This type of service has the purpose of hosting data and files that enable the NuLogic website and the NuLogic web application to run and be distributed. Additionally, these services provide the infrastructure to run specific features or parts of the application. Some of these services work through geographically distributed servers, making it difficult to determine the actual location where the personal data is stored.

\n\n\n\n

Linode Web serivces

\n\n\n\n

Linode Web Services is a hosting and backend service provided by Linode LLC.

\n\n\n\n

Personal data collected: various types of data as specified in the privacy policy of the service.

\n\n\n\n

Place of processing: See the Linode privacy policy – Privacy Policy.

\n\n\n\n

Postmark

\n\n\n\n

Postmark is an email delivery service.

\n\n\n\n

Personal data collected: various types of data as specified in the privacy policy of the service.

\n\n\n\n

Place of processing: See the Postmark privacy policy – Privacy Policy.

\n\n\n\n

Managing Contacts and Sending Messages

\n\n\n\n

This type of service makes it possible to manage a database of email contacts, phone contacts, or any other contact information to communicate with the user.

\n\n\n\n

These services may also collect data concerning the date and time when the message was viewed by the user and when the user interacted with it, such as by clicking on links included in the message.

\n\n\n\n

HubSpot Email (HubSpot, Inc.)

\n\n\n\n

HubSpot Email is an email address management and message sending service provided by HubSpot, Inc.

\n\n\n\n

Personal data collected: email address and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy..

\n\n\n\n

Changes to This Privacy Notice

\n\n\n\n

NuLogic reserves the right to make changes to this privacy notice at any time by giving notice to users on this page and possibly within this application or–as far as technically and legally feasible–sending a notice to users via any contact information available to NuLogic. Users are strongly recommended to check this page often, referring to the date of the last modification listed at the bottom. Should the changes affect processing activities performed based on the users’ consent, NuLogic shall collect new consent from the user where required.

\n\n\n\n

Further Information about Personal Data

\n\n\n\n

The Rights of Users

\n\n\n\n

Users may exercise certain rights regarding their data processed by NuLogic.

\n\n\n\n

In particular, users have the right to do the following:

\n\n\n\n
  • Withdraw their consent at any time. Users have the right to withdraw consent after they have previously given their consent to the processing of their personal data.
  • Object to processing of their data. Users have the right to object to the processing of their data if the processing is carried out on a legal basis other than consent. Further details are provided in the dedicated section below.
  • Access their data. Users have the right to learn if NuLogic is processing their data, obtain disclosure regarding certain aspects of the processing, and obtain a copy of the data undergoing processing.
  • Verify and seek rectification. Users have the right to verify their data accuracy and ask for it to be updated or corrected.
  • Restrict the processing of their data. Users have the right, under certain circumstances, to restrict the processing of their data. In this case, NuLogic will not process their data for any purpose other than storing it.
  • Have their personal data deleted or otherwise removed. Users have the right, under certain circumstances, to obtain the erasure of their data from NuLogic.
  • Receive their data and have it transferred to another controller. Users have the right to receive their data in a structured, commonly used, machine-readable format, and, if technically feasible, to have it transmitted to another controller without any hindrance. This provision is applicable provided that the data is processed by automated means and that the processing is based on the user’s consent, on a contract that the user is part of, or on precontractual obligations.
  • Lodge a complaint. Users have the right to bring a claim before their competent data protection authority.
  • Details About the Right to Object to Processing
\n\n\n\n

Where personal data is processed for the public interest, in the exercise of an official authority vested in NuLogic or for the legitimate interests pursued by NuLogic, users may object to such processing by providing a ground related to their particular situation to justify the objection.

\n\n\n\n

However, users must know that should their personal data be processed for direct marketing purposes, they can object to that processing at any time without providing any justification. To learn whether the NuLogic is processing Personal Data for direct marketing purposes, users may refer to the relevant sections of this document.

\n\n\n\n

How to Exercise These Rights

\n\n\n\n

Any requests to exercise user rights can be directed to NuLogic through the contact details provided in this document (privacy@NuLogic.com). These requests can be exercised free of charge and will be addressed by NuLogic as early as possible and always within one month.

\n\n\n\n

Additional Information about Data Collection and Processing

\n\n\n\n

Legal Action

\n\n\n\n

Users’ personal data may be used for legal purposes by NuLogic in court or the stages leading to possible legal action arising from improper use of this application or the related services. The users declare they are aware that NuLogic may be required to reveal personal data upon request of public authorities.

\n\n\n\n

Additional Information About Users’ Personal Data

\n\n\n\n

In addition to the information contained in this privacy notice, this application may provide users with additional and contextual information concerning particular services or the collection and processing of personal data upon request.

\n\n\n\n

System Logs and Maintenance

\n\n\n\n

For operation and maintenance purposes, this application and any third-party services may collect files that record interaction with this application (e.g., system logs) using other personal data (e.g., IP Address) for this purpose.

\n\n\n\n

Information Not Contained in This Notice

\n\n\n\n

More details concerning the collection or processing of personal data may be requested from NuLogic at any time. Users may use the contact information at the beginning of this document.

\n\n\n\n

How “Do Not Track” Requests are Handled

\n\n\n\n

This application does not support “Do Not Track” requests.

\n\n\n\n

To determine whether any of the third-party services it uses honor “Do Not Track” requests, users should read their privacy policies.

\n\n\n\n

Definitions and Legal References

\n\n\n\n

Personal Data (or Data)

\n\n\n\n

Any information that directly, indirectly, or in connection with other information—including a personal identification number—allows for the identification or identifiability of a natural person.

\n\n\n\n

Usage Data

\n\n\n\n

Information collected automatically through this application (or obtained by services employed in this application)can include: the IP addresses or domain names of the computers utilized, the Uniform Resource Identifier (URI) addresses, the time of the request, the method used to submit the request to the server, the size of the file received in response, the numerical code indicating the status of the server’s answer (successful outcome, error, etc.), the country of origin, the features of the users’ browser and operating system, the various time details per visit (e.g., the time spent on each page within the application), and the information on the path followed within the application with particular reference to the sequence of pages visited, and other parameters about the device operating system or the users’ IT environment.

\n\n\n\n

User

\n\n\n\n

The individual using this application who, unless otherwise specified, coincides with the data subject.

\n\n\n\n

Data Subject

\n\n\n\n

The natural person to whom the personal data refers.

\n\n\n\n

Data Processor

\n\n\n\n

The natural or legal person, public authority, agency, or other body that processes personal data on behalf of the controller, as described in this privacy notice.

\n\n\n\n

Sub-Processor

\n\n\n\n

This refers to any additional third party who processes personal data on behalf of the data processor in fulfilling contractual obligations and services.

\n\n\n\n

Data Controller

\n\n\n\n

The person, public authority, agency, or other body that determines the purposes and means of processing personal data, including the security measures concerning the operation and use of this application.

\n\n\n\n

This Application

\n\n\n\n

The information technology system that collects and processes the personal data of the user.

\n\n\n\n

Service

\n\n\n\n

The service provided by the NuLogic platform or NuLogic team.

\n\n\n\n

European Union (EU)

\n\n\n\n

Unless otherwise specified, all references made within this document to the European Union (EU) include all current member states to the European Union and the European Economic Area.

\n\n\n\n

Cookies

\n\n\n\n

Small piece of data stored on the user’s device.

\n\n\n\n

Legal Information

\n\n\n\n

This privacy notice has been prepared based on provisions of multiple legislations, including Art. 13/14 of Regulation (EU) 2016/679 (General Data Protection Regulation).

\n\n\n\n

This privacy notice relates to the NuLogic website, application, and supporting services unless otherwise stated within this document.

\n\n\n

Appendix A - Informed Consent Agreement

\n\n\n

Please read this consent agreement carefully before you decide to participate in the study.

\n \n

Purpose of the research study: The purpose of the study is to identify opportunities to improve business operations and outcomes related to diversity, equity, inclusion, and belonging (DEIB).

\n \n

What you will do in the study: Participants will complete an online survey where they respond to multiple choice and short-answer items related to DEIB. Participants may skip any question.

\n \n

Time required: The questionnaire will take approximately 30 minutes to complete.

\n \n

Risks: There are no anticipated risks in this study.

\n \n

Benefits: There are no direct benefits to you for participating in this research study. The study may help researchers and your organization understand how DEIB contributes to employee and customer satisfaction and other metrics of interest.

\n \n

Confidentiality/Anonymity: The information that you give in the study will be handled confidentially. The information that you give in the study will be anonymous. Your name will not be collected or linked to the data. Because of the nature of the data, it may be possible to deduce your identity; however, there will be no attempt to do so and your data will be reported in a way that will not identify you.

\n \n

Voluntary participation: Your participation in the study is completely voluntary.

\n \n

Right to withdraw from the study: You have the right to withdraw from the study at any time without penalty.

\n\n

How to withdraw from the study: If you want to withdraw from the study, simply stop taking the survey and do not submit. There is no penalty for withdrawing. If you would like to withdraw after your materials have been submitted, please contact Dr. Kylie King at kking@champlain.edu.

\n\n

Payment: You will receive no payment for participating in the study.

\n\n

If you have questions about the study, contact: \nResearcher's Name: Kylie Goodell King, kking@champlain.edu\nChamplain College, Burlington, VT 05491. \nTelephone: (802)…

\n \n

If you have questions about your rights in the study, contact: \nChair, Institutional Review Board for Champlain College\n163 South Willard Street\nChamplain College, P.O. Box 670\nBurlington, VT 05402\nEmail: irb@champlain.edu\nWebsite

\n \n

Agreement

\nBy accepting these terms you agree to participate in the research study described above. \n\n\n
\n\t\t)\n\n}\n\n\nexport default Privacy","import React, { useEffect, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nimport S1 from './s1.svg'\nimport S2 from './s2.svg'\n\nimport S3 from './s3.svg'\n\n\n\n\nconst Shapes = () =>{\n\n\n\treturn (\n\t\t\n\t\t\t\n\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\n\n\t\t\t\n\t\t\n\t\t)\n}\n\n\nexport default Shapes\n\n\n\nconst Container = styled.div`\n\twidth:100vw;\n\theight:300px;\n\tdisplay:flex;\n\talign-items:flex-end;\n\tposition:relative;\n\tz-index:-1;\n\n\t@media(max-width:1300px){\n\t\theight:200px;\n\t}\n\n\t@media(max-width:768px){\n\t\theight:150px;\n\t}\n\n\t\n`\n\n\nconst Shape1 = styled.img`\n\twidth:50%;\n\n\tposition:absolute;\n`\n\nconst Shape2 = styled.img`\n\tposition:absolute;\n\tright:0%;\n\twidth:55%;\n\theight:80%;\n`\n\nconst Shape3 = styled.img`\n\tposition:absolute;\n\tright:0%;\n\theight:100%;\n`\n\nconst Wrapper = styled.div`\n\tposition:fixed;\n\tbottom:0;\n\tz-index:-1;\n\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Checkbox from '../SurveyComponents/Checkbox'\n import Logo from 'assets/images/caat.png'\n import { Icon } from \"semantic-ui-react\";\n import { Link } from \"react-router-dom\";\n\n\nconst EN1 = \"You will not be able to proceed with the assessment until you have checked the following boxes:*\"\nconst FR1 = \"Vous ne pourrez pas commencer l’évaluation avant d’avoir coché les cases suivantes :*\"\n\nconst EN2 = \"Anonymity Statement\"\nconst FR2 = \"Déclaration d'anonymat\"\n\nconst EN3 = `The Culture Assessment and Audit survey does not collect any direct (i.e., name, email address) \n or indirect (i.e., role) identifiers that link responses to an individual. A minimum of three data points \n per role is required in the analysis to ensure that individual responses cannot be identified. All responses \n will be reported anonymously and data will be aggregated to ensure objectivity.`\nconst FR3 = \"Le sondage de l’évaluation et de l’audit de la culture ne recueille aucun identifiant direct (ex. : nom, courriel) ou indirect (ex. : rôle) qui pourrait relier les réponses à une personne. Un minimum de trois points de données par rôle est nécessaire pour assurer que les réponses individuelles ne peuvent être identifiées. Toutes les réponses seront rapportées anonymement et les données seront regroupées pour assurer l’objectivité.\"\n\n\nconst EN4 = \"Confidentiality Statement\"\nconst FR4 = \"Déclaration de protection de la vie privée\"\n\nconst EN5 = \"Your responses will be held in strict confidentiality and only anonymous, aggregate data will be used in reports for your NSO, Culture and Wellness Facilitators, and/or Own The Podium. \"\nconst FR5 = \"Vos réponses seront strictement confidentielles et seules des données anonymes et regroupées seront utilisées dans l’élaboration de rapports à l’intention de votre ONS, de vos facilitateurs de culture et de bien-être et/ou À nous le podium.\"\n\nconst EN6 = \"Informed Consent\"\nconst FR6 = \"Consentement éclairé\"\n\nconst EN7 = \"I hereby give consent for the Culture and Wellness Facilitators to access anonymized and aggregated user data strictly in the further development of the CWF role by promoting collaboration, support and sharing of best practices. An individual’s responses cannot be identified. \"\nconst FR7 =\"Par la présente, je consens à l’accès aux données d’utilisateur anonymes et regroupées par les facilitateurs de culture et de bien-être, uniquement aux fins du développement du rôle de FCB pour favoriser la collaboration, le soutien et le partage des meilleures pratiques. Les réponses d’une personne particulière ne peuvent être identifiées.\"\n\nconst EN8 =\"Secondary Use\"\nconst FR8 =\"Usage secondaire\"\n\nconst EN9 =\"I hereby give consent for Own the Podium or designate research partner to use anonymized and aggregated user data strictly in the further development of culture of excellence programming for the benefit of the high performance sport community in Canada. All direct and indirect identifiers, including sport, will be removed. An individual’s responses and the NSO’s results cannot be identified.\"\nconst FR9 =\"Par la présente, je consens à ce qu’À nous le podium ou un partenaire de recherche désigné utilise des données d’utilisateur anonymes et regroupées, uniquement aux fins du développement de la programmation de la culture d’excellence à l’intention de la communauté du sport de haut niveau au Canada. Tous les identifiants directs et indirects, incluant le sport, seront supprimés. Les réponses d’une personne et les résultats d’un ONS ne pourront être identifiés. \"\n\nconst EN10 = \"Privacy Agreement\"\nconst FR10 =\"Entente de confidentialité\"\n\nconst EN11 = \"We are committed to maintaining the accuracy, confidentiality, and security of your personally identifiable information. \"\nconst FR11 = \"Nous nous engageons à maintenir l’exactitude, la confidentialité et la sécurité de vos renseignements permettant d’identifier une personne.\"\n\nconst EN12 = \"Privacy Statement\"\nconst FR12 =\"Énoncé de confidentialité\"\n\nconst EN13 =\"Do you agree with your personal data being processed as described above and in our privacy statement? You must click accept to participate in this survey.\"\nconst FR13 =\"Êtes-vous d’accord que vos données personnelles soient traitées tel que décrit ci-dessus et dans notre énoncé de confidentialité ? Vous devez cliquer pour accepter afin de participer à ce sondage.\"\n\nconst EN14 = \"If you have any technical questions or concerns regarding your participation in this survey, please contact info@caatcanada.ca.\"\nconst FR14 = \"Si vous avez des questions techniques ou des préoccupations concernant votre participation à cette enquête, veuillez contacter info@caatcanada.ca.\"\n\n// English variables\nconst EN15 = \"Potential Risks of Participation\";\nconst EN16 = \"The Culture Assessment and Audit survey includes questions regarding mental and physical health and wellbeing, psychological safety, and Safe Sport.\";\nconst EN17 = (
We appreciate hearing from you about your experience and encourage your honesty in your response. Due to the anonymity of the survey, we are unable to follow up to any claims. Therefore, it is not an appropriate method to report harm.
);\nconst EN18 = (
If the topics in this survey cause you any emotional or psychological stress, you can find sport-specific resources through the Canadian Centre for Mental Health and Sport or through Game Plan at mentalhealth@mygameplan.ca
);\nconst EN19 = (
The Canadian Sport Helpline is a national toll-free sport helpline that offers assistance to victims or witnesses of harassment, abuse or discrimination. The anonymous, confidential and independent bilingual service provides a space for individuals to share and validate their concerns, obtain advice on required next steps, and be referred to appropriate resources for follow up. They can be accessed via phone, text email or live chat from 8AM to 8PM ET 7 days a week. https://abuse-free-sport.ca info@abuse-free-sport.ca 1-888-837-7678
);\nconst EN20 = (
The Sport Dispute Resolution Centre of Canada (SDRCC), provides tools and information to help prevent and resolve disputes at the highest levels of the Canadian sport system. You can learn more information about these services at http://www.crdsc-sdrcc.ca
);\n\n// French variables\nconst FR15 = \"Risques potentiels à la participation\";\nconst FR16 = \"Le questionnaire d'évaluation et d'audit de la culture (CAAT) comprend des questions sur la santé mentale et physique et le bien-être, la sécurité psychologique et le sport sécuritaire.\";\nconst FR17 = (
Nous souhaitons que vous nous fassiez part de votre expérience et encourageons votre honnêteté dans vos réponses. Cette évaluation est entièrement anonyme. C’est pourquoi nous ne pourrons donner suite à aucune plainte. Par conséquent, ce n'est pas une méthode appropriée pour signaler un abus ou un préjudice.
);\nconst FR18 = (
Si les sujets abordés dans ce questionnaire vous causent un stress émotionnel ou psychologique, vous pouvez trouver des ressources spécifiques au sport via le Centre canadien de la santé mentale et du sport ou via Plan de Match à mentalhealth@mygameplan.ca
);\nconst FR19 = (\n
\n La Ligne d’Assistance du Sport Canadien est une ligne d'assistance nationale sans frais pour le sport qui offre de l'aide aux victimes ou aux témoins de harcèlement, d'abus ou de discrimination. Le service bilingue anonyme, confidentiel et indépendant offre un espace où les personnes peuvent partager et valider leurs préoccupations, obtenir des conseils sur les prochaines étapes requises et être référées aux ressources appropriées pour un suivi. Elles sont accessibles par téléphone, courriel, texto ou clavardage en direct de 8 h à 20 h HE, 7 jours sur 7. https://sport-sans-abus.ca/ligne-dassistance info@sport-sans-abus.ca 1-888-837-7678\n
\n);\n\nconst FR20 = (\n
\n Le Centre de règlement des différends sportifs du Canada (CRDSC) fournit des outils et des renseignements pour aider à prévenir et à résoudre les différends aux plus hauts niveaux du système sportif canadien. Vous pouvez en savoir plus sur ces services à http://www.crdsc-sdrcc.ca\n
\n);\n\nconst EN21 = \"Before you Begin\";\nconst EN22 = (\n
\n

Confused by sport acronyms and terms? Below is a summary of common terms in this assessment that you can refer to:

\n
    \n
  • Culture of Excellence (COE): a culture in sport where people and performance are both prioritized.
  • \n
  • DTE: Daily Training Environment.
  • \n
  • Gold Medal Profile (GMP): a selection of athlete performance skills and attributes that are based on metrics and benchmarks.
  • \n
  • IST: Integrated Support Team’s are sport science, sports medicine and other team management professionals that support coaches and athletes/teams. Examples include: Mental Performance Consultant, Nutritionist, Therapist, Physician, Physiologist, etc.
  • \n
  • Mental Health: one’s state of psychological and emotional well-being.
  • \n
  • Program leaders: these individuals may be Coaches, High Performance Directors (HPD), High Performance Managers (HP Manager), and IST providers.
  • \n
  • Physical Health: a state of physical well-being that takes into consideration how the body feels, moves, and functions.
  • \n
  • Physical Safety: an environment free from physical danger or maltreatment from physical conduct.
  • \n
  • Psychological Safety: an environment where mental health is protected and an individual feels as if they won’t be punished or humiliated for speaking up about questions, concerns or ideas.
  • \n
\n

\n Other things to consider before you begin: \n

\n
    \n \n
  • Code of Conduct: this is a document that outlines a set of values, behaviours, principles, guidelines or rules which form the base of expectations specific to your sport organization.
  • \n
  • Performance Objective: objective(s) personal to the athlete, that are defined by or in collaboration with, your coaches, IST providers, and High Performance Directors. You will see this survey refer to your Performance Objectives, in relation to your program and training environment.
  • \n
\n\n
\n)\n\nconst FR21 = \"Avant de commencer\";\nconst FR22 = (\n
\n

Les acronymes et les termes relatifs au sport vous laissent perplexe ? Vous trouverez ci-dessous un récapitulatif des termes les plus courants dans cette évaluation, auquel vous pourrez vous référer :

\n
    \n
  • Culture d'excellence : une culture du sport dans laquelle les personnes et les performances sont toutes deux prioritaires.
  • \n
  • EEQ: environnement d'entraînement quotidien.
  • \n
  • Le Profil de la médaille d'or : une sélection de compétences et d'attributs de performance des athlètes qui sont basés sur des mesures et des critères de référence.
  • \n
  • ÉSI: Les équipes de soutien intégré sont des professionnels des sciences du sport, de la médecine sportive et de la gestion d'équipe qui soutiennent les entraîneurs et les athlètes/équipes. Voici quelques exemples de membres d’une ÉSI: consultant en performance mentale, nutritionniste, physiothérapeute, médecin, physiologiste, etc.
  • \n
  • Santé mentale : état de bien-être psychologique et émotionnel d'une personne.
  • \n
  • Les personnes responsables du programme: par exemple, les entraîneurs, directeur(trice)/gestionnaire Haute Performance et membres de l'ÉSI.
  • \n
  • Santé physique : état de bien-être physique qui prend en compte la façon dont le corps se sent, bouge et fonctionne.
  • \n
  • Sécurité physique : un environnement exempt de tout danger physique ou de tout mauvais traitement dû à un comportement physique.
  • \n
  • Sécurité psychologique : un environnement où la santé mentale est protégée et où l'on croit que l'on ne sera pas puni ou humilié pour avoir exprimé ses idées, ses erreurs, ses questions ou ses préoccupations.
  • \n
\n

\n Autres éléments à prendre en compte avant de commencer :\n

\n
    \n
  • Code de conduite : il s'agit d'un document qui décrit un ensemble de valeurs, de comportements, de principes, de lignes directrices ou de règles propres à votre organisation sportive. Nous vous recommandons de vous familiariser avec le code de conduite de votre organisation avant de commencer l'enquête d'évaluation.
  • \n
  • Objectif de performance : objectif(s) personnel(s) de l'athlète, défini(s) par ou en collaboration avec vos entraîneurs, directeur(trice)/gestionnaire Haute Performance et membres de l'ÉSI.. Dans cette enquête, vous verrez que vos objectifs de performance sont liés à votre programme et à votre environnement d'entraînement. Si vous avez des questions sur vos objectifs de performance personnels, veuillez contacter les personnes responsables de votre programme.
  • \n \n
\n\n
\n)\n\nconst EN23 = \"Age Consent\"\nconst EN24 = \"Are you over the age of 16?\"\n\nconst FR23 = \"Consentement d'âge\"\nconst FR24 = \"Avez-vous moins de 16 ans?\"\n\nconst EN25 = \"If you are under the age of 16, you must complete this assessment in the presence of an adult (aged 18 years or older). This adult can be a parent, guardian, coach, NSO staff or Sport science practitioner.\"\nconst FR25 = \"Si vous avez moins de 16 ans, vous devez effectuer cette évaluation en présence d'un adulte (âgé de 18 ans ou plus). Cet adulte peut être un parent, un tuteur, un entraîneur, un/e directeur(trice)/gestionnaires Haute Performance et membres de l’ÉSI.\"\n\n\nconst Intro = ({saveAnswer, title, intro,customElement,surveyEnabled,elementRef,language }) =>{\n\n const [agree1,setAgree1] = React.useState(false)\n const [agree2,setAgree2] = React.useState(false)\n const [agree3,setAgree3] = React.useState(false)\n const [agree4,setAgree4] = React.useState(false)\n const [agree5,setAgree5] = React.useState(false)\n const [agree6,setAgree6] = React.useState(false)\n const [agree7,setAgree7] = React.useState(true)\n const [agree8,setAgree8] = React.useState(false)\n\n\n const [expand1,setExpand1] = React.useState(false)\n const [expand2,setExpand2] = React.useState(false)\n const [expand3,setExpand3] = React.useState(false)\n const [expand4,setExpand4] = React.useState(false)\n const [expand5,setExpand5] = React.useState(false)\n const [expand6,setExpand6] = React.useState(false)\n const [expand7,setExpand7] = React.useState(false)\n\n function StartSurvey() {\n \n saveAnswer()\n\n }\n\n function expandAll(){\n setExpand1(!expand1)\n setExpand2(!expand2)\n setExpand3(!expand3)\n setExpand4(!expand4)\n setExpand5(!expand5)\n setExpand6(!expand6)\n setExpand7(!expand7)\n }\n\n React.useEffect(()=>{\n if(agree7){\n setAgree8(false)\n }\n },[agree7])\n\n\treturn (\n\t\t\n \n \n \n \t\t\t{title}\n
Introduction
\n \t\t\t{intro}\n {language==1?FR1:EN1}\n\n expandAll()}>{language==1?'Développer tout':'Expand All'}\n\n {language==1?FR15:EN15} setExpand6(!expand6)}>\n \n

{language === 1 ? FR16 : EN16}

\n

{language === 1 ? FR17 : EN17}

\n

{language === 1 ? FR18 : EN18}

\n

{language === 1 ? FR19 : EN19}

\n

{language === 1 ? FR20 : EN20}

\n\n
\n\n setAgree6(!agree6)} checked={agree6}/>\n\n \n\n\n \n\n {language==1?FR2:EN2}setExpand1(!expand1)}>\n \n

{language==1?FR3:EN3}\n

\n
\n\n\n setAgree1(!agree1)} checked={agree1}/>\n\n {language==1?FR4:EN4} setExpand2(!expand2)}>\n \n

{language==1?FR5:EN5}\n\n

\n
\n\n\n setAgree2(!agree2)} checked={agree2}/>\n\n\n {language==1?FR6:EN6} setExpand3(!expand3)}>\n \n

{language==1?FR7:EN7}\n\n\n

\n
\n\n\n setAgree3(!agree3)} checked={agree3}/>\n\n\n {/* {language==1?FR23:EN23}\n \n

{language==1?FR24:EN24}\n\n\n

\n
*/}\n\n\n {/* setAgree7(true)} checked={agree7}/>\n setAgree7(false)} checked={agree7===false}/> */}\n{/* \n \n

\n {language==1?FR25:EN25}\n\n

\n setAgree8(!agree8)} checked={agree8}/>\n\n
*/}\n\n {language==1?FR8:EN8} setExpand4(!expand4)}>\n \n

{language==1?FR9:EN9}\n \n

\n \n
\n\n\n setAgree4(!agree4)} checked={agree4}/>\n\n\n {language==1?FR10:EN10} setExpand5(!expand5)}>\n \n

{language==1?FR11:EN11} \n

\n
\n {language==1?FR12:EN12}\n
\n\n

{language==1?FR13:EN13}

\n
\n\n setAgree5(!agree5)} checked={agree5}/>\n\n\n {language==1?FR21:EN21} setExpand7(!expand7)}>\n \n {language==1?FR22:EN22} \n\n \n\n \n

{language==1?FR14:EN14}

\n \t\t\t {language===1?'Commencer':'Begin'}\n
\n\t\t
\n\n\t\t)\n}\n\nexport default Intro\n\n\nconst Title = styled.div`\n\tfont-size: 26px;\n font-weight: bold;\n text-align:center;\n \n margin-bottom:15px;\n color:black;\n line-height:1.2;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 32px;\n margin-bottom:30px;\n line-height:1.3;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:${props=>props.expanded?'20px':0};\n max-height:${props=>props.expanded?'1000px':0};\n overflow:hidden;\n transition:all 1s ease-in-out;\n\n\n @media only screen and (min-width:992px){\n margin-bottom:${props=>props.expanded?'10px':'10px'};\n font-size: 18px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #E5B63D;\n color: white;\n font-size: 16px;\n font-weight: bold;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n margin-top:30px;\n margin-bottom:50px;\n\n ${(props) => !props.enabled && `\n opacity: 0.5;\n cursor:auto;\n pointer-events: none;\n `}\n`\n\nconst Container = styled.div`\n position:absolute;\n top:0%;\n width:100vw;\n padding:40px 20px;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media only screen and (min-width:768px){\n left: 0%;\n top:0%;\n }\n\n\n @media(min-height:)\n`\n\nconst T2 = styled.div`\n font-weight:bold;\n font-size:20px;\n margin-top:20px;\n margin-bottom:10px;\n align-items:center;\n justify-content:space-between;\n display:flex;\n width:100%;\n background-color:lightgrey;\n padding:10px;\n`\n\n\n\nconst Image = styled.img`\n position:absolute;\n top:-140px;\n left:-80px;\n height:250px;\n\n @media(max-width:768px){\n height:150px;\n top:-80px;\n left:0px;\n }\n`\n\nconst Content = styled.div`\n max-width:800px;\n position:relative;\n padding-top:50px;\n margin-top:60px;\n`\n\nconst Section = styled.div`\n font-weight:bold;\n font-size: 18px;\n line-height: 1.17;\n margin-bottom:5px;\n`\n\nconst Expand = styled.div`\n cursor:pointer;\n`\n\nconst All = styled.div`\n width:100%;\n display:flex;\n justify-content:flex-end;\n margin-top:20px;\n font-size: 18px;\n text-decoration:underline;\n cursor:pointer;\n`","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport format from \"date-fns/format\";\n\nconst End = ({ message, onTime,language }) => {\n const [endDate, setEndDate] = useState(Date())\n // console.log( message, onTime)\n\n\n useEffect(() => {\n if (onTime) {\n setEndDate(format(new Date(onTime), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [onTime])\n\n // const Start = format(onTime, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\n return (\n \n \n {message ? message :\n language==1?\n \"Il semble que nous ayons déjà reçu votre réponse à l'enquête\"\n :\n 'Looks like we have already recieved your survey response'\n }\n \n\n {endDate ? language==1?\n `Reçu le ${format(\n new Date(endDate.toLocaleString()),\n \"MMM do h:mm a\"\n )}`\n :`Received on ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}` : ''}\n \n \n\n\n \n\n )\n}\n\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:black;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\n\n\n\nconst Language = ({selected,setSelected,color}) =>{\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tsetSelected(0)} color={color}>EN\n\t\t\t\tsetSelected(1)} color={color}>FR\n\t\t\t\n\t\t\n\t\t)\n}\n\nexport default Language\n\n\n\nconst Container = styled.div`\n\tfont-family: 'Barlow', sans-serif;\n\tposition:absolute;\n\ttop:100px;\n\tright:250px;\n\n\t@media(max-width:1100px){\n\t\ttop:50px;\n\t\tright:100px;\n\t}\n\n\t@media(max-width:768px){\n\t\ttop:20px;\n\t\tright:20px;\n\t}\n\n\t@media(max-height:800px){\n\t\ttop:50px;\n\t}\n\n\t@media(max-width:376px){\n\t\theight:20px;\n\t\ttop:20px;\n\t}\n\n\t@media(max-height:550px){\n\t\ttop:20px;\n\t}\n\n`\n\nconst L1 = styled.div`\n\tfont-size:18px;\n\tcolor:${props=>props.selected? 'white':'black'};\n\tfont-weight:bold;\n\tmargin-right:10px;\n\tbackground-color:${props => props.selected ? 'rgba(0,0,0,0.3)':'white'};\n\tborder-radius:5px;\n\tcursor:pointer;\n\tpadding:10px;\n`\n\nconst Choices = styled.div`\n\tdisplay:flex;\n`\n\n// const Title = styled.div`\n// \tcolor:white;\n// \tfont-size:12px;\n// \tmargin-bottom:5px;\n// `","import React from 'react';\nimport styled, { keyframes } from 'styled-components';\n\n\nconst fadeInOut = keyframes`\n 0%, 20%, 70%, 100% {\n opacity: 0;\n }\n 21%, 69% {\n opacity: 1;\n }\n`;\n\nconst Container = styled.div`\n\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width:100%;\n `\n\nconst LogAnimationContainer = styled.div`\n height:50px;\n path {\n opacity: 0;\n animation: ${fadeInOut} 2s linear infinite;\n animation-fill-mode: forwards;\n }\n\n path:nth-child(1) {\n animation-delay: 0s;\n }\n\n path:nth-child(2) {\n animation-delay: 0.1s;\n }\n\n path:nth-child(3) {\n animation-delay: 0.2s;\n }\n\n path:nth-child(4) {\n animation-delay: 0.3s;\n }\n\n path:nth-child(5) {\n animation-delay: 0.4s;\n }\n`;\n\n\nconst LogAnimation = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n );\n};\n\nexport default LogAnimation;","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nimport Select from \"react-select\";\n\nconst CategoryQuestions = (props) => {\n\tconst {\n\t\t// key, \n\t\tsave, \n\t\tprevResponse,\n\t\tdata,\n\t\tname,\n\t\temployeeCategory,\n\t\tlanguage } = props\n\n\tconst [quesResponse, setQuesResponse] = useState(null)\n\tconst [formatOptions, setFormatOptions] = useState([])\n\n\n\tuseEffect(() => {\n\t\tif(language===1){\n\t\t\t\tsetFormatOptions(data.answers.map((item) => {\n\t\t\treturn {\n\t\t\t\ttext: 'fr'in item? item.fr_description? item.fr + ' - ' + item.fr_description:item.fr : item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t}\n\t\t\t}))\n\t\t}else{\n\t\t\tsetFormatOptions(data.answers.map((item) => {\n\t\t\t\t// console.log(item)\n\t\t\treturn {\n\t\t\t\ttext: item.description? item.name + ' - '+item.description:item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t}\n\t\t}))\n\t\t}\n\t}, [props]);\n\n\tuseEffect(() => {\n\t\tconst EmployeeCat = employeeCategory.find(\n\t\t\t(f) => f?.name === data?.name)\n\t\tsetQuesResponse(null)\n\t\tif (EmployeeCat) {\n\t\t\tsetQuesResponse(data.answers.filter(an => an.name === EmployeeCat.value\n\t\t\t).map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\ttext: item.name,\n\t\t\t\t\tvalue: item.id\n\t\t\t\t}\n\t\t\t})[0])\n\t\t}\n\t}, [employeeCategory, data]);\n\n\tuseEffect(() => {\n\t\tif (prevResponse?.response !== null) {\n\t\t\tif (!quesResponse) {\n\t\t\t\tsetQuesResponse(formatOptions.filter(so => so.value === prevResponse?.response)[0])\n\t\t\t}\n\t\t}\n\t}, [prevResponse, formatOptions, quesResponse]);\n\n\n\tconst next = () => {\n\t\tsave({\n\t\t\tid: data.id,\n\t\t\tresponse: quesResponse?.value,\n\t\t\t// question: data.question,\n\t\t\tsubfactor: data?.subfactor,\n\t\t\tpriority: data?.priority\n\t\t})\n\n\t\tsetQuesResponse(null)\n\t}\n\n\n\tconst checkDisabled = () =>{\n\t\treturn quesResponse === null || quesResponse === undefined\n\t}\n\n\tconst getQuestion = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t {language===1 && 'fr' in data? 'En relation avec':'In relation to'} {name}:\n\t\t\t\t{language===1 && 'fr' in data?data.fr:data.question}\n\t\t\t\t\n\t\t\t\t\t option.text}\n\t\t\t\t\t\tgetOptionValue={(option) => option.value}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)\n\t}\n\n\treturn (\n\t\t\n\t\t\t{getQuestion()}\n\t\t\t next()}\n\t\t\t\tdisabled={checkDisabled()}\n\t\t\t\tid=\"next\">\n\t\t\t\t{language==1?'Suivant':'Next'}\n\t\t\t\n\t\t\n\t)\n}\n\n\nexport default CategoryQuestions\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n width:100%;\n max-width:600px;\n\n @media only screen and (min-width: 768px) {\n padding: 20px;\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n \tpadding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\n\nconst DropDownContainer = styled.div`\n padding: 0px;\n left: 0%;\n top: 10%;\n\n width:600px;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: #E5B63D;\n border: 0;\n box-shadow: none;\n color:white ;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n\n :disabled {\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\nconst Name = styled.div`\n margin-bottom:5px;\n fontsize:10px;\n color:grey;\n font-family: \"Barlow\", sans-serif;\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = ({ title, subTitle }) => {\n\n return (\n \n
\n \n\n \n {title ? title : \"Survey completed\"}\n
\n \n {subTitle ? subTitle :\n \"This survey has been successfully submitted.\"}\n\n
\n\n )\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\n\nfunction isInt(value) {\n return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))\n}\n\n// const PrettoSlider = withStyles({\n// root: {\n// color: 'grey',\n// height: 8,\n// },\n// thumb: {\n// height: 24,\n// width: 24,\n// backgroundColor: '#FA675C',\n// color: '#FA675C',\n// border: '2px solid currentColor',\n// marginTop: -8,\n// marginLeft: -12,\n// '&:focus, &:hover, &$active': {\n// boxShadow: 'inherit',\n// },\n// },\n// active: {},\n// valueLabel: {\n// left: 'calc(-50% + 4px)',\n// },\n// track: {\n// height: 8,\n// borderRadius: 4,\n// },\n// rail: {\n// height: 8,\n// borderRadius: 4,\n// },\n// })(Slider);\n\n\nconst SliderQ = ({ preValue, saveResult,language }) => {\n\n const [res1, setRes1] = React.useState(0)\n // const [clicked, setClicked] = React.useState(false)\n const [isNA,setNA] = React.useState(false)\n\n let muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#E5B63D',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#E5B63D'\n },\n rail: {\n color: '#E5B63D'\n }\n }\n }})\n\n // console.log(preValue)\n // console.log(clicked)\n // console.log(preValue !== undefined)\n\n // React.useEffect(() => {\n // if (preValue === undefined || preValue === null) {\n // setRes1(0)\n // setClicked(false)\n // } else {\n // setRes1(preValue)\n // setClicked(true)\n // }\n // }, [preValue]);\n\n // function ClickedOnSlider(t) {\n // setClicked(true)\n // setRes1(t)\n // }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // setClicked(false)\n // }\n\n React.useEffect(() => {\n if (isInt(preValue)) {\n setRes1(preValue)\n // setClicked(true)\n }\n else {\n setRes1(0)\n // setClicked(false)\n }\n\n if(preValue==='N/A'){\n setNA(true)\n }else{\n setNA(false)\n }\n }, [preValue]);\n\n function ClickedOnSlider(t) {\n // setClicked(true)\n setRes1(t)\n \n }\n\n function commitSlide(t) {\n saveResult(t)\n \n }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // // setClicked(false)\n // }\n\n\n return (\n \n { }\n \n ClickedOnSlider(t)}\n onChangeCommitted={(e, t) => commitSlide(t)}\n />\n \n \n
{language===1?\"Pas du tout d'accord\":\"Strongly Disagree\"}
\n
{language===1?\"Neutre\":\"Neutral\"}
\n
{language===1?\"Tout à fait d'accord\":\"Strongly Agree\"}
\n
\n\n
\n saveResult('N/A')}>\n N/A\n
\n\n\n {/* save()}\n disabled={!clicked}\n id=\"next\">\n Next\n */}\n
\n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\n// const Button = styled.button`\n// height: 40px;\n// border-radius: 10px;\n// background-color: #6a00ff;\n// border: 0;\n// box-shadow: none;\n// color:white ;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n\n// :disabled {\n// background-color:lightgrey;\n// color:grey;\n// cursor:not-allowed;\n// opacity:0.5;\n// }\n\n\n// @media only screen and (min-width: 992px), (min-height: 760px) {\n// display: flex;\n// }\n// `;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`\n\nconst Scale = styled.div`\n width:calc(100% + 40px);\n margin-left:-20px;\n display:flex;\n justify-content:space-between;\n font-size:12px;\n`\n\nconst NA = styled.div`\n font-size: 12px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n background-color:${props=>props.selected? '#6a00ff':'lightgrey'};\n color:${props=>props.selected? 'white':'black'};\n height: 30px;\n border-radius: 10px;\n justify-content: center;\n align-items: center;\n display: flex;\n width:75px;\n margin-top:50px;\n cursor:pointer;\n opacity:0.8;\n margin-right:-20px;\n\n @media(max-width:768px){\n margin-right:-10px;\n }\n\n`","import React, { useEffect, useState } from \"react\";\n\nimport Slider from './Slider'\n\n\nimport styled from \"styled-components\";\n\n\nconst QuestionTemplate = ({ saveQuestionAnswer,\n question,\n response,name,language,onClick,showNext, goForward}) => {\n\n const [respValue, setRespValue] = useState(0)\n const [selectedButton, setSelectedButton] = useState(null);\n const [isBinary,setBinary] = useState(question?.binary)\n\n const handleButtonClick = (button) => {\n \n const response = {\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question.order,\n response: button === 'yes' ? 10 : 0,\n role: question?.role,\n reverse: question?.reverse,\n }\n \n setSelectedButton(button);\n saveQuestionAnswer(response)\n };\n\n\n\n const save = (resp) => {\n\n const response = {\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question.order,\n response: resp,\n role: question?.role,\n\t\t\treverse: question?.reverse,\n }\n\n saveQuestionAnswer(response)\n }\n // console.log(response)\n // console.log(question)\n // console.log(data)\n\n useEffect(() => {\n if (response) {\n setRespValue(response?.response)\n if(question.binary){\n setSelectedButton(response?.response===10?'yes':'no')\n }\n } else {\n setRespValue(null)\n }\n\n\n }, [response]);\n\n\n return (\n \n \n \n {language===1?'Retour':'Back'}\n {showNext && response!=undefined && {language===1?'Suivant':'Forward'}}\n \n \n {language===1? 'En relation avec':'In relation to'} {name}:\n {language===1?'fr' in question?question.fr:question?.question:question?.question}\n \n {isBinary?\n handleButtonClick('yes')}\n >\n {language===1?'Oui':'Yes'}\n \n handleButtonClick('no')}\n >\n {language===1?'Non':'No'}\n \n :\"\"}\n \n \n {!isBinary?\n save(resp)} />:\"\"}\n\n \n \n \n )\n}\n\n\n\n\nexport default QuestionTemplate\n\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n width:100%;\n max-width:650px;\n\n @media only screen and (min-width: 768px) {\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n padding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\n\nconst Name = styled.div`\n margin-bottom:5px;\n color:grey;\n font-family: \"Barlow\", sans-serif;\n`\n\nconst Container = styled.div`\n padding:30px;\n position:relative;\n width:100%;\n`\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top:30px;\n`;\n\nconst StyledButton = styled.button`\n background-color: ${props => props.selected ? '#E5B63D' : 'white'};\n color: ${props => props.selected ? 'white' : 'black'};\n border: 1px solid lightgrey;\n border-radius: 10px;\n padding: 12px 24px;\n width: 167px;\n height: 44px;\n margin: 0 15px; // 30px between buttons\n cursor: pointer;\n`;\n\nconst BackButton = styled.div`\ncolor:grey;\nfont-weight:400;\nfont-size: 14px;\nfont-family: \"Barlow\", sans-serif;\n\nborder-radius: 10px;\n justify-content: center;\nalign-items: center;\ndisplay: flex;\nwidth:75px;\n\ncursor:pointer;\nmargin-bottom:30px;\nmargin-left:-15px;\n`\nconst Controls = styled.div`\ndisplay:flex;\njustify-content:space-between;\nwidth:100%;\n\n`\n\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n\n// const SubmitButton = styled(Button)`\n// width: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n// // color: white;\n// // background-color: white;\n// color: #6A00FF;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// cursor: pointer;\n// `;\n\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nconst Comments = ({ saveCommentAnswer,\n question,\n response,language,onClick,goForward,showNext}) => {\n\n const [respValue, setRespValue] = useState('')\n\n const save = () => {\n saveCommentAnswer({\n id: question?.id,\n question: question?.question,\n ques_order: question?.order,\n binary: question?.binary,\n role: question?.role,\n response: respValue\n })\n }\n\n useEffect(() => {\n setRespValue('')\n if (response) {\n setRespValue(response?.response)\n }\n }, [response]);\n\n\treturn (\n\t\t\n \n {language===1?'Retour':'Back'}\n {showNext && response!=undefined && {language===1?'Suivant':'Forward'}}\n \n \n {language===1?question?.fr: question?.question}\n\t\t\tsetRespValue(e.target.value)}/>\n\n\t \n\t\t\n\t\t)\n}\n\nexport default Comments\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 768px) {\n padding: 20px;\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n padding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n font-family: 'Red Hat Display', sans-serif;\n background-color:#ededed;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: black;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: #E5B63D;\n border: 0;\n box-shadow: none;\n color:white ;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n\n :disabled {\n background-color:lightgrey;\n color:grey;\n cursor:not-allowed;\n opacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\n\nconst BackButton = styled.div`\ncolor:grey;\nfont-weight:400;\nfont-size: 14px;\nfont-family: \"Barlow\", sans-serif;\n\nborder-radius: 10px;\n justify-content: center;\nalign-items: center;\ndisplay: flex;\nwidth:75px;\n\ncursor:pointer;\nmargin-bottom:30px;\nmargin-left:-15px;\n`\nconst Controls = styled.div`\ndisplay:flex;\njustify-content:space-between;\nwidth:100%;\n\n`","import React, { useState, useEffect } from 'react'\n\n\nimport { useDispatch } from \"react-redux\";\n\nimport { Button, Header, Icon, Modal } from 'semantic-ui-react'\n\nimport {\n RESET_VALIDATION_TOKEN,\n UPDATE_BRIEF_RESPONSE_ANSWERS,\n SG_UPDATE_BRIEF_RESPONSE,\n // SG_UPDATE_BRIEF_RESPONSE_ANSWERS,\n} from \"constants/actions\";\n\nfunction ExistingDataFound({ \n briefResponseId,\n token,\n validationToken,\n setQuestionNo,\n setVisualQuestionNo,\n show = true,\n setShowIntro,\n setShowIntro2,\n storedResponse }) {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(false)\n\n const [validToken, setValidToken] = useState(false)\n const [timed, setTimed] = useState(false)\n const [defaultMessage, setDefaultMessage] = useState({\n header: \"Searching ...\",\n text: \"Looking for earlier response, please wait ...\"\n })\n\n useEffect(() => {\n setOpen(show)\n }, [show]);\n\n\n\n function ResetSurvey() {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n // validation_token: null,\n reset_stored_data : true, // makes validation_token null\n }\n })\n localStorage.removeItem(\"validation_token\");\n setOpen(false)\n dispatch(\n {\n type: RESET_VALIDATION_TOKEN,\n payload: false\n }\n )\n window.location.reload();\n }\n\n // console.log(validationToken)\n // console.log(storedResponse?.questionSequenceMap)\n // console.log(\"storedResponse?.validation_token\", storedResponse)\n // console.log(validationToken === storedResponse?.validation_token)\n // console.log(\"token\", token)\n useEffect(() => {\n const _validating = validationToken === storedResponse?.validation_token\n setTimed(false)\n const timer1 = setTimeout(() => {\n if (_validating) {\n setDefaultMessage({\n header: \"Exiting data found\",\n text: \"Would you like to resume from you last left off?\"\n })\n } else {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n // validation_token: null,\n reset_stored_data : true, // makes validation_token null\n }\n })\n localStorage.removeItem(\"validation_token\");\n setOpen(false)\n dispatch(\n {\n type: RESET_VALIDATION_TOKEN,\n payload: false\n }\n )\n window.location.reload();\n }\n setTimed(true)\n setValidToken(_validating)\n }, 2000);\n return () => clearTimeout(timer1);\n\n \n }, [dispatch, validationToken, token, briefResponseId, storedResponse]);\n\n function Continue() {\n dispatch({\n type: UPDATE_BRIEF_RESPONSE_ANSWERS,\n payload: storedResponse\n });\n setQuestionNo(storedResponse?.current_question)\n setShowIntro(storedResponse?.intro_completed)\n setOpen(false)\n\n if (storedResponse?.visual_question) {\n setVisualQuestionNo(storedResponse?.visual_question)\n }\n if (storedResponse?.intro2_completed) {\n setShowIntro2(storedResponse?.intro2_completed)\n }\n // dispatch({\n // type: UPDATE_BRIEF_RESPONSE_ANSWERS,\n // payload: {\n // ...storedResponse, \n // }\n // });\n\n }\n\n return (\n \n
\n\n {timed ? <>\n {validToken ?\n \n : \"\"\n }\n \n : \n }\n {defaultMessage?.header}\n\n
\n \n

\n {defaultMessage?.text}\n

\n
\n \n \n\n \n Load saved survey\n \n\n \n \n\n )\n}\n\nexport default ExistingDataFound","import React from 'react';\nimport styled from 'styled-components';\n\nconst End = (props) =>{\n const {title, intro, submitAnswer} = props\n\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t{intro}\n\t\t\tsubmitAnswer()} id=\"end\">{props.language===1?\"Envoyer\":\"Submit\"}\n\t\t\n\n\t\t)\n}\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:black;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #6a00ff;\n color: white;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n// import {REVERSE} from \"data/reverseScores\"\n\n\nconst CommentsFeedback = ({ ruleFeedback,\n setRuleFeedback,\n setRuleFeedbackComplete,\n language,\n textColor,\n setAskFeedback,\n setComplete,\n}) => {\n const [totalQues, setTotalQues] = useState(0)\n const [currQues, setCurrQues] = useState(0)\n const [respValue, setRespValue] = useState('')\n const [responseList, setResponseList] = useState([])\n const [getResponse, setGetResponse] = useState({})\n\n useEffect(() => {\n setTotalQues(ruleFeedback?.length)\n }, [ruleFeedback]);\n\n useEffect(() => {\n setGetResponse(ruleFeedback[currQues])\n }, [ruleFeedback, currQues]);\n \n const save = () => {\n const _resList = responseList\n _resList.push({\n ...getResponse,\n feedback: respValue,\n })\n setResponseList(_resList)\n\n if (currQues + 2 > totalQues) {\n setRuleFeedback(_resList)\n setRuleFeedbackComplete(true)\n setAskFeedback(false)\n setComplete(true)\n return\n }\n\n if (currQues + 1 <= totalQues) {\n setCurrQues(currQues + 1)\n }\n \n setRespValue('')\n // \n }\n\n\n\treturn (\n\t\t\n\t\t\t{language && language===1?getResponse?.fr: getResponse?.question} - Feedback {currQues + 1} / {totalQues}\n\t\t\tsetRespValue(e.target.value)}/>\n\n\t \n\t\t\n\t\t)\n}\n\nexport default CommentsFeedback\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props=>props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React, { useEffect, useState, useRef } from \"react\";\nimport Shapes from \"./Shapes\";\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport {\n SG_START_BRIEF_SURVEY,\n NEW_VALIDATION_TOKEN,\n RESET_VALIDATION_TOKEN,\n CLEAR_ALL,\n SG_POST_BRIEF_RESPONSE,\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n} from \"constants/actions\";\n\nimport {\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport Intro from \"./Intro\";\nimport SurveyMessage from \"./Message\";\nimport styled from \"styled-components\";\nimport { Icon, Loader } from \"semantic-ui-react\";\nimport Language from \"./Language\";\nimport LogoAnimation from \"survey/SurveyComponents/LogoAnimations\";\n\nimport CategoryQuestion from \"./Categories\";\n\nimport NoToken from \"./NoToken\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\";\n\nimport \"../survey.css\";\nimport QuestionTemplate from \"./Questions\";\nimport CommentTemplate from \"./Comments\";\nimport OtpExistingDataFound from \"survey/SurveyComponents/OtpExistingData\";\n\nimport Agreement from \"survey/SurveyComponents/Agreement\";\nimport End from \"./End\";\n\nimport { RunRules } from \"utilities/FeedbackRules\";\nimport CommentsFeedback from \"./CommentsFeedback\";\n\nconst categoryType = \"category\";\nconst questionsType = \"questions\";\nconst commentsType = \"comments\";\nconst submitButton = \"submitButton\"\n// // const categoryType = \"category\"\n// function setQuestionIds(questions) {\n\n// let questionId = 1;\n\n// // Find the maximum number of questions in any factor\n// let maxQuestions = 0;\n// for (let dimension of questions.dimensions) {\n// for (let factor of dimension.factors) {\n// maxQuestions = Math.max(maxQuestions, factor.questions.length);\n// }\n// }\n\n// // Loop through each question position\n// for (let questionIndex = 0; questionIndex < maxQuestions; questionIndex++) {\n// // Loop through each dimension\n// for (let dimension of questions.dimensions) {\n// // Loop through each factor within the dimension\n// for (let factor of dimension.factors) {\n// // If the current question index exists in this factor, set its id\n// if (factor.questions.length > questionIndex) {\n// factor.questions[questionIndex].id = questionId++;\n// }\n// }\n// }\n// }\n\n// \tconsole.log(questions)\n// }\n\nfunction hasMatch(list1, list2) {\n return list1.some(item => list2.includes(item));\n}\n\nconst arrange_Questions = (questions) => {\n // setQuestionIds(questions)\n if (questions?.dimensions) {\n return questions.dimensions\n .map((item, i) => {\n return item.factors.map((factor, f) => {\n return factor.questions.map((q, idx) => {\n return {\n question: q.q,\n dimension: i,\n factor: f,\n q: idx,\n binary: q?.binary,\n role: q.role,\n reverse: q.reverse,\n order: q.id,\n fr: q.fr,\n };\n });\n });\n })\n .flat()\n .flat()\n .sort((a, b) => a.order - b.order);\n }\n};\n\nconst OtpSurvey = () => {\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n // const search = window.location.search;\n // const params = new URLSearchParams(search);\n // const token = params.get(\"token\");\n // token is not query string but a param\n // const VALIDATION_TOKEN = localStorage.getItem(\"validation_token\");\n let [searchParams, setSearchParams] = useSearchParams();\n const direct_language = Number(searchParams.get(\"language\"));\n\n let { token } = useParams();\n\n const [direction, setDirection] = useState(1);\n const [showPrev, setShowPrev] = useState(true);\n const [showNext, setShowNext] = useState(false);\n // const [location, setLocation] = useState(0)\n const [showIntro, setShowIntro] = useState(false);\n const [noResponse, setNoResponse] = useState(false);\n const [delayedShow, setDelayedShow] = useState(true);\n const elementRef = useRef(null);\n\n const [defaultMessage, setDefaultMessage] = useState({\n title: \"Survey completed\",\n subTitle: \"This survey has been successfully submitted\",\n });\n //\n const [totalQuestions, setTotalQuestions] = useState({\n total: 0,\n runningTotal: 0,\n questions: 0,\n culture: 0,\n sequence: {},\n });\n const [questions, setQuestions] = useState([]);\n const [categoryQues, setCategoryQues] = useState([]);\n const [employeeCategory, setEmployeeCategory] = useState([]);\n const [employeePermissionExtraDet, setEmployeePermissionExtraDet] = useState(\n []\n );\n //\n const [briefResponse, setBriefResponse] = useState([]);\n const [questionNo, setQuestionNo] = useState(0);\n const [visualQuestionNo, setVisualQuestionNo] = useState(1);\n //\n const [prevResponse, setPrevResponse] = useState({});\n const [checkResponse, setCheckResponse] = useState(false);\n\n const [checkRole, setCheckRole] = useState(false);\n\n const [questionAnswers, setQuestionAnswers] = useState({\n categories: {},\n comments: {},\n questions: {},\n });\n\n const [surveyFeedbackResp, setSurveyFeedbackResp] = useState(false);\n const [surveyPersonalityResp, setSurveyPersonalityResp] = useState({});\n const [surveyModularResp, setSurveyModularResp] = useState(false);\n\n const [ruleFeedback, setRuleFeedback] = useState(false);\n const [ruleFeedbackComplete, setRuleFeedbackComplete] = useState(true);\n const [askFeedback, setAskFeedback] = useState(false);\n\n const [thankMessage, setThankMessage] = useState(false);\n const [complete, setComplete] = useState(false);\n\n const [surveyStatus, setSurveyStatus] = useState(0);\n const [resetAnswers, setResetAnswers] = useState(false);\n const [surveyDeleted, setSurveyDeleted] = useState(false);\n const [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\n // stored persisting response\n const [validationToken, setValidationToken] = useState(false);\n const [briefResponseId, setBriefResponseId] = useState(false);\n const [storedResponseFound, setStoredResponseFound] = useState(false);\n\n const [primaryCategory, setPrimaryCategory] = useState(false);\n const [neverAskResponse, setNeverAskResponse] = useState(false);\n const [prevFoundResponse, setPrevFoundResponse] = useState(false);\n\n const [consentProvided, setConsentProvided] = useState(false);\n const [language, setLanguage] = useState(0);\n const [showLanguage, setShowLanguage] = useState(false);\n\n const [submitError, setSubmitError] = useState(false);\n\n const [askComments, setAskComments] = useState(false);\n // const [organizationInfo, setOrganizationInfo] = useState(false)\n\n const { get_brief_response, get_errors } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n get_errors: state.errors,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n if (direct_language === 1) {\n setLanguage(direct_language);\n }\n }, [direct_language]);\n\n // question no based on role skip logic\n // step 1 set role\n // console.log(get_brief_response?.response?.employee_category)\n // console.log(questionAnswers?.categories)\n // step 1 set role\n useEffect(() => {\n // if (questionAnswers?.categories) {\n // \tconst CatRes = Object.values(questionAnswers?.categories)\n // \tsetCheckRole(CatRes.filter(ct => ct.priority === \"secondary\")?.[0]?.response)\n // }\n // get_brief_response?.response?.employee_category\n if (get_brief_response?.response?.employee_category) {\n const CatRes = get_brief_response?.response?.employee_category;\n setCheckRole(\n CatRes.filter((ct) => ct.priority === \"secondary\")?.[0]?.value\n );\n }\n }, [get_brief_response.response.employee_category]);\n\n useEffect(() => {\n if (get_brief_response?.response?.questions?.comments) {\n if (get_brief_response?.response?.questions?.comments?.length > 0) {\n setAskComments(get_brief_response?.response?.questions?.comments);\n }\n }\n setBriefResponseId(get_brief_response?.id);\n }, [get_brief_response]);\n\n useEffect(() => {\n if (get_brief_response) {\n setQuestions(arrange_Questions(get_brief_response?.response?.questions));\n setEmployeeCategory(get_brief_response?.response?.employee_category);\n setEmployeePermissionExtraDet(\n get_brief_response?.response?.employee_permission_extra_details\n );\n setCategoryQues(\n get_brief_response?.response?.culture_questions?.sort(\n (a, b) => a?.id - b?.id\n )\n );\n }\n\n if (get_brief_response?.response?.questions?.language) {\n setShowLanguage(true);\n // console.log(get_brief_response)\n }\n }, [get_brief_response]);\n\n useEffect(() => {\n setRuleFeedbackComplete(true);\n const RuleRun = RunRules({ questions, get_brief_response });\n // console.log(RuleRun)\n if (RuleRun.length > 0) {\n setRuleFeedbackComplete(false);\n }\n setRuleFeedback(RuleRun);\n }, [get_brief_response, questions]);\n\n useEffect(() => {\n let _id = \"\";\n let _response = 0;\n let subfactorFound = false;\n let _subfactor = null;\n const SurveyName = get_brief_response?.response?.survey_name;\n\n if (get_brief_response?.response?.primary_question) {\n get_brief_response.response.primary_question.map((pq) => {\n _id = pq.id;\n if (pq?.subfactor) {\n subfactorFound = true;\n }\n pq &&\n pq.answers.map((aq) => {\n if (aq?.name === SurveyName) {\n if (subfactorFound) {\n _subfactor = aq?.id;\n _response = aq?.parent_id;\n } else {\n _response = aq?.id;\n }\n }\n return null;\n });\n return null;\n });\n }\n\n setPrimaryCategory({\n id: _id,\n response: _response,\n subfactor: _subfactor,\n priority: \"primary\",\n });\n }, [get_brief_response]);\n\n //skip questions\n useEffect(() => {\n // const rolesList = [];\n const _seq = {};\n // add category question nos to list\n const _prevResp = {};\n const _neverAskResp = {};\n\n let running_total = 0;\n let total = 0;\n let CatLength = 0;\n // let visualQuestion = 0;\n if (categoryQues) {\n categoryQues.map((q, v) => {\n if (q?.input === \"always_ask\") {\n // console.log(q)\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `always_ask ${q.id}`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n visualQuestion: total,\n };\n return null;\n }\n\n if (q?.input === \"ask_if_not_found\") {\n // setPrevFoundResponse\n const _empCat = employeeCategory.filter(\n (ec) => ec.name === q.name\n )?.[0]?.value;\n if (_empCat) {\n const _response = q.answers.filter((rq) => rq.name === _empCat)?.[0]\n ?.id;\n running_total += 1;\n CatLength += 1;\n total += 0;\n _seq[running_total] = {\n from: `ask_if_not_found ${q.id}`,\n quesType: categoryType,\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n _prevResp[running_total] = {\n id: q.id,\n response: _response,\n priority: q.priority,\n };\n } else {\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `ask_if_not_found ${q.id}`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n visualQuestion: total,\n };\n }\n return null;\n }\n\n if (q?.input === \"never_ask\") {\n const _empCat = employeeCategory.filter(\n (ec) => ec?.name === q?.name\n )?.[0]?.value_id;\n // console.log(q)\n running_total += 1;\n CatLength += 1;\n total += 0;\n _seq[running_total] = {\n from: `never_ask ${q.id}`,\n quesType: categoryType,\n skip: true,\n sno: running_total,\n visualQuestion: total,\n };\n\n _neverAskResp[running_total] = {\n id: q.id,\n response: _empCat ? _empCat : null,\n priority: q.priority,\n };\n return null;\n }\n // employee category\n\n // employee persona in employee permission\n // employeePermissionExtraDet?.persona\n\n if (!q?.input) {\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `undefined`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n visualQuestion: total,\n };\n }\n return null;\n });\n }\n\n setPrevFoundResponse(_prevResp);\n setNeverAskResponse(_neverAskResp);\n\n // console.log(\"questions\", questions)\n\n let quesLength = 0;\n if (questions) {\n questions.map((q, v) => {\n // if DTE ask those if matchin the id in employee category\n // \"id\": \"15ff32d0-256d-42e0-82fb-b2c83c8d6b79\",\n // \"name\": \"DTE\",\n\n const _empCat = [employeeCategory.filter(\n (ec) => ec?.name_id === \"15ff32d0-256d-42e0-82fb-b2c83c8d6b79\"\n )?.[0]?.value_id,\n employeeCategory.filter(\n (ec) => ec?.name_id === \"e322040c-13ae-427b-8765-4f759a341eaa\"\n )?.[0]?.value_id]\n\n if (q?.role) {\n // so if there is role in the question it just checks for role nothing else\n if (hasMatch(q?.role, _empCat)) {\n // console.log(\"This list included role\", _empCat)\n // Item exists in the array\n running_total += 1;\n quesLength += 1;\n total += 1;\n // console.log(\"Item ADDED! DTE ***************************\", running_total, _empCat);\n _seq[running_total] = {\n from: `question for DTE role ADDED ${_empCat}`,\n quesType: questionsType,\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n // skip if not founnd\n }\n else {\n // console.log(\"This list included rolesList?.length > 0 and no empcat\", _empCat)\n running_total += 1;\n quesLength += 1;\n // total += 0\n // console.log(\"Item NOT ADDED! DTE ***************************\", running_total, _empCat);\n _seq[running_total] = {\n from: `question for DTE role NOT ADDED ${_empCat}`,\n quesType: questionsType,\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n }\n // console.log(\"Item found! DTE *************************** BINARY\", q?.order);\n // console.log(\"Item found! DTE *************************** BINARY\", q?.binary);\n // console.log(\"Item found! DTE *************************** BINARY\", employeePermissionExtraDet?.persona);\n // console.log(q?.order)\n\n if (\n q?.binary === true &&\n employeePermissionExtraDet?.persona === \"Culture Leader\"\n ) {\n // Item exists in the array\n\n running_total += 1;\n quesLength += 1;\n total += 1;\n // console.log(\"Item ADDED! === Culture Leader *************************** BINARY\", running_total, employeePermissionExtraDet?.persona);\n\n _seq[running_total] = {\n from: `question for binary ADDED ${employeePermissionExtraDet?.persona}`,\n quesType: questionsType,\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n } else if (\n q?.binary === true &&\n employeePermissionExtraDet?.persona !== \"Culture Leader\"\n ) {\n // Item exists in the array\n running_total += 1;\n quesLength += 1;\n // if (q?.order === 50) {\n // \tconsole.log(\"#########################################################################\", running_total)\n // \tconsole.log(\"q?.binary\", q?.binary)\n // \tconsole.log(\"employeePermissionExtraDet?.persona\", employeePermissionExtraDet?.persona)\n // \tconsole.log((q?.binary === true && employeePermissionExtraDet?.persona === \"Culture Leader\")? \"true\": \"false\")\n // \tconsole.log((q?.binary === true && employeePermissionExtraDet?.persona !== \"Culture Leader\")? \"true\": \"false\")\n // \tconsole.log(\"#########################################################################\")\n // }\n\n // total += 0\n // console.log(\"Item NOT ADDED! !== Culture Leader ************************************* BINARY\", running_total, employeePermissionExtraDet?.persona);\n _seq[running_total] = {\n from: `question for binary NOT ADDED ${employeePermissionExtraDet?.persona}`,\n quesType: questionsType,\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n // console.log(\"checkRole\", checkRole);\n\n if (checkRole) {\n if (q?.role) {\n if (q?.role?.includes(checkRole)) {\n // console.log(\"included checkRole\", checkRole);\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question for specific role\",\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n } else {\n // console.log(\"NO checkRole\", checkRole);\n running_total += 1;\n quesLength += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question not inlcuded role specifics\",\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n } else {\n // console.log(\"question without role \", checkRole);\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question without role\",\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n } else {\n // console.log(\"no role checked \", checkRole);\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"no role checked\",\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n });\n }\n\n // console.log(employeePermissionExtraDet?.persona)\n\n let commLength = 0;\n if (askComments) {\n askComments.map((q, v) => {\n\n const _empCat = [employeeCategory?.filter(\n (ec) => ec?.name_id === \"15ff32d0-256d-42e0-82fb-b2c83c8d6b79\"\n )?.[0]?.value_id,\n employeeCategory?.filter(\n (ec) => ec?.name_id === \"e322040c-13ae-427b-8765-4f759a341eaa\"\n )?.[0]?.value_id]\n\n if (q?.role) {\n // so if there is role in the question it just checks for role nothing else\n if (hasMatch(q?.role, _empCat)) {\n // console.log(\"This list included role\", _empCat)\n // Item exists in the array\n\n running_total += 1;\n quesLength += 1;\n commLength += 1;\n total += 1;\n\n _seq[running_total] = {\n from: `This question is added due to conditional role formatting`,\n quesType: commentsType,\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n // skip if not founnd\n }\n else {\n // console.log(\"This list included rolesList?.length > 0 and no empcat\", _empCat)\n running_total += 1;\n quesLength += 1;\n // total += 0\n // console.log(\"Item NOT ADDED! DTE ***************************\", running_total, _empCat);\n _seq[running_total] = {\n from: `question NOT ADDED, due to exclusion from role`,\n quesType: commentsType,\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n }\n\n\n\n if (q?.binary && q?.binary === true) {\n // if binary ask only to Culture Leaders\n if (employeePermissionExtraDet?.persona === \"Culture Leader\") {\n // Item exists in the array\n running_total += 1;\n quesLength += 1;\n commLength += 1;\n total += 1;\n // console.log(\"Item Comment Culture Leader && Binary *************************** BINARY\", running_total, employeePermissionExtraDet?.persona);\n _seq[running_total] = {\n from: `question for comment binary ${q?.binary} and culture leader ${employeePermissionExtraDet?.persona}`,\n quesType: commentsType,\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n } else {\n if (employeePermissionExtraDet?.persona !== \"Culture Leader\") {\n running_total += 1;\n quesLength += 1;\n commLength += 1;\n total += 1;\n // console.log(\"Item Comment ADDED! Non Binary and No Culture Leader *************************** NON BINARY\", running_total, employeePermissionExtraDet?.persona);\n _seq[running_total] = {\n from: `question for comment non binary ${q?.binary} and non culture leader ${employeePermissionExtraDet?.persona}`,\n quesType: commentsType,\n skip: false,\n sno: running_total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n }\n }\n\n running_total += 1;\n quesLength += 0;\n // total += 0\n // console.log(\"Item Comment NOT ADDED! !== Culture Leader ************************************* BINARY\", running_total, employeePermissionExtraDet?.persona);\n _seq[running_total] = {\n from: `no binary information ${q?.binary} and personal detai ${employeePermissionExtraDet?.persona}`,\n quesType: commentsType,\n skip: true,\n sno: running_total,\n total,\n q_order: q?.order,\n visualQuestion: total,\n };\n return null;\n });\n }\n\n running_total += 1;\n // submit questin\n _seq[running_total] = {\n from: `submit button`,\n quesType: submitButton,\n skip: false,\n sno: running_total,\n total,\n visualQuestion: total,\n };\n\n setTotalQuestions({\n total: total,\n runningTotal: running_total,\n questions: quesLength,\n category: CatLength, // add primaryCategory\n comments: commLength,\n sequence: _seq,\n });\n }, [\n questions,\n categoryQues,\n askComments,\n checkRole,\n employeeCategory,\n employeePermissionExtraDet,\n ]);\n\n // console.log(totalQuestions?.sequence?.[questionNo])\n // console.log(\"questionNo\", questionNo)\n // console.log(\"totalQuestions?.sequence\", totalQuestions?.sequence)\n // console.log(\"totalQuestions.category\", totalQuestions)\n // console.log(\"totalQuestions\", totalQuestions)\n // if (totalQuestions?.sequence) {\n // \t// console.log(totalQuestions.sequence.filter(qq => qq.skip === false).map(cc => cc.sno))\n // }\n\n // if (employeeCategory) {\n // \tconsole.log(\"employeeCategory DTE\", employeeCategory.filter(ec => ec?.name_id === '15ff32d0-256d-42e0-82fb-b2c83c8d6b79')?.[0]?.value_id)\n // }\n\n // console.log(\"Item found! employeePermissionExtraDet?.persona\", employeePermissionExtraDet?.persona)\n // if the number of questions changes based on responses\n // reset or remove the older questions which were answered\n useEffect(() => {\n setResetAnswers(true);\n }, [totalQuestions.total]);\n\n useEffect(() => {\n if (resetAnswers && questionAnswers?.categories !== undefined) {\n setResetAnswers(false);\n let _quesAns = questionAnswers;\n\n setQuestionAnswers({\n categories: _quesAns?.categories,\n questions: {},\n comments: {},\n });\n }\n }, [resetAnswers, questionAnswers, dispatch, totalQuestions, questionNo]);\n\n function nextQuestion() {\n let _questionNo = questionNo + 1;\n\n if (_questionNo <= totalQuestions?.runningTotal) {\n // Run this code block if _questionNo is less than or equal to totalQuestions.runningTotal\n while (_questionNo <= totalQuestions?.runningTotal) {\n // console.log(\"next ------------------------------\");\n if (totalQuestions.sequence[_questionNo]?.skip) {\n _questionNo++;\n // console.log(\"next _questionNo\", _questionNo);\n } else {\n // console.log(\"next ------------------------------++++++++++++++++++\", _questionNo);\n setQuestionNo(_questionNo);\n setVisualQuestionNo(totalQuestions.sequence[_questionNo]?.visualQuestion);\n return;\n }\n }\n }\n\n // If we reach this point, it means _questionNo is greater than totalQuestions.runningTotal\n setQuestionNo(totalQuestions?.runningTotal);\n setComplete(true);\n }\n // console.log(totalQuestions.sequence)\n // \tconsole.log(\"skip question\", totalQuestions.sequence[questionNo])\n\n function prevQuestion() {\n let _questionNo = questionNo - 1;\n while (_questionNo >= 1) {\n if (totalQuestions.sequence[_questionNo]?.skip) {\n _questionNo--;\n } else if (totalQuestions.sequence[_questionNo]?.skip === false) {\n setQuestionNo(_questionNo);\n setVisualQuestionNo(totalQuestions.sequence[_questionNo]?.visualQuestion);\n return;\n }\n }\n }\n\n const goForward = () => {\n if (briefResponse?.high_answer >= questionNo) {\n setPrevResponse(null);\n setDirection(1);\n if (questionNo + 1 <= totalQuestions.runningTotal) {\n nextQuestion();\n setComplete(false);\n setCheckResponse(true);\n } else {\n setComplete(true);\n }\n }\n };\n\n // console.log(\"totalQuestions\", totalQuestions)\n\n const goBack = () => {\n if (questionNo > 1) {\n setDirection(0);\n setPrevResponse(null);\n setComplete(false);\n prevQuestion();\n if (questionNo === totalQuestions.runningTotal) {\n if (questionNo === briefResponse?.current_question) {\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload: {\n current_question: 0,\n current_answer: 0,\n complete: false,\n },\n });\n } else {\n // prevQuestion();\n setCheckResponse(true);\n }\n } else {\n // prevQuestion();\n setCheckResponse(true);\n }\n }\n };\n\n function PreCloseSurvey() {\n if (questionNo + 1 <= totalQuestions.runningTotal) {\n nextQuestion();\n return false;\n } else {\n if (!ruleFeedbackComplete) {\n // console.log(\"no feedback close this\")\n setAskFeedback(true);\n return false;\n }\n setAskFeedback(false);\n setComplete(true);\n return true;\n }\n }\n\n // console.log(get_brief_response?.response?.stored_response?.high_answer > 2)\n // console.log(get_brief_response?.id)\n // console.log(get_brief_response?.response)\n // console.log(\"storedresponseFound\", storedResponseFound)\n useEffect(() => {\n if (get_brief_response?.response?.id) {\n\t\t\tsetNoResponse(false)\n\t\t} else {\n\t\t\tsetNoResponse(true)\n\t\t}\n }, [get_brief_response]);\n\n useEffect(() => {\n // setStoredResponseFound(false);\n // if (VALIDATION_TOKEN) {\n // if (get_brief_response?.response?.validation_token) {\n // if (get_brief_response?.response?.stored_response) {\n // setStoredResponseFound(true);\n // }\n // }\n // }\n if (get_brief_response?.validation_token) {\n // console.log(\"get_brief_response?.validation_token\", get_brief_response?.validation_token)\n setValidationToken(get_brief_response?.validation_token);\n if (get_brief_response?.response?.stored_response?.high_answer > 2) {\n // console.log(\"get_brief_response?.response?.stored_response?.high_answer > 2\", get_brief_response?.response?.stored_response?.high_answer)\n setStoredResponseFound(true);\n } else {\n setStoredResponseFound(false);\n }\n } else {\n setStoredResponseFound(false);\n setValidationToken(false);\n }\n }, [\n get_brief_response.validation_token,\n get_brief_response.response.stored_response,\n ]);\n\n // // primary Response\n // useEffect(() => {\n // \tsetStoredResponseFound(false)\n // \tif (get_brief_response?.response?.validation_token) {\n // \t\tif (get_brief_response?.response?.stored_response?.high_answer > 4) {\n // \t\t\t// if clicked once it showing_stored_response === true, show only if its false\n // \t\t\t// it resets to false on refresh\n // \t\t\tif (showingStoredResponse === false) {\n // \t\t\t\tif (VALIDATION_TOKEN === get_brief_response?.response?.validation_token) {\n // \t\t\t\t\tsetStoredResponseFound(true)\n // \t\t\t\t}\n // \t\t\t}\n // \t\t}\n // \t}\n\n // }, [get_brief_response.response, showingStoredResponse]);\n\n // console.log(get_brief_response?.response?.stored_response?.answers?.categories?.[questionNo])\n // console.log(get_brief_response?.response?.stored_response?.answers?.questions?.[questionNo])\n // console.log(get_brief_response?.response?.stored_response?.answers?.comments?.[questionNo])\n\n useEffect(() => {\n setPrevResponse(null);\n if (questionNo) {\n const QueType = totalQuestions?.sequence?.[questionNo]?.quesType;\n // console.log(QueType)\n if (QueType === categoryType) {\n setPrevResponse(get_brief_response?.answers?.categories?.[questionNo]);\n }\n if (QueType === questionsType) {\n setPrevResponse(get_brief_response?.answers?.questions?.[questionNo]);\n }\n if (QueType === commentsType) {\n setPrevResponse(get_brief_response?.answers?.comments?.[questionNo]);\n }\n }\n }, [totalQuestions, get_brief_response.answers, questionNo]);\n\n // console.log(\"get_brief_response?.high_answer\", get_brief_response?.high_answer)\n // console.log(\"totalQuestions?.total\", totalQuestions?.total)\n // console.log(\"questionNo\", questionNo)\n // console.log(\"setShowPrev\", showPrev)\n // console.log(\"totalQuestions?.sequence\", totalQuestions?.sequence)\n console.log(\"questionAnswers\", questionAnswers)\n\n useEffect(() => {\n setShowPrev(false);\n setShowNext(false);\n setBriefResponse(get_brief_response);\n if (questionNo) {\n if (questionNo > 1) {\n if (totalQuestions?.sequence?.[questionNo - 1]) {\n setShowPrev(true);\n }\n\n if (questionNo <= get_brief_response?.high_answer) {\n if (questionNo < totalQuestions?.runningTotal) {\n setShowNext(true);\n }\n }\n }\n }\n setSurveyDeleted(\n get_brief_response?.to_delete ? get_brief_response?.to_delete : false\n );\n setSurveyDeletedOn(\n get_brief_response?.deleted_on ? get_brief_response?.deleted_on : false\n );\n setSurveyStatus(\n get_brief_response?.survey_status ? get_brief_response?.survey_status : 0\n );\n setShowIntro(get_brief_response?.intro_completed);\n\n if (get_brief_response?.response?.stored_response?.answers) {\n setQuestionAnswers(\n get_brief_response?.response?.stored_response?.answers\n );\n }\n\n setSurveyFeedbackResp(\n get_brief_response?.response?.stored_response?.feedback\n );\n setSurveyModularResp(\n get_brief_response?.response?.stored_response?.modular_response\n );\n setSurveyPersonalityResp(\n get_brief_response?.response?.stored_response?.survey_personality\n );\n }, [get_brief_response, questionNo, totalQuestions]);\n\n useEffect(() => {\n // Run! Like go get some data from an API.\n if (token) {\n dispatch({\n type: SG_START_BRIEF_SURVEY,\n payload: `?token=${token}`,\n });\n }\n }, [dispatch, token]);\n\n useEffect(() => {\n const timer1 = setTimeout(() => {\n setDelayedShow(get_brief_response?.pending);\n }, 1000);\n return () => clearTimeout(timer1);\n }, [get_brief_response]);\n\n // console.log(\"totalQuestions?.total\", totalQuestions?.total)\n // console.log(\"totalQuestions\", totalQuestions)\n // console.log(\"questionAnswers\", questionAnswers)\n\n // if (questionAnswers) {\n // let questCount = 0\n // let catCount = 0\n // let commCount = 0\n // if (questionAnswers?.questions) {\n // questCount = Object.values(questionAnswers?.questions)?.length\n // }\n // if (questionAnswers?.categories) {\n // catCount = Object.values(questionAnswers?.categories)?.length\n // }\n // if (questionAnswers?.comments) {\n // commCount = Object.values(questionAnswers?.comments)?.length\n // }\n // // console.log(\"questCount + catCount + commCount\", questCount + catCount + commCount)\n // // console.log(\"totalQuestions?.total > questCount + catCount + commCount \",(\n // // totalQuestions?.total >\n // // (questCount + catCount + commCount)\n // // ))\n // }\n\n\n function submitAnswer() {\n const CompleteCategories = {\n ...questionAnswers?.categories,\n ...prevFoundResponse,\n ...neverAskResponse,\n };\n if (CompleteCategories) {\n CompleteCategories[0] = primaryCategory;\n }\n let questCount = 0;\n let catCount = 0;\n let commCount = 0;\n if (questionAnswers) {\n if (questionAnswers?.questions) {\n questCount = Object.values(questionAnswers?.questions)?.length;\n }\n if (questionAnswers?.categories) {\n catCount = Object.values(questionAnswers?.categories)?.length;\n }\n if (questionAnswers?.comments) {\n commCount = Object.values(questionAnswers?.comments)?.length;\n }\n }\n if (totalQuestions?.total && questionAnswers?.questions) {\n if (totalQuestions?.total > questCount + catCount + commCount) {\n setSubmitError(\n \"There was error in the answers, mostly likely there was an interruption when you were trying to complete the survey. Please try again!\"\n );\n return;\n }\n }\n let _completeCategories = [];\n if (CompleteCategories) {\n _completeCategories = Object.values(CompleteCategories);\n }\n\n let _completeQuestions = [];\n if (questionAnswers.questions) {\n _completeQuestions = Object.values(questionAnswers.questions);\n }\n\n let _completeComments = [];\n if (questionAnswers.comments) {\n _completeComments = Object.values(questionAnswers.comments);\n }\n // const surveyComponents = get_brief_response?.modular_response;\n // console.log(CompleteCategories)\n // console.log(questionAnswers)\n const payload = {\n survey_token: briefResponse?.survey_token,\n debrief_schedule: briefResponse?.debrief_schedule,\n employee: briefResponse?.employee,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n },\n full_response: {\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n // feedback: ruleFeedback,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n },\n },\n };\n // console.log(payload)\n\n dispatch({\n type: SG_POST_BRIEF_RESPONSE,\n payload,\n });\n\n dispatch({\n type: RESET_VALIDATION_TOKEN,\n payload: null,\n });\n dispatch({\n type: CLEAR_ALL,\n payload: null,\n });\n\n setThankMessage(true);\n }\n\n // console.log(\"briefResponseId\", briefResponseId)\n\n const IntroQuestionAnswer = () => {\n let CatLength = 0;\n if (categoryQues) {\n CatLength = categoryQues?.length;\n }\n const NewValidationToken = uuidv4();\n\n const payload = {\n current_question: CatLength > 0 ? 0 : 1,\n current_answer: 0,\n high_answer: 0,\n answers: {\n categories: {},\n questions: {},\n comments: {},\n },\n complete: false,\n intro_completed: true,\n validation_token: NewValidationToken,\n modular_response: get_brief_response?.modular_response,\n };\n\n setDirection(1);\n if (!validationToken) {\n localStorage.setItem(\"validation_token\", NewValidationToken);\n dispatch({\n type: NEW_VALIDATION_TOKEN,\n payload: NewValidationToken,\n });\n }\n\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload: {\n total_categories: CatLength,\n total_questions: totalQuestions?.runningTotal,\n current_category: CatLength > 0 ? 1 : 0,\n category_answer: 0,\n high_category: 0,\n total_question_map: totalQuestions,\n ...payload,\n validation_token: NewValidationToken,\n },\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}&start=true`,\n validation_token: NewValidationToken,\n payload: { ...payload, validation_token: NewValidationToken },\n },\n });\n }\n setShowIntro(true);\n nextQuestion();\n };\n\n const saveCategoryAnswer = (response) => {\n // console.log(response)\n let _answers = questionAnswers.categories;\n setDirection(1);\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n\n setQuestionAnswers({\n categories: _answers,\n questions: questionAnswers?.questions,\n comments: questionAnswers?.comments,\n });\n\n let _complete = PreCloseSurvey();\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n questions: questionAnswers?.questions,\n comments: questionAnswers?.comments,\n categories: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n validation_token: validationToken,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: validationToken,\n stored_response: payload,\n },\n });\n }\n };\n\n function saveQuestionAnswer(response) {\n\n let _answers = questionAnswers.questions;\n setDirection(1);\n\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n setQuestionAnswers({\n categories: questionAnswers?.categories,\n comments: questionAnswers?.comments,\n questions: _answers,\n });\n\n let _complete = PreCloseSurvey();\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n categories: questionAnswers?.categories,\n comments: questionAnswers?.comments,\n questions: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n validation_token: validationToken,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n // dispatch({\n // \ttype: UPDATE_BRIEF_RESPONSE,\n // \tpayload\n // });\n\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: validationToken,\n stored_response: payload,\n },\n });\n }\n }\n\n const saveCommentAnswer = (response) => {\n let _answers = questionAnswers.comments;\n setDirection(1);\n\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n\n setQuestionAnswers({\n categories: questionAnswers?.categories,\n questions: questionAnswers?.questions,\n comments: _answers,\n });\n\n let _complete = PreCloseSurvey();\n setComplete(_complete);\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n categories: questionAnswers?.categories,\n questions: questionAnswers?.questions,\n comments: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n validation_token: validationToken,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: validationToken,\n stored_response: payload,\n },\n });\n }\n goForward()\n };\n\n useEffect(() => {\n if (get_errors?.errors?.error?.request?.response) {\n let RESP = JSON.parse(get_errors?.errors?.error?.request?.response);\n setSubmitError(RESP?.detail);\n }\n }, [get_errors]);\n\n useEffect(() => {\n // setPageLoading(true);\n setDefaultMessage({\n title: \"Looking for Survey\",\n subTitle: \"Please wait while we try and get that survey loaded\",\n });\n const timer1 = setTimeout(() => {\n setDefaultMessage({\n title: \"No Survey details found\",\n subTitle:\n \"Unfortunately we have not been retrive any information on this survey\",\n });\n }, 5000);\n return () => clearTimeout(timer1);\n }, [noResponse]);\n\n const getTextColor = () => {\n return \"#4048FF\";\n };\n\n // console.log(\"totalQuestions?.category\", totalQuestions?.category)\n // console.log(questions)\n\n const get_french_name = () => {\n const french_name = get_brief_response.response?.emp_survey_structure?.survey_structure.fr\n if(french_name){\n return french_name\n }\n\n return get_brief_response.response?.survey_name\n }\n\n const get_english_name = () => {\n const en_name = get_brief_response.response?.emp_survey_structure?.survey_structure.name\n if(en_name){\n return en_name\n }\n\n return get_brief_response.response?.survey_name\n }\n\n const Main_section = () => {\n // const introText = \"Innerlogic processes your personal data and aggregates responses on behalf of OTP. Your personal data is never directly personally identifiable to your NSO and is only ever presented in an anonymized fashion. Please consult our privacy statement for further details.\"\n const consentText =\n \"I hereby give consent for Own the Podium or designate research partner to use anonymized and aggregated user data only in the further development of culture of excellence programming for the benefit of the high performance sport community in Canada. Do you agree with your personal data being processed as described above and in our privacy statement? You must click accept in order to give your feedback.\";\n const EndTextFR =\n \"Vous avez répondu à toutes les questions de ce sondage. Merci de soumettre vos réponses.\";\n\n const customAgreement = (\n setConsentProvided(checked)}\n type={\"OTP\"}\n hasConsented={consentProvided}\n />\n );\n\n const IntroText = () => {\n if (language == 1) {\n return (\n
\n

\n {get_french_name()} s’engage à\n l’optimisation de la culture de haute performance de son programme\n de l’équipe nationale. La santé physique et psychologique et la\n sécurité de tous les participants et participantes au programme\n sont aussi importants que la performance. Ainsi,{\" \"}\n {get_french_name()} appuyé par À nous le\n podium, entreprend l’audit et l’évaluation de sa culture sportive.{\" \"}\n

\n

\n Compte tenu de votre rôle au sein du programme, vous avez été\n choisi•e pour participer à un sondage. L’évaluation de la culture\n est un exercice complexe ; veuillez prévoir de 30 à 45 minutes\n pour compléter le sondage. Vos réponses seront sauvegardées si\n vous avez besoin d’y revenir plus tard. Toutefois, le lien pour le\n sondage ne fonctionnera qu’à partir de l’appareil que vous avez\n utilisé pour y accéder. Ceci assure l’anonymat et limite chaque\n répondant•e à une seule soumission au sondage.{\" \"}\n

\n\n

\n Vos réponses honnêtes et réfléchies sont essentielles pour\n comprendre l’état actuel de la culture du programme. Toutes les\n réponses demeureront anonymes pour favoriser des réflexions\n sincères et franches.{\" \"}\n

\n
\n );\n }\n\n return (\n
\n

\n {get_english_name()} is committed to\n optimizing the high performance culture of its National Team\n Program. The physical and psychological health and safety of\n everyone involved in the program are of equal importance to\n performance. As such, {get_english_name()} is\n engaging in a sport culture audit and assessment supported by Own\n the Podium.{\" \"}\n

\n

\n Given your role within the program, you have been selected to\n participate in a survey. Assessing culture is complex; therefore,\n you can anticipate the survey taking approximately 30-45 minutes to\n complete. Your responses will be saved if you need to come back at a\n later date, but you will only be able to access the survey from the\n link on the original device you used. This is to ensure anonymity\n while restricting each respondent to one submission only.{\" \"}\n

\n\n

\n Your honest and thoughtful responses are critical for understanding\n the current cultural status of the program. All responses will\n remain anonymous to encourage openness and candor while answering\n each question.{\" \"}\n

\n
\n );\n };\n\n if (!showIntro) {\n // ask for existing data in storage\n if (storedResponseFound) {\n return (\n \n );\n }\n return (\n }\n setShowIntro={setShowIntro}\n saveAnswer={IntroQuestionAnswer}\n consentText={consentText}\n consentCheckedCb={(response) => setConsentProvided(response)}\n customElement={customAgreement}\n surveyEnabled={consentProvided}\n elementRef={elementRef}\n language={language}\n />\n );\n }\n\n if (complete) {\n return (\n submitAnswer()}\n intro={\n language === 1\n ? EndTextFR\n : \"You have completed all the questions in this survey. Please submit your responses\"\n }\n />\n );\n }\n if (totalQuestions?.sequence[questionNo]?.quesType === submitButton) {\n return (\n submitAnswer()}\n intro={\n language === 1\n ? EndTextFR\n : \"You have completed all the questions in this survey. Please submit your responses\"\n }\n />\n );\n }\n\n if (askFeedback) {\n return (\n submitAnswer()}\n setAskFeedback={setAskFeedback}\n setComplete={setComplete}\n />\n );\n }\n\n if (totalQuestions?.sequence[questionNo]?.quesType === categoryType) {\n return (\n \n );\n }\n\n if (totalQuestions?.sequence[questionNo]?.quesType === questionsType) {\n return (\n saveQ(r)}\n saveQuestionAnswer={saveQuestionAnswer}\n response={prevResponse}\n name={language==1?get_french_name():get_english_name()}\n question={\n questions.filter(\n (q) => q.order === totalQuestions?.sequence[questionNo]?.q_order\n )[0]\n }\n language={language}\n onClick={goBack}\n showNext={showNext}\n goForward={goForward}\n />\n );\n }\n if (totalQuestions?.sequence[questionNo]?.quesType === commentsType) {\n return (\n saveQ(r)}\n saveCommentAnswer={saveCommentAnswer}\n response={prevResponse}\n language={language}\n question={\n askComments.filter(\n (q) => q.order === questionNo - totalQuestions?.category\n )[0]\n }\n onClick={goBack}\n showNext={showNext}\n goForward={goForward}\n />\n );\n }\n\n return ;\n };\n\n if (delayedShow) {\n return (\n \n \n \n \n \n \n \n );\n }\n\n // set this before no token or no response, this is set by useState\n if (thankMessage) {\n const ThanksMessageFR = \"Merci pour votre réponse au sondage\";\n return (\n \n \n \n \n \n \n \n );\n }\n\n if (!token) {\n return ;\n }\n if (noResponse) {\n // console.log(\n // \"i am here missing something !token | !get_brief_response.id | noResponse\",\n // noResponse\n // );\n return (\n \n \n {defaultMessage.title == \"Looking for Survey\" ? (\n \n \n Loading\n \n
\n ) : (\n \n )}\n \n \n );\n }\n\n if (submitError) {\n return (\n \n \n \n \n \n \n \n );\n }\n\n if (surveyDeleted) {\n return (\n \n \n \n \n \n \n \n );\n }\n\n return (\n \n \n \n {Main_section()}\n \n \n {showLanguage ? (\n \n ) : (\n \"\"\n )}\n\n \n \n
\n CAAT\n {visualQuestionNo || 1 }{\" \"}\n {language == 1 ? \"de\" : \"of\"} {totalQuestions?.total} questions\n
\n
\n \n \n \n
\n\n \n \n );\n};\n\nexport default OtpSurvey;\n\nconst Container = styled.div`\n height: ${(props) => props.height};\n min-height: 100vh;\n width: 100vw;\n display: flex;\n flex-direction: row;\n align-items: center;\n font-family: \"Barlow\", sans-serif;\n position: relative;\n`;\n\nconst CounterContainer = styled.div`\n position: fixed;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n background-color: grey;\n border-radius: 5px;\n z-index: 1;\n\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 14px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n padding: 5px 10px;\n font-size: 12px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: -5px;\n font-size: 14px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;\n\nconst ModuleContainer = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n max-height: 100vh;\n overflow: hidden;\n\n @media (max-height: 875px) and (max-width: 768px) {\n align-items: flex-start;\n top: 125px;\n max-height: calc(100vh - 125px);\n }\n\n @media (max-height: 550px) {\n align-items: flex-start;\n top: 75px;\n max-height: calc(100vh - 75px);\n }\n`;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nimport S1 from './s1.svg'\nimport S2 from './s2.svg'\n\nimport S3 from './s3.svg'\n\n\n\n\nconst Shapes = () =>{\n\n\n\treturn (\n\t\t\n\t\t\t\n\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\n\n\t\t\t\n\t\t\n\t\t)\n}\n\n\nexport default Shapes\n\n\n\nconst Container = styled.div`\n\twidth:100vw;\n\theight:300px;\n\tdisplay:flex;\n\talign-items:flex-end;\n\tposition:relative;\n\tz-index:-1;\n\n\t@media(max-width:1300px){\n\t\theight:200px;\n\t}\n\n\t@media(max-width:768px){\n\t\theight:150px;\n\t}\n\n\t\n`\n\n\nconst Shape1 = styled.img`\n\twidth:50%;\n\n\tposition:absolute;\n`\n\nconst Shape2 = styled.img`\n\tposition:absolute;\n\tright:0%;\n\twidth:55%;\n\theight:80%;\n`\n\nconst Shape3 = styled.img`\n\tposition:absolute;\n\tright:0%;\n\theight:100%;\n`\n\nconst Wrapper = styled.div`\n\tposition:fixed;\n\tbottom:0;\n\tz-index:-1;\n\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Checkbox from '../SurveyComponents/Checkbox'\n import Logo from 'assets/images/caat.png'\n import { Icon } from \"semantic-ui-react\";\n import { Link } from \"react-router-dom\";\n\n\nconst EN1 = \"You will not be able to proceed with the assessment until you have checked the following boxes:*\"\nconst FR1 = \"Vous ne pourrez pas commencer l’évaluation avant d’avoir coché les cases suivantes :*\"\n\nconst EN2 = \"Anonymity Statement\"\nconst FR2 = \"Déclaration d’anonymité\"\n\nconst EN3 = `The Culture Assessment and Audit survey does not collect any direct (i.e., name, email address) \n or indirect (i.e., role) identifiers that link responses to an individual. A minimum of three data points \n per role is required in the analysis to ensure that individual responses cannot be identified. All responses \n will be reported anonymously and data will be aggregated to ensure objectivity.`\nconst FR3 = \"Le sondage de l’évaluation et de l’audit de la culture ne recueille aucun identifiant direct (ex. : nom, courriel) ou indirect (ex. : rôle) qui pourrait relier les réponses à une personne. Un minimum de trois points de données par rôle est nécessaire pour assurer que les réponses individuelles ne peuvent être identifiées. Toutes les réponses seront rapportées anonymement et les données seront regroupées pour assurer l’objectivité.\"\n\n\nconst EN4 = \"Confidentiality Statement\"\nconst FR4 = \"Déclaration de protection de la vie privée\"\n\nconst EN5 = \"Your responses will be held in strict confidentiality and only anonymous, aggregate data will be used in reports for your NSO, Culture and Wellness Facilitators, and/or Own The Podium. \"\nconst FR5 = \"Vos réponses seront strictement confidentielles et seules des données anonymes et regroupées seront utilisées dans l’élaboration de rapports à l’intention de votre ONS, de vos facilitateurs de culture et de bien-être et/ou À nous le podium.\"\n\nconst EN6 = \"Informed Consent\"\nconst FR6 = \"Consentement éclairé\"\n\nconst EN7 = \"I hereby give consent for the Culture and Wellness Facilitators to access anonymized and aggregated user data strictly in the further development of the CWF role by promoting collaboration, support and sharing of best practices. An individual’s responses cannot be identified. \"\nconst FR7 =\"Par la présente, je consens à l’accès aux données d’utilisateur anonymes et regroupées par les facilitateurs de culture et de bien-être, uniquement aux fins du développement du rôle de FCB pour favoriser la collaboration, le soutien et le partage des meilleures pratiques. Les réponses d’une personne particulière ne peuvent être identifiées.\"\n\nconst EN8 =\"Secondary Use\"\nconst FR8 =\"Usage secondaire\"\n\nconst EN9 =\"I hereby give consent for Own the Podium or designate research partner to use anonymized and aggregated user data strictly in the further development of culture of excellence programming for the benefit of the high performance sport community in Canada. All direct and indirect identifiers, including sport, will be removed. An individual’s responses and the NSO’s results cannot be identified.\"\nconst FR9 =\"Par la présente, je consens à ce qu’À nous le podium ou un partenaire de recherche désigné utilise des données d’utilisateur anonymes et regroupées, uniquement aux fins du développement de la programmation de la culture d’excellence à l’intention de la communauté du sport de haut niveau au Canada. Tous les identifiants directs et indirects, incluant le sport, seront supprimés. Les réponses d’une personne et les résultats d’un ONS ne pourront être identifiés. \"\n\nconst EN10 = \"Privacy Agreement\"\nconst FR10 =\"Entente de confidentialité\"\n\nconst EN11 = \"We are committed to maintaining the accuracy, confidentiality, and security of your personally identifiable information. \"\nconst FR11 = \"Nous nous engageons à maintenir l’exactitude, la confidentialité et la sécurité de vos renseignements permettant d’identifier une personne.\"\n\nconst EN12 = \"Privacy Statement\"\nconst FR12 =\"Énoncé de confidentialité\"\n\nconst EN13 =\"Do you agree with your personal data being processed as described above and in our privacy statement? You must click accept to participate in this survey.\"\nconst FR13 =\"Êtes-vous d’accord que vos données personnelles soient traitées tel que décrit ci-dessus et dans notre énoncé de confidentialité ? Vous devez cliquer pour accepter afin de participer à ce sondage.\"\n\nconst EN14 = \"If you have any questions or concerns regarding your participation in this survey, please contact your NSO Contact [NSO contact\"\nconst FR14 = \"Si vous avez des questions ou des préoccupations au sujet de votre participation à ce sondage, veuillez communiquer avec [contact de l’ONS].\"\n\n// English variables\nconst EN15 = \"Potential Risks of Participation:\";\nconst EN16 = \"The Culture Assessment and Audit survey includes questions regarding mental and physical health and wellbeing, psychological safety, and Safe Sport.\";\nconst EN17 = (
We appreciate hearing from you about your experience and encourage your honesty in your response. Due to the anonymity of the survey, we are unable to follow up to any claims. Therefore, it is not an appropriate method to report harm.
);\nconst EN18 = (
If the topics in this survey cause you any emotional or psychological stress, you can find sport-specific resources through the Canadian Centre for Mental Health and Sport or through Game Plan at mentalhealth@mygameplan.ca
);\nconst EN19 = (
The Canadian Sport Helpline is a national toll-free sport helpline that offers assistance to victims or witnesses of harassment, abuse or discrimination. The anonymous, confidential and independent bilingual service provides a space for individuals to share and validate their concerns, obtain advice on required next steps, and be referred to appropriate resources for follow up. They can be accessed via phone, text email or live chat from 8AM to 8PM ET 7 days a week. https://abuse-free-sport.ca info@abuse-free-sport.ca 1-888-837-7678
);\nconst EN20 = (
The Sport Dispute Resolution Centre of Canada (SDRCC), provides tools and information to help prevent and resolve disputes at the highest levels of the Canadian sport system. You can learn more information about these services at http://www.crdsc-sdrcc.ca
);\n\n// French variables\nconst FR15 = \"Risques potentiels à la participation:\";\nconst FR16 = \"Le questionnaire d'évaluation et d'audit de la culture (CAAT) comprend des questions sur la santé mentale et physique et le bien-être, la sécurité psychologique et le sport sécuritaire.\";\nconst FR17 = (
Nous souhaitons que vous nous fassiez part de votre expérience et encourageons votre honnêteté dans vos réponses. Cette évaluation est entièrement anonyme. C’est pourquoi nous ne pourrons donner suite à aucune plainte. Par conséquent, ce n'est pas une méthode appropriée pour signaler un abus ou un préjudice.
);\nconst FR18 = (
Si les sujets abordés dans ce questionnaire vous causent un stress émotionnel ou psychologique, vous pouvez trouver des ressources spécifiques au sport via le Centre canadien de la santé mentale et du sport ou via Plan de Match à mentalhealth@mygameplan.ca
);\nconst FR19 = (\n
\n La Ligne d’Assistance du Sport Canadien est une ligne d'assistance nationale sans frais pour le sport qui offre de l'aide aux victimes ou aux témoins de harcèlement, d'abus ou de discrimination. Le service bilingue anonyme, confidentiel et indépendant offre un espace où les personnes peuvent partager et valider leurs préoccupations, obtenir des conseils sur les prochaines étapes requises et être référées aux ressources appropriées pour un suivi. Elles sont accessibles par téléphone, courriel, texto ou clavardage en direct de 8 h à 20 h HE, 7 jours sur 7. https://sport-sans-abus.ca/ligne-dassistance info@sport-sans-abus.ca 1-888-837-7678\n
\n);\n\nconst FR20 = (\n
\n Le Centre de règlement des différends sportifs du Canada (CRDSC) fournit des outils et des renseignements pour aider à prévenir et à résoudre les différends aux plus hauts niveaux du système sportif canadien. Vous pouvez en savoir plus sur ces services à http://www.crdsc-sdrcc.ca\n
\n);\n\n\n\nconst Intro = ({saveAnswer, title, intro,customElement,surveyEnabled,elementRef,language }) =>{\n\n const [agree1,setAgree1] = React.useState(false)\n const [agree2,setAgree2] = React.useState(false)\n const [agree3,setAgree3] = React.useState(false)\n const [agree4,setAgree4] = React.useState(false)\n const [agree5,setAgree5] = React.useState(false)\n const [agree6,setAgree6] = React.useState(false)\n\n\n const [expand1,setExpand1] = React.useState(false)\n const [expand2,setExpand2] = React.useState(false)\n const [expand3,setExpand3] = React.useState(false)\n const [expand4,setExpand4] = React.useState(false)\n const [expand5,setExpand5] = React.useState(false)\n const [expand6,setExpand6] = React.useState(false)\n\n function StartSurvey() {\n \n saveAnswer()\n\n }\n\n function expandAll(){\n setExpand1(!expand1)\n setExpand2(!expand2)\n setExpand3(!expand3)\n setExpand4(!expand4)\n setExpand5(!expand5)\n setExpand6(!expand6)\n }\n\n\treturn (\n\t\t\n \n \n \n \t\t\t{title}\n
Introduction
\n \t\t\t{intro}\n\n\n expandAll()}>{language==1?'Développer tout':'Expand All'}\n {language==1?FR15:EN15} setExpand6(!expand6)}>\n \n

{language === 1 ? FR16 : EN16}

\n

{language === 1 ? FR17 : EN17}

\n

{language === 1 ? FR18 : EN18}

\n

{language === 1 ? FR19 : EN19}

\n

{language === 1 ? FR20 : EN20}

\n\n
\n\n setAgree6(!agree6)} checked={agree6}/>\n\n {language==1?FR1:EN1}\n\n\n \n\n {language==1?FR2:EN2}setExpand1(!expand1)}>\n \n

{language==1?FR3:EN3}\n

\n
\n\n\n setAgree1(!agree1)} checked={agree1}/>\n\n {language==1?FR4:EN4} setExpand2(!expand2)}>\n \n

{language==1?FR5:EN5}\n\n

\n
\n\n\n setAgree2(!agree2)} checked={agree2}/>\n\n\n {language==1?FR6:EN6} setExpand3(!expand3)}>\n \n

{language==1?FR7:EN7}\n\n\n

\n
\n\n\n setAgree3(!agree3)} checked={agree3}/>\n\n {language==1?FR8:EN8} setExpand4(!expand4)}>\n \n

{language==1?FR9:EN9}\n\n\n

\n
\n\n\n setAgree4(!agree4)} checked={agree4}/>\n\n\n {language==1?FR10:EN10} setExpand5(!expand5)}>\n \n

{language==1?FR11:EN11} \n

\n
\n {language==1?FR12:EN12}\n
\n\n

{language==1?FR13:EN13}

\n
\n\n setAgree5(!agree5)} checked={agree5}/>\n\n\n \n

{language==1?FR14:EN14}

\n \t\t\t {language===1?'Commencer':'Begin'}\n
\n\t\t
\n\n\t\t)\n}\n\nexport default Intro\n\n\nconst Title = styled.div`\n\tfont-size: 26px;\n font-weight: bold;\n text-align:center;\n \n margin-bottom:15px;\n color:black;\n line-height:1.2;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 32px;\n margin-bottom:30px;\n line-height:1.3;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:${props=>props.expanded?'20px':0};\n max-height:${props=>props.expanded?'1000px':0};\n overflow:hidden;\n transition:all 1s ease-in-out;\n\n\n @media only screen and (min-width:992px){\n margin-bottom:${props=>props.expanded?'10px':'10px'};\n font-size: 18px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #E5B63D;\n color: white;\n font-size: 16px;\n font-weight: bold;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n margin-top:30px;\n margin-bottom:50px;\n\n ${(props) => !props.enabled && `\n opacity: 0.5;\n cursor:auto;\n pointer-events: none;\n `}\n`\n\nconst Container = styled.div`\n position:absolute;\n top:0%;\n width:100vw;\n padding:40px 20px;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media only screen and (min-width:768px){\n left: 0%;\n top:0%;\n }\n\n\n @media(min-height:)\n`\n\nconst T2 = styled.div`\n font-weight:bold;\n font-size:20px;\n margin-top:20px;\n margin-bottom:10px;\n align-items:center;\n justify-content:space-between;\n display:flex;\n width:100%;\n background-color:lightgrey;\n padding:10px;\n`\n\n\n\nconst Image = styled.img`\n position:absolute;\n top:-140px;\n left:-80px;\n height:250px;\n\n @media(max-width:768px){\n height:150px;\n top:-80px;\n left:0px;\n }\n`\n\nconst Content = styled.div`\n max-width:800px;\n position:relative;\n padding-top:50px;\n margin-top:60px;\n`\n\nconst Section = styled.div`\n font-weight:bold;\n font-size: 18px;\n line-height: 1.17;\n margin-bottom:5px;\n`\n\nconst Expand = styled.div`\n cursor:pointer;\n`\n\nconst All = styled.div`\n width:100%;\n display:flex;\n justify-content:flex-end;\n margin-top:20px;\n font-size: 18px;\n text-decoration:underline;\n cursor:pointer;\n`","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport format from \"date-fns/format\";\n\nconst End = ({ message, onTime,language }) => {\n const [endDate, setEndDate] = useState(Date())\n // console.log( message, onTime)\n\n\n useEffect(() => {\n if (onTime) {\n setEndDate(format(new Date(onTime), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [onTime])\n\n // const Start = format(onTime, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\n return (\n \n \n {message ? message :\n language==1?\n \"Il semble que nous ayons déjà reçu votre réponse à l'enquête\"\n :\n 'Looks like we have already recieved your survey response'\n }\n \n\n {endDate ? language==1?\n `Reçu le ${format(\n new Date(endDate.toLocaleString()),\n \"MMM do h:mm a\"\n )}`\n :`Received on ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}` : ''}\n \n \n\n\n \n\n )\n}\n\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:black;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\n\n\n\nconst Language = ({selected,setSelected,color}) =>{\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tsetSelected(0)} color={color}>EN\n\t\t\t\tsetSelected(1)} color={color}>FR\n\t\t\t\n\t\t\n\t\t)\n}\n\nexport default Language\n\n\n\nconst Container = styled.div`\n\tfont-family: 'Barlow', sans-serif;\n\tposition:absolute;\n\ttop:100px;\n\tright:250px;\n\n\t@media(max-width:1100px){\n\t\ttop:50px;\n\t\tright:100px;\n\t}\n\n\t@media(max-width:768px){\n\t\ttop:20px;\n\t\tright:20px;\n\t}\n\n\t@media(max-height:800px){\n\t\ttop:50px;\n\t}\n\n\t@media(max-width:376px){\n\t\theight:20px;\n\t\ttop:20px;\n\t}\n\n\t@media(max-height:550px){\n\t\ttop:20px;\n\t}\n\n`\n\nconst L1 = styled.div`\n\tfont-size:18px;\n\tcolor:${props=>props.selected? 'white':'black'};\n\tfont-weight:bold;\n\tmargin-right:10px;\n\tbackground-color:${props => props.selected ? 'rgba(0,0,0,0.3)':'white'};\n\tborder-radius:5px;\n\tcursor:pointer;\n\tpadding:10px;\n`\n\nconst Choices = styled.div`\n\tdisplay:flex;\n`\n\n// const Title = styled.div`\n// \tcolor:white;\n// \tfont-size:12px;\n// \tmargin-bottom:5px;\n// `","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nimport Select from \"react-select\";\n\nconst CategoryQuestions = (props) => {\n\tconst {\n\t\t// key, \n\t\tsave, \n\t\tprevResponse,\n\t\tdata,\n\t\tname,\n\t\temployeeCategory,\n\t\tlanguage } = props\n\n\tconst [quesResponse, setQuesResponse] = useState(null)\n\tconst [formatOptions, setFormatOptions] = useState([])\n\n\tuseEffect(() => {\n\t\tif(language===1){\n\t\t\t\tsetFormatOptions(data.answers.map((item) => {\n\t\t\treturn {\n\t\t\t\ttext: 'fr'in item? item.fr_description? item.fr + ' - ' + item.fr_description:item.fr : item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t}\n\t\t\t}))\n\t\t}else{\n\t\t\tsetFormatOptions(data.answers.map((item) => {\n\t\t\t\t// console.log(item)\n\t\t\treturn {\n\t\t\t\ttext: item.description? item.name + ' - '+item.description:item.name,\n\t\t\t\tvalue: item.id,\n\t\t\t}\n\t\t}))\n\t\t}\n\t}, [props]);\n\n\tuseEffect(() => {\n\t\tconst EmployeeCat = employeeCategory.find(\n\t\t\t(f) => f?.name === data?.name)\n\t\tsetQuesResponse(null)\n\t\tif (EmployeeCat) {\n\t\t\tsetQuesResponse(data.answers.filter(an => an.name === EmployeeCat.value\n\t\t\t).map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\ttext: item.name,\n\t\t\t\t\tvalue: item.id\n\t\t\t\t}\n\t\t\t})[0])\n\t\t}\n\t}, [employeeCategory, data]);\n\n\tuseEffect(() => {\n\t\tif (prevResponse?.response !== null) {\n\t\t\tif (!quesResponse) {\n\t\t\t\tsetQuesResponse(formatOptions.filter(so => so.value === prevResponse?.response)[0])\n\t\t\t}\n\t\t}\n\t}, [prevResponse, formatOptions, quesResponse]);\n\n\n\tconst next = () => {\n\t\tsave({\n\t\t\tid: data.id,\n\t\t\tresponse: quesResponse?.value,\n\t\t\t// question: data.question,\n\t\t\tsubfactor: data?.subfactor,\n\t\t\tpriority: data?.priority\n\t\t})\n\n\t\tsetQuesResponse(null)\n\t}\n\n\n\tconst checkDisabled = () =>{\n\t\treturn quesResponse === null || quesResponse === undefined\n\t}\n\n\tconst getQuestion = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t {language===1 && 'fr' in data? 'En relation avec':'In relation to'} {name}:\n\t\t\t\t{language===1 && 'fr' in data?data.fr:data.question}\n\t\t\t\t\n\t\t\t\t\t option.text}\n\t\t\t\t\t\tgetOptionValue={(option) => option.value}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)\n\t}\n\n\treturn (\n\t\t\n\t\t\t{getQuestion()}\n\t\t\t next()}\n\t\t\t\tdisabled={checkDisabled()}\n\t\t\t\tid=\"next\">\n\t\t\t\t{language==1?'Suivant':'Next'}\n\t\t\t\n\t\t\n\t)\n}\n\n\nexport default CategoryQuestions\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n width:100%;\n max-width:600px;\n\n @media only screen and (min-width: 768px) {\n padding: 20px;\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n \tpadding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\n\nconst DropDownContainer = styled.div`\n padding: 0px;\n left: 0%;\n top: 10%;\n\n width:600px;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: #E5B63D;\n border: 0;\n box-shadow: none;\n color:white ;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n\n :disabled {\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\nconst Name = styled.div`\n margin-bottom:5px;\n fontsize:10px;\n color:grey;\n font-family: \"Barlow\", sans-serif;\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = ({ title, subTitle }) => {\n\n return (\n \n
\n \n\n \n {title ? title : \"Survey completed\"}\n
\n \n {subTitle ? subTitle :\n \"This survey has been successfully submitted.\"}\n\n
\n\n )\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\n\nfunction isInt(value) {\n return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))\n}\n\n// const PrettoSlider = withStyles({\n// root: {\n// color: 'grey',\n// height: 8,\n// },\n// thumb: {\n// height: 24,\n// width: 24,\n// backgroundColor: '#FA675C',\n// color: '#FA675C',\n// border: '2px solid currentColor',\n// marginTop: -8,\n// marginLeft: -12,\n// '&:focus, &:hover, &$active': {\n// boxShadow: 'inherit',\n// },\n// },\n// active: {},\n// valueLabel: {\n// left: 'calc(-50% + 4px)',\n// },\n// track: {\n// height: 8,\n// borderRadius: 4,\n// },\n// rail: {\n// height: 8,\n// borderRadius: 4,\n// },\n// })(Slider);\n\n\nconst SliderQ = ({ preValue, saveResult,language }) => {\n\n const [res1, setRes1] = React.useState(0)\n // const [clicked, setClicked] = React.useState(false)\n const [isNA,setNA] = React.useState(false)\n\n let muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#E5B63D',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#E5B63D'\n },\n rail: {\n color: '#E5B63D'\n }\n }\n }})\n\n // console.log(preValue)\n // console.log(clicked)\n // console.log(preValue !== undefined)\n\n // React.useEffect(() => {\n // if (preValue === undefined || preValue === null) {\n // setRes1(0)\n // setClicked(false)\n // } else {\n // setRes1(preValue)\n // setClicked(true)\n // }\n // }, [preValue]);\n\n // function ClickedOnSlider(t) {\n // setClicked(true)\n // setRes1(t)\n // }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // setClicked(false)\n // }\n\n React.useEffect(() => {\n if (isInt(preValue)) {\n setRes1(preValue)\n // setClicked(true)\n }\n else {\n setRes1(0)\n // setClicked(false)\n }\n\n if(preValue==='N/A'){\n setNA(true)\n }else{\n setNA(false)\n }\n }, [preValue]);\n\n function ClickedOnSlider(t) {\n // setClicked(true)\n setRes1(t)\n \n }\n\n function commitSlide(t) {\n saveResult(t)\n \n }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // // setClicked(false)\n // }\n\n\n return (\n \n { }\n \n ClickedOnSlider(t)}\n onChangeCommitted={(e, t) => commitSlide(t)}\n />\n \n \n
{language===1?\"Aucune preuve\":\"No Evidence\"}
\n
{language===1?\"Neutre\":\"Neutral\"}
\n
{language===1?\"Preuve forte\":\"Strong Evidence\"}
\n
\n\n
\n saveResult('N/A')}>\n N/A\n
\n\n\n {/* save()}\n disabled={!clicked}\n id=\"next\">\n Next\n */}\n
\n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\n// const Button = styled.button`\n// height: 40px;\n// border-radius: 10px;\n// background-color: #6a00ff;\n// border: 0;\n// box-shadow: none;\n// color:white ;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n\n// :disabled {\n// background-color:lightgrey;\n// color:grey;\n// cursor:not-allowed;\n// opacity:0.5;\n// }\n\n\n// @media only screen and (min-width: 992px), (min-height: 760px) {\n// display: flex;\n// }\n// `;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`\n\nconst Scale = styled.div`\n width:calc(100% + 40px);\n margin-left:-20px;\n display:flex;\n justify-content:space-between;\n font-size:12px;\n`\n\nconst NA = styled.div`\n font-size: 12px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n background-color:${props=>props.selected? '#6a00ff':'lightgrey'};\n color:${props=>props.selected? 'white':'black'};\n height: 30px;\n border-radius: 10px;\n justify-content: center;\n align-items: center;\n display: flex;\n width:75px;\n margin-top:50px;\n cursor:pointer;\n opacity:0.8;\n margin-right:-20px;\n\n @media(max-width:768px){\n margin-right:-10px;\n }\n\n`","import React, { useEffect, useState } from \"react\";\n\nimport Slider from './Slider'\n\n\nimport styled from \"styled-components\";\n\n\nconst QuestionTemplate = ({ \n saveQuestionAnswer,\n question,\n response, name, language }) => {\n\n const [respValue, setRespValue] = useState(0)\n\n const save = (resp) => {\n // console.log(resp)\n saveQuestionAnswer({\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question?.order,\n response: resp,\n role: question?.role,\n binary: question?.binary,\n\t\t\treverse: question?.reverse,\n })\n }\n // console.log(response)\n // console.log(question)\n // console.log(data)\n\n useEffect(() => {\n if (response) {\n setRespValue(response?.response)\n } else {\n setRespValue(null)\n }\n }, [response]);\n\n // console.log(question)\n return (\n \n \n {language===1? 'En relation avec':'In relation to'} {name}:\n {language===1?'fr' in question?question.fr:question?.question:question?.question}\n save(resp)} />\n \n \n )\n}\n\n\n\n\nexport default QuestionTemplate\n\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n width:100%;\n max-width:650px;\n\n @media only screen and (min-width: 768px) {\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n padding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\n\nconst Name = styled.div`\n margin-bottom:5px;\n color:grey;\n font-family: \"Barlow\", sans-serif;\n`\n\nconst Container = styled.div`\n padding:30px;\n position:relative;\n width:100%;\n`\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n\n// const SubmitButton = styled(Button)`\n// width: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n// // color: white;\n// // background-color: white;\n// color: #6A00FF;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// cursor: pointer;\n// `;\n\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nconst Comments = ({ saveCommentAnswer,\n question,\n response,language}) => {\n\n const [respValue, setRespValue] = useState('')\n\n const save = () => {\n saveCommentAnswer({\n id: question?.id,\n question: question?.question,\n ques_order: question?.order,\n binary: question?.binary,\n role: question?.role,\n response: respValue\n })\n }\n\n useEffect(() => {\n setRespValue('')\n if (response) {\n setRespValue(response?.response)\n }\n }, [response]);\n\n\treturn (\n\t\t\n\t\t\t{language===1?question?.fr: question?.question}\n\t\t\tsetRespValue(e.target.value)}/>\n\n\t \n\t\t\n\t\t)\n}\n\nexport default Comments\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 768px) {\n padding: 20px;\n left: calc(50% - 350px);\n top: 10%;\n }\n\n\n @media only screen and (min-width:992px){\n padding:30px;\n left: calc(50% - 350px);\n top:10%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Barlow\", sans-serif;\n color: black;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n font-family: 'Red Hat Display', sans-serif;\n background-color:lightgrey;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: black;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: #E5B63D;\n border: 0;\n box-shadow: none;\n color:white ;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Barlow\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n\n :disabled {\n background-color:lightgrey;\n color:grey;\n cursor:not-allowed;\n opacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst End = (props) =>{\n const {title, intro, submitAnswer} = props\n\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t{intro}\n\t\t\tsubmitAnswer()} id=\"end\">{props.language===1?\"Envoyer\":\"Submit\"}\n\t\t\n\n\t\t)\n}\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:black;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #6a00ff;\n color: white;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n// import {REVERSE} from \"data/reverseScores\"\n\n\nconst CommentsFeedback = ({ ruleFeedback,\n setRuleFeedback,\n setRuleFeedbackComplete,\n language,\n textColor,\n setAskFeedback,\n setComplete,\n}) => {\n const [totalQues, setTotalQues] = useState(0)\n const [currQues, setCurrQues] = useState(0)\n const [respValue, setRespValue] = useState('')\n const [responseList, setResponseList] = useState([])\n const [getResponse, setGetResponse] = useState({})\n\n useEffect(() => {\n setTotalQues(ruleFeedback?.length)\n }, [ruleFeedback]);\n\n useEffect(() => {\n setGetResponse(ruleFeedback[currQues])\n }, [ruleFeedback, currQues]);\n \n const save = () => {\n const _resList = responseList\n _resList.push({\n ...getResponse,\n feedback: respValue,\n })\n setResponseList(_resList)\n\n if (currQues + 2 > totalQues) {\n setRuleFeedback(_resList)\n setRuleFeedbackComplete(true)\n setAskFeedback(false)\n setComplete(true)\n return\n }\n\n if (currQues + 1 <= totalQues) {\n setCurrQues(currQues + 1)\n }\n \n setRespValue('')\n // \n }\n\n\n\treturn (\n\t\t\n\t\t\t{language && language===1?getResponse?.fr: getResponse?.question} - Feedback {currQues + 1} / {totalQues}\n\t\t\tsetRespValue(e.target.value)}/>\n\n\t \n\t\t\n\t\t)\n}\n\nexport default CommentsFeedback\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props=>props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React, { useEffect, useState, useRef } from \"react\";\nimport Shapes from './Shapes'\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n\tSG_START_BRIEF_SURVEY,\n\tNEW_VALIDATION_TOKEN,\n\tRESET_VALIDATION_TOKEN,\n\tCLEAR_ALL,\n\tSG_POST_BRIEF_RESPONSE,\n\tUPDATE_BRIEF_RESPONSE,\n\tSG_UPDATE_BRIEF_RESPONSE\n} from \"constants/actions\";\n\nimport {\n\tisBrowser,\n\tisMobile,\n\tdeviceType,\n\tosName,\n\tosVersion,\n\tdeviceDetect,\n} from \"react-device-detect\";\n\nimport Intro from \"./Intro\";\nimport SurveyMessage from \"./Message\";\nimport styled from \"styled-components\";\nimport { Icon } from \"semantic-ui-react\";\nimport Language from './Language'\n\nimport CategoryQuestion from './Categories'\n\nimport NoToken from \"./NoToken\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\"\n\nimport \"../survey.css\";\nimport QuestionTemplate from './Questions'\nimport CommentTemplate from './Comments'\nimport ExistingDataFound from \"survey/SurveyComponents/ExistingData\";\n\n\nimport Agreement from \"survey/SurveyComponents/Agreement\";\nimport End from './End'\n\nimport { RunRules } from \"utilities/FeedbackRules\"\nimport CommentsFeedback from './CommentsFeedback'\n\nconst categoryType = \"category\"\nconst questionsType = \"questions\"\nconst commentsType = \"comments\"\n\nconst arrange_Questions = (questions) => {\n\tif (questions?.dimensions) {\n\t\treturn questions.dimensions.map((item, i) => {\n\t\t\treturn item.factors.map((factor, f) => {\n\t\t\t\treturn factor.questions.map((q, idx) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tquestion: q.q,\n\t\t\t\t\t\tdimension: i,\n\t\t\t\t\t\tfactor: f,\n\t\t\t\t\t\tq: idx,\n\t\t\t\t\t\trole: q.role,\n\t\t\t\t\t\treverse: q.reverse,\n\t\t\t\t\t\torder: q.id,\n\t\t\t\t\t\tfr: q.fr\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t}).flat().flat().sort((a, b) => a.order - b.order)\n\t}\n}\n\n\nconst OtpSurvey = () => {\n\tconst dispatch = useDispatch();\n\tconst deviceDetected = deviceDetect();\n\t// const search = window.location.search;\n\t// const params = new URLSearchParams(search);\n\t// const token = params.get(\"token\");\n\t// token is not query string but a param\n\n\tlet [searchParams, setSearchParams] = useSearchParams();\n\tconst direct_language = Number(searchParams.get(\"language\"));\n\n\tlet { token } = useParams();\n\tconst [direction, setDirection] = useState(1);\n\tconst [showPrev, setShowPrev] = useState(true);\n\tconst [showNext, setShowNext] = useState(true);\n\t// const [location, setLocation] = useState(0)\n\tconst [showIntro, setShowIntro] = useState(false)\n\tconst [noResponse, setNoResponse] = useState(false)\n\tconst elementRef = useRef(null);\n\n\tconst [defaultMessage, setDefaultMessage] = useState({\n\t\ttitle: \"Survey completed\",\n\t\tsubTitle: \"This survey has been successfully submitted\"\n\t})\n\t// \n\tconst [totalQuestions, setTotalQuestions] = useState({\n\t\ttotal: 0,\n\t\trunningTotal: 0,\n\t\tquestions: 0,\n\t\tculture: 0,\n\t\tsequence: {}\n\t})\n\tconst [questions, setQuestions] = useState([])\n\tconst [categoryQues, setCategoryQues] = useState([])\n\tconst [employeeCategory, setEmployeeCategory] = useState([])\n\t// \n\tconst [briefResponse, setBriefResponse] = useState([])\n\tconst [questionNo, setQuestionNo] = useState(0)\n\tconst [visualQuestionNo, setVisualQuestionNo] = useState(0)\n\t//\n\tconst [prevResponse, setPrevResponse] = useState({})\n\tconst [checkResponse, setCheckResponse] = useState(false)\n\n\tconst [checkRole, setCheckRole] = useState(false)\n\n\tconst [questionAnswers, setQuestionAnswers] = useState({\n\t\tcategories: {},\n\t\tcomments: {},\n\t\tquestions: {},\n\t });\n\t \n\tconst [surveyFeedbackResp, setSurveyFeedbackResp] = useState(false)\n\tconst [surveyPersonalityResp, setSurveyPersonalityResp] = useState({})\n\tconst [surveyModularResp, setSurveyModularResp] = useState(false)\n\n\tconst [ruleFeedback, setRuleFeedback] = useState(false)\n\tconst [ruleFeedbackComplete, setRuleFeedbackComplete] = useState(true)\n\tconst [askFeedback, setAskFeedback] = useState(false)\n\n\tconst [thankMessage, setThankMessage] = useState(false)\n\tconst [complete, setComplete] = useState(false)\n\n\tconst [surveyStatus, setSurveyStatus] = useState(0)\n\tconst [resetAnswers, setResetAnswers] = useState(false)\n\tconst [surveyDeleted, setSurveyDeleted] = useState(false);\n\tconst [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\n\t// stored persisting response\n\tconst [validationToken, setValidationToken] = useState(false)\n\tconst [briefResponseId, setBriefResponseId] = useState(false)\n\tconst [storedResponseFound, setStoredResponseFound] = useState(false)\n\n\tconst [primaryCategory, setPrimaryCategory] = useState(false);\n\tconst [neverAskResponse, setNeverAskResponse] = useState(false);\n\tconst [prevFoundResponse, setPrevFoundResponse] = useState(false);\n\n\tconst [consentProvided, setConsentProvided] = useState(false);\n\tconst [language, setLanguage] = useState(0)\n\tconst [showLanguage, setShowLanguage] = useState(false)\n\n\tconst [submitError, setSubmitError] = useState(false)\n\n\tconst [askComments, setAskComments] = useState(false);\n\t// const [organizationInfo, setOrganizationInfo] = useState(false)\n\n\tconst { get_brief_response, get_errors } = useSelector(\n\t\t(state) => ({\n\t\t\tget_brief_response: state.briefresponse,\n\t\t\tget_errors: state.errors,\n\t\t}),\n\t\tshallowEqual\n\t);\n\n\tuseEffect(() => {\n\t\tif (direct_language === 1) {\n\t\t\tsetLanguage(direct_language)\n\t\t}\n\t}, [direct_language])\n\n\tuseEffect(() => {\n\t\tif (get_brief_response?.response?.questions?.comments) {\n\t\t\tif (get_brief_response?.response?.questions?.comments?.length > 0) {\n\t\t\t\tsetAskComments(get_brief_response?.response?.questions?.comments)\n\t\t\t}\n\t\t}\n\t}, [get_brief_response]);\n\n\tuseEffect(() => {\n\t\tif (get_brief_response) {\n\t\t\tsetQuestions(arrange_Questions(get_brief_response?.response?.questions))\n\t\t\tsetEmployeeCategory(get_brief_response?.response?.employee_category)\n\t\t\tsetCategoryQues(get_brief_response?.response?.culture_questions?.sort((a, b) => a?.id - b?.id))\n\t\t}\n\n\t\tif (get_brief_response?.response?.questions?.language) {\n\t\t\tsetShowLanguage(true)\n\t\t\t// console.log(get_brief_response)\n\t\t}\n\t}, [get_brief_response]);\n\n\t// question no based on role skip logic\n\t// console.log(get_brief_response?.response?.employee_category)\n\t// console.log(questionAnswers?.categories)\n\t// step 1 set role\n\tuseEffect(() => {\n\t\t// if (questionAnswers?.categories) {\n\t\t// \tconst CatRes = Object.values(questionAnswers?.categories)\n\t\t// \tsetCheckRole(CatRes.filter(ct => ct.priority === \"secondary\")?.[0]?.response)\n\t\t// }\n\t\t// get_brief_response?.response?.employee_category\n\t\tif (get_brief_response?.response?.employee_category) {\n\t\t\tconst CatRes = get_brief_response?.response?.employee_category\n\t\t\tsetCheckRole(CatRes.filter(ct => ct.priority === \"secondary\")?.[0]?.value)\n\t\t}\n\t}, [get_brief_response.response.employee_category])\n\n\tuseEffect(() => {\n\t\tsetRuleFeedbackComplete(true)\n\t\tconst RuleRun = RunRules({ questions, get_brief_response })\n\t\t// console.log(RuleRun)\n\t\tif (RuleRun.length > 0) {\n\t\t\tsetRuleFeedbackComplete(false)\n\t\t}\n\t\tsetRuleFeedback(RuleRun)\n\t}, [get_brief_response, questions]);\n\n\tuseEffect(() => {\n\t\tlet _id = ''\n\t\tlet _response = 0\n\t\tlet subfactorFound = false\n\t\tlet _subfactor = null\n\t\tconst SurveyName = get_brief_response?.response?.survey_name\n\n\t\tif (get_brief_response?.response?.primary_question) {\n\t\t\tget_brief_response.response.primary_question.map(pq => {\n\t\t\t\t_id = pq.id\n\t\t\t\tif (pq?.subfactor) {\n\t\t\t\t\tsubfactorFound = true\n\t\t\t\t}\n\t\t\t\tpq && pq.answers.map(aq => {\n\t\t\t\t\tif (aq?.name === SurveyName) {\n\n\t\t\t\t\t\tif (subfactorFound) {\n\t\t\t\t\t\t\t_subfactor = aq?.id\n\t\t\t\t\t\t\t_response = aq?.parent_id\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_response = aq?.id\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t})\n\t\t\t\treturn null\n\t\t\t})\n\t\t}\n\n\t\tsetPrimaryCategory({\n\t\t\tid: _id,\n\t\t\tresponse: _response,\n\t\t\tsubfactor: _subfactor,\n\t\t\tpriority: \"primary\"\n\t\t})\n\n\n\t}, [get_brief_response]);\n\n\t//skip questions\n\tuseEffect(() => {\n\t\tconst _seq = {}\n\t\t// add category question nos to list\n\t\tconst _prevResp = {}\n\t\tconst _neverAskResp = {}\n\n\t\tlet running_total = 0\n\t\tlet total = 0\n\t\tlet CatLength = 0\n\t\tif (categoryQues) {\n\t\t\tcategoryQues.map((q, v) => {\n\t\t\t\tif (q?.input === \"always_ask\") {\n\t\t\t\t\t// console.log(q)\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `always_ask ${q.id}`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tif (q?.input === \"ask_if_not_found\") {\n\t\t\t\t\t// setPrevFoundResponse\n\t\t\t\t\tconst _empCat = employeeCategory.filter(ec => ec.name === q.name)?.[0]?.value\n\t\t\t\t\tif (_empCat) {\n\t\t\t\t\t\tconst _response = q.answers.filter(rq => rq.name === _empCat)?.[0]?.id\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tCatLength += 1\n\t\t\t\t\t\ttotal += 0\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tfrom: `ask_if_not_found ${q.id}`,\n\t\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_prevResp[running_total] = {\n\t\t\t\t\t\t\tid: q.id,\n\t\t\t\t\t\t\tresponse: _response,\n\t\t\t\t\t\t\tpriority: q.priority\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tCatLength += 1\n\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tfrom: `ask_if_not_found ${q.id}`,\n\t\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tif (q?.input === \"never_ask\") {\n\t\t\t\t\t// console.log(q)\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 0\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `never_ask ${q.id}`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\n\t\t\t\t\tconst _empCat = employeeCategory.filter(ec => ec?.name === q?.name)?.[0]?.value_id\n\t\t\t\t\t\n\t\t\t\t\t_neverAskResp[running_total] = {\n\t\t\t\t\t\tid: q.id,\n\t\t\t\t\t\tresponse: _empCat ? _empCat : null,\n\t\t\t\t\t\tpriority: q.priority\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tif (!q?.input) {\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tCatLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tfrom: `undefined`,\n\t\t\t\t\t\tquesType: categoryType,\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t}\n\n\t\tsetPrevFoundResponse(_prevResp)\n\t\tsetNeverAskResponse(_neverAskResp)\n\n\t\tlet quesLength = 0\n\t\tif (questions) {\n\t\t\tquestions.map((q, v) => {\n\t\t\t\tif (checkRole) {\n\t\t\t\t\tif (q?.role) {\n\t\t\t\t\t\tif (q?.role.includes(checkRole)) {\n\t\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\t\tquesLength += 1\n\t\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\t\tfrom: \"question for specific role\",\n\t\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\t\t// quesLength += 1\n\t\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\t\tfrom: \"question not inlcuded role specifics\",\n\t\t\t\t\t\t\t\tskip: true,\n\t\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunning_total += 1\n\t\t\t\t\t\tquesLength += 1\n\t\t\t\t\t\ttotal += 1\n\t\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\t\tfrom: \"question without role\",\n\t\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t} else {\n\n\t\t\t\t\trunning_total += 1\n\t\t\t\t\tquesLength += 1\n\t\t\t\t\ttotal += 1\n\t\t\t\t\t_seq[running_total] = {\n\t\t\t\t\t\tquesType: questionsType,\n\t\t\t\t\t\tfrom: \"no role checked\",\n\t\t\t\t\t\tskip: false,\n\t\t\t\t\t\tsno: running_total\n\t\t\t\t\t}\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tlet commLength = 0\n\t\tif (askComments) {\n\t\t\taskComments.map((q, v) => {\n\t\t\t\trunning_total += 1\n\t\t\t\tcommLength += 1\n\t\t\t\ttotal += 1\n\t\t\t\t_seq[running_total] = {\n\t\t\t\t\tquesType: commentsType,\n\t\t\t\t\tskip: false,\n\t\t\t\t\tsno: running_total\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tsetTotalQuestions({\n\t\t\ttotal: total,\n\t\t\trunningTotal: running_total,\n\t\t\tquestions: quesLength,\n\t\t\tcategory: CatLength, // add primaryCategory\n\t\t\tcomments: commLength,\n\t\t\tsequence: _seq\n\t\t})\n\t}, [questions, categoryQues, askComments, checkRole, employeeCategory]);\n\n\t// console.log(\"totalQuestions?.sequence\", totalQuestions?.sequence)\n\n\t// if the number of questions changes based on responses\n\t// reset or remove the older questions which were answered\n\tuseEffect(() => {\n\t\tsetResetAnswers(true)\n\t}, [totalQuestions.total]);\n\n\tuseEffect(() => {\n\t\tif (resetAnswers && questionAnswers?.categories !== undefined) {\n\t\t\tsetResetAnswers(false)\n\t\t\tlet _quesAns = questionAnswers\n\n\t\t\t// dispatch({\n\t\t\t// \ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\t// \ttotal_questions: totalQuestions.runningTotal,\n\t\t\t// \tcurrent_question: questionNo,\n\t\t\t// \tcurrent_answer: questionNo,\n\t\t\t// \thigh_answer: questionNo,\n\t\t\t// \tpayload: {\n\t\t\t// \t\tanswers: {\n\t\t\t// \t\t\tquestions: {},\n\t\t\t// \t\t\tcomments: {},\n\t\t\t// \t\t\tcategories: _quesAns?.categories\n\t\t\t// \t\t},\n\t\t\t// \t},\n\t\t\t// });\n\t\t\tsetQuestionAnswers({\n\t\t\t\tcategories: _quesAns?.categories,\n\t\t\t\tquestions: {},\n\t\t\t\tcomments: {}\n\t\t\t})\n\t\t}\n\t}, [resetAnswers, questionAnswers, dispatch, totalQuestions, questionNo]);\n\n\tfunction nextQuestion() {\n\t\tlet _questionNo = questionNo + 1\n\t\twhile (_questionNo <= totalQuestions?.runningTotal) {\n\t\t\tif (totalQuestions.sequence[_questionNo]?.skip) {\n\t\t\t\t_questionNo++\n\t\t\t} else {\n\t\t\t\tsetQuestionNo(_questionNo)\n\t\t\t\tsetVisualQuestionNo(visualQuestionNo + 1)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction prevQuestion() {\n\t\tlet _questionNo = questionNo - 1\n\t\twhile (_questionNo >= 1) {\n\t\t\tif (totalQuestions.sequence[_questionNo]?.skip) {\n\t\t\t\t_questionNo--\n\t\t\t} else {\n\t\t\t\tsetQuestionNo(_questionNo)\n\t\t\t\tsetVisualQuestionNo(visualQuestionNo - 1)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction PreCloseSurvey() {\n\t\tif ((questionNo + 1) <= totalQuestions.runningTotal) {\n\t\t\tnextQuestion()\n\t\t\treturn false\n\t\t} else {\n\t\t\tif (!ruleFeedbackComplete) {\n\t\t\t\tconsole.log(\"no feedback close this\")\n\t\t\t\tsetAskFeedback(true)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tsetAskFeedback(false)\n\t\t\tsetComplete(true)\n\t\t\treturn true\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (get_brief_response?.response?.id) {\n\t\t\tsetNoResponse(false)\n\t\t} else {\n\t\t\tsetNoResponse(true)\n\t\t}\n\t\t// \n\t\tsetBriefResponseId(get_brief_response?.id)\n\n\t\tif (get_brief_response?.validation_token) {\n\t\t\tsetValidationToken(get_brief_response?.validation_token)\n\t\t\tif (get_brief_response?.response?.stored_response?.high_answer > 2) {\n\t\t\t\tsetStoredResponseFound(true)\n\t\t\t} else {\n\t\t\t\tsetStoredResponseFound(false)\n\t\t\t}\n\t\t} else {\n\t\t\tsetStoredResponseFound(false)\n\t\t\tsetValidationToken(false)\n\t\t}\n\t}, [get_brief_response]);\n\n\tuseEffect(() => {\n\t\tsetPrevResponse(null)\n\t\tif (questionNo) {\n\t\t\tconst QueType = totalQuestions?.sequence?.[questionNo]?.quesType\n\t\t\t// console.log(QueType)\n\t\t\tif (QueType === categoryType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.categories?.[questionNo])\n\t\t\t}\n\t\t\tif (QueType === questionsType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.questions?.[questionNo])\n\t\t\t}\n\t\t\tif (QueType === commentsType) {\n\t\t\t\tsetPrevResponse(get_brief_response?.answers?.comments?.[questionNo])\n\t\t\t}\n\t\t}\n\t}, [totalQuestions, get_brief_response.answers, questionNo]);\n\n\tuseEffect(() => {\n\t\tsetShowPrev(false)\n\t\tsetShowNext(false)\n\t\tsetBriefResponse(get_brief_response)\n\t\tif (!questionNo) {\n\t\t\tsetShowPrev(false)\n\t\t\tsetShowNext(false)\n\t\t}\n\t\tif (questionNo === 1) {\n\t\t\tsetShowPrev(false)\n\t\t\tif ((questionNo) <= (get_brief_response?.high_answer)) {\n\t\t\t\tif (questionNo < totalQuestions?.total) {\n\t\t\t\t\tsetShowNext(true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (questionNo > 1) {\n\t\t\t// setShowPrev(true)\n\t\t\tif (totalQuestions?.sequence?.[questionNo - 1]?.skip === false ) {\n\t\t\t\tsetShowPrev(true);\n\t\t\t }\n\t\t\tif ((questionNo) <= (get_brief_response?.high_answer)) {\n\t\t\t\tif (questionNo < totalQuestions?.total) {\n\t\t\t\t\tsetShowNext(true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsetSurveyDeleted(get_brief_response?.to_delete ? get_brief_response?.to_delete : false)\n\t\tsetSurveyDeletedOn(get_brief_response?.deleted_on ? get_brief_response?.deleted_on : false)\n\t\tsetSurveyStatus(get_brief_response?.survey_status ? get_brief_response?.survey_status : 0)\n\t\tsetShowIntro(get_brief_response?.intro_completed)\n\t\tif (get_brief_response?.response?.stored_response?.answers) {\n\t\t\tsetQuestionAnswers(get_brief_response?.response?.stored_response?.answers)\n\t\t}\n\t\t\n\t\tsetSurveyFeedbackResp(get_brief_response?.response?.stored_response?.feedback)\n\t\tsetSurveyModularResp(get_brief_response?.response?.stored_response?.modular_response)\n\t\tsetSurveyPersonalityResp(get_brief_response?.response?.stored_response?.survey_personality)\n\n\t}, [get_brief_response, questionNo, totalQuestions]);\n\n\tuseEffect(() => {\n\t\t// Run! Like go get some data from an API.\n\t\tif (token) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_START_BRIEF_SURVEY,\n\t\t\t\tpayload: `?token=${token}`\n\t\t\t});\n\t\t}\n\t}, [dispatch, token]);\n\n\n\tfunction submitAnswer() {\n\t\tconst CompleteCategories = { ...questionAnswers?.categories, ...prevFoundResponse, ...neverAskResponse }\n\t\tif (CompleteCategories) {\n\t\t\tCompleteCategories[0] = primaryCategory\n\t\t}\n\t\tif (totalQuestions?.questions && questionAnswers?.questions) {\n\t\t\tif (totalQuestions?.questions > Object.values(questionAnswers?.questions).length) {\n\t\t\t\tsetSubmitError(\"There was error in the submition please try again!\")\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tlet _completeCategories = []\n\t\tif (CompleteCategories) {\n\t\t\t_completeCategories = Object.values(CompleteCategories)\n\t\t}\n\n\t\tlet _completeQuestions = []\n\t\tif (questionAnswers.questions) {\n\t\t\t_completeQuestions = Object.values(questionAnswers.questions)\n\t\t}\n\n\t\tlet _completeComments = []\n\t\tif (questionAnswers.comments) {\n\t\t\t_completeComments = Object.values(questionAnswers.comments)\n\t\t}\n\t\tconst surveyComponents = get_brief_response?.modular_response\n\t\t// console.log(CompleteCategories)\n\t\t// console.log(questionAnswers)\n\t\tconst payload = {\n\t\t\tsurvey_token: briefResponse?.survey_token,\n\t\t\tdebrief_schedule: briefResponse?.debrief_schedule,\n\t\t\temployee: briefResponse?.employee,\n\t\t\tresponse: {\n\t\t\t\tquestions: {\n\t\t\t\t\tquestions: _completeQuestions,\n\t\t\t\t\tcategories: _completeCategories,\n\t\t\t\t\tcomments: _completeComments,\n\t\t\t\t},\n\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\tfeedback: surveyFeedbackResp,\n\t\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\t\tmodular_response: surveyModularResp,\n\t\t\t},\n\t\t\tfull_response: {\n\t\t\t\tisBrowser: isBrowser,\n\t\t\t\tisMobile: isMobile,\n\t\t\t\tbrowser: deviceDetected.browserName,\n\t\t\t\tdeviceType,\n\t\t\t\tosVersion,\n\t\t\t\tosName,\n\t\t\t\tdeviceDetected: deviceDetected,\n\t\t\t\tresponse: {\n\t\t\t\t\tquestions: {\n\t\t\t\t\t\tquestions: _completeQuestions,\n\t\t\t\t\t\tcategories: _completeCategories,\n\t\t\t\t\t\tcomments: _completeComments,\n\t\t\t\t\t},\n\t\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\t\tfeedback: surveyFeedbackResp,\n\t\t\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\t\t\tmodular_response: surveyModularResp,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t\t// console.log(payload)\n\n\t\tdispatch({\n\t\t\ttype: SG_POST_BRIEF_RESPONSE,\n\t\t\tpayload\n\t\t});\n\n\t\tdispatch(\n\t\t\t{\n\t\t\t\ttype: RESET_VALIDATION_TOKEN,\n\t\t\t\tpayload: null\n\t\t\t}\n\t\t)\n\t\tdispatch(\n\t\t\t{\n\t\t\t\ttype: CLEAR_ALL,\n\t\t\t\tpayload: null\n\t\t\t}\n\t\t)\n\n\t\tsetThankMessage(true)\n\t}\n\n\tconst IntroQuestionAnswer = () => {\n\t\tlet CatLength = 0\n\t\tif (categoryQues) {\n\t\t\tCatLength = categoryQues?.length\n\t\t}\n\t\tconst NewValidationToken = uuidv4()\n\n\t\tconst payload = {\n\t\t\tcurrent_question: CatLength > 0 ? 0 : 1,\n\t\t\tcurrent_answer: 0,\n\t\t\thigh_answer: 0,\n\t\t\tanswers: {\n\t\t\t\tcategories: {},\n\t\t\t\tquestions: {},\n\t\t\t\tcomments: {}\n\t\t\t},\n\t\t\tcomplete: false,\n\t\t\tintro_completed: true,\n\t\t\tvalidation_token: NewValidationToken,\n\t\t\tfeedback: surveyFeedbackResp,\n\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\tmodular_response: surveyModularResp,\n\t\t}\n\n\t\tsetDirection(1)\n\t\tdispatch({\n\t\t\ttype: NEW_VALIDATION_TOKEN,\n\t\t\tpayload: NewValidationToken\n\t\t})\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload: {\n\t\t\t\ttotal_categories: CatLength,\n\t\t\t\ttotal_questions: totalQuestions?.runningTotal,\n\t\t\t\tcurrent_category: CatLength > 0 ? 1 : 0,\n\t\t\t\tcategory_answer: 0,\n\t\t\t\thigh_category: 0,\n\t\t\t\ttotal_question_map: totalQuestions,\n\t\t\t\t...payload\n\t\t\t}\n\t\t});\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}&start=true`,\n\t\t\t\t\tvalidation_token: NewValidationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\n\t\tsetShowIntro(true)\n\t\tnextQuestion()\n\t}\n\n\tconst saveCategoryAnswer = (response) => {\n\t\t// console.log(response)\n\t\tlet _answers = questionAnswers.categories\n\t\tsetDirection(1)\n\t\tif (_answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\n\t\tsetQuestionAnswers({\n\t\t\tcategories: _answers,\n\t\t\tquestions: questionAnswers?.questions,\n\t\t\tcomments: questionAnswers?.comments\n\t\t})\n\n\t\tlet _complete = PreCloseSurvey()\n\n\t\tconst payload = {\n\t\t\tvisual_question: visualQuestionNo,\n\t\t\tcurrent_question: questionNo,\n\t\t\tcurrent_answer: questionNo,\n\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\tanswers: {\n\t\t\t\tquestions: questionAnswers?.questions,\n\t\t\t\tcomments: questionAnswers?.comments,\n\t\t\t\tcategories: _answers\n\t\t\t},\n\t\t\tcomplete: _complete,\n\t\t\tintro_completed: showIntro,\n\t\t\tvalidation_token: validationToken,\n\t\t\tfeedback: surveyFeedbackResp,\n\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\tmodular_response: surveyModularResp,\n\t\t}\n\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload\n\t\t});\n\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}`,\n\t\t\t\t\tvalidation_token: validationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\n\t}\n\n\tconst saveQuestionAnswer = (response) => {\n\t\tlet _answers = questionAnswers.questions\n\t\tsetDirection(1)\n\n\t\tif (_answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\t\tsetQuestionAnswers({\n\t\t\tcategories: questionAnswers?.categories,\n\t\t\tcomments: questionAnswers?.comments,\n\t\t\tquestions: _answers\n\t\t})\n\n\t\tlet _complete = PreCloseSurvey()\n\t\tconst payload = {\n\t\t\tvisual_question: visualQuestionNo,\n\t\t\tcurrent_question: questionNo,\n\t\t\tcurrent_answer: questionNo,\n\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\tanswers: {\n\t\t\t\tcategories: questionAnswers?.categories,\n\t\t\t\tcomments: questionAnswers?.comments,\n\t\t\t\tquestions: _answers\n\t\t\t},\n\t\t\tcomplete: _complete,\n\t\t\tintro_completed: showIntro,\n\t\t\tvalidation_token: validationToken,\n\t\t\tfeedback: surveyFeedbackResp,\n\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\tmodular_response: surveyModularResp,\n\t\t}\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload\n\t\t});\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}`,\n\t\t\t\t\tvalidation_token: validationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t}\n\n\tconst saveCommentAnswer = (response) => {\n\t\tlet _answers = questionAnswers.comments\n\t\tsetDirection(1)\n\n\t\tif (_answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\n\t\tsetQuestionAnswers({\n\t\t\tcategories: questionAnswers?.categories,\n\t\t\tquestions: questionAnswers?.questions,\n\t\t\tcomments: _answers\n\t\t})\n\n\t\tlet _complete = PreCloseSurvey()\n\t\tsetComplete(_complete)\n\t\tconst payload = {\n\t\t\tvisual_question: visualQuestionNo,\n\t\t\tcurrent_question: questionNo,\n\t\t\tcurrent_answer: questionNo,\n\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\tanswers: {\n\t\t\t\tcategories: questionAnswers?.categories,\n\t\t\t\tquestions: questionAnswers?.questions,\n\t\t\t\tcomments: _answers\n\t\t\t},\n\t\t\tcomplete: _complete,\n\t\t\tintro_completed: showIntro,\n\t\t\tvalidation_token: validationToken,\n\t\t\tfeedback: surveyFeedbackResp,\n\t\t\tsurvey_personality: surveyPersonalityResp,\n\t\t\tmodular_response: surveyModularResp,\n\t\t}\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload,\n\t\t})\n\t\t// persist with api\n\t\tif (briefResponseId) {\n\t\t\tdispatch({\n\t\t\t\ttype: SG_UPDATE_BRIEF_RESPONSE,\n\t\t\t\tpayload: {\n\t\t\t\t\tid: briefResponseId,\n\t\t\t\t\tquery: `?token=${token}`,\n\t\t\t\t\tvalidation_token: validationToken,\n\t\t\t\t\t...(payload && { stored_response: payload }),\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\n\t}\n\n\tconst forward = () => {\n\t\tif (briefResponse?.high_answer >= questionNo) {\n\t\t\tsetPrevResponse(null)\n\t\t\tsetDirection(1)\n\t\t\tif ((questionNo + 1) <= totalQuestions.runningTotal) {\n\t\t\t\tnextQuestion()\n\t\t\t\tsetComplete(false)\n\t\t\t\tsetCheckResponse(true)\n\t\t\t} else {\n\t\t\t\tsetComplete(true)\n\n\t\t\t}\n\t\t}\n\t}\n\n\tconst back = () => {\n\t\tif (questionNo > 1) {\n\t\t\tsetDirection(0)\n\t\t\tsetPrevResponse(null)\n\t\t\tsetComplete(false)\n\t\t\tif ((questionNo) === totalQuestions.runningTotal) {\n\t\t\t\tsetComplete(false)\n\t\t\t\tif (questionNo === briefResponse?.current_question) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\tcurrent_question: 0,\n\t\t\t\t\t\t\tcurrent_answer: 0,\n\t\t\t\t\t\t\tcomplete: false\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tprevQuestion()\n\t\t\t\t\tsetCheckResponse(true)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprevQuestion()\n\t\t\t\tsetCheckResponse(true)\n\t\t\t}\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (get_errors?.errors?.error?.request?.response) {\n\t\t\tlet RESP = JSON.parse(get_errors?.errors?.error?.request?.response)\n\t\t\tsetSubmitError(RESP?.detail)\n\t\t}\n\t}, [get_errors]);\n\n\tuseEffect(() => {\n\t\t// setPageLoading(true);\n\t\tsetDefaultMessage({\n\t\t\ttitle: \"Looking for Survey\",\n\t\t\tsubTitle: \"Please wait while we try and get that survey loaded\"\n\t\t})\n\t\tconst timer1 = setTimeout(() => {\n\t\t\tsetDefaultMessage({\n\t\t\t\ttitle: \"No Survey details found\",\n\t\t\t\tsubTitle: \"Unfortunately we have not been retrive any information on this survey\"\n\t\t\t})\n\t\t}, 5000);\n\t\treturn () => clearTimeout(timer1);\n\t}, [noResponse]);\n\n\tconst getTextColor = () => {\n\n\t\treturn '#4048FF'\n\t}\n\n\n\tconst Main_section = () => {\n\t\t// const introText = \"Innerlogic processes your personal data and aggregates responses on behalf of OTP. Your personal data is never directly personally identifiable to your NSO and is only ever presented in an anonymized fashion. Please consult our privacy statement for further details.\"\n\t\tconst consentText = \"I hereby give consent for Own the Podium or designate research partner to use anonymized and aggregated user data only in the further development of culture of excellence programming for the benefit of the high performance sport community in Canada. Do you agree with your personal data being processed as described above and in our privacy statement? You must click accept in order to give your feedback.\";\n\t\tconst EndTextFR = \"Vous avez répondu à toutes les questions de ce sondage. Merci de soumettre vos réponses.\"\n\n\t\tconst customAgreement = ( setConsentProvided(checked)}\n\t\t\ttype={'OTP'}\n\t\t\thasConsented={consentProvided} />);\n\n\t\tconst IntroText = () => {\n\n\t\t\tif (language == 1) {\n\t\t\t\treturn (
\n\t\t\t\t\t

{get_brief_response.response?.survey_name} s’engage à l’optimisation de la culture de haute performance de son programme de l’équipe nationale. La santé physique et psychologique et la sécurité de tous les participants et participantes au programme sont aussi importants que la performance.\n\t\t\t\t\t\tAinsi, {get_brief_response.response?.survey_name} appuyé par À nous le podium, entreprend l’audit et l’évaluation de sa culture sportive.

\n\t\t\t\t\t

Compte tenu de votre rôle au sein du programme, vous avez été choisi•e pour participer à un sondage. L’évaluation de la culture est un exercice complexe ;\n\t\t\t\t\t\tveuillez prévoir de 30 à 45 minutes pour compléter le sondage. Vos réponses seront sauvegardées si vous avez besoin d’y revenir plus tard. Toutefois, le lien pour\n\t\t\t\t\t\tle sondage ne fonctionnera qu’à partir de l’appareil que vous avez utilisé pour y accéder. Ceci assure l’anonymat et limite chaque répondant•e à une seule soumission au sondage.

\n\n\t\t\t\t\t

Vos réponses honnêtes et réfléchies sont essentielles pour comprendre l’état actuel de la culture du programme. Toutes les réponses demeureront anonymes pour favoriser des réflexions sincères et franches.

\n\n\n\n\t\t\t\t
)\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t

{get_brief_response.response?.survey_name} is committed to optimizing the high performance culture of its National Team Program. The physical and psychological health and safety of everyone involved\n\t\t\t\t\t\tin the program are of equal importance to performance. As such, {get_brief_response.response?.survey_name} is engaging in a sport culture audit and assessment supported by Own the Podium.

\n\t\t\t\t\t

Given your role within the program, you have been selected to participate in a survey. Assessing culture is complex; therefore, you can anticipate the\n\t\t\t\t\t\tsurvey taking approximately 30-45 minutes to complete. Your responses will be saved if you need to come back at a later date, but you will only be able to access\n\t\t\t\t\t\tthe survey from the link on the original device you used. This is to ensure anonymity while restricting each respondent to one submission only.

\n\n\t\t\t\t\t

Your honest and thoughtful responses are critical for understanding the current cultural status of the program. All responses will remain anonymous to encourage openness and candor while answering each question.

\n\n\n\n\t\t\t\t
\n\t\t\t)\n\t\t}\n\n\n\n\t\tif (!showIntro) {\n\t\t\t// ask for existing data in storage\n\t\t\tif (storedResponseFound) {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn }\n\t\t\t\tsetShowIntro={setShowIntro}\n\t\t\t\tsaveAnswer={IntroQuestionAnswer}\n\t\t\t\tconsentText={consentText}\n\t\t\t\tconsentCheckedCb={(response) => setConsentProvided(response)}\n\t\t\t\tcustomElement={customAgreement}\n\t\t\t\tsurveyEnabled={consentProvided}\n\t\t\t\telementRef={elementRef}\n\t\t\t\tlanguage={language}\n\n\t\t\t/>\n\t\t}\n\n\t\tif (complete) {\n\t\t\treturn submitAnswer()}\n\t\t\t\tintro={language === 1 ? EndTextFR : 'You have completed all the questions in this survey. Please submit your responses'} />\n\n\t\t}\n\n\t\tif (askFeedback) {\n\t\t\treturn submitAnswer()}\n\t\t\t\tsetAskFeedback={setAskFeedback}\n\t\t\t\tsetComplete={setComplete}\n\t\t\t/>\n\t\t}\n\n\t\tif (totalQuestions?.sequence[questionNo]?.quesType === categoryType) {\n\t\t\treturn \n\t\t}\n\n\t\tif (totalQuestions?.sequence[questionNo]?.quesType === questionsType) {\n\t\t\treturn saveQ(r)}\n\t\t\t\tsaveQuestionAnswer={saveQuestionAnswer}\n\t\t\t\tresponse={prevResponse}\n\t\t\t\tname={get_brief_response.response.survey_name}\n\t\t\t\tquestion={questions.filter(\n\t\t\t\t\tq => q.order === questionNo - totalQuestions?.category\n\t\t\t\t)[0]}\n\t\t\t\tlanguage={language}\n\t\t\t/>\n\t\t}\n\t\tif (totalQuestions?.sequence[questionNo]?.quesType === commentsType) {\n\n\t\t\treturn saveQ(r)}\n\t\t\t\tsaveCommentAnswer={saveCommentAnswer}\n\t\t\t\tresponse={prevResponse}\n\t\t\t\tlanguage={language}\n\t\t\t\tquestion={askComments.filter(\n\t\t\t\t\tq => q.order === questionNo - totalQuestions?.category\n\t\t\t\t)[0]}\n\t\t\t/>\n\t\t}\n\n\t\treturn \n\t}\n\n\tif (noResponse) {\n\t\treturn \n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t}\n\tif (!token) {\n\t\treturn \n\t}\n\n\tif (submitError) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\n\tconst ThanksMessageFR = 'Merci pour votre réponse au sondage'\n\n\tif (thankMessage) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\n\tif (surveyDeleted) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{Main_section()}\n\t\t\t\t\n\t\t\t\n\t\t\t{showLanguage ? : \"\"}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tCAAT\n\t\t\t\t\t\t{visualQuestionNo === 0 ? 1 : visualQuestionNo} {language == 1 ? 'de' : 'of'} {totalQuestions?.total} questions\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default OtpSurvey\n\n\nconst Container = styled.div`\n height:${props => props.height};\n min-height:100vh;\n width: 100vw;\n display: flex;\n flex-direction: row;\n align-items: center;\n font-family: 'Barlow', sans-serif;\n position:relative;\n`;\n\nconst CounterContainer = styled.div`\n position: fixed;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n background-color:grey;\n border-radius:5px;\n z-index:1;\n\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 14px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n padding: 5px 10px;\n font-size: 12px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: -5px;\n font-size: 14px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;","import React from \"react\";\n\nconst Privacy = () =>{\n\n\treturn (\n\t\t
\n\t\t\t

Innerlogic Privacy Statement

\n\n\t\t\t

Innerlogic (“Innerlogic”, “we”, “us” or “our”) takes steps intended to meet privacy principles and \n\t\t\trequirements with respect to personal information under applicable Canadian privacy legislation. \n\t\t\tThe purpose of this statement is to inform our customers and other individuals we deal with \n\t\t\t(“you” or “your”) how we collect, use, disclose and protect your personal information. Personal \n\t\t\tinformation is information about an identifiable individual, as more particularly described \n\t\t\tunder applicable privacy legislation. This statement applies to our collection, use and \n\t\t\tdisclosure of personal information in Canada. This statement does not apply to information \n\t\t\tabout our employees or to information that is not personal information.

\n\n\t\t\t

Data Controller and Data Processor

\n\n\t\t\t

Innerlogic’s business customers are the data controllers for most of the information that is \n\t\t\tentered into the Innerlogic web application, website, and supporting systems or that is shared \n\t\t\tperiodically with Innerlogic employees to deliver services. This positions Innerlogic as the data \n\t\t\tprocessor for most information stored and processed by Innerlogic. There are some pieces of \n\t\t\tinformation that are collected directly by Innerlogic to facilitate security, logging, and \n\t\t\tapplication performance. These items include IP address and behavior within the Innerlogic \n\t\t\tplatform. For these pieces of information Innerlogic acts as the data controller and processor. \n\t\t\tAdditionally, Innerlogic employs a variety of technologies and partners that periodically act \n\t\t\tas sub-processors. If users have any questions or concerns about the processing and handling \n\t\t\tof their personal information, they may reach out to Innerlogic directly by email at mike@Innerlogic.com.\n\t\t\t

\n\n\t\t\t

Personal Information We Collect

\n\n\t\t\t

Innerlogic and its agents and representatives collect personal information in a number \n\t\t\tof circumstances in the course of assisting organizations in their mandate to analyze, \n\t\t\timprove and track diversity and inclusion in the workplace. Personal information we collect includes:\n\t\t\t

\n\n\t\t\t
    \n\t\t\t\t
  • demographic characteristics, including but not limited to gender, ethnicity, sexual identity, and disability
  • \n\t\t\t\t
  • details on role/position in your sport
  • \n\t\t\t\t
  • sentiment around personal experiences of safety, mental and physical health, leadership, coaching, the training environment, sport science, and other areas in relation to the culture of your sport organization
  • \n\t\t\t\t
  • such other information we may collect with your consent or as permitted or required by law.
  • \n\t\t\t
\n\n\t\t\t

All personal information above is collected with explicit consent in the form of an opt-in box prior to any \n\t\t\tdisclosure of information . Consent is digitally recorded and logged, including IP address and date of \n\t\t\tconsent. See section on Consent for more information.

\n\n\t\t\t

Use of Personal Information

\t\n\t\t\t

Innerlogic generally uses personal information for the following purposes:

\n\n\t\t\t
    \n\t\t\t\t
  • provide your sport organization or community with aggregated insights on culture in their organization
  • \n\t\t\t\t
  • track progress on culture in your sport organization or community
  • \n\t\t\t\t
  • create role-specific culture benchmarks
  • \n\t\t\t\t
  • managing, administering, collecting or otherwise enforcing accounts
  • \n\t\t\t\t
  • maintaining business records for reasonable periods, and generally managing and administering our business including defending and bringing legal actions;
  • \n\t\t\t\t
  • meeting legal, regulatory, insurance, security and processing requirements; and
  • \n\t\t\t\t
  • otherwise with consent or as permitted or required by law
  • \n\t\t\t
\n\n\t\t\t

Mode, Place, and Methods of Processing the Data

\n\n\t\t\t

Innerlogic takes appropriate security measures to prevent unauthorized access, disclosure, modification, or data destruction.

\n\t\t\t

Data is processed using computers or tech-enabled tools, following organizational policies and procedures strictly related to the purposes indicated. \n\t\t\tIn some cases, data may be accessible to Innerlogic employees involved with the Innerlogic website’s operation, the Innerlogic web application (platform), \n\t\t\tand supporting applications. Data may also be accessible to external parties appointed, if necessary, as data processors\n\t\t\t or sub-processors by Innerlogic. External parties may include third-party technical service providers, hosting providers,\n\t\t\t and IT companies.

\n\n\t\t\t

Legal Basis of Processing

\n\n

Innerlogic may process personal data relating to users if one of the following applies:

\n\n
  • Users have given their consent for one or more specific purposes.
  • \n
  • Provision of data is necessary for the performance of an agreement with the user.
  • \n
  • Processing is necessary for compliance with a legal obligation.
  • \n
\n\n\n\n

In any case, Innerlogic will gladly help clarify the specific legal basis that applies to the processing, mainly whether the provision of personal data is a statutory or contractual requirement or a requirement necessary to enter into a contract.

\n\n\n\n

Your Consent

\n\n\n\n

Consent to the collection, use and disclosure of personal information may be given in various ways. Consent can be express (for example, orally, electronically or on a form you may sign describing the intended uses and disclosures of personal information) or implied (for example, when you provide information necessary for a service you have requested). You may provide your consent in some circumstances where notice has been provided to you about our intentions with respect to your personal information and you have not withdrawn your consent for an identified purpose, such as by using an “opt out” option provided, if any. Consent may be given by your authorized representative (such as a legal guardian or a person having a power of attorney). Generally, by providing us with personal information, we will assume that you consent to our collection, use and disclosure of such information for the purposes identified or described in this privacy statement, if applicable, or otherwise at the time of collection.

\n\n\n\n

You may withdraw your consent to our collection, use and disclosure of personal information at any time, subject to contractual and legal restrictions and reasonable notice. Note that if you withdraw your consent to certain uses of your personal information, we may no longer be able to provide certain of our products or services to your employer or community. Note also that where we have provided or are providing services to you, your consent will be valid for so long as necessary to fulfil the purposes described in this Privacy Statement or otherwise at the time of collection, and you may not be permitted to withdraw consent to certain necessary uses and disclosures (for example, but not limited to, maintaining reasonable business and transaction records, disclosures to Canadian and foreign government entities as required to comply with laws, and reporting on credit information after credit has been granted, if applicable).

\n\n\n\n

Innerlogic collects, uses and discloses your personal information with your consent, except as permitted or required by law. We may be required or permitted under statute or regulation to collect, use or disclose personal information without your consent, for example to comply with a court order, to comply with local or federal regulations or a legally permitted inquiry by a government agency, or to collect a debt owed to us.

\n\n\n\n

Security

\n\n\n\n

We take reasonable steps to protect your personal information using physical, electronic or procedural security measures appropriate to the sensitivity of the information in our custody or control, which may include safeguards to protect against loss or theft, as well as unauthorized access, disclosure, copying, use or modification. Authorized employees, agents and mandataries of Innerlogic who require access to your personal information in order to fulfil their job requirements will have access to your personal information.

\n\n\n\n

Retention Time

\n\n\n\n

Personal data is processed and stored for as long as required to fulfill the purpose for which it is collected.

\n\n\n\n

Therefore:

\n\n\n\n
  • Personal data collected for the performance of a contract between Innerlogic and a business customer is retained until such contract has been entirely performed or the business customer asks for the data to be deleted.
  • Personal data collected for Innerlogic’s legitimate interests shall be retained as long as needed to fulfill such purposes. Users may find specific information regarding Innerlogic’s legitimate interests within the relevant sections of this document or by contacting Innerlogic.
\n\n\n\n

Innerlogic may be allowed to retain personal information for a more extended period whenever the user has given consent to such processing, as long as such consent is not withdrawn. Furthermore, Innerlogic may be obliged to retain personal data for a more extended period whenever required to perform a legal obligation or upon order of an authority.

\n\n\n\n

Once the retention period expires, the user’s personal data will be securely deleted.

\n\n\n\n

The Purposes of Processing

\n\n\n\n

The data concerning the user is collected to allow Innerlogic to provide its services, as well as for the following purposes: analytics, user database management, managing contacts and sending messages, handling payments, interaction with external social networks and platforms, remarketing and behavioral targeting, contacting the user, displaying content from external platforms, hosting and backend infrastructure, interaction with live chat platforms, and spam protection.

\n\n\n\n

Users can find further detailed information about such purposes of processing and the specific personal data used for each purpose in the respective sections of this document.

\n\n\n\n

Detailed Information on the Processing of Personal Data

\n\n\n\n

Personal data is collected for the following purposes and using the following services and third parties:

\n\n\n\n

Analytics

\n\n\n\n

The services contained in this section enable Innerlogic to monitor and analyze web traffic and can be used to keep track of user behavior.

\n\n\n\n

HubSpot Analytics (HubSpot, Inc.)

\n\n\n\n

HubSpot Analytics is an analytics service provided by HubSpot, Inc.

\n\n\n\n

Personal data collected: cookies and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy

\n\n\n\n

Google Analytics (Google Inc.)

\n\n\n\n

Google Analytics is a web analysis service provided by Google Inc. (“Google”). Google utilizes the data collected to track and examine the use of this application, to prepare reports on its activities, and to share the reports with other Google services.

\n\n\n\n

Google may use the data collected to contextualize and personalize the ads of its own advertising network.

\n\n\n\n

Personal data collected: cookies and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy

\n\n\n\n

Contacting the User

\n\n\n\n

Contact Form (The Innerlogic Web Application)

\n\n\n\n

By filling in the contact form with their data, users authorize the Innerlogic web application to use these details to reply to requests for information, quotes, or any other kind of request as indicated by the form’s header.

\n\n\n\n

Personal data collected: address, city, company name, country, email address, first name, last name, phone number, job role, province, state, and ZIP/Postal code.

\n\n\n\n

Displaying Content from External Platforms

\n\n\n\n

This type of service allows users to view content hosted on external platforms directly from the pages of the Innerlogic web application and interact with them.

\n\n\n\n

This type of service might still collect web traffic data for the pages where the service is installed, even when users do not use it.

\n\n\n\n

Google Fonts (Google Inc.)

\n\n\n\n

Google Fonts is a typeface visualization service provided by Google Inc. that allows this Application to incorporate content of this kind on its pages.

\n\n\n\n

Personal data collected: usage data and various types of data as specified in the service’s privacy policy.

\n\n\n\n

Place of processing: US – Privacy Policy. Privacy Shield participant.

\n\n\n\n

Hosting and Back-End Infrastructure

\n\n\n\n

This type of service has the purpose of hosting data and files that enable the Innerlogic website and the Innerlogic web application to run and be distributed. Additionally, these services provide the infrastructure to run specific features or parts of the application. Some of these services work through geographically distributed servers, making it difficult to determine the actual location where the personal data is stored.

\n\n\n\n

Linode Web serivces

\n\n\n\n

Linode Web Services is a hosting and backend service provided by Linode LLC.

\n\n\n\n

Personal data collected: various types of data as specified in the privacy policy of the service.

\n\n\n\n

Place of processing: See the Linode privacy policy – Privacy Policy.

\n\n\n\n

Postmark

\n\n\n\n

Postmark is an email delivery service.

\n\n\n\n

Personal data collected: various types of data as specified in the privacy policy of the service.

\n\n\n\n

Place of processing: See the Postmark privacy policy – Privacy Policy.

\n\n\n\n

Managing Contacts and Sending Messages

\n\n\n\n

This type of service makes it possible to manage a database of email contacts, phone contacts, or any other contact information to communicate with the user.

\n\n\n\n

These services may also collect data concerning the date and time when the message was viewed by the user and when the user interacted with it, such as by clicking on links included in the message.

\n\n\n\n

HubSpot Email (HubSpot, Inc.)

\n\n\n\n

HubSpot Email is an email address management and message sending service provided by HubSpot, Inc.

\n\n\n\n

Personal data collected: email address and usage data.

\n\n\n\n

Place of processing: US – Privacy Policy..

\n\n\n\n

Changes to This Privacy Notice

\n\n\n\n

Innerlogic reserves the right to make changes to this privacy notice at any time by giving notice to users on this page and possibly within this application or–as far as technically and legally feasible–sending a notice to users via any contact information available to Innerlogic. Users are strongly recommended to check this page often, referring to the date of the last modification listed at the bottom. Should the changes affect processing activities performed based on the users’ consent, Innerlogic shall collect new consent from the user where required.

\n\n\n\n

Further Information about Personal Data

\n\n\n\n

The Rights of Users

\n\n\n\n

Users may exercise certain rights regarding their data processed by Innerlogic.

\n\n\n\n

In particular, users have the right to do the following:

\n\n\n\n
  • Withdraw their consent at any time. Users have the right to withdraw consent after they have previously given their consent to the processing of their personal data.
  • Object to processing of their data. Users have the right to object to the processing of their data if the processing is carried out on a legal basis other than consent. Further details are provided in the dedicated section below.
  • Access their data. Users have the right to learn if Innerlogic is processing their data, obtain disclosure regarding certain aspects of the processing, and obtain a copy of the data undergoing processing.
  • Verify and seek rectification. Users have the right to verify their data accuracy and ask for it to be updated or corrected.
  • Restrict the processing of their data. Users have the right, under certain circumstances, to restrict the processing of their data. In this case, Innerlogic will not process their data for any purpose other than storing it.
  • Have their personal data deleted or otherwise removed. Users have the right, under certain circumstances, to obtain the erasure of their data from Innerlogic.
  • Receive their data and have it transferred to another controller. Users have the right to receive their data in a structured, commonly used, machine-readable format, and, if technically feasible, to have it transmitted to another controller without any hindrance. This provision is applicable provided that the data is processed by automated means and that the processing is based on the user’s consent, on a contract that the user is part of, or on precontractual obligations.
  • Lodge a complaint. Users have the right to bring a claim before their competent data protection authority.
  • Details About the Right to Object to Processing
\n\n\n\n

Where personal data is processed for the public interest, in the exercise of an official authority vested in Innerlogic or for the legitimate interests pursued by Innerlogic, users may object to such processing by providing a ground related to their particular situation to justify the objection.

\n\n\n\n

However, users must know that should their personal data be processed for direct marketing purposes, they can object to that processing at any time without providing any justification. To learn whether the Innerlogic is processing Personal Data for direct marketing purposes, users may refer to the relevant sections of this document.

\n\n\n\n

How to Exercise These Rights

\n\n\n\n

Any requests to exercise user rights can be directed to Innerlogic through the contact details provided in this document (privacy@Innerlogic.com). These requests can be exercised free of charge and will be addressed by Innerlogic as early as possible and always within one month.

\n\n\n\n

Additional Information about Data Collection and Processing

\n\n\n\n

Legal Action

\n\n\n\n

Users’ personal data may be used for legal purposes by Innerlogic in court or the stages leading to possible legal action arising from improper use of this application or the related services. The users declare they are aware that Innerlogic may be required to reveal personal data upon request of public authorities.

\n\n\n\n

Additional Information About Users’ Personal Data

\n\n\n\n

In addition to the information contained in this privacy notice, this application may provide users with additional and contextual information concerning particular services or the collection and processing of personal data upon request.

\n\n\n\n

System Logs and Maintenance

\n\n\n\n

For operation and maintenance purposes, this application and any third-party services may collect files that record interaction with this application (e.g., system logs) using other personal data (e.g., IP Address) for this purpose.

\n\n\n\n

Information Not Contained in This Notice

\n\n\n\n

More details concerning the collection or processing of personal data may be requested from Innerlogic at any time. Users may use the contact information at the beginning of this document.

\n\n\n\n

How “Do Not Track” Requests are Handled

\n\n\n\n

This application does not support “Do Not Track” requests.

\n\n\n\n

To determine whether any of the third-party services it uses honor “Do Not Track” requests, users should read their privacy policies.

\n\n\n\n

Definitions and Legal References

\n\n\n\n

Personal Data (or Data)

\n\n\n\n

Any information that directly, indirectly, or in connection with other information—including a personal identification number—allows for the identification or identifiability of a natural person.

\n\n\n\n

Usage Data

\n\n\n\n

Information collected automatically through this application (or obtained by services employed in this application)can include: the IP addresses or domain names of the computers utilized, the Uniform Resource Identifier (URI) addresses, the time of the request, the method used to submit the request to the server, the size of the file received in response, the numerical code indicating the status of the server’s answer (successful outcome, error, etc.), the country of origin, the features of the users’ browser and operating system, the various time details per visit (e.g., the time spent on each page within the application), and the information on the path followed within the application with particular reference to the sequence of pages visited, and other parameters about the device operating system or the users’ IT environment.

\n\n\n\n

User

\n\n\n\n

The individual using this application who, unless otherwise specified, coincides with the data subject.

\n\n\n\n

Data Subject

\n\n\n\n

The natural person to whom the personal data refers.

\n\n\n\n

Data Processor

\n\n\n\n

The natural or legal person, public authority, agency, or other body that processes personal data on behalf of the controller, as described in this privacy notice.

\n\n\n\n

Sub-Processor

\n\n\n\n

This refers to any additional third party who processes personal data on behalf of the data processor in fulfilling contractual obligations and services.

\n\n\n\n

Data Controller

\n\n\n\n

The person, public authority, agency, or other body that determines the purposes and means of processing personal data, including the security measures concerning the operation and use of this application.

\n\n\n\n

This Application

\n\n\n\n

The information technology system that collects and processes the personal data of the user.

\n\n\n\n

Service

\n\n\n\n

The service provided by the Innerlogic platform or Innerlogic team.

\n\n\n\n

European Union (EU)

\n\n\n\n

Unless otherwise specified, all references made within this document to the European Union (EU) include all current member states to the European Union and the European Economic Area.

\n\n\n\n

Cookies

\n\n\n\n

Small piece of data stored on the user’s device.

\n\n\n\n

Legal Information

\n\n\n\n

This privacy notice has been prepared based on provisions of multiple legislations, including Art. 13/14 of Regulation (EU) 2016/679 (General Data Protection Regulation).

\n\n\n\n

This privacy notice relates to the Innerlogic website, application, and supporting services unless otherwise stated within this document.

\n\n\n
\n\t\t)\n\n}\n\n\nexport default Privacy","import React from 'react';\nimport styled from 'styled-components';\n\nconst Intro = (props) =>{\n\n\treturn (\n\t\t\n\t\t\t{props.title}\n\t\t\t{props.intro}\n\t\t\tprops.next()}>Begin\n\t\t\n\n\t\t)\n}\n\nexport default Intro\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\n\nconst End = ({submitAnswer}) =>{\n\n\treturn (\n\t\t\n\t\t\tSubmit your answers\n\t\t\tsubmitAnswer()}>Submit\n\t\t\n\n\t\t)\n}\n\nexport default End\n\n\n// const Title = styled.div`\n// \tfont-size: 50px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// margin-bottom:20px;\n// color:white;\n// line-height:1;\n// max-width:654px;\n\n// @media only screen and (min-width:992px){\n// font-size: 72px;\n// margin-bottom:50px;\n// }\n// `\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport format from \"date-fns/format\";\n\nconst End = ({ message, onTime, status }) => {\n const [endDate, setEndDate] = useState(Date())\n // console.log( message, onTime, status)\n\n // console.log(status == 100)\n\n useEffect(() => {\n if (onTime) {\n setEndDate(format(new Date(onTime), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [onTime])\n\n let CustomMessage = 'We are unable to get information about this survey'\n if (status === 3) {\n CustomMessage = 'This survey has been completed'\n }\n if (status > 4 && status < 11) {\n CustomMessage = 'This survey has been closed and is no longer accessible'\n }\n\n if (status === 100) {\n CustomMessage = 'Hmm! It looks like this survey has expired'\n }\n// console.log(status > 4, CustomMessage)\n // const Start = format(onTime, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\n return (\n \n \n {message ? message : CustomMessage\n \n }\n \n\n {endDate ? `Updated on ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}` : ''}\n \n \n\n\n \n\n )\n}\n\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/completed.png'\n\n\nconst End = (props) =>{\n\n\treturn (\n\t\t\n
\n \n\n\t\t\t Survey completed\n
\n\t\t\tThis survey has been successfully submitted.\n\t\t\t\n\t\t
\n\n\t\t)\n}\n\n\nexport default End\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n line-height:1;\n margin-bottom:10px;\n\n`\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n text-align:center;\n\n @media only screen and (min-width:992px){\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n width:700px;\n \n @media only screen and (min-width:992px){\n left: 25%;\n top: 15%;\n }\n\n @media(max-width:768px){\n width:100%;\n }\n \n`\n\nconst Image = styled.img`\n width:400px;\n margin-bottom:40px;\n\n @media(max-width:768px){\n width:100%;\n }\n`","import styled from \"styled-components\";\nimport React from \"react\";\n\n\n\nconst words = [\"Disagree\", \"\", \"Neutral\", \"\", \"Agree\"];\n\nconst Likert = ({ value, saveResult }) => {\n\n return (\n \n {[0, 1, 2, 3, 4].map((item, i) => {\n return (\n saveResult(i + 1)}\n key={i}\n >\n {item + 1}\n {words[i]}\n \n );\n })}\n \n )\n}\n\n\nexport default Likert\n\n\n\nconst QuestionItem = styled.div`\n width: 18%;\n height: 55px;\n display: flex;\n flex-direction: column;\n align-items: center;\n font-family: \"Red Hat Display\", sans-serif;\n border-radius: ${(props) =>\n props.i === 1 ? \"7px 0px 0px 7px\" : props.i === 5 ? \"0 7px 7px 0\" : \"none\"};\n border: 1px solid white;\n cursor: pointer;\n background-color: ${(props) => (props.answer === props.i ? \"white\" : \"none\")};\n color: ${(props) => (props.answer === props.i ? \"#6a00ff\" : \"white\")};\n\n &:active {\n background: white;\n color:#6a00ff;\n }\n\n @media only screen and (min-width: 992px) {\n height: 85px;\n width: 20%;\n\n &:hover {\n background: white;\n color: #6a00ff;\n }\n &:active {\n background: #6a00ff;\n color:white;\n }\n }\n\n \n`;\n\nconst QuestionContainer = styled.div`\n width: 100vw;\n height: 65px;\n margin-top: 10px;\n display: flex;\n flex-direction: row;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\nconst Num = styled.div`\n font-size: 18px;\n font-weight: bold;\n margin-top: 10px;\n\n @media only screen and (min-width: 992px) {\n font-size: 24px;\n margin-top: 20px;\n }\n`;\nconst Rating = styled.div`\n font-size: 10px;\n font-weight: 500;\n margin-top: 0px;\n\n @media only screen and (min-width: 992px) {\n font-size: 15px;\n margin-top: 10px;\n }\n`;\n","import styled from \"styled-components\";\nimport React from \"react\";\n\n\n\nconst TakeAway = ({ value, saveResult }) => {\n\n const [res1, setRes1] = React.useState(value ? value[0] : \"\")\n const [res2, setRes2] = React.useState(value ? value[1] : \"\")\n const [res3, setRes3] = React.useState(value ? value[2] : \"\")\n\n\n\n return (\n \n Point #1\n setRes1(e.target.value)}\n placeholder={'Add comment here'} />\n\n Point #2\n setRes2(e.target.value)}\n placeholder={'Add comment here'} />\n\n Point #3\n setRes3(e.target.value)}\n placeholder={'Add comment here'} />\n\n \n \n )\n}\n\n\nexport default TakeAway\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n \n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n padding-left:30px;\n }\n`;\n\nconst TextBox = styled.textarea`\n width:400px;\n color: #4a4a4a;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n background-color: white;\n border-radius: 8px;\n border: none;\n padding: 15px;\n margin: 12px;\n\n @media(max-width:768px){\n width:100%;\n margin:0;\n margin-bottom:10px;\n }\n`\nconst Title = styled.div`\n color:white;\n font-family: \"Red Hat Display\", sans-serif;\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import styled from \"styled-components\";\nimport React from \"react\";\n\n\n\nconst Text = ({ value, saveResult }) => {\n\n const [res1, setRes1] = React.useState(value ? value : \"\")\n\n\n\n return (\n \n setRes1(e.target.value)}\n placeholder={'Add comment here'} />\n\n \n \n )\n}\n\n\nexport default Text\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n \n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n padding-left:30px;\n }\n`;\n\nconst TextBox = styled.textarea`\n width:400px;\n color: #4a4a4a;\n font-size: 16px;\n font-family: \"Red Hat Display\", sans-serif;\n background-color: white;\n border-radius: 8px;\n border: none;\n padding: 15px;\n margin: 12px;\n\n @media(max-width:768px){\n width:100%;\n margin:0;\n margin-bottom:10px;\n }\n`\n// const Title = styled.div`\n// color:white;\n// font-family: \"Red Hat Display\", sans-serif;\n// `\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { withStyles } from '@material-ui/core/styles';\n\n\nconst PrettoSlider = withStyles({\n root: {\n color: 'grey',\n height: 8,\n },\n thumb: {\n height: 24,\n width: 24,\n backgroundColor: '#FA675C',\n color: '#FA675C',\n border: '2px solid currentColor',\n marginTop: -8,\n marginLeft: -12,\n '&:focus, &:hover, &$active': {\n boxShadow: 'inherit',\n },\n },\n active: {},\n valueLabel: {\n left: 'calc(-50% + 4px)',\n },\n track: {\n height: 8,\n borderRadius: 4,\n },\n rail: {\n height: 8,\n borderRadius: 4,\n },\n})(Slider);\n\nconst SliderQ = ({ value, saveResult, words }) => {\n\n const [res1, setRes1] = React.useState(value ? value : 0)\n\n const getScore = (val) => {\n\n if (val < 20) {\n return words[0]\n }\n if (val < 40) {\n return words[1]\n }\n if (val < 60) {\n return words[2]\n }\n if (val < 80) {\n return words[3]\n }\n return words[4]\n }\n\n return (\n \n {res1 ? getScore(res1) : \"\"}\n setRes1(t)}\n />\n\n \n \n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: #6a00ff;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`","import styled from \"styled-components\";\nimport React from \"react\";\nimport Likert from './Responses/Likert'\nimport TakeAway from './Responses/TakeAway'\nimport TextQ from './Responses/Text'\nimport Slider from './Responses/Slider'\n\nconst QuestionTemplate = (props) => {\n\n\n\n return (\n \n {props?.data?.question}\n {props?.data?.type === \"likert\" &&\n props.save(r)} />}\n\n {props?.data?.type === \"takeaway\" &&\n props.save(r)} />}\n\n {props?.data?.type === \"text\" &&\n props?.save(r)} />}\n\n {props?.data?.type === \"slider\" &&\n props.save(r)} />}\n\n {/*{get_answers.personality_high_ans === 100 && (\n \n Submit Answers\n \n )}*/}\n \n )\n\n}\n\n\n\nexport default QuestionTemplate\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n left: 25%;\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n font-family: \"Red Hat Display\", sans-serif;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n\n// const SubmitButton = styled(Button)`\n// width: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n// // color: white;\n// // background-color: white;\n// color: #6A00FF;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// cursor: pointer;\n// `;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\n// const SubTitle = styled.div`\n// \tfont-size: 18px;\n// \tline-height: 1.17;\n// color: ${props=>props.survey==3?'#4a4a4a':'white'};\n// font-family: 'Red Hat Display', sans-serif;\n// margin-bottom:20px;\n// max-width:654px;\n\n// @media only screen and (min-width:992px){\n// font-size: 72px;\n// margin-bottom:50px;\n// font-size: 24px;\n// }\n// `\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n \n`\n\nconst ThankYou = (props) =>{\n\n\treturn (\n\t\t\n\t\t\tThank you for participating\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t)\n}\n\n\nexport default ThankYou","import React from 'react';\nimport styled from 'styled-components';\n\nconst ThankYou = ({errorMessage}) =>{\n\n\treturn (\n\t\t\n\t\t\t{errorMessage}\n\t\t\n\n\t\t)\n}\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n margin-bottom:20px;\n color: white;\n line-height:1;\n max-width:654px;\n\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\n// const SubTitle = styled.div`\n// \tfont-size: 18px;\n// \tline-height: 1.17;\n// color: ${props=>props.survey==3?'#4a4a4a':'white'};\n// font-family: 'Red Hat Display', sans-serif;\n// margin-bottom:20px;\n// max-width:654px;\n\n// @media only screen and (min-width:992px){\n// font-size: 72px;\n// margin-bottom:50px;\n// font-size: 24px;\n// }\n// `\n\n// const Next = styled.div`\n// \twidth: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: 'Red Hat Display', sans-serif;\n// display:flex;\n// align-items:center;\n// justify-content:center;\n// cursor:pointer;\n// `\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n \n`\n\n\n\n\nexport default ThankYou","import React from 'react';\nimport styled from 'styled-components';\n\n\nconst End = ({ message }) => {\n\n let CustomMessage = 'There was an error in the survey'\n \n function handleNext() {\n window.location.reload();\n }\n// console.log(status > 4, CustomMessage)\n // const Start = format(onTime, \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\");\n return (\n \n \n {message ? message : CustomMessage}\n \n\n Please try completing this survey again!\n \n \n handleNext()}>Try Again\n\n \n\n )\n}\n\n\nexport default End\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #009370;\n color: rgba(0, 0, 0,0.9);\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n margin-top: 25px;\n cursor: pointer;\n ${(props) => !props.enabled && `\n opacity: 0.4;\n cursor:auto;\n `}\n`\n\nconst Title = styled.div`\n\tfont-size: 30px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\n\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n\nimport Intro from \"./Intro\";\nimport End from './End'\nimport styled from \"styled-components\";\nimport { Icon } from \"semantic-ui-react\";\n\nimport {\n\t// BrowserView,\n\t// MobileView,\n\tisBrowser,\n\tisMobile,\n\tdeviceType,\n\tosName,\n\tosVersion,\n\tdeviceDetect,\n} from \"react-device-detect\";\n\nimport SurveyMessage from \"./Message\";\nimport NoToken from \"./NoToken\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport {TRANSITIONSPEED, SlideDirection} from \"constants/animation\"\n\nimport \"../survey.css\";\nimport QuestionTemplate from \"./QuestionTemplate\"\nimport ThankYou from \"./ThankYou\"\nimport ErrorMessage from \"./ErrorMessage\"\nimport ReLoadPage from \"./ReLoadPage\";\n\nimport {\n\tSG_START_BRIEF_SURVEY,\n\tSG_POST_BRIEF_RESPONSE,\n\tUPDATE_BRIEF_RESPONSE,\n} from \"constants/actions\";\n\n\nconst SelectedQuestion = ({\n\tquestionNo,\n\tbriefResponse,\n\tanswers,\n\tquestions,\n\tsetQuestionNo,\n\tsaveAnswer,\n\tcomplete,\n\tsubmitAnswer,\n\tget_errors }) => {\n\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (get_errors?.errors?.data) {\n\t\tsetErrorMessage(get_errors?.errors?.data?.['detail'])\n\t\t}\n\t\t\n\t}, [get_errors]);\n\n\tif (complete) {\n\t\treturn submitAnswer()}\n\t\t\tintro={'You have completed all the questions in this survey. Please submit your responses'} />\n\n\t}\n\n\tif (errorMessage) {\n\t\treturn \n\t}\n\n\n\n\tif (questionNo === 0) {\n\t\treturn setQuestionNo(questionNo + 1)} />\n\t}\n\n\tif (complete) {\n\t\treturn \n\t}\n\treturn (\n\t\t saveAnswer(a)} />\n\t)\n\n}\n\nconst Template = () => {\n\tconst dispatch = useDispatch();\n\tlet { token } = useParams();\n\tconst [questionNo, setQuestionNo] = useState(0)\n\tconst [answers, setAnswers] = useState({})\n\tconst [direction, setDirection] = useState(1);\n\tconst [showPrev, setShowPrev] = useState(true);\n\tconst [showNext, setShowNext] = useState(true);\n\n\tconst [questions, setQuestions] = useState([])\n\tconst [briefResponse, setBriefResponse] = useState([])\n\tconst [complete, setComplete] = useState(false)\n\tconst [thankMessage, setThankMessage] = useState(false)\n\n\t// const [loading, setLoading] = React.useState(true)\n\n\tconst [submitError, setSubmitError] = React.useState(false)\n\n\n\tconst [surveyStatus, setSurveyStatus] = useState(0)\n\tconst [surveyDeleted, setSurveyDeleted] = useState(false);\n\tconst [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\t// const [surveyMessage, setSurveyMessage] = useState(false);\n\n\t// useEffect(() => {\n\t// \tsetTimeout(() => setLoading(false), 1000);\n\t// });\n\n\tconst { get_brief_response,\n\t\tget_errors } = useSelector(\n\t\t\t(state) => ({\n\t\t\t\tget_brief_response: state.briefresponse,\n\t\t\t\tget_errors: state.errors,\n\t\t\t}),\n\t\t\tshallowEqual\n\t\t);\n\n\tuseEffect(() => {\n\t\tsetQuestions(get_brief_response?.questions)\n\t}, [get_brief_response]);\n\n\tuseEffect(() => {\n\t\tsetShowPrev(true)\n\t\tsetShowNext(false)\n\t\tsetBriefResponse(get_brief_response)\n\t\tif ((questionNo) <= (get_brief_response?.high_answer)) {\n\t\t\tsetShowNext(true)\n\t\t}\n\t\tif (!questionNo) {\n\t\t\tsetShowPrev(false)\n\t\t\tsetShowNext(false)\n\t\t}\n\n\t\tif (questionNo === 1) {\n\t\t\tsetShowPrev(false)\n\t\t}\n\t\t// \n\t\tsetSurveyDeleted(get_brief_response?.to_delete)\n\t\tsetSurveyDeletedOn(get_brief_response?.deleted_on)\n\n\t\t// setSurveyMessage(get_brief_response?.token_message)\n\n\t\tsetSurveyStatus(get_brief_response?.survey_status)\n\n\t}, [get_brief_response, questionNo]);\n\n\tuseEffect(() => {\n\t\t// Run! Like go get some data from an API.\n\t\tif (token) {\n\t\t\tdispatch({ type: SG_START_BRIEF_SURVEY, payload: `?token=${token}` });\n\t\t}\n\t}, [dispatch, token]);\n\n\tconst deviceDetected = deviceDetect();\n\n\tfunction submitAnswer() {\n\t\tdispatch({\n\t\t\ttype: SG_POST_BRIEF_RESPONSE,\n\t\t\tpayload: {\n\t\t\t\tsurvey_token: briefResponse?.survey_token,\n\t\t\t\tdebrief_schedule: briefResponse?.debrief_schedule,\n\t\t\t\temployee: briefResponse?.employee,\n\t\t\t\tresponse: answers,\n\t\t\t\tfull_response: {\n\t\t\t\t\tisBrowser: isBrowser,\n\t\t\t\t\tisMobile: isMobile,\n\t\t\t\t\tbrowser: deviceDetected.browserName,\n\t\t\t\t\tdeviceType,\n\t\t\t\t\tosVersion,\n\t\t\t\t\tosName,\n\t\t\t\t\tdeviceDetected: deviceDetected,\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t\tsetThankMessage(true)\n\t}\n\n\n\n\tconst saveAnswer = (response) => {\n\n\t\tsetDirection(1)\n\t\t\n\t\tlet _answers = answers\n\t\t\n\t\tif (answers?.questionNo) {\n\t\t\t_answers.questionNo = response\n\n\t\t} else {\n\t\t\t_answers[questionNo] = response\n\t\t}\n\t\tsetAnswers(_answers)\n\n\t\tif ((questionNo + 1) <= briefResponse?.total_questions) {\n\t\t\tsetQuestionNo(questionNo + 1)\n\t\t\tsetComplete(false)\n\t\t} else {\n\t\t\tsetComplete(true)\n\n\t\t}\n\n\t\tdispatch({\n\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\tpayload: {\n\t\t\t\tcurrent_question: questionNo,\n\t\t\t\tcurrent_answer: questionNo,\n\t\t\t\thigh_answer: questionNo > briefResponse?.high_answer ? questionNo : briefResponse?.high_answer,\n\t\t\t\tanswers: _answers,\n\t\t\t\tcomplete: complete\n\t\t\t},\n\t\t});\n\t}\n\n\tconst forward = () => {\n\t\tif (briefResponse?.high_answer >= questionNo) {\n\t\t\tsetDirection(1)\n\t\t\tif ((questionNo + 1) <= briefResponse?.total_questions) {\n\t\t\t\tsetQuestionNo(questionNo + 1)\n\t\t\t\tsetComplete(false)\n\t\t\t} else {\n\t\t\t\tsetComplete(true)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst back = () => {\n\t\tif (questionNo > 1) {\n\t\t\tsetDirection(0)\n\t\t\tif ((questionNo) === briefResponse?.total_questions) {\n\t\t\t\tsetComplete(false)\n\t\t\t\tif (questionNo === briefResponse?.current_question) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: UPDATE_BRIEF_RESPONSE,\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\tcurrent_question: 0,\n\t\t\t\t\t\t\tcurrent_answer: 0,\n\t\t\t\t\t\t\tcomplete: false\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tsetQuestionNo(questionNo - 1)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsetQuestionNo(questionNo - 1)\n\t\t\t}\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (get_errors?.errors?.error?.request?.response) {\n\t\t\tlet RESP = JSON.parse(get_errors?.errors?.error?.request?.response)\n\t\t\tsetSubmitError(RESP?.detail)\n\t\t}\n\t\t\n\t}, [get_errors]);\n\n\t// console.log(surveyDeleted)\n\n\tif (!token) {\n\t\treturn \n\t}\n\n\n\tif (submitError) {\n\t\treturn (\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\t\n\n\tif (surveyDeleted) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\n\t\t)\n\t}\n\n\tif (thankMessage) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t{briefResponse?.survey_token &&\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{briefResponse?.short}\n\t\t\t\t\t\t\t{questionNo} of {questions?.length} questions\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t back()}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\n\t\t\t\t\t forward()}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t}\n\n\t\t
\n\t)\n}\n\nexport default Template\n\n\n\n\nconst Container = styled.div`\n height: 100vh;\n width: 100vw;\n background-color: #15056b;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst CounterContainer = styled.div`\n position: absolute;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 20px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n background-color: rgba(30, 33, 114, 0.3);\n font-family: \"Red Hat Display\", sans-serif;\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n padding: 10px 25px 10px 25px;\n font-size: 16px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: 5px;\n font-size: 20px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\n\nimport Img from 'assets/images/blink2.png'\n\nconst Title = styled.div`\n font-size: 50px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 20px;\n color: white;\n line-height: 1;\n max-width:600px;\n\n @media only screen and (min-width: 992px) {\n font-size: 72px;\n margin-bottom: 50px;\n }\n`;\nconst SubTitle = styled.div`\n font-size: 18px;\n line-height: 1.17;\n color: white;\n font-family: \"Red Hat Display\", sans-serif;\n margin-bottom: 20px;\n max-width: 654px;\n\n @media only screen and (min-width: 992px) {\n font-size: 72px;\n margin-bottom: 50px;\n font-size: 24px;\n }\n`;\n\n// const StyledMessage = styled.div`\n// font-size: 18px;\n// line-height: 1.17;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// flex-direction: column;\n// padding: 15px;\n// background-color: black;\n// color: white;\n// font-family: \"Red Hat Display\", sans-serif;\n// margin-bottom: 20px;\n// max-width: 654px;\n\n// @media only screen and (min-width: 992px) {\n// font-size: 72px;\n// margin-bottom: 50px;\n// font-size: 24px;\n// }\n// `;\n\nconst Next = styled.div`\n width: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: black;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nconst StyledContainer = styled.div`\n margin-top: 20vh;\n position: absolute;\n top:0;\n width: calc(100vw - 30px);\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media only screen and (min-width: 992px) {\n margin-top: 20vh;\n }\n`;\n\nconst Image = styled.img`\n height:50px;\n margin-bottom:20px;\n`\n\nconst Intro = (props) => {\n\n return (\n \n
\n
\n \n
\n Diversity & Inclusion Survey\n Your responses are completely anonymous and your data will never be used to personally identify you. Responses to this survey is completely voluntary.\n {/* missing no of team members your [12] team members */}\n props.next()}>Begin\n
\n
\n );\n};\n\nexport default Intro;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\n\n\nconst Form = (props) =>{\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\tWhich gender do you most identify with?\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\tprops.next()}> Next\n\t\t\t
\n\t\t
\n\t\t)\n}\n\n\nexport default Form\n\n\nconst Title = styled.div`\n\tcolor:white;\n\tfont-size:18px;\n\tfont-weight:bold;\n\tmargin-bottom:50px;\n`\n\nconst Option = styled.div`\n\tpadding:10px;\n\tborder:1px solid white;\n\tbackground-color:rgba(255, 255, 255,0.2);\n\tcolor:white;\n\tfont-weight:bold;\n\tborder-radius:6px;\n\tmargin-top:5px;\n\tcursor:pointer;\n\twidth:200px;\n`\n\nconst StyledContainer = styled.div`\n margin-top: 20vh;\n position: absolute;\n top:0;\n width: calc(100vw - 30px);\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media only screen and (min-width: 992px) {\n margin-top: 20vh;\n }\n`;\n\nconst Next = styled.div`\n width: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: black;\n font-size: 16px;\n font-weight: bold;\n font-family: \"Red Hat Display\", sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n margin-top:30px;\n`;","import React from \"react\";\nimport styled from \"styled-components\";\n// import { Dropdown, Input } from 'semantic-ui-react'\nimport Slider from '@material-ui/core/Slider';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst PrettoSlider = withStyles({\n root: {\n color: 'white',\n height: 8,\n },\n thumb: {\n height: 24,\n width: 24,\n backgroundColor: '#FA675C',\n color:'#FA675C',\n border: '2px solid currentColor',\n marginTop: -8,\n marginLeft: -12,\n '&:focus, &:hover, &$active': {\n boxShadow: 'inherit',\n },\n },\n active: {},\n valueLabel: {\n left: 'calc(-50% + 4px)',\n },\n track: {\n height: 8,\n borderRadius: 4,\n },\n rail: {\n height: 8,\n borderRadius: 4,\n },\n})(Slider);\n\n\n\n\nconst Inclusion = () =>{\n\n\t const prevScore = 50\n const [value, setValue] = React.useState(0)\n const [started, setStarted] = React.useState(false)\n\n\n const handleChange = (event, newValue) => {\n setValue(newValue);\n setStarted(true)\n };\n\n const getWord = () => {\n if (value === 0 && !started) {\n return \"\"\n }\n if (value < 20) {\n return 'Not at all'\n }\n if (value < 40) {\n return \"Not much\"\n }\n if (value < 60) {\n return \"Somewhat\"\n }\n if (value < 80) {\n return \"Mostly\"\n }\n return \"Absolutely\"\n }\n\n function getDifference() {\n if (value === 0 || !prevScore) {\n return \"\"\n }\n if (value - prevScore < 0) {\n return <> \n This is a  {(value - prevScore)}%  change from last week\n \n }\n\n\n if (value - prevScore > 0) {\n return <> \n This is a  +{(value - prevScore)}%  change from last week\n \n }\n\n return \n This is a {` ${(value - prevScore)}%`} change from last week\n \n\n \n }\n\n\treturn (\n\t\t\n Inclusion\n How included have you felt at work lately?\n {/* Please select at least 1 person and at most 10 */}\n {getWord()}\n \n \n \n {getDifference(70)} \n \n \n \n \n\t\t)\n}\n\n\nexport default Inclusion\n\n\n\n\n\nconst Container = styled.div`\n top:50px;\n left:20%;\n position: absolute;\n width:90%;\n display:flex;\n flex-direction:column;\n color:white;\n\n @media(max-height:600px){\n top:100px;\n }\n\n @media only screen and (min-width:992px){\n top:200px;\n }\n\n @media(max-width:768px){\n \theight:calc(100vh - 50px);\n \tdisplay:flex;\n \tflex-direction:column;\n }\n`\n\n\n\nconst Question = styled.div`\nfont-size: 16px;\nfont-weight: bold;\nwidth: 700px;\nfont-family: 'Red Hat Display', sans-serif;\nline-height: 1.6;\nmargin-top:14px;\nmax-width:95%;\nmargin-bottom:10px;\ncolor:white;\n\n\n@media only screen and (min-width:992px) and (max-height:700px){\n font-size: 20px;\n margin-top:28px;\n}\n\n@media only screen and (min-width:992px) and (min-height:700px){\n font-size: 23px;\n margin-top:28px;\n}\n\n@media (max-width:768px){\n\tmargin-bottom:60px;\n\tfont-size:16px;\n\tfont-weight:bold;\n}\n`\n\nconst Change = styled.div`\ncolor:${props => props.color ? props.color : \"grey\"};\nfont-weight: 800;\n\n`\n\n// const ChangeContainer = styled.div`\n\n// `\n\n// const SubText = styled.div`\n// \tcolor:white;\n// \twidth: 700px;\n// \tfont-family: 'Red Hat Display', sans-serif;\n// \tmargin-top:10px;\n// `\n\nconst Title = styled.div`\nfont-size: 16px;\nfont-family: 'Red Hat Display', sans-serif;\nwidth: 700px;\n\n\n@media(max-width:768px){\n\tcolor:#e4e4e4;\n\tfont-size:14px;\n}\n`\n\nconst SliderContainer = styled.div`\n\tmax-width:700px;\n\n`\n\nconst Value = styled.div`\n\tfont-family: 'Red Hat Display', sans-serif;\n\twidth:700px;\n\tdisplay:flex;\n\tjustify-content:space-between;\n\theight:50px;\n\tmargin-bottom:20px;\n\t\tfont-size:20px;\n\tcolor:white;\n`\nconst ColoredValue = styled.div`\n\tfont-family: 'Red Hat Display', sans-serif;\n\twidth:700px;\n\tdisplay:flex;\n\tjustify-content:flex-end;\n\theight:50px;\n\tmargin-bottom:20px;\n\t\tfont-size:12px;\n\tcolor:# ${props => props.color ? \"#7F7F7F\" : props.color};;\n`\n\nconst Button = styled.div`\nheight: 40px;\nborder-radius: 10px;\nbackground-color: ${props => props.enabled ? \"white\" : \"grey\"}; \ncolor:black;\nfont-size: 16px;\nfont-weight: bold;\nfont-family: 'Red Hat Display', sans-serif;\ndisplay:flex;\njustify-content:center;\nalign-items:center;\ncursor:${props => props.enabled ? \"pointer\" : \"not-allowed\"};\nwidth:100px;\nmargin-top:50px;\n\n@media (max-height:600px){\n margin-top:30px;\n}\n`\nconst ButtonContainer = styled.div`\n\twidth:700px;\n`","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED } from \"constants/animation\"\n\nimport \"../survey.css\";\nimport Intro from './Intro'\nimport Form from './form'\nimport Inclusion from './Inclusion'\n\nconst Blink = () => {\n\n const [question, setQuestion] = React.useState(1)\n\n return (\n \n \n \n \n <>\n {/* eslint-disable-next-line eqeqeq */}\n {question == 1 ?\n setQuestion(2)} />\n :\n // eslint-disable-next-line eqeqeq\n question == 2 ?\n
setQuestion(3)} key={question} />\n : \n }\n \n \n \n \n \n )\n}\n\n\n\nexport default Blink\n\n\n\n\n\nconst SurveyContainer = styled.div`\n padding: 15px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 100vw;\n box-sizing: border-box;\n min-height:750px;\n\n @media only screen and (min-width: 992px) {\n padding: 30px;\n }\n`;\n\nconst Container = styled.div`\nheight:100vh;\nmin-height:650px;\nwidth:100vw;\ndisplay:flex;\nflex-direction:row;\nposition:relative;\nbackground-color:black;\n\n@media only screen and (min-width:992px){\n height:100vh;\n}\n\n`\n","export const primary_question_subfactor = [{\n \"fr\": null,\n \"id\": \"592e030d-2e64-4c9b-962f-dcbb64a2250b\",\n \"sno\": 0,\n \"name\": \"Sport\",\n \"answers\": [{\n \"id\": \"4cc5f68b-ae91-405c-9656-5a02eed675d7\",\n \"name\": \"Archery\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 0\n }, {\n \"id\": \"320b8a6f-6366-4fa6-92d6-65dd684a920e\",\n \"name\": \"Artistic Swimming\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 1\n }, {\n \"id\": \"22eeb288-0530-4b08-908e-e0251e90af5f\",\n \"name\": \"Athletics\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 2\n }, {\n \"id\": \"ade9b1f8-3145-4ed0-9d63-5889b176bb6b\",\n \"name\": \"Boxing\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 3\n }, {\n \"id\": \"8b3dac30-21dc-410a-8455-895095b349fe\",\n \"name\": \"Canoe/kayak\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 4\n }, {\n \"id\": \"f0c86f88-264c-475d-9247-987ac407f743\",\n \"name\": \"Cycling\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 5\n }, {\n \"id\": \"844426a1-870a-4204-833c-bbc2d04eaf79\",\n \"name\": \"Diving\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 6\n }, {\n \"id\": \"81113ebb-54e1-4569-b780-8a6f58c1be9b\",\n \"name\": \"Fencing\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 7\n }, {\n \"id\": \"ade32aab-1323-4621-9d49-364007c71bda\",\n \"name\": \"Golf\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 8\n }, {\n \"id\": \"0db6fccc-1241-45e0-b234-3dba11ef8f80\",\n \"name\": \"Gymnastics\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 9\n }, {\n \"id\": \"4ab2182a-6075-4011-bfd9-ebfdaeee03c9\",\n \"name\": \"Judo\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 10\n }, {\n \"id\": \"70aa1df2-9ea6-473b-897f-fdef9c2de5ad\",\n \"name\": \"Karate\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 11\n }, {\n \"id\": \"a5b7239b-943d-401d-80de-bd415fa678db\",\n \"name\": \"Rowing\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 12\n }, {\n \"id\": \"7317eb21-50f3-4b07-be29-bf9addc17943\",\n \"name\": \"Rugby 7s (F)\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 13\n }, {\n \"id\": \"011e35ef-e0b4-4388-ace0-ef297f26e604\",\n \"name\": \"Sailing\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 14\n }, {\n \"id\": \"5f14d317-2263-4e60-a2cb-8ef5d9009bae\",\n \"name\": \"Soccer (F)\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 15\n }, {\n \"id\": \"228f0b3d-f137-4323-9125-69cf8405feeb\",\n \"name\": \"Softball (F)\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 16\n }, {\n \"id\": \"41300992-3afb-4d4b-baa2-263dd8e0726d\",\n \"name\": \"Swimming\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 17\n }, {\n \"id\": \"5dccd631-b86d-47fc-984e-ac73d1234f7f\",\n \"name\": \"Taekwondo\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 18\n }, {\n \"id\": \"12b9ae36-1cf5-4649-a208-2ecbccf70721\",\n \"name\": \"Tennis\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 19\n }, {\n \"id\": \"2c60182b-0c96-4ec0-b140-ab933367377f\",\n \"name\": \"Triathlon\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 20\n }, {\n \"id\": \"1c840f5a-0be7-4520-98b7-c2f5bcaea764\",\n \"name\": \"Volleyball - Beach\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 21\n }, {\n \"id\": \"9818da96-c737-4202-9767-a1f0d081062f\",\n \"name\": \"Weightlifting\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 22\n }, {\n \"id\": \"7a82bc88-1ada-4a7a-8efb-699b3c10683d\",\n \"name\": \"Wrestling\",\n \"parent_id\": \"3c8d22f2-e0af-4056-85dd-a85079a54cad\",\n \"parent_name\": \"Summer Sports\",\n \"parent_index\": 23\n }, {\n \"id\": \"0369694b-7390-4998-a355-6a087ade267c\",\n \"name\": \"Alpine Skiing\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 0\n }, {\n \"id\": \"f0d547e5-8d23-42f4-a7c7-bebafe9a629f\",\n \"name\": \"Biathlon\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 1\n }, {\n \"id\": \"e0635511-42dd-47c3-acb1-05391a0f2368\",\n \"name\": \"Bobsleigh\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 2\n }, {\n \"id\": \"f22c084c-9d35-488c-bde6-9580c58b6831\",\n \"name\": \"Cross Country Skiing\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 3\n }, {\n \"id\": \"ee69cba8-0b82-4628-8c80-7ddb62e0d4a5\",\n \"name\": \"Curling\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 4\n }, {\n \"id\": \"381d7878-ba3e-4049-b91c-2861ef419c5e\",\n \"name\": \"Figure Skating\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 5\n }, {\n \"id\": \"83ecba78-63d1-4d62-b6e7-6e9e19c24abb\",\n \"name\": \"Freestyle Skiing\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 6\n }, {\n \"id\": \"6d5fd1f9-abf2-41e9-96d4-743bede604e0\",\n \"name\": \"Hockey (F)\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 7\n }, {\n \"id\": \"69c70672-b110-4322-ba40-d07b7a3670b6\",\n \"name\": \"Hockey (M)\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 8\n }, {\n \"id\": \"e05d9f90-8487-42ea-ae80-aba7fc14dd4c\",\n \"name\": \"Luge\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 9\n }, {\n \"id\": \"ee6b3fc0-3a6c-445f-aa15-c0c346b12d4d\",\n \"name\": \"Skeleton\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 10\n }, {\n \"id\": \"1b7a2d21-030f-480f-a45e-e4a343178865\",\n \"name\": \"Ski Cross\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 11\n }, {\n \"id\": \"ff00dd17-f5ec-4114-bbd7-d64e3342c7fe\",\n \"name\": \"Snowboard\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 12\n }, {\n \"id\": \"0cb23c4b-fc4b-46f6-8d6b-50ccc9ebe813\",\n \"name\": \"Speed Skating - Long Track\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 13\n }, {\n \"id\": \"1587ae06-d2a3-4adb-892e-b3d23f06a1e6\",\n \"name\": \"Speed Skating - Short Track\",\n \"parent_id\": \"487a9cfa-6534-435a-b756-991b07cfe28a\",\n \"parent_name\": \"Winter Sports\",\n \"parent_index\": 14\n }, {\n \"id\": \"677131dd-e284-4c7f-91b5-076da05aaa0c\",\n \"name\": \"Boccia\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 0\n }, {\n \"id\": \"a2f05883-5aaf-4b51-9fbc-c25adc79252f\",\n \"name\": \"Goalball (F)\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 1\n }, {\n \"id\": \"a3264d76-ece9-4f4d-847c-1386b8738223\",\n \"name\": \"Para-Athletics\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 2\n }, {\n \"id\": \"91a2c703-87fa-4e65-95ff-e91a952e011d\",\n \"name\": \"Para-Canoe\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 3\n }, {\n \"id\": \"0018c508-cc8a-438b-99c8-5547e817ed70\",\n \"name\": \"Para-Cycling\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 4\n }, {\n \"id\": \"961f602b-48bb-40a6-a483-73f92e88c7b9\",\n \"name\": \"Para-Equestrian\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 5\n }, {\n \"id\": \"37e5c612-fc68-43bf-883e-a826a188aa89\",\n \"name\": \"Para-Judo\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 6\n }, {\n \"id\": \"c237d488-ba6c-4d2f-b86c-44f5d58b4bc5\",\n \"name\": \"Para-Rowing\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 7\n }, {\n \"id\": \"2ebe8e30-3790-4daf-b2c8-9b963778f514\",\n \"name\": \"Para-Swimming\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 8\n }, {\n \"id\": \"0ea80699-5803-40a9-8c4a-0661f0768d5c\",\n \"name\": \"Para-Triathlon\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 9\n }, {\n \"id\": \"0e72e584-fe05-46b5-a93a-2a9cdf7f3eaa\",\n \"name\": \"Sitting Volleyball (F)\\t\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 10\n }, {\n \"id\": \"140a9732-21c1-4b77-b03b-8c12c4195c35\",\n \"name\": \"Wheelchair Rugby\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 11\n }, {\n \"id\": \"c3b59991-6181-4e6c-90e2-5e3cedc9b16b\",\n \"name\": \"Wheelchair Tennis\",\n \"parent_id\": \"53682381-1a99-42fe-a429-b8671e29b394\",\n \"parent_name\": \"Para Summer\",\n \"parent_index\": 12\n }, {\n \"id\": \"4169aeee-1143-4fea-b3d6-0715015aa848\",\n \"name\": \"Para-Alpine Skiing\",\n \"parent_id\": \"96249260-a559-448f-b12a-e57ec5ddece5\",\n \"parent_name\": \"Para Winter\",\n \"parent_index\": 0\n }, {\n \"id\": \"94d4684f-5a40-49aa-a0e0-d0ba2a8445ac\",\n \"name\": \"Para-Nordic Skiing\",\n \"parent_id\": \"96249260-a559-448f-b12a-e57ec5ddece5\",\n \"parent_name\": \"Para Winter\",\n \"parent_index\": 1\n }, {\n \"id\": \"f362b03f-89bc-467e-902f-ea7fcdaa7c71\",\n \"name\": \"Para-Snowboard\",\n \"parent_id\": \"96249260-a559-448f-b12a-e57ec5ddece5\",\n \"parent_name\": \"Para Winter\",\n \"parent_index\": 2\n }, {\n \"id\": \"ead3d823-dea6-4a26-8829-fed0c40ff548\",\n \"name\": \"Para-Ice Hockey\",\n \"parent_id\": \"96249260-a559-448f-b12a-e57ec5ddece5\",\n \"parent_name\": \"Para Winter\",\n \"parent_index\": 3\n }, {\n \"id\": \"6c102527-481b-4872-b96f-7176568399f6\",\n \"name\": \"Wheelchair Curling\",\n \"parent_id\": \"96249260-a559-448f-b12a-e57ec5ddece5\",\n \"parent_name\": \"Para Winter\",\n \"parent_index\": 4\n }, {\n \"id\": \"2b01d71c-24c3-4fad-90ea-1e3a8288aec9\",\n \"name\": \"Badminton\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 0\n }, {\n \"id\": \"0a698b3b-f9be-45ab-b868-c1a08adbf962\",\n \"name\": \"Breaking\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 1\n }, {\n \"id\": \"0cf5bc18-36ee-46b6-806d-86a4e70fd368\",\n \"name\": \"CKC Slalom\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 2\n }, {\n \"id\": \"d431d61c-baa7-448e-b759-f12af8f38126\",\n \"name\": \"Climbing\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 3\n }, {\n \"id\": \"c94ba2b2-7e35-4323-a0fe-2024e3ea7467\",\n \"name\": \"Fencing Epee\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 4\n }, {\n \"id\": \"e2fb4b52-6ff7-4904-809a-f87e861d5b92\",\n \"name\": \"Skateboard\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 5\n }, {\n \"id\": \"093d14d6-a042-4de9-877e-39237b5475c9\",\n \"name\": \"Goalball\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 6\n }, {\n \"id\": \"417b8b13-c313-4922-bb28-842720554d43\",\n \"name\": \"Fencing Sabre\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 7\n }, {\n \"id\": \"415d5069-55d4-4a3d-8132-73af2a4e5c56\",\n \"name\": \"Table Tennis\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 8\n }, {\n \"id\": \"4455c2a3-d323-44a8-a60e-999e27242fd3\",\n \"name\": \"Equestrian\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 9\n }, {\n \"id\": \"aa72c98e-9b2c-4fe5-8c3c-86c8933908dd\",\n \"name\": \"Rhythmic gymnastics\",\n \"parent_id\": \"8cb20aba-38f7-4359-9917-a18774dbb5ed\",\n \"parent_name\": \"Non-Targeted\",\n \"parent_index\": 10\n }],\n \"priority\": \"primary\",\n \"question\": \"Which Sport is most relevant to you?\",\n \"subfactor\": 11,\n \"subfactor_options\": [\"Archery\", \"Artistic Swimming\", \"Athletics\", \"Boxing\", \"Canoe/kayak\", \"Cycling\", \"Diving\", \"Fencing\", \"Golf\", \"Gymnastics\", \"Judo\", \"Karate\", \"Rowing\", \"Rugby 7s (F)\", \"Sailing\", \"Soccer (F)\", \"Softball (F)\", \"Swimming\", \"Taekwondo\", \"Tennis\", \"Triathlon\", \"Volleyball - Beach\", \"Weightlifting\", \"Wrestling\", \"Alpine Skiing\", \"Biathlon\", \"Bobsleigh\", \"Cross Country Skiing\", \"Curling\", \"Figure Skating\", \"Freestyle Skiing\", \"Hockey (F)\", \"Hockey (M)\", \"Luge\", \"Skeleton\", \"Ski Cross\", \"Snowboard\", \"Speed Skating - Long Track\", \"Speed Skating - Short Track\", \"Boccia\", \"Goalball (F)\", \"Para-Athletics\", \"Para-Canoe\", \"Para-Cycling\", \"Para-Equestrian\", \"Para-Judo\", \"Para-Rowing\", \"Para-Swimming\", \"Para-Triathlon\", \"Sitting Volleyball (F)\\t\", \"Wheelchair Rugby\", \"Wheelchair Tennis\", \"Para-Alpine Skiing\", \"Para-Nordic Skiing\", \"Para-Snowboard\", \"Para-Ice Hockey\", \"Wheelchair Curling\", \"Badminton\", \"Breaking\", \"CKC Slalom\", \"Climbing\", \"Fencing Epee\", \"Skateboard\", \"Goalball\", \"Fencing Sabre\", \"Table Tennis\", \"Equestrian\", \"Rhythmic gymnastics\"]\n}]\n\n\nexport const primary_question_non = [{\n \"fr\": null,\n \"id\": \"7d625c11-7d22-4353-ab3e-f24bdb0b21d2\",\n \"sno\": 0,\n \"name\": \"Sport\",\n \"answers\": [{\n \"id\": \"82177062-9f78-4e5c-9114-bafe752632b7\",\n \"name\": \"Hockey (W)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"f587b6c0-34d3-40ec-aa38-e31b999ceb65\",\n \"name\": \"Hockey (M)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"6479b4b3-ea84-4d75-a8d1-55ad8a2522f6\",\n \"name\": \"Basketball (M)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"dadefd2d-e286-4289-957c-d3b740ce85c0\",\n \"name\": \"Basketball (W)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"665bf48f-fd1a-4835-8306-f5c9b24dc7ab\",\n \"name\": \"Track & Field (M)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"364733f4-e9d2-4d5d-b3e5-c9444551efe3\",\n \"name\": \"Track and Field (W)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"f1fb0f5e-a688-45b4-8dfe-8d0c61f8948b\",\n \"name\": \" Soccer (M)\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }, {\n \"id\": \"c0fe1607-f3f6-4f12-b175-19de553764db\",\n \"name\": \"New Sport\",\n \"parent_id\": null,\n \"parent_name\": null,\n \"parent_index\": null\n }],\n \"priority\": \"primary\",\n \"question\": \"Which sport type is most pertinent to you?\",\n \"subfactor\": 0,\n \"subfactor_options\": []\n}]","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Form, Radio } from 'semantic-ui-react'\n\nimport { primary_question_subfactor, primary_question_non } from \"./subfactor_question_data\"\n\nconst TestSubfactorQuestion = () => {\n const [primaryCategory, setPrimaryCategory] = useState(\n {\n steps: \"Select Subfactor or on Subfactor\",\n current: \"None selected\"\n }\n );\n const [primaryQues, setPrimaryQues] = useState({\n name: \"With Subfactors\",\n id: 1,\n data: primary_question_subfactor\n })\n \n \n function submitAnswer() {\n let _id = ''\n let _response = 0\n let subfactorFound = false\n let _subfactor = null\n\n if (primaryQues?.data) {\n primaryQues.data.map(pq => {\n _id = pq.id\n if (pq?.subfactor) {\n subfactorFound = true\n }\n pq && pq.answers.map(aq => {\n if (aq?.name === primaryQues?.SurveyName) {\n \n if (subfactorFound) {\n _subfactor = aq?.id\n _response = aq?.parent_id\n } else {\n _response = aq?.id\n }\n }\n return null\n })\n return null\n })\n }\n\n setPrimaryCategory({\n id: _id,\n response: _response,\n subfactor: _subfactor,\n priority: \"primary\"\n })\n\n }\n\n console.log(primaryQues)\n\n return (\n \n \n \n Selected value: {primaryQues.name}\n \n \n setPrimaryQues({\n name: \"With Subfactors\",\n SurveyName: \"Artistic Swimming\",\n id: 1,\n data: primary_question_subfactor\n })}\n />\n \n \n setPrimaryQues({\n name: \"No Subfactors\",\n SurveyName: \"Hockey (W)\",\n id: 2,\n data: primary_question_non\n })}\n />\n \n \n Test Primary with Subfactor\n \n {JSON.stringify(primaryCategory)}\n submitAnswer()}>Subfactor\n\n \n\n )\n}\n\nexport default TestSubfactorQuestion\n\n\nconst Title = styled.div`\n\tfont-size: 20px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:black;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 30px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: #6a00ff;\n color: white;\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","export const INTRODUCTION = \"INTRODUCTION\";\nexport const CATEGORIES = \"CATEGORIES\";\n\nexport const submitSurvey = \"submit\"\nexport const introductionBtn = \"introduction\"\nexport const nextQuestionBtn =\"next\"\nexport const questionsType = \"questions\"\nexport const commentsType = \"comments\"\nexport const introductionTypeQuestion = 'introduction'\nexport const categoryTypeQuestion = 'categories'\nexport const questionTypeQuestion = 'question'\nexport const modularOutcomeTypeQuestion = 'modularOutcomeTypeQuestion'\nexport const modularValuesTypeQuestion = 'valuesQuestion'\nexport const modularCommentTypeQuestion = \"modularCommentTypeQuestion\"\nexport const multiAiFollowupCommentQuestion = 'multiAiFollowUpcommentQuestion'\nexport const personalityTypeQuestion = 'personalityQuestion'\nexport const multipleChoiceTypeQuestion = 'multipleChoice'\nexport const feedbackTypeQuestion = 'feedback'\nexport const followupAiTypeQuestion = 'aiFollowUp'\nexport const introSectionTypeQuestion = 'introSection'\nexport const commentTypeQuestion = 'comment'\nexport const valuesTypeQuestion = 'values'\nexport const completedTypeQuestion = 'completed' // if there is no token or the survey is complete\nexport const submitTypeQuestion = 'submit' // survey to be submitted\n\n// response field within response object\nexport const ResponseFields = {\n questionsType: \"response\",\n categoryTypeQuestion: \"response\",\n modularOutcomeTypeQuestion: \"response\",\n followupTypeQuestion: \"feedback\",\n feedbackTypeQuestion: \"feedback\",\n multiFollowupTypeQuestion: \"multiFeedback\"\n}\n\nexport const ModularSurveyQuestionTypes = {\n values_builder: modularValuesTypeQuestion,\n outcome_question: modularOutcomeTypeQuestion,\n feedback_builder: modularCommentTypeQuestion,\n}\n\n\nexport const personalityWordList = [\"Disagree strongly\", \"Disagree moderately\",\"Disagree a little\", \"Neither agree nor disagree\", \n\"Agree a little\",\"Agree moderately\", \"Agree strongly\"];\n\nexport const personalityQuestionList = ['extraverted, enthusiastic.', 'critical, quarrelsome.', 'dependable, self-disciplined.', \n'anxious, easily upset.', \n'open to new experiences, complex.',\n 'reserved, quiet.', 'sympathetic, warm.', \n 'disorganized, careless.', 'calm, emotionally stable.', 'conventional, uncreative.']\n","export const words = {\n \"intro1-0\": {\n \"EN\": \"Your\",\n \"FR\": \"Ton\",\n \"ES\": \"Tu\"\n },\n \"intro1-1\": {\n \"EN\": \"experience as an\",\n \"FR\": \"expérience en tant que\",\n \"ES\": \"experiencia, como\"\n },\n \"intro1-2\": {\n \"EN\": \"integral part\",\n \"FR\": \"partie intégrante\",\n \"ES\": \"parte integral\"\n },\n \"intro1-3\": {\n \"EN\": \"of this culture\",\n \"FR\": \"de cette culture\",\n \"ES\": \"de esta cultura\"\n },\n \"intro1-4\": {\n \"EN\": \"matters\",\n \"FR\": \"compte\",\n \"ES\": \"nos importa\"\n },\n \"intro2-0\": {\n \"EN\": \"Your\",\n \"FR\": \"T'es\",\n \"ES\": \"Tu\"\n },\n \"intro2-1\": {\n \"EN\": \"responses\",\n \"FR\": \"réponses\",\n \"ES\": \"respuestas\"\n },\n \"intro2-2\": {\n \"EN\": \"from this survey\",\n \"FR\": \"de cette enquête\",\n \"ES\": \"en esta encuesta\"\n },\n \"intro2-3\": {\n \"EN\": \"will be used to create\",\n \"FR\": \"seront utilisées pour créer\",\n \"ES\": \"se utilizarán para crear\"\n },\n \"intro2-4\": {\n \"EN\": \"real change.\",\n \"FR\": \"un vrai changement.\",\n \"ES\": \"un cambio real.\"\n },\n \"intro3-0\": {\n \"EN\": \"Your\",\n \"FR\": \"T'es\",\n \"ES\": \"Tu\"\n },\n \"intro3-1\": {\n \"EN\": \"responses\",\n \"FR\": \"réponses\",\n \"ES\": \"respuestas\"\n },\n \"intro3-2\": {\n \"EN\": \"are anonymous\",\n \"FR\": \"sont anonymes\",\n \"ES\": \"son anónimas\"\n },\n \"intro3-3\": {\n \"EN\": \" and will never be \",\n \"FR\": \" et ne seront jamais \",\n \"ES\": \" y nunca serán \"\n },\n \"intro3-4\": {\n \"EN\": \"attached to\",\n \"FR\": \"attachées à\",\n \"ES\": \"vinculadas a\"\n },\n \"intro3-5\": {\n \"EN\": \"your identity.\",\n \"FR\": \"votre identité.\",\n \"ES\": \"tu identidad.\"\n },\n \"intro4-0\": {\n \"EN\": \"Do you agree with your personal data being processed as described below and in our privacy statement?\",\n \"FR\": \"Êtes-vous d'accord pour que vos données personnelles soient traitées comme décrit ci-dessus et dans notre déclaration de confidentialité ?\",\n \"ES\": \"¿Estás de acuerdo con que tus datos personales sean procesados como se describe abajo y en nuestra declaración de privacidad?\"\n },\n \"intro4-1\": {\n \"EN\": \"Privacy Agreement\",\n \"FR\": \"Accord de confidentialité\",\n \"ES\": \"Acuerdo de Privacidad\"\n },\n \"intro5-0\": {\n \"EN\": \"Are you over the age of 16?\",\n \"FR\": \"Avez-vous plus de 16 ans ?\",\n \"ES\": \"Acuerdo de Privacidad\"\n },\n \"intro7-0\": {\n \"EN\":\"Are you 19 years old or older?\",\n \"FR\":\"Avez-vous 19 ans ou plus?\",\n \"ES\":\"¿Tienes 19 años o más?\"\n },\n \"back\": {\n \"EN\": \"Back\",\n \"FR\": \"Retour\",\n \"ES\": \"Atrás\"\n },\n \"Start\": {\n \"EN\": \"Start\",\n \"FR\": \"Démarrer\",\n \"ES\": \"Empezar\"\n },\n \"Next\": {\n \"EN\": \"Next\",\n \"FR\": \"Suivant\",\n \"ES\": \"Siguiente\"\n },\n \"I agree\": {\n \"EN\": \"I agree\",\n \"FR\": \"Je suis d'accord\",\n \"ES\": \"Estoy de acuerdo\"\n },\n \"Submit\": {\n \"EN\": \"Submit\",\n \"FR\": \"Soumettre\",\n \"ES\": \"Enviar\"\n },\n \"of\": {\n \"EN\": \"of\",\n \"FR\": \"de\",\n \"ES\": \"de\"\n },\n \"category\": {\n \"EN\": \"Categorical Question\",\n \"FR\": \"Question catégorique\",\n \"ES\": \"Pregunta Categórica\"\n },\n \"Culture Question\": {\n \"EN\": \"Culture Question\",\n \"FR\": \"Question Culturelle\",\n \"ES\": \"Pregunta Cultural\"\n },\n \"qualifier\": {\n \"EN\": \"In this culture...\",\n \"FR\": \"Dans cette culture...\",\n \"ES\": \"En esta cultura...\"\n },\n \"Strongly Disagree\": {\n \"EN\": \"Strongly Disagree\",\n \"FR\": \"Fortement en désaccord\",\n \"ES\": \"Muy en desacuerdo\"\n },\n \"Strongly Agree\": {\n \"EN\": \"Strongly Agree\",\n \"FR\": \"Fortement d'accord\",\n \"ES\": \"Totalmente de acuerdo\"\n },\n \"Neutral\": {\n \"EN\": \"Neutral\",\n \"FR\": \"Neutre\",\n \"ES\": \"Neutral\"\n },\n \"min_feedback\": {\n \"EN\": \"We noticed you scored the following statement amongst lowest overall\",\n \"FR\": \"Nous avons remarqué que vous avez obtenu le score le plus bas pour l'énoncé suivant\",\n \"ES\": \"Hemos notado que calificaste la siguiente afirmación entre las más bajas en general\"\n },\n \"max_feedback\": {\n \"EN\": \"We noticed you scored the following statement amongst highest overall\",\n \"FR\": \"Nous avons remarqué que vous avez obtenu le score le plus élevé pour l'énoncé suivant\",\n \"ES\": \"Hemos notado que calificaste la siguiente afirmación entre las más altas en general\"\n },\n \"min_feedback1\": {\n \"EN\": \"You scored a\",\n \"FR\": \"Vous avez obtenu un\",\n \"ES\": \"La has calificado como\"\n },\n \"min_feedback2\": {\n \"EN\": \"Can you provide specific examples of how this factor has impacted you or your colleagues?\",\n \"FR\": \"Pouvez-vous fournir des exemples spécifiques de la façon dont ce facteur a impacté vous ou vos collègues?\",\n \"ES\": \"¿Puedes proporcionar ejemplos específicos de cómo este factor te ha afectado a ti o a tus colegas?\"\n },\n \"min_feedback3\":{\n \"EN\":\"Please provide an example of why.\",\n \"FR\":\"Veuillez fournir un exemple pour expliquer pourquoi.\",\n \"ES\":\"Por favor proporciona un ejemplo de por qué.\"\n },\n \"max_feedback1\": {\n \"EN\": \"We'd love to know more! Please provide an example of why.\",\n \"FR\": \"Nous aimerions en savoir plus! Veuillez fournir un exemple pour expliquer pourquoi.\",\n \"ES\": \"¡Nos encantaría saber más! Por favor proporciona un ejemplo de por qué.\"\n },\n \"textarea\": {\n \"EN\": \"Type your answer here\",\n \"FR\": \"Tapez votre réponse ici\",\n \"ES\": \"Escribe tu respuesta aquí\"\n },\n \"Skip\": {\n \"EN\": \"Skip\",\n \"FR\": \"Passer\",\n \"ES\": \"Omitir\"\n },\n 'welcomeMessage': {\n 'EN': 'We understand that your time is precious, but we\\'d like to take a moment to emphasize how important your feedback is to us. Your thoughts and insights can make a world of difference!',\n 'FR': 'Nous comprenons que votre temps est précieux, mais nous aimerions prendre un moment pour souligner à quel point vos retours sont importants pour nous. Vos pensées et insights peuvent faire toute la différence !',\n 'ES': 'Entendemos que tu tiempo es precioso, pero nos gustaría tomar un momento para enfatizar cuán importante es tu feedback para nosotros. ¡Tus pensamientos y percepciones pueden marcar una gran diferencia!'\n },\n 'driveChangeTitle': {\n 'EN': 'Drive meaningful change',\n 'FR': 'Provoquer un changement significatif',\n 'ES': 'Impulsar un cambio significativo'\n },\n 'driveChangeText': {\n 'EN': 'Your feedback pinpoints areas for improvement, enabling us to prioritize and implement impactful changes.',\n 'FR': 'Vos retours identifient les domaines à améliorer, nous permettant de prioriser et mettre en œuvre des changements significatifs.',\n 'ES': 'Tu feedback identifica áreas para mejorar, permitiéndonos priorizar e implementar cambios significativos.'\n },\n 'reinforceStrengthsTitle': {\n 'EN': 'Reinforce our strengths',\n 'FR': 'Renforcer nos points forts',\n 'ES': 'Reforzar nuestras fortalezas'\n },\n 'reinforceStrengthsText': {\n 'EN': 'Your positive feedback helps us maintain and enhance the features that resonate with you, ensuring exceptional services.',\n 'FR': 'Vos retours positifs nous aident à maintenir et améliorer les fonctionnalités qui vous parlent, assurant des services exceptionnels.',\n 'ES': 'Tu feedback positivo nos ayuda a mantener y mejorar las características que resuenan contigo, asegurando servicios excepcionales.'\n },\n 'influenceDecisionsTitle': {\n 'EN': 'Influence strategic decisions',\n 'FR': 'Influencer les décisions stratégiques',\n 'ES': 'Influir en las decisiones estratégicas'\n },\n 'influenceDecisionsText': {\n 'EN': 'Your input informs our decision-making process, leading to a more responsive and user-focused organization.',\n 'FR': 'Vos contributions éclairent notre processus décisionnel, menant à une organisation plus réactive et centrée sur l\\'utilisateur.',\n 'ES': 'Tu aporte informa nuestro proceso de toma de decisiones, llevando a una organización más receptiva y centrada en el usuario.'\n },\n \"Leave feedback\": {\n \"EN\": \"Leave feedback\",\n \"FR\": \"Laisser un commentaire\",\n \"ES\": \"Dejar feedback\"\n },\n \"Skip anyway\": {\n \"EN\": \"Skip anyway\",\n \"FR\": \"Passer quand même\",\n \"ES\": \"Omitir de todos modos\"\n },\n \"sharing\": {\n \"EN\": \"By sharing your experiences, you help us:\",\n \"FR\": \"En partageant vos expériences, vous nous aidez à :\",\n \"ES\": \"Al compartir tus experiencias, nos ayudas a:\"\n },\n \"matters\": {\n \"EN\": \"Your Feedback Matters!\",\n \"FR\": \"Vos retours sont importants !\",\n \"ES\": \"¡Tu Feedback Importa!\"\n },\n \"Very Poor\": {\n \"EN\": \"Very Poor\",\n \"FR\": \"Très mauvais\",\n \"ES\": \"Muy Malo\"\n },\n \"Excellent\": {\n \"EN\": \"Excellent\",\n \"FR\": \"Excellent\",\n \"ES\": \"Excelente\"\n },\n \"Congratulations\": {\n \"EN\": \"You're almost done!\",\n \"FR\": \"Vous avez presque terminé !\",\n \"ES\": \"¡Casi has terminado!\"\n },\n \"Value\": {\n \"EN\": \"Your valuable insights matter to us. Go ahead and hit that\",\n \"FR\": \"Vos précieux retours nous importent. Allez-y et appuyez sur\",\n \"ES\": \"Tu percepcion es valiosa e importante para nosotros. Presiona el botón\"\n },\n \"Value2\": {\n \"EN\": \"button to share your thoughts and help shape our organization’s future.\",\n \"FR\": \"bouton pour partager vos pensées et aider à façonner l'avenir de notre organisation.\",\n \"ES\": \"para compartir tus pensamientos y ayudar a construir el futuro de nuestra organización.\"\n },\n \"Feedback\": {\n \"EN\": \"Feedback\",\n \"FR\": \"Commentaire\",\n \"ES\": \"Feedback\"\n },\n \"category_completed\":{\n \"EN\":\"Thank you for answering these preliminary questions.\",\n \"FR\":\"Merci d'avoir répondu à ces questions préliminaires.\",\n \"ES\":\"Gracias por responder a estas preguntas preliminares.\"\n },\n \"category_completed2\":{\n \"EN\":\"Now we are going to ask you some questions about your experience with {organizationName}. Your perspectives are important.\",\n \"FR\":\"Maintenant, nous allons vous poser quelques questions sur votre expérience avec {organizationName}. Vos perspectives sont importantes.\",\n \"ES\":\"Ahora vamos a hacerte algunas preguntas sobre tu experiencia con {organizationName}. Tus perspectivas son importantes.\"\n },\n \"Searching\":{\n \"EN\":\"Looking for an existing response\",\n \"FR\":\"Recherche d'une réponse existante\",\n \"ES\":\"Buscando una respuesta existente\"\n },\n \"Searching2\":{\n \"EN\":\"It looks like we've found an existing survey response. Would you like to:\",\n \"FR\":\"Il semble que nous ayons trouvé une réponse à l'enquête existante. Souhaitez-vous :\",\n \"ES\":\"Parece que hemos encontrado una respuesta existente a la encuesta. ¿Te gustaría:\"\n },\n 'Restart':{\n \"EN\":'Restart the survey',\n \"FR\":'Redémarrer l\\'enquête',\n \"ES\":'Reiniciar la encuesta'\n },\n \"Load\":{\n \"EN\":\"Load the existing response\",\n \"FR\":\"Charger la réponse existante\",\n \"ES\":\"Cargar la respuesta existente\"\n },\n \"completed_on\":{\n \"EN\":\"This survey was completed on\",\n \"FR\":\"Cette enquête a été complétée le\",\n \"ES\":\"Esta encuesta fue completada el\"\n },\n \"survey_status1\":{\n \"EN\":\"We are unable to get information about this survey.\",\n \"FR\":\"Nous ne pouvons pas obtenir d'informations sur cette enquête.\",\n \"ES\":\"No podemos obtener información sobre esta encuesta.\"\n },\n \"team_qualifier\":{\n \"EN\":\"In {team}'s culture...\",\n \"FR\":\"Dans la culture de {team}...\",\n \"ES\":\"En la cultura de {team}...\"\n },\n \"In the hockey environment (training and competition)...\":{\n \"EN\":\"In the hockey environment (training and competition)...\",\n \"FR\":\"Dans l'environnement du hockey (entraînement et compétition)...\",\n \"ES\":\"En el entorno del hockey (entrenamiento y competencia)...\"\n },\n \"intro4-2\":{\n \"EN\":\"DISCLAIMER: This survey uses conversational AI at times to ask more specifically about your experiences. If you are uncomfortable with any AI prompt and do not want to respond, please just hit the skip button. Thank you.\",\n \"FR\":\"AVERTISSEMENT : Cette enquête utilise l'IA conversationnelle parfois pour demander plus spécifiquement sur vos expériences. Si vous n'êtes pas à l'aise avec une invite d'IA et ne souhaitez pas répondre, appuyez simplement sur le bouton Ignorer. Merci.\",\n },\n \n}","import styled from 'styled-components';\nimport React, { useState, useEffect } from 'react';\nimport { questionTypeQuestion } from 'constants/questionTypes';\nimport {words} from '../translations'\n// ... styled-components code ...\n\nconst Slider = ({ id, question, saveUpdatedAnswers, currentQuestionDet,language }) => {\n const [sliderValue, setSliderValue] = useState(5);\n const [isDragging, setIsDragging] = useState(false);\n const [clickedVal, setClickedVal] = useState(false)\n\n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n setSliderValue(Math.round(sliderValue));\n saveValue(Math.round(sliderValue))\n };\n\n const handleTouchMove = (e) => {\n if (!isDragging) return;\n \n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.touches[0].clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue)\n };\n\n const handleTouchEnd = () => {\n let newValue = Math.round(sliderValue)\n setIsDragging(false);\n setSliderValue(newValue);\n saveValue(newValue)\n };\n \n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleTouchMove);\n window.addEventListener('touchend', handleTouchEnd);\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('touchend', handleTouchEnd);\n \n };\n \n }, [isDragging, sliderValue]);\n\n useEffect(() => {\n if (currentQuestionDet?.response) {\n setSliderValue(currentQuestionDet?.response?.response)\n setClickedVal(true)\n }\n else{\n setSliderValue(5)\n setClickedVal(false)\n }\n \n }, [currentQuestionDet])\n\n\n const handleClick = (e) => {\n const track = document.getElementById('slider-track');\n // const track = document.getElementById(id);\n const rect = track.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const newValue = Math.round((x / rect.width) * 10);\n setSliderValue(newValue);\n //\n // SaveResponse(newValue)\n saveValue(newValue)\n };\n\n const handleMouseDown = () => {\n setIsDragging(true);\n };\n\n const handleTouchStart = () => {\n setIsDragging(true);\n };\n\n\n const saveValue = (newValue) => {\n setClickedVal(true)\n //\n SaveResponse(newValue)\n }\n // save the response\n function SaveResponse(newValue) {\n const QuesResp = {\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question.order,\n response: newValue,\n role: question?.role,\n reverse: question?.reverse || false,\n clicked: true,\n ques_sort_order: currentQuestionDet?.id,\n }\n\n saveUpdatedAnswers(currentQuestionDet.id, QuesResp, questionTypeQuestion)\n }\n\n // Add a function to interpolate between two colors\n const lerpColor = (color1, color2, t) => {\n const r = color1.r + t * (color2.r - color1.r);\n const g = color1.g + t * (color2.g - color1.g);\n const b = color1.b + t * (color2.b - color1.b);\n return { r, g, b };\n };\n\n // Add a function to calculate the thumb color\n const getThumbColor = () => {\n const color1 = { r: 248, g: 168, b: 176 };\n const color2 = { r: 254, g: 205, b: 141 };\n const color3 = { r: 149, g: 230, b: 210 };\n const t = sliderValue / 10;\n\n if (t < 0.5232) {\n const newT = t / 0.5232;\n const interpolatedColor = lerpColor(color1, color2, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n } else {\n const newT = (t - 0.5232) / (1 - 0.5232);\n const interpolatedColor = lerpColor(color2, color3, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n }\n };\n\n\n const thumbPosition = {\n left: `calc(${(sliderValue / 10) * 100}% - 10px )`,\n };\n\n const dotCount = 11;\n const dots = Array.from({ length: dotCount }, (_, index) => (\n \n ));\n\n return (\n \n\n \n \n {dots}\n \n \n {Math.round(sliderValue)}\n \n \n \n \n \n\n \n {question?.scale? question?.scale[0]:words['Strongly Disagree'][language]}\n {words['Neutral'][language]}\n {question?.scale? question?.scale[1]:words['Strongly Agree'][language]}\n \n \n );\n};\n\nexport default Slider;\n\n \nconst Container = styled.div`\n width:100%;\n padding-top:70px;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n`\n\nconst ScaleLabel = styled.span`\n font-size: 14px;\n\n @media (max-width: 500px) {\n font-size: ${props=>props.language=='EN'?'14px':'12px'};\n }\n`;\n\nconst SliderContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst ScaleLabelsContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 8px;\n`;\n\nconst TrackWrapper = styled.div`\n position: relative;\n height: calc(10px + 10px); // 5px above and below the track area\n cursor: pointer;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\n\nconst Track = styled.div`\n width: 100%;\n height: 6px;\n background: linear-gradient(\n to right,\n #F8A8B0 0%,\n #FECD8D 52.32%,\n #95E6D2 100%\n );\n position: relative;\n border-radius: 5px;\n cursor: pointer;\n`;\n\nconst Thumb = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #000;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n user-select: none;\n border: 4px solid white;\n box-shadow: 0px 8px 20px rgba(63, 134, 254, 0.08);\n`;\n\n\nconst Tooltip = styled.div`\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: #666D79;\n border-radius: 8px;\n width: 33px;\n height: 29px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => props.clicked? '#FFFFFF': '#D6DBDF'};\n font-size: 14px;\n font-weight: ${(props) => props.clicked? '700': ' 400'};\n margin-bottom: 8px; // 8px above the track\n`;\n\n\nconst Triangle = styled.div`\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 4px 0;\n border-color: #666D79 transparent transparent;\n`;\n\n\n\nconst DotsContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 1px;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Dot = styled.div`\n width: 4px;\n height: 4px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n transform: translateY(-50%);\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Slider from '../Components/Slider';\nimport {words} from '../translations'\n\nconst Question = ({ question, saveUpdatedAnswers, currentQuestionDet, language,qualifier,team_qualifier,teamName }) => {\n\n const get_qualifier = () =>{\n if(team_qualifier){\n return words['team_qualifier'][language].replace('{team}',teamName)\n }\n\n if(question?.qualifier){\n return question?.qualifier\n }\n\n if(qualifier){\n if(language== 'FR' && qualifier == 'In the hockey environment (training and competition)...'){\n\n return 'Dans l’environnement du hockey (entraînement et compétition)...'\n } \n\n if(language == 'FR' && qualifier == \"In our hockey environment...\"){\n return \"Dans notre environnement de hockey...\"\n }\n return qualifier\n }\n\n\n\n return words[\"qualifier\"][language]\n \n }\n\n const getQuestion = () =>{\n if(language== 'FR' && question?.fr){\n return question?.fr\n }\n if(language == 'ES' && question?.es){\n return question?.es\n }\n return question?.question\n }\n\n return (\n {question?.title? question.title : words[\"Culture Question\"][language]}\n {get_qualifier()}\n {getQuestion()}\n \n )\n};\nexport default Question;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n max-width:600px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst Title = styled.div`\n color: #2D70E2;\n text-transform: uppercase;\n font-size:14px;\n font-weight:600;\n margin-bottom: 40px;\n`\n\nconst Qualifier = styled.div`\n color:#2A3039;\n font-size:${props=>props.bold?'20px':'16px'};\n font-weight:${props=>props.bold?600:400};\n margin-bottom:14px;\n line-height:1.4;\n`\n\nconst QuestionText = styled.p`\n font-size: ${props=>props.bold?'20px':'16px'};\n font-weight:${props=>props.bold?600:400};\n color: #2A3039;\n`;\n\n","import React,{useState,useEffect} from 'react';\nimport styled, { keyframes, css } from 'styled-components';\nimport '../index.css'\n\n\nconst MultipleChoice = ({ currentQuestionDet, choices,question,isVisible }) => {\n\n const [visibleChoices, setVisibleChoices] = useState([]);\n const [selectedChoice, setSelectedChoice] = useState(null);\n\n const handleSelection = (choice) => {\n setSelectedChoice(choice);\n };\n\n useEffect(() => {\n let timeoutIds = [];\n choices.map((choice, index) => {\n const timeoutId = setTimeout(() => {\n setVisibleChoices((prevVisibleChoices) => [...prevVisibleChoices, choice]);\n }, index * 20); // Adjust the delay as needed (300ms here)\n timeoutIds.push(timeoutId);\n });\n\n return () => {\n timeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));\n };\n }, [choices]);\n\n\n return (\n \n Personality Questions\n {question}\n \n {visibleChoices.map((choice, index) => (\n \n \n handleSelection(index)}\n />\n \n {choice.text}\n \n \n \n ))}\n \n \n );\n};\n\nexport default MultipleChoice;\n\n\nconst ChoiceContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:calc(100% - 40px);\n max-width:600px;\n`;\n\nconst Choice = styled.div`\nmargin-left:20px;\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom: 40px;\n`\n\nconst fadeInMoveDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst StyledChoice = styled.div`\n transform: translateY(-15px);\n opacity:0;\n animation-name: ${fadeInMoveDown};\n animation-duration: 300ms;\n animation-fill-mode: forwards;\n ${({ delay }) =>\n delay &&\n css`\n animation-delay: ${delay}ms;\n `}\n`;\nconst Question = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n`\n\nconst ListContainer = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n width:100%;\n`;\n\nconst ListItem = styled.label`\n display: block;\n position: relative;\n padding: 16px;\n padding-left: 40px;\n cursor: pointer;\n user-select: none;\n width:100%;\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : 'transparent')};\n color: ${({ isSelected }) => (isSelected ? '#2D70E2' : 'inherit')};\n \n &:hover {\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : '#f0f0f0')};\n }\n`;\n\nconst RadioInput = styled.input.attrs({ type: 'radio' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:checked ~ .checkmark {\n background-color: #EBF1FD;\n border-color: #2D70E2;\n }\n\n &:checked ~ .checkmark:after {\n display: block;\n }\n`;\n\nconst Checkmark = styled.span`\n position: absolute;\n top: 50%;\n left: 16px;\n transform: translateY(-50%);\n height: 16px;\n width: 16px;\n background-color: #fff;\n border: 2px solid #ccc;\n border-radius: 50%;\n\n &:after {\n content: '';\n position: absolute;\n display: none;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #2D70E2;\n transform: translate(-50%, -50%);\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport {words} from '../translations'\n\nconst ProgressBar = ({ currentQuestion, totalQuestions, quesId,language,color,color2 }) => {\n const progressPercentage = (currentQuestion / totalQuestions) * 100;\n const isLocalhost = window.location.hostname === 'localhost';\n\n return (\n \n \n {/* {currentQuestion} {words['of'][language]} {totalQuestions} */}\n {isLocalhost && <>ID# ({quesId} for debugging) }\n \n \n \n );\n};\n\nexport default ProgressBar;\n\nconst ProgressBarContainer = styled.div`\n width: calc(100vw - 40px);\n margin-left:20px;\n margin-top:50px;\n height: 6px;\n background-color: ${props=>props.color2?props.color2:'#D5E2F9'};\n position: fixed;\n border-radius: 20px;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n`;\n\nconst FilledBar = styled.div`\n height: 100%;\n background-color: ${props=>props.color?props.color:'#2D70E2'};\n transition: width 300ms;\n border-radius: 20px;\n`;\n\nconst ProgressText = styled.div`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n color: #666D79;\n top:-30px;\n font-size: 14px;\n font-weight: 400;\n`;","import React from 'react';\nimport styled from 'styled-components';\n\nconst StyledButton = styled.button`\n background-color: ${props=>props.color? props.color:'#2D70E2'};\n border: none;\n color: white;\n padding:12px 24px 12px 24px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n margin: 5px;\n cursor: pointer;\n border-radius: 8px;\n font-weight: 400;\nfont-size: 14px;\nline-height: 140%;\nmin-width: 167px;\nz-index:99;\n\n&:disabled{\n opacity:0.3;\n cursor: not-allowed;\n}\n`;\n\nconst StyledBackButton = styled.button`\n background-color: #EBF1FD;\n border: none;\n color: #2D70E2;\n padding:12px 24px 12px 24px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n margin: 5px;\n cursor: pointer;\n border-radius: 8px;\n font-weight: 400;\nfont-size: 14px;\nline-height: 140%;\nwidth: 167px;\nz-index:99;\n\n`;\n\nconst StyledLeaveButton = styled.button`\n background-color: #EBF1FD;\n border: none;\n color: #2D70E2;\n padding:12px 24px 12px 24px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n margin: 5px;\n cursor: pointer;\n border-radius: 8px;\n font-weight: 400;\nfont-size: 14px;\nline-height: 140%;\nmin-width: 167px;\nz-index:99;\n\n\n@media (max-width: 768px) {\n padding:10px;\n width:125px;\n margin-bottom:20px;\n}\n`;\n\nconst StyledSkipButton = styled.button`\n background-color: #2D70E2;\n border: none;\n color: white;\n padding:12px 24px 12px 24px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n margin: 5px;\n cursor: pointer;\n border-radius: 8px;\n font-weight: 400;\nfont-size: 14px;\nline-height: 140%;\nmin-width: 167px;\nz-index:99;\n\n\n&:disabled{\n opacity:0.3;\n cursor: not-allowed;\n}\n\n@media (max-width: 768px) {\n padding:10px;\n width:125px;\n margin-bottom:20px;\n}\n`;\n\nconst CustomButton = ({ children, id, onClick, type, disabled,color}) => {\n if(type==\"skip\"){\n return (\n {children}\n );\n }\n\n if(type==\"leave\"){\n return (\n {children}\n );\n }\n\n\n if(type==\"back\"){\n return (\n {children}\n );\n }\n\n return {children}\n}\n\nexport default CustomButton;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { feedbackTypeQuestion } from 'constants/questionTypes';\nimport Logo from 'assets/images/Ilogo.svg';\nimport {words} from '../translations'\n\n\nconst Feedback = ({ \n ruleFeedback, \n saveUpdatedAnswers, \n language, \n currentQuestionDet, \n skipNextQuestion,\n setAskNextQuestion,\n sortOrder\n }) => {\n const [feedbackText, setFeedbackText] = useState('');\n const [open, setOpen] = useState(false);\n const textareaRef = useRef();\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight - 16}px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = 'inherit';\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n const ResponseObj = {\n ques_sort_order: currentQuestionDet?.id,\n survey_q_id: currentQuestionDet.id,\n feedback: event.target.value,\n question_type: currentQuestionDet?.quesType,\n quesType: currentQuestionDet?.quesType,\n org_ref_ques_order: ruleFeedback?.ques_order,\n dimension: ruleFeedback?.dimension,\n factor: ruleFeedback?.factor,\n fr: ruleFeedback?.fr,\n es: ruleFeedback?.es,\n id: ruleFeedback?.id,\n q: ruleFeedback?.q,\n ques_order: ruleFeedback?.ques_order,\n question: ruleFeedback?.question,\n response: ruleFeedback?.response,\n reverse: ruleFeedback?.reverse,\n role: ruleFeedback?.role,\n type: ruleFeedback?.type,\n clicked: ruleFeedback?.clicked,\n skipNext: false,\n }\n saveUpdatedAnswers(currentQuestionDet.id, ResponseObj, feedbackTypeQuestion)\n setAskNextQuestion(true)\n };\n\n const handleSkip = () => {\n setOpen(true);\n }\n\n function SkipQuestion() {\n const ResponseObj = {\n ques_sort_order: currentQuestionDet?.id,\n survey_q_id: currentQuestionDet.id,\n feedback: '',\n question_type: currentQuestionDet?.question_type,\n org_ref_ques_order: ruleFeedback?.ques_order,\n dimension: ruleFeedback?.dimension,\n factor: ruleFeedback?.factor,\n fr: ruleFeedback?.fr,\n es: ruleFeedback?.es,\n id: ruleFeedback?.id,\n q: ruleFeedback?.q,\n ques_order: ruleFeedback?.ques_order,\n question: ruleFeedback?.question,\n response: ruleFeedback?.response,\n reverse: ruleFeedback?.reverse,\n role: ruleFeedback?.role,\n type: ruleFeedback?.type,\n clicked: ruleFeedback?.clicked,\n skipNext: true,\n }\n saveUpdatedAnswers(currentQuestionDet.id, ResponseObj, feedbackTypeQuestion)\n setOpen(false)\n skipNextQuestion()\n }\n\n useEffect(() => {\n if (currentQuestionDet?.response?.feedback) {\n setFeedbackText(currentQuestionDet?.response?.feedback);\n } else {\n setFeedbackText('')\n }\n }, [currentQuestionDet.response])\n\n\n const getQuestion = () => {\n if (language === 'FR' && ruleFeedback?.fr) {\n return ruleFeedback?.fr\n }\n if (language === 'ES' && ruleFeedback?.es) {\n return ruleFeedback?.es\n }\n return ruleFeedback?.question\n }\n\n const getFeedbackSortOrder = () => {\n if(sortOrder == 160){\n return \"min_feedback3\"\n }\n\n return \"min_feedback2\"\n }\n\n \n return (\n \n <Circle><IMG src={Logo}/></Circle>Innerlogic AI\n \n {ruleFeedback?.type === 'min' ? \n words['min_feedback'][language] :\n words['max_feedback'][language]\n }\n \n {getQuestion()}\n \n {ruleFeedback?.type === 'min'?\n {words['min_feedback1'][language]} {ruleFeedback?.response}/10. {words[getFeedbackSortOrder()][language]}\n :\n words['max_feedback1'][language] }\n \n \n\n {/* Skip >\n */}\n \n );\n};\n\nexport default Feedback;\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n\n`;\n\nconst QuestionText = styled.div`\nfont-style: normal;\nfont-weight: 600;\nfont-size: 16px;\nborder-left:2px solid #D5E2F9;\nmargin-left:24px;\npadding-left:16px;\nmargin-bottom:24px;\n`;\n\nconst TextArea = styled.textarea`\n font-size: 1rem;\n padding: 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n width: 100%;\n min-height: 150px;\n resize: vertical;\n`;\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%; \n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2A3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: 'Raleway', sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2D70E2;\n outline: 0;\n }\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom:40px;\ndisplay:flex;\n`\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:24px;\n`\n\nconst Highlight = styled.span`\ncolor: #2D70E2;\nfont-weight:bold;\n`\n\nconst Skip = styled.div`\nfont-style: normal;\nfont-weight: 600;\nfont-size: 16px;\ncolor: #2D70E2;\nmargin-top:40px;\ncursor:pointer;\n`\n\n\nconst Circle = styled.div`\n width:40px;\n height:40px;\n border-radius:10px;\n background-color:#2D70E2;\n margin-right:10px;\n min-width:40px;\n align-items:center;\n display:flex;\n justify-content:center;\n position:relative;\n`\n\nconst IMG = styled.img`\n width:20px;\n`","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nconst CustomDropdown = ({ id, listId, value, options, onSelect,questionLength,language }) => {\n const [open, setOpen] = useState(false);\n const [selected, setSelected] = useState('');\n\n const handleSelect = (option) => {\n setSelected(option);\n setOpen(false);\n onSelect(option);\n };\n\n useEffect(() =>{\n if (value) {\n setSelected(value)\n } else {\n setSelected('')\n }\n },[value])\n \n const getOptionName = (option) => {\n if (language === 'FR' && option?.fr) {\n return option.fr\n } \n if (language === 'ES' && option?.es) {\n return option.es\n }\n return option.name\n\n \n }\n\n\n const getSelectedName = (selectedOption) => {\n if (language === 'FR' && selectedOption?.fr) {\n return selectedOption.fr\n } \n if (language === 'ES' && selectedOption?.es) {\n return selectedOption.es\n }\n return selectedOption.name\n }\n\n\n\n return (\n \n setOpen(!open)} id={id}>\n {getSelectedName(selected)}\n {}\n \n \n \n {options.map((option, index) => (\n handleSelect(option)}>\n {getOptionName(option)}\n \n ))}\n \n \n )\n};\n\nexport default CustomDropdown;\n\nconst DropdownWrapper = styled.div`\n position: relative;\n display: inline-block;\n width: 100%;\n font-family: 'Raleway';\n`;\n\nconst DropdownButton = styled.button`\n background-color: transparent;\n border: none;\n border-bottom: 1px solid blue;\n cursor: pointer;\n width: 100%;\n text-align: left;\n padding: 8px 16px;\n font-size: 16px;\n color: #666D79;\n outline: none;\n font-family: 'Raleway';\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n\n`;\n\nconst DropdownContent = styled.div`\n display: ${({ open }) => (open ? 'block' : 'none')};\n position: absolute;\n background-color: white;\n min-width: 100%;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 10;\n max-height: 225px;\n overflow-y: auto;\n @media (max-height: 775px) {\n max-height:175px;\n }\n\n @media (max-height: 700px) {\n max-height:150px;\n }\n\n @media (max-height: 650px) {\n max-height:125px;\n }\n\n @media (max-height: 600px) {\n max-height:75px;\n }\n`;\n\nconst DropdownItem = styled.div`\n padding: 8px 16px;\n cursor: pointer;\n &:hover {\n background-color: #f1f1f1;\n }\n`;\n\nconst Chevron = styled.i`\n float: right;\n border: solid #666D79;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 3px;\n transform: ${({ open }) => (open ? 'rotate(-135deg)' : 'rotate(45deg)')};\n`;","import React, { useEffect, useState } from \"react\";\nimport styled from 'styled-components';\nimport CustomDropdown from '../Components/CustomDropdown';\nimport { categoryTypeQuestion } from 'constants/questionTypes';\nimport {words} from '../translations'\n\n\n\n\nconst Categories = (props) => {\n\n const { saveUpdatedAnswers,\n currentQuestionDet,\n question,\n description,\n categoryQues,\n organizationName,\n language,\n public_intro } = props\n\n const [selectedCategory, setSelectedCategory] = useState('');\n const [selectedCategoryQues, setSelectedCategoryQues] = useState(false);\n const [selectedCategoryOptions, setSelectedCategoryOptions] = useState([]);\n\n useEffect(() => {\n if (categoryQues) {\n const CatQues = categoryQues.filter(cq =>\n cq.id === currentQuestionDet.category_question_id)?.[0]\n setSelectedCategoryQues(CatQues)\n if (CatQues?.answers) {\n setSelectedCategoryOptions(CatQues?.answers)\n } else {\n setSelectedCategoryOptions(false)\n }\n } \n }, [categoryQues, currentQuestionDet])\n\n useEffect(() => {\n if (currentQuestionDet?.response && selectedCategoryQues?.answers) {\n setSelectedCategory(selectedCategoryQues?.answers.filter(op => op.id === currentQuestionDet?.response.response)?.[0])\n } else {\n setSelectedCategory('')\n }\n },[currentQuestionDet, selectedCategoryQues])\n\n function SaveResponse(response) {\n const Response = {\n ques_sort_order: currentQuestionDet?.id,\n id: selectedCategoryQues.id,\n response: response?.id, \n subfactor: selectedCategoryQues?.subfactor,\n priority: selectedCategoryQues?.priority,\n role: selectedCategoryQues?.role,\n reverse: selectedCategoryQues?.reverse,\n clicked: true,\n }\n saveUpdatedAnswers(currentQuestionDet?.id, Response, categoryTypeQuestion)\n setSelectedCategory(selectedCategoryQues?.answers.find(op => op.id === Response.response))\n }\n\n const getTitle = ()=>{\n if(selectedCategoryQues?.fr_name && language === 'FR'){\n return selectedCategoryQues?.fr_name\n }\n\n if(selectedCategoryQues?.es_name && language === 'ES'){\n return selectedCategoryQues?.es_name\n }\n\n if(selectedCategoryQues?.name){\n return selectedCategoryQues?.name\n }\n\n return words[\"category_completed\"][language]\n }\n\n const getDescription = () =>{\n if(selectedCategoryQues?.fr && language === 'FR'){\n return selectedCategoryQues?.fr\n }\n if(selectedCategoryQues?.fr_question && language === 'FR'){\n return selectedCategoryQues?.fr_question\n }\n if(selectedCategoryQues?.es && language === 'ES'){\n return selectedCategoryQues?.es\n }\n if(selectedCategoryQues?.question){\n return selectedCategoryQues?.question\n }\n\n if(public_intro =='hockey_participants'){\n return language === 'EN' ? EN1 : FR1\n\n }\n\n return words[\"category_completed2\"][language].replace('{organizationName}',organizationName)\n }\n\n\n return (\n \n {words['category'][language]}\n {getTitle()}\n {getDescription()}\n {selectedCategoryOptions && }\n\n \n );\n};\n\nexport default Categories;\n\nconst CategoriesContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:calc(100%);\n max-width:600px;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Dropdown = styled.select`\n font-size: 1rem;\n padding: 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\n`\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nline-height:1.6;\nmargin-bottom:26px;\n\n@media(max-height:700px){\n font-size:${props => props.questionLength > 200 ? '14px' : '16px'};\n}\n\n@media(max-height:550px){\n font-size:${props => props.questionLength > 200 ? '12px' : '16px'};\n}\n`\n\nconst EN1 = (
\n

\n For the remainder of the survey, we will be asking about your personal experience with the environment and culture of hockey in Canada. However, to ensure your feedback reflects the current state of hockey, please focus only on your experiences from the past five years.\n

\n

\n As you answer, think about your recent hockey participation and how it has shaped your experience. Your honest responses will help us understand the opportunities for achieving healthy culture in the future of hockey.\n

\n
)\n\nconst FR1 = (
\n

\n Pour le reste du sondage, nous vous demanderons de partager votre expérience personnelle de l'environnement et de la culture du hockey au Canada. Cependant, pour garantir que vos commentaires reflètent l'état actuel du hockey, veuillez vous concentrer uniquement sur vos expériences des cinq dernières années.\n

\n

\n En répondant, réfléchissez à votre participation récente au hockey et à la manière dont elle a façonné votre expérience. Vos réponses honnêtes nous aideront à comprendre les opportunités pour atteindre une culture saine dans l'avenir du hockey.\n

\n
\n)","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/People.png'\nimport { words} from '../translations'\n\nconst Screen1 = ({title,language}) =>{\n\n return (\n \n {words['intro1-0'][language]} \n \"Image\n {words['intro1-1'][language]} {words['intro1-2'][language]} {words['intro1-3'][language]}, {words['intro1-4'][language]}.\n\n \n )\n}\n\nexport default Screen1\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 44px;\nline-height: 1.4;\ncolor: #2A3039;\n\n@media (max-width: 768px) {\n font-size: 38px;\n}\n`\n\nconst Image = styled.img`\n width:162px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/survey.png'\nimport {words} from '../translations'\n\nconst Screen2 = ({language}) =>{\n\n return (\n \n {words['intro2-0'][language]} {words['intro2-1'][language]}\n {words['intro2-2'][language]}\n \"Image\n {words['intro2-3'][language]} {words['intro2-4'][language]}\n\n \n )\n}\n\nexport default Screen2\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 44px;\nline-height: 1.4;\ncolor: #2A3039;\nwidth:100%;\n\n@media (max-width: 768px) {\n font-size: 38px;\n}\n`\n\nconst Image = styled.img`\n width:162px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n border-radius: 30px;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px 15px 0px 0px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/lock.png'\nimport {words} from '../translations'\n\nconst Screen2 = ({language,ai_disclaimer}) =>{\n\n return (\n \n \n\n {ai_disclaimer?\n {words['intro4-2'][language]}\n :\"\"}\n \n {words['intro4-0'][language]}\n \n\n {words['intro4-1'][language]}\n \n \n )\n}\n\nexport default Screen2\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 20px;\nline-height: 1.6;\ncolor: #2A3039;\nmargin-bottom:24px;\n`\n\nconst Container = styled.div`\n font-family: 'Raleway', sans-serif;\n`\n\nconst Linked = styled.a`\n text-decoration: underline;\n font-weight: 500;\n font-size: 16px;\n line-height: 128%;\n color: #2D70E2;\n`\n\nconst Emoji = styled.img`\n height:40px;\n margin-bottom: 40px;\n`\n\nconst Disclaimer = styled.div`\n font-size:20px;\n font-weight: 500;\n margin-bottom:20px;\n line-height: 1.4;\n`","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/anonymous.png'\nimport {words} from '../translations'\n\nconst Screen2 = ({language}) =>{\n\n \n return (\n \n {words['intro3-0'][language]} {words['intro3-1'][language]} {words['intro3-2'][language]} \n {words['intro3-3'][language]}\n \n {words['intro3-4'][language]} \"Image {words['intro3-5'][language]}\n\n \n )\n}\n\nexport default Screen2\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 44px;\nline-height: 1.4;\ncolor: #2A3039;\n\n@media (max-width: 768px) {\n font-size: 38px;\n}\n`\n\nconst Image = styled.img`\n height:52px;\n display: inline;\n vertical-align: middle;\n margin-left: 5px;\n margin-right: 5px;\n border-radius: 30px;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px 0px 0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/lock.png'\nimport {words} from '../translations'\nimport Checkbox from '../../SurveyComponents/Checkbox'\n\nconst EN25 = \"If you are under the age of 16, you must complete this assessment in the presence of an adult (aged 18 years or older). This adult can be a parent, guardian.\"\nconst FR25 = \"Si vous avez moins de 16 ans, vous devez effectuer cette évaluation en présence d'un adulte (âgé de 18 ans ou plus). Cet adulte peut être un parent.\"\n\n\n\nconst Screen5 = ({language,disableNext}) =>{\n\n const [agree,setAgree] = useState(null);\n const [agree8,setAgree8] = useState(false);\n\n React.useEffect(()=>{\n disableNext(true)\n\n return ()=>disableNext(false)\n },[])\n\n\n React.useEffect(()=>{\n if(agree){\n setAgree8(false)\n disableNext(false)\n }\n else{\n disableNext(true)\n }\n },[agree])\n\n React.useEffect(()=>{\n if(agree8){\n disableNext(false)\n }\n if(!agree8 && agree===false){\n disableNext(true)\n }\n \n },[agree8])\n\n\n return (\n \n \n {words['intro5-0'][language]}\n \n\n setAgree(true)} checked={agree}/>\n setAgree(false)} checked={agree===false}/>\n\n\n \n

\n {language=='FR'?FR25:EN25}\n\n

\n setAgree8(!agree8)} checked={agree8}/>\n\n
\n\n
\n \n )\n}\n\nexport default Screen5\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 24px;\nline-height: 1.6;\ncolor: #2A3039;\nmargin-bottom:24px;\n`\n\nconst Container = styled.div`\n font-family: 'Raleway', sans-serif;\n`\n\nconst Linked = styled.a`\n text-decoration: underline;\n font-weight: 500;\n font-size: 16px;\n line-height: 128%;\n color: #2D70E2;\n`\n\nconst Emoji = styled.img`\n height:40px;\n margin-bottom: 40px;\n`\n\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.17;\n color: black;\n font-family: 'Barlow', sans-serif;\n margin-bottom:${props=>props.expanded?'20px':0};\n max-height:${props=>props.expanded?'1000px':0};\n overflow:hidden;\n transition:all 1s ease-in-out;\n\n\n @media only screen and (min-width:992px){\n margin-bottom:${props=>props.expanded?'10px':'10px'};\n font-size: 18px;\n }\n`","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/lock.png'\nimport {words} from '../translations'\nimport Checkbox from '../../SurveyComponents/Checkbox'\n\nconst EN25 = (
Remember if you are under 19 years old, please complete this survey in the presence of an adult. This adult can be a parent or guardian.
)\nconst FR25 = (
Rappel si vous avez moins de 19 ans, veuillez remplir ce sondage en présence d'un adulte. Cet adulte peut être un parent ou un tuteur.
)\n\nconst EN26 = (
Reminder - The Hockey Culture Index - Participant Survey is meant for players, parents/guardians, coaches, officials, volunteers, and administrators/operators of Minor Hockey Associations. Please note:\n
    \n
  • If you are a player between the ages of 14 - 18 years old, complete the survey with a parent/guardian.
  • \n
  • If you are a parent/guardian and your player is between 14 - 18 years old, please help them complete the survey from their perspective.
  • \n
  • If you are a parent/guardian and your player is under 14 years old, fill it out from your perspective (as a parent or guardian of that child)!
  • \n
)\n\nconst FR26 = (
Rappel - L'indice de la culture du hockey - Enquête des participants est destiné aux joueurs, aux parents/tuteurs, aux entraîneurs, aux officiels, aux bénévoles et aux administrateurs/exploitants des associations de hockey mineur. Veuillez noter :\n
    \n
  • Si vous êtes un joueur âgé de 14 à 18 ans, remplissez le sondage avec un parent/tuteur.
  • \n
  • Si vous êtes un parent/tuteur et que votre joueur a entre 14 et 18 ans, aidez-le à remplir le sondage de son point de vue.
  • \n
  • Si vous êtes un parent/tuteur et que votre joueur a moins de 14 ans, remplissez-le de votre point de vue (en tant que parent ou tuteur de cet enfant) !
  • \n
)\n\nconst Screen7 = ({language,disableNext}) =>{\n\n const [agree,setAgree] = useState(null);\n const [agree8,setAgree8] = useState(false);\n\n React.useEffect(()=>{\n disableNext(true)\n\n return ()=>disableNext(false)\n },[])\n\n\n React.useEffect(()=>{\n if(agree){\n setAgree8(false)\n disableNext(false)\n }\n else{\n disableNext(true)\n }\n },[agree])\n\n React.useEffect(()=>{\n if(agree8){\n disableNext(false)\n }\n if(!agree8 && agree===false){\n disableNext(true)\n }\n \n },[agree8])\n\n\n return (\n \n \n {words['intro7-0'][language]}\n \n\n \n {language=='FR'?FR26:EN26}\n \n\n setAgree(true)} checked={agree}/>\n setAgree(false)} checked={agree===false}/>\n\n\n \n

\n {language=='FR'?FR25:EN25}\n\n

\n setAgree8(!agree8)} checked={agree8}/>\n\n
\n\n
\n \n )\n}\n\nexport default Screen7\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 24px;\nline-height: 1.6;\ncolor: #2A3039;\nmargin-bottom:24px;\n`\n\nconst Container = styled.div`\n font-family: 'Raleway', sans-serif;\n line-height: 1.6;\n\n li{\n margin-bottom: 10px;\n}\n`\n\nconst Reminder = styled.div`\n font-size: 16px;\n margin-bottom: 24px;\n`\n\nconst Linked = styled.a`\n text-decoration: underline;\n font-weight: 500;\n font-size: 16px;\n line-height: 128%;\n color: #2D70E2;\n`\n\nconst Emoji = styled.img`\n height:40px;\n margin-bottom: 40px;\n`\n\nconst SubTitle = styled.div`\n\tfont-size: 16px;\n\tline-height: 1.17;\n color: black;\n margin-bottom:${props=>props.expanded?'20px':0};\n max-height:${props=>props.expanded?'1000px':0};\n overflow:hidden;\n transition:all 1s ease-in-out;\n margin-top:10px;\n\n\n\n @media only screen and (min-width:992px){\n margin-bottom:${props=>props.expanded?'10px':'10px'};\n }\n`","\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport LogoIL from \"assets/images/logo_full.png\";\n\n\nconst splitText = (text) => {\n const [boldText, normalText] = text.split(':');\n return (\n <>\n {boldText}:{normalText}\n \n );\n };\n\n const HockeyCustom = ({language}) =>{\n const t = translations[language];\n\n return (\n <>\n \n \n \n \n \n \n

{t.welcome}

\n

{t.subtitle}

\n

{t.intro}

\n

{t.whatYouNeedToKnow}

\n
    \n
  • {splitText(t.timeCommitment)}
  • \n
  • {splitText(t.honesty)}
  • \n
  • {splitText(t.anonymity)}
  • \n
  • {splitText(t.dataUsage)}
  • \n
  • {splitText(t.interviewOpportunity)}
  • \n
\n

{t.beforeYouBegin}

\n
    \n
  • {t.quietTime}
  • \n
  • {t.candidResponses}
  • \n
\n

{t.questions}

\n \n

{t.moreInfo} www.sea-hockey-ems.ca.

\n \n

{t.strongNotice} {t.important} {language==\"EN\"?\"website\":\"site web\"}.

\n
\n \n )\n}\nexport default HockeyCustom\n\nconst Text = styled.div`\nfont-size: 16px;\nline-height: 1.6;\ncolor: #2A3039;\nwhite-space: pre-wrap;\nfont-family: 'Raleway', sans-serif;\nbackground-color: white;\npadding:20px;\nborder-radius:20px;\n\npadding-bottom:40px;\n\n\nh1 {\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\n\nh2 {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\nli {\n maregin-bottom: 0.5em;\n}\n\n`\n\nconst Logo2 = styled.img`\n width:150px;\n`\n\nconst LogoArea = styled.div`\n display:flex;\n justify-content:center;\n margin-bottom:20px;\n width:100%;\n`\n\nconst Image = styled.img`\n width:162px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\nconst Logo = styled.img`\n width:300px;\n`\n\n\nconst translations = {\n EN: {\n welcome: \"Welcome to the Sport Environment Assessment Survey\",\n subtitle: \"Hockey Culture Index – Member Branches Survey\",\n intro: \"Thank you for participating in this important initiative. Your experience and knowledge are valuable to our efforts in assessing the environment and culture of Hockey Canada and hockey in Canada.\",\n whatYouNeedToKnow: \"What You Need to Know:\",\n timeCommitment: \"Time Commitment: This survey will take approximately 15 minutes to complete.\",\n honesty: \"Honesty is Key: There are no right or wrong answers – we're seeking your genuine perspectives.\",\n anonymity: \"Complete Anonymity: Your responses are anonymous. We do not collect personally identifiable information to help ensure your privacy is protected.\",\n dataUsage: \"Data usage: the information gathered from this survey will be used to understand the current organizational environment and culture within your hockey organization and identify areas to improve the sport environment.\",\n interviewOpportunity: \"Post-Survey Interview Opportunity: After completing the survey, you can sign up for an interview. This is entirely voluntary and separate from your survey responses, maintaining your anonymity.\",\n beforeYouBegin: \"Before You Begin:\",\n quietTime: \"Ensure you have uninterrupted quiet time to complete the survey.\",\n candidResponses: \"Feel free to be open and candid in your responses.\",\n questions: \"If you have any questions, please don't hesitate to reach out to the SEA Team:\",\n tollFree: \"Toll-free: 1-833-974-1281\",\n email: \"Email:\",\n moreInfo: \"For more information about the Sport Environment Assessment, visit\",\n nextButton: \"Next\",\n strongNotice: \"Important Notice:\",\n important:\"This survey is not intended for filing complaints or reports about maltreatment in sport. If you need to submit such a complaint or report, please visit the Office of the Sport Integrity Commissioner (OSIC)\"\n },\n FR: {\n welcome: \"Bienvenue à l'enquête d'évaluation de l'environnement sportif\",\n subtitle: \"Indice de la culture du hockey - Enquête des Membres\",\n intro: \"Merci de participer à cette initiative importante. Votre expérience et vos connaissances sont précieuses pour nos efforts d'évaluation de l'environnement et de la culture de Hockey Canada et du hockey au Canada.\",\n whatYouNeedToKnow: \"Ce que vous devez savoir :\",\n timeCommitment: \"Temps nécessaire : ce sondage prendra environ 15 minutes à remplir.\",\n honesty: \"L'honnêteté est essentielle : il n'y a pas de bonnes ou de mauvaises réponses - nous recherchons vos perspectives authentiques.\",\n anonymity: \"Anonymat complet : Vos réponses sont anonymes. Nous ne collectons pas d'informations personnellement identifiables afin de garantir la protection de votre vie privée.\",\n dataUsage: \"Utilisation des données : Les informations recueillies à partir de cette enquête seront utilisées pour comprendre l'environnement organisationnel et culturel actuel au sein de votre organisation de hockey et pour identifier les domaines à améliorer dans l'environnement sportif.\",\n interviewOpportunity: \"Opportunité d'entrevue après le sondage : Après avoir terminé le sondage, vous pouvez vous inscrire pour une entrevue. Cela est entièrement volontaire et séparé de vos réponses au sondage, maintenant ainsi votre anonymat.\",\n beforeYouBegin: \"Avant de commencer :\",\n quietTime: \"Assurez-vous d'avoir du temps calme sans interruption pour compléter le sondage.\",\n candidResponses: \"N'hésitez pas à être ouvert et sincère dans vos réponses.\",\n questions: \"Si vous avez des questions, n'hésitez pas à contacter l'équipe SEA :\",\n tollFree: \"Sans frais : 1-833-974-1281\",\n email: \"Courriel :\",\n moreInfo: \"Pour plus d'informations sur l'évaluation de l'environnement sportif, visitez\",\n nextButton: \"Suivant\",\n strongNotice: \"Avis Important :\",\n important:\"Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous devez soumettre une telle plainte ou un tel rapport, veuillez visiter le Bureau du commissaire à l'intégrité du sport (BCIS)\"\n }\n};","\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport LogoIL from \"assets/images/logo_full.png\";\n\n\nconst splitText = (text) => {\n const [boldText, normalText] = text.split(':');\n return (\n <>\n {boldText}:{normalText}\n \n );\n };\n\n const HockeyCustom = ({language}) =>{\n const t = translations[language];\n\n return (\n <>\n \n \n \n \n \n \n

{t.welcome}

\n

{t.subtitle}

\n

{t.intro}

\n

{t.whatYouNeedToKnow}

\n
    \n
  • {splitText(t.timeCommitment)}
  • \n
  • {splitText(t.honesty)}
  • \n
  • {splitText(t.anonymity)}
  • \n
  • {splitText(t.dataUsage)}
  • \n
  • {splitText(t.recommendations)}
  • \n
  • {splitText(t.interviewOpportunity)}
  • \n
\n

{t.beforeYouBegin}

\n
    \n
  • {t.quietTime}
  • \n
  • {t.candidResponses}
  • \n
\n

{t.questions}

\n \n

{t.moreInfo} www.sea-hockey-ems.ca.

\n \n {language === 'EN' ? EN1 : FR1}\n
\n \n )\n}\nexport default HockeyCustom\n\nconst Text = styled.div`\nfont-size: 16px;\nline-height: 1.6;\ncolor: #2A3039;\nwhite-space: pre-wrap;\nfont-family: 'Raleway', sans-serif;\nbackground-color: white;\npadding:20px;\nborder-radius:20px;\n\npadding-bottom:40px;\n\n\nh1 {\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\n\nh2 {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\nli {\n maregin-bottom: 0.5em;\n}\n\n`\n\nconst Logo2 = styled.img`\n width:150px;\n`\n\nconst LogoArea = styled.div`\n display:flex;\n justify-content:center;\n margin-bottom:20px;\n width:100%;\n`\n\nconst Image = styled.img`\n width:162px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\nconst Logo = styled.img`\n width:300px;\n`\n\nconst EN1 = (\n
\n \n

\n Important Notice: This survey is not intended for filing complaints or reports about maltreatment in sport. If you have concerns of maltreatment against a specific individual, you may file a Complaint through Hockey Canada’s ITP complaints@sportcomplaints.ca or https://app.alias-solution.com/contact/fr/ls41 (for Quebec Complaints).\n

\n

\n If you are unsure about who to reach out to or want to speak in confidence, the Abuse-Free Sport Helpline operators can be reached by phone or text at 1-888-837-7678 or by email at info@abuse-free-sport.ca or info@sport-sans-abus.ca (en français).\n

\n
\n
\n)\n\nconst FR1 = (\n
\n \n

\n Avis important : Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous avez des préoccupations concernant des mauvais traitements à l'égard d'une personne en particulier, vous pouvez déposer une plainte auprès de l'ITP de Hockey Canada à l'adresse complaints@sportcomplaints.ca ou https://app.alias-solution.com/contact/fr/ls41 (pour les plaintes au Québec).\n

\n

\n Si vous n'êtes pas sûr de qui contacter ou si vous souhaitez parler en toute confidentialité, les opérateurs de la ligne d'assistance Sport sans abus peuvent être contactés par téléphone ou par SMS au 1-888-837-7678 ou par courriel à info@abuse-free-sport.ca ou info@sport-sans-abus.ca (en français).\n

\n
\n
\n)\n\n\nconst translations = {\n EN: {\n \"welcome\": \"Welcome to the Sport Environment Assessment Survey\",\n \"subtitle\": \"Hockey Culture Index – Participant Survey\",\n \"intro\": \"Thank you for participating in this important initiative. Your experience and knowledge are valuable to our efforts in assessing the environment and culture of hockey in Canada.\",\n \"whatYouNeedToKnow\": \"What You Need to Know:\",\n \"timeCommitment\": \"Time Commitment: This survey will take approximately 15 minutes to complete.\\nSurvey open until November 20,2024.\",\n \"honesty\": \"Honesty is Key: There are no right or wrong answers – we're seeking your genuine perspectives.\",\n \"anonymity\": \"Complete Anonymity: Your responses are anonymous. We do not collect personally identifiable information to help ensure your privacy is protected.\",\n \"dataUsage\": \"Data usage: the information gathered from this survey will be used to understand the current environment and culture within your hockey organization. This allows for a better understanding of the opportunities for achieving a healthy hockey culture, which supports both well-being and high performance in hockey.\",\n \"recommendations\":\"Report and recommendations: Which are informed by this survey and other information will be published by the Office of the Sport Integrity Commissioner in Spring 2025.\",\n \"interviewOpportunity\": \"Post-Survey Interview Opportunity: After completing the survey, you can sign up for an interview. This is entirely voluntary and separate from your survey responses, maintaining your anonymity.\",\n \"beforeYouBegin\": \"Before You Begin:\",\n \"quietTime\": \"Ensure you have uninterrupted quiet time to complete the survey.\",\n \"candidResponses\": \"Feel free to be open and candid in your responses.\",\n \"questions\": \"\",\n \"tollFree\": \"\",\n \"email\": \"\",\n \"moreInfo\": \"For more information about the Sport Environment Assessment, visit \",\n \"nextButton\": \"Next\",\n \"strongNotice\": \"Important Notice:\",\n \"important\": \"This survey is not intended for filing complaints or reports about maltreatment in sport. If you need support or wish to submit such a complaint or report, please visit the Office of the Sport Integrity Commissioner (OSIC) website.\"\n },\n FR: {\n \"welcome\": \"Bienvenue au Sondage d'Évaluation de l'Environnement Sportif\",\n \"subtitle\": \"Indice de Culture du Hockey – Sondage des Participants\",\n \"intro\": \"Merci de participer à cette initiative importante. Votre expérience et vos connaissances sont précieuses pour nos efforts d'évaluation de l'environnement et de la culture du hockey au Canada.\",\n \"whatYouNeedToKnow\": \"Ce que vous devez savoir :\",\n \"timeCommitment\": \"Temps requis : Ce sondage prendra environ 15 minutes à compléter.\\nSondage ouvert jusqu'au 20 novembre 2024.\",\n \"honesty\": \"L'honnêteté est essentielle : Il n'y a pas de bonnes ou mauvaises réponses – nous recherchons vos perspectives authentiques.\",\n \"anonymity\": \"Anonymat complet : Vos réponses sont anonymes. Nous ne collectons pas d'informations personnellement identifiables afin de garantir la protection de votre vie privée.\",\n \"dataUsage\": \"Utilisation des données : Les informations recueillies dans ce sondage seront utilisées pour comprendre l'environnement et la culture actuels au sein de votre organisation de hockey. Cela permet une meilleure compréhension des opportunités pour atteindre une culture saine du hockey, qui soutient à la fois le bien-être et la haute performance dans le hockey.\",\n \"recommendations\":\"Rapport et recommandations : Qui sont informés par ce sondage et d'autres informations seront publiés par le Bureau du Commissaire à l'intégrité dans le sport au printemps 2025.\",\n \"interviewOpportunity\": \"Possibilité d'entrevue après le sondage : Après avoir complété le sondage, vous pouvez vous inscrire pour une entrevue. Cela est entièrement volontaire et séparé de vos réponses au sondage, préservant ainsi votre anonymat.\",\n \"beforeYouBegin\": \"Avant de commencer :\",\n \"quietTime\": \"Assurez-vous d'avoir du temps calme et ininterrompu pour compléter le sondage.\",\n \"candidResponses\": \"N'hésitez pas à être ouvert et sincère dans vos réponses.\",\n \"questions\": \"\",\n \"tollFree\": \"\",\n \"email\": \"\",\n \"moreInfo\": \"Pour plus d'informations sur l'Évaluation de l'Environnement Sportif, visitez \",\n \"nextButton\": \"Suivant\",\n \"strongNotice\": \"Avis important :\",\n \"important\": \"Ce sondage n'est pas destiné à déposer des plaintes ou des signalements concernant la maltraitance dans le sport. Si vous avez besoin de soutien ou souhaitez soumettre une telle plainte ou un signalement, veuillez visiter le site web du Bureau du Commissaire à l'intégrité dans le sport (BCIS).\"\n } \n};","\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport LogoIL from \"assets/images/logo_full.png\";\nimport HockeyCustom_v2 from \"./Custom/HockeyCustom_v2\"\nimport HockeyCustom_v3 from \"./Custom/HockeyCustom_v3\"\n\nconst splitText = (text) => {\n const [boldText, normalText] = text.split(':');\n return (\n <>\n {boldText}:{normalText}\n \n );\n };\n\nconst HockeyCustom = ({language,intro_type}) =>{\n const t = translations[language];\n if(intro_type == \"hockey_members\"){\n return \n }\n\n if(intro_type == \"hockey_participants\"){\n return \n }\n\n return (\n <>\n \n \n \n \n \n \n

{t.welcome}

\n

{t.subtitle}

\n

{t.intro}

\n

{t.whatYouNeedToKnow}

\n
    \n
  • {splitText(t.timeCommitment)}
  • \n
  • {splitText(t.honesty)}
  • \n
  • {splitText(t.anonymity)}
  • \n
  • {splitText(t.dataUsage)}
  • \n
  • {splitText(t.interviewOpportunity)}
  • \n
\n

{t.beforeYouBegin}

\n
    \n
  • {t.quietTime}
  • \n
  • {t.candidResponses}
  • \n
\n

{t.questions}

\n \n

{t.moreInfo} www.sea-hockey-ems.ca.

\n \n

{t.strongNotice} {t.important} {language==\"EN\"?\"website\":\"site web\"}.

\n
\n \n )\n}\n\nexport default HockeyCustom\n\nconst Text = styled.div`\nfont-size: 16px;\nline-height: 1.6;\ncolor: #2A3039;\nwhite-space: pre-wrap;\nfont-family: 'Raleway', sans-serif;\nbackground-color: white;\npadding:20px;\nborder-radius:20px;\n\npadding-bottom:40px;\n\n\nh1 {\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\n\nh2 {\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\nli {\n maregin-bottom: 0.5em;\n}\n\n`\n\nconst Logo2 = styled.img`\n width:150px;\n`\n\nconst LogoArea = styled.div`\n display:flex;\n justify-content:center;\n margin-bottom:20px;\n width:100%;\n`\n\nconst Image = styled.img`\n width:162px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\nconst Logo = styled.img`\n width:300px;\n`\n\n\nconst translations = {\n EN: {\n welcome: \"Welcome to the Sport Environment Assessment Survey\",\n subtitle: \"Hockey Culture Index - Hockey Canada Survey\",\n intro: \"Thank you for participating in this important initiative. Your experience and knowledge are valuable to our efforts in assessing the environment and culture of Hockey Canada and hockey in Canada.\",\n whatYouNeedToKnow: \"What You Need to Know:\",\n timeCommitment: \"Time Commitment: This survey will take approximately 15 minutes to complete.\",\n honesty: \"Honesty is Key: There are no right or wrong answers – we're seeking your genuine perspectives.\",\n anonymity: \"Complete Anonymity: Your responses are anonymous. We do not collect personally identifiable information to help ensure your privacy is protected.\",\n dataUsage: \"Data Usage: The information gathered from this survey will be used to understand the current organizational environment and culture within Hockey Canada and identify areas to improve the sport environment.\",\n interviewOpportunity: \"Post-Survey Interview Opportunity: After completing the survey, you can sign up for an interview. This is entirely voluntary and separate from your survey responses, maintaining your anonymity.\",\n beforeYouBegin: \"Before You Begin:\",\n quietTime: \"Ensure you have uninterrupted quiet time to complete the survey.\",\n candidResponses: \"Feel free to be open and candid in your responses.\",\n questions: \"If you have any questions, please don't hesitate to reach out to the SEA Team:\",\n tollFree: \"Toll-free: 1-833-974-1281\",\n email: \"Email:\",\n moreInfo: \"For more information about the Sport Environment Assessment, visit\",\n nextButton: \"Next\",\n strongNotice: \"Important Notice:\",\n important:\"This survey is not intended for filing complaints or reports about maltreatment in sport. If you need to submit such a complaint or report, please visit the Office of the Sport Integrity Commissioner (OSIC)\"\n },\n FR: {\n welcome: \"Bienvenue à l'enquête d'évaluation de l'environnement sportif\",\n subtitle: \"Indice de la culture du hockey - Enquête Hockey Canada\",\n intro: \"Merci de participer à cette initiative importante. Votre expérience et vos connaissances sont précieuses pour nos efforts d'évaluation de l'environnement et de la culture de Hockey Canada et du hockey au Canada.\",\n whatYouNeedToKnow: \"Ce que vous devez savoir :\",\n timeCommitment: \"Temps nécessaire : ce sondage prendra environ 15 minutes à remplir.\",\n honesty: \"L'honnêteté est essentielle : il n'y a pas de bonnes ou de mauvaises réponses - nous recherchons vos perspectives authentiques.\",\n anonymity: \"Anonymat complet : Vos réponses sont anonymes. Nous ne collectons pas d'informations personnellement identifiables afin de garantir la protection de votre vie privée.\",\n dataUsage: \"Utilisation des données : Les informations recueillies dans ce sondage seront utilisées pour comprendre l'environnement organisationnel actuel et la culture au sein de Hockey Canada et identifier les domaines à améliorer dans l'environnement sportif.\",\n interviewOpportunity: \"Opportunité d'entrevue après le sondage : Après avoir terminé le sondage, vous pouvez vous inscrire pour une entrevue. Cela est entièrement volontaire et séparé de vos réponses au sondage, maintenant ainsi votre anonymat.\",\n beforeYouBegin: \"Avant de commencer :\",\n quietTime: \"Assurez-vous d'avoir du temps calme sans interruption pour compléter le sondage.\",\n candidResponses: \"N'hésitez pas à être ouvert et sincère dans vos réponses.\",\n questions: \"Si vous avez des questions, n'hésitez pas à contacter l'équipe SEA :\",\n tollFree: \"Sans frais : 1-833-974-1281\",\n email: \"Courriel :\",\n moreInfo: \"Pour plus d'informations sur l'évaluation de l'environnement sportif, visitez\",\n nextButton: \"Suivant\",\n strongNotice: \"Avis Important :\",\n important:\"Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous devez soumettre une telle plainte ou un tel rapport, veuillez visiter le Bureau du commissaire à l'intégrité du sport (BCIS)\"\n }\n};","// ... other imports ...\n\nimport styled from 'styled-components';\nimport React,{ useState } from 'react';\nimport Screen1 from './IntroScreens/screen1'\nimport Screen2 from './IntroScreens/screen2'\nimport Screen4 from './IntroScreens/screen4'\nimport Screen3 from './IntroScreens/screen3'\nimport Screen5 from './IntroScreens/screen5'\nimport Screen7 from './IntroScreens/screen7'\n\nimport HockeyCustom from './IntroScreens/HockeyCustom'\n\nconst Introduction = ({id,title,language,disableNext,ai_disclaimer,intro_type}) => {\n\n const renderIntro = (screen_id) => {\n switch (screen_id) {\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return ;\n case 5:\n return ;\n case 6:\n return ;\n case 7:\n return ;\n default:\n return ;\n }\n }\n\n return (\n \n {renderIntro(id)}\n \n );\n};\n\n\nexport default Introduction;\n\nconst IntroductionContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:${props=>props.id === 6 ? '800px' : '600px'};\n`;\n\nconst IntroductionText = styled.p`\n font-size: 1.25rem;\n text-align: center;\n`;","import React from 'react';\nimport styled from 'styled-components';\n\nconst BulletProgressBar = ({ current,total }) => {\n return (\n \n {Array(total)\n .fill(null)\n .map((_, index) => (\n \n ))}\n \n );\n};\n\nexport default BulletProgressBar;\n\nconst BulletContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst Bullet = styled.div`\n background-color: ${({ active }) => (active ? '#2D70E2' : '#D5E2F9')};\n border-radius: 10px;\n width: ${({ active }) => (active ? '35px' : '12px')};\n height: 6px;\n margin: 0 0.25rem;\n transition: all 300ms;\n`;\n","import React from \"react\";\nimport { Modal } from 'semantic-ui-react'\nimport styled from 'styled-components'\nimport CustomButton from './Button'\nimport {words} from '../translations'\n\nconst SkipModal = ({open,setOpen, SkipQuestion,language}) =>{\n \n return (\n setOpen(false)}>\n {words['matters'][language]} 🌟\n \n {words['welcomeMessage'][language]}\n 🌍 {words['sharing'][language]}\n
    \n
  • {words['driveChangeTitle'][language]} 🛠️ - {words['driveChangeText'][language]}
  • \n
  • \n {words['reinforceStrengthsTitle'][language]} 💪 - {words['reinforceStrengthsText'][language]}\n
  • \n
  • \n {words['influenceDecisionsTitle'][language]} 🧭 - {words['influenceDecisionsText'][language]}\n
  • \n
\n \n
\n \n \n \n \n {words['Skip anyway'][language]}\n \n\n setOpen(false)} type='leave'>\n {words['Leave feedback'][language]}\n \n \n \n \n )\n }\n\nexport default SkipModal\n\n\nconst ModalContent = styled.div`\n padding:20px;\n font-size:16px;\n line-height:1.6;\n font-family:Poppins, sans-serif;\n\n @media (max-width:768px){\n font-size:14px;\n }\n`","import React, { useEffect, useState, useRef } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { Loader } from \"semantic-ui-react\";\nimport Typewriter from \"typewriter-effect\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { SG_GET_CHAT_GPT_SUMMARY } from \"constants/actions\";\nimport Logo from \"assets/images/Ilogo.svg\";\nimport {words} from '../translations'\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport SkipModal from \"../Components/SkipModal\";\nimport { followupAiTypeQuestion } from \"constants/questionTypes\";\nconst NewValidationToken = uuidv4();\n\nconst Follow_up = ({\n currentQuestionDet,\n saveUpdatedAnswers,\n language,\n refQues,\n handleNext,\n sortOrder\n}) => {\n const dispatch = useDispatch();\n const timeout = useRef(null);\n const [prompt, setPrompt] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [question, setQuestion] = useState(\"\");\n const textareaRef = useRef();\n const [feedbackText, setFeedbackText] = useState(\"\");\n const [open, setOpen] = useState(false);\n\n\n // console.log(\"currentQuestionDet\", currentQuestionDet);\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${\n textareaRef.current.scrollHeight - 16\n }px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = \"inherit\";\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n const ResponseObj = {\n survey_q_id: currentQuestionDet.id,\n feedback: event.target.value,\n question_type: currentQuestionDet?.question_type,\n org_ref_ques_id: refQues?.response?.survey_q_id,\n dimension: refQues?.response?.dimension,\n factor: refQues?.response?.factor,\n fr: refQues?.response?.fr,\n es: refQues?.response?.es,\n id: refQues?.response?.id,\n q: refQues?.response?.q,\n ques_order: currentQuestionDet?.ques_order,\n org_ques_order: refQues?.response?.ques_order,\n question: refQues?.response?.question,\n response: refQues?.response?.response,\n reverse: refQues?.response?.reverse,\n role: refQues?.response?.role,\n type: refQues?.response?.type,\n prompt: prompt,\n clicked: refQues?.response?.clicked,\n prompt_question: question,\n prompt_feedback: refQues?.response?.feedback,\n };\n\n saveUpdatedAnswers(\n currentQuestionDet?.id,\n ResponseObj,\n currentQuestionDet.quesType\n );\n };\n\n const { get_chat_gpt } = useSelector(\n (state) => ({\n get_chat_gpt: state.chatgpt,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n if (\n !currentQuestionDet?.response?.feedback ||\n currentQuestionDet?.response?.prompt_feedback !==\n refQues?.response?.feedback\n ) {\n SubmitChatGpt();\n } else {\n console.log(\"run this\");\n setQuestion(currentQuestionDet?.response?.prompt_question);\n setFeedbackText(currentQuestionDet?.response?.feedback);\n }\n }, []);\n\n useEffect(() => {\n if (get_chat_gpt?.response_pending === true) {\n timeout.current = setTimeout(() => {\n setLoading(false);\n SkipQuestion()\n }, 15000);\n }\n\n if (get_chat_gpt?.response_pending === false) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n setLoading(get_chat_gpt?.response_pending);\n if (get_chat_gpt.chat_gpt_summary?.response) {\n setQuestion(get_chat_gpt.chat_gpt_summary?.response);\n }\n\n return () => {\n clearTimeout(timeout.current);\n };\n }, [get_chat_gpt]);\n\n function SubmitChatGpt() {\n\n \n let _prompt = `Context:\n The following is feedback from a culture analysis survey. The feedback is a response to the following statement: ${refQues?.response?.question} \\n\n Feedback:\\n${refQues?.response?.feedback}\\n\n Question:\\nWhat follow up question would a world class culture consultant ask based on the feedback given that would help to get more context around this area, and also help to generate recommendations for this organization? Make sure your response is simple enough for an 7th grader to understand. Only return the question istelf. \\n\n Response:\\n`;\n\n if(language=='FR'){\n \n _prompt = `Contexte:\n Les commentaires suivants proviennent d'une enquête d'analyse culturelle. Les commentaires sont une réponse à l'énoncé suivant : ${refQues?.response?.fr? refQues?.response.fr:refQues?.response?.question} \\n\n Commentaires :\\n${refQues?.response?.feedback}\\n \n Question :\\nQuelle question de suivi un consultant culturel de classe mondiale poserait-il sur la base des commentaires fournis qui aiderait à obtenir plus de contexte autour de ce domaine, et aussi à générer des recommandations pour cette organisation ? Assurez-vous que votre réponse est assez simple pour qu'un élève de 7ème puisse comprendre. Ne retournez que la question elle-même. \\n\n Réponse :\\n`\n }\n\n if(language=='ES'){\n\n _prompt = `Contexto:\n Los siguientes comentarios son una respuesta a la siguiente declaración: ${refQues?.response?.es ? refQues.response.es: refQues?.response?.question} \\n\n Comentarios:\\n${refQues?.response?.feedback}\\n\n Pregunta:\\n¿Qué pregunta de seguimiento haría un consultor de cultura de clase mundial basada en los comentarios dados que ayudaría a obtener más contexto en esta área, y también ayudaría a generar recomendaciones para esta organización? Asegúrese de que su respuesta sea lo suficientemente simple para que un estudiante de 7º grado la entienda. Solo devuelva la pregunta en sí. \\n\n Respuesta:\\n`\n }\n\n if(sortOrder === 160 || sortOrder === 178){\n _prompt = `Context:\n The following is feedback from a youth sport culture survey. The feedback is a response to the following statement: ${refQues?.response?.question} \\n\n Feedback:\\n${refQues?.response?.feedback}\\n\n Question:\\nWhat follow up question would a world class culture consultant ask based on the feedback given that would help to get more context around this area, and also help to generate recommendations for this organization? Make sure your response is simple enough for an 7th grader to understand. Only return the question istelf. Keep in mind the respondant is a youth athlete.\\n\n Response:\\n`;\n\n if(language=='FR'){\n _prompt = `Contexte :\n Ce qui suit est un retour d'information d'une enquête sur la culture du sport chez les jeunes. Le retour d'information est une réponse à l'affirmation suivante : ${refQues?.response?.question} \n \n Retour d'information :\n ${refQues?.response?.feedback}\n \n Question :\n Quelle question de suivi un consultant de classe mondiale en culture poserait-il en fonction des commentaires donnés afin d'obtenir plus de contexte sur ce domaine et d'aider à formuler des recommandations pour cette organisation ? Assurez-vous que votre réponse est suffisamment simple pour qu'un élève de 5ème puisse comprendre. Retournez uniquement la question elle-même. Gardez à l'esprit que le répondant est un jeune athlète.\n \n Réponse :\\n`\n\n }\n }\n\n // console.log(_prompt)\n setPrompt(_prompt);\n dispatch({\n type: SG_GET_CHAT_GPT_SUMMARY,\n payload: {\n payload: _prompt,\n token: NewValidationToken,\n },\n });\n }\n\n const handleSkip = () => {\n setOpen(true);\n };\n\n function SkipQuestion() {\n const ResponseObj = {\n survey_q_id: currentQuestionDet.id,\n feedback: \"\",\n dimension: refQues?.response?.dimension,\n factor: refQues?.response?.factor,\n fr: refQues?.response?.fr,\n id: refQues?.response?.id,\n q: refQues?.response?.q,\n ques_order: refQues?.response?.ques_order,\n question: refQues?.response?.question,\n response: refQues?.response?.feedback,\n reverse: refQues?.response?.reverse,\n role: refQues?.response?.role,\n type: refQues?.response?.type,\n prompt: \"\",\n prompt_question: \"\",\n };\n saveUpdatedAnswers(\n currentQuestionDet.id,\n ResponseObj,\n followupAiTypeQuestion\n );\n setOpen(false);\n handleNext();\n }\n\n return (\n \n \n <Circle>\n <IMG src={Logo} />\n </Circle>\n Innerlogic AI\n \n \n {loading ? (\n \n ) : (\n {\n typewriter\n .changeDelay(14)\n .typeString(question)\n .pauseFor(100)\n .start();\n }}\n />\n )}\n \n\n \n\n {words['Skip'][language]} >\n \n \n );\n};\n\nexport default Follow_up;\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 600px;\n width: 100%;\n font-family: \"Raleway\", sans-serif;\n`;\n\nconst Description = styled.div`\n color: #2a3039;\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n margin-bottom: 34px;\n line-height: 1.6;\n`;\nconst Title = styled.div`\n color: #2d70e2;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 40px;\n display: flex;\n`;\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2a3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: \"Raleway\", sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2d70e2;\n outline: 0;\n }\n`;\n\nconst Skip = styled.div`\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n color: #2d70e2;\n margin-top: 40px;\n cursor: pointer;\n`;\n\nconst Circle = styled.div`\n width: 40px;\n height: 40px;\n border-radius: 10px;\n background-color: #2d70e2;\n margin-right: 10px;\n min-width: 40px;\n align-items: center;\n display: flex;\n justify-content: center;\n position: relative;\n`;\n\nconst IMG = styled.img`\n width: 20px;\n`;\n","import React, { useState,useRef,useEffect } from 'react';\nimport styled from 'styled-components';\nimport {words} from '../translations'\n\n\n\nconst Submit = ({language}) =>{\n\n\n return (\n\n \n 👏 \n {words['Congratulations'][language]}\n \n {words['Value'][language]} {words['Submit'][language]} {words['Value2'][language]}\n \n \n\n )\n}\n\n\nexport default Submit;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","import React, { useState,useRef,useEffect } from 'react';\nimport styled from 'styled-components';\n\n\n\n\nconst IntroSection = ({data}) =>{\n\n\n return (\n\n \n {data.emoji}\n {data.title}\n {data.text.map((item, i)=>{\n return {item}\n })}\n \n \n\n )\n}\n\n\nexport default IntroSection;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","import React, { useState,useRef,useEffect } from 'react';\nimport styled from 'styled-components';\nimport {words} from '../translations'\n\n\n\n\nconst Values = ({question,statement,language}) =>{\n\n const textareaRef = useRef();\n const [feedbackText, setFeedbackText] = useState('');\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight -16}px`;\n }\n }, []);\n \n const handleInput = (e) => {\n e.target.style.height = 'inherit';\n e.target.style.height = `${e.target.scrollHeight -16}px`;\n };\n \n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n };\n\n\n return (\n\n \n {statement}\n \n {question}\n \n \n \n\n )\n}\n\n\nexport default Values;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n line-height: 1.6;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\n`\n\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%; \n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2A3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: 'Raleway', sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2D70E2;\n outline: 0;\n }\n`;","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\n\n\n\nconst HockeyCompleted2 = ({language}) =>{\n\n const [step,setStep] = useState(0)\n\n if(step ==2 || step==1){\n return (\n
\n \n {language == 'EN'\n ? 'Thank You for Your Participation!'\n : 'Merci'}\n \n\n \n {language == 'EN'\n ? \"Your responses have been successfully submitted. We appreciate your time and input.\"\n : 'Vous avez terminé le sondage avec succès.'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Your responses will be analyzed along with others to provide a comprehensive view of hockey in Canada and Hockey Canada’s organizational culture;'\n : 'Vos réponses seront analysées avec d\\'autres pour fournir une vue d\\'ensemble du hockey au Canada et de la culture organisationnelle de Hockey Canada ;'}
  • \n\n
  • {language == 'EN'\n ? 'OSIC will publish overall results in Spring 2025.'\n : 'BCIS publiera les résultats globaux au printemps 2025.'}
  • \n\n\n
\n
\n\n \n {language == 'EN' ? 'Interview Opportunity' : 'Opportunité d\\'entrevue'}\n \n\n\n\n \n {language == 'EN' ?\n \"If you'd like to participate in a follow-up interview, please click the button below. This will take you to a separate, secure sign-up page that is not connected to your survey responses in any way:\"\n : \"Si vous souhaitez participer à une entrevue de suivi, veuillez cliquer sur le bouton ci-dessous. Cela vous mènera à une page d'inscription distincte et sécurisée qui n'est en aucun cas liée à vos réponses au sondage :\"}\n \n\n\n \n \n \n\n
\n )\n }\n\n\n\n return (\n <>\n \n {language == 'EN'\n ? 'Almost done! One more question!'\n : 'Presque terminé ! Une question de plus !'}\n \n\n \n {language == 'EN'\n ? \"As mentioned, we're conducting interviews to inform the Hockey Sport Environment Assessment.\"\n : \"Comme mentionné, nous menons des entretiens pour informer l'évaluation de l'environnement sportif du hockey.\"}\n \n\n \n {language == 'EN'\n ? 'Here are key points about the interviews:'\n : 'Voici les points clés sur les entretiens :'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Participation in the interview is entirely voluntary;'\n : 'La participation à l\\'entretien est entièrement volontaire ;'}
  • \n \n
  • {language == 'EN'\n ? 'The interview sign-up is completely separate from the survey you completed; and,'\n : 'L\\'inscription à l\\'entretien est complètement distincte du sondage que vous avez complété ; et,'}
  • \n\n
  • {language == 'EN'\n ? 'Your survey responses remain anonymous, regardless of whether you choose to participate in an interview.'\n : 'Vos réponses au sondage restent anonymes, que vous choisissiez ou non de participer à un entretien.'}
  • \n\n
\n
\n\n \n {language == 'EN'\n ? 'Would you be interested in participating in a phone interview in the future?'\n : 'Seriez-vous intéressé à participer à un entretien téléphonique à l\\'avenir ?'}\n \n\n \n\n \n \n\n \n\n \n\n \n {language == 'EN'\n ? 'You will find a link to a separate and secure interview registration form on the next page. Please click it if you are interested in being interviewed.'\n : 'Vous trouverez un lien vers un formulaire d\\'inscription à l\\'entretien séparé et sécurisé sur la page suivante. Veuillez cliquer dessus si vous êtes intéressé par un entretien.'}\n \n\n \n {language =='EN'\n ?

\n If you have any questions, please don't hesitate to reach out to the SEA Team:
\n Toll-free: 1-833-974-1281
\n Email: info@sea-hockey-ems.ca

\n For more information about the Sport Environment Assessment, visit www.sea-hockey-ems.ca

\n Important Notice: This survey is not intended for filing complaints or reports about maltreatment in sport. If you need to submit such a complaint or report, please visit the Office of the Sport Integrity Commissioner (OSIC) website.\n \n

:\n

\n Si vous avez des questions, n'hésitez pas à contacter l'équipe de l'ESA
\n Sans frais : 1-833-974-1281
\n Courriel : info@sea-hockey-ems.ca

\n Pour plus d'informations sur l'évaluation de l'environnement sportif, visitez www.sea-hockey-ems.ca

\n Avis important : Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous devez soumettre une telle plainte ou un tel rapport, veuillez visiter le site Web du Commissaire à l'intégrité dans le sport (BCIS) site Web.\n

\n }\n
\n\n \n \n\n \n\n\n \n\n )\n }\n\nexport default HockeyCompleted2\n\n\nconst QT = styled.div`\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 1rem;\n\n`\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:10px;\nline-height: 1.5;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\n\nconst Button = styled.button`\n background-color: #2d70e2;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 5px;\n cursor: pointer;\n font-size: 16px;\n font-weight: 600;\n margin-bottom:10px;\n transition: all 0.3s;\n margin-right:10px;\n margin-top:5px;\n &:hover {\n background-color: #1d9a7d;\n }\n`;","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\n\n\n\nconst HockeyCompleted2 = ({language}) =>{\n\n const [step,setStep] = useState(0)\n\n if(step ==2 || step==1){\n return (\n
\n \n {language == 'EN'\n ? 'Thank You for Your Participation!'\n : 'Merci'}\n \n\n \n {language == 'EN'\n ? \"Your responses have been successfully submitted. We appreciate your time and input.\"\n : 'Vous avez terminé le sondage avec succès.'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Your responses will be analyzed along with others to provide a comprehensive view of hockey in Canada;'\n : 'Vos réponses seront analysées avec d\\'autres pour fournir une vue d\\'ensemble du hockey au Canada;'}
  • \n\n
  • {language == 'EN'\n ? 'OSIC will publish overall results in Spring 2025.'\n : 'BCIS publiera les résultats globaux au printemps 2025.'}
  • \n\n\n
\n
\n\n \n {language == 'EN' ? 'Interview Opportunity' : 'Opportunité d\\'entrevue'}\n \n\n\n\n \n {language == 'EN' ?\n \"If you'd like to participate in a follow-up interview, please click the button below. This will take you to a separate, secure sign-up page that is not connected to your survey responses in any way:\"\n : \"Si vous souhaitez participer à une entrevue de suivi, veuillez cliquer sur le bouton ci-dessous. Cela vous mènera à une page d'inscription distincte et sécurisée qui n'est en aucun cas liée à vos réponses au sondage :\"}\n \n\n\n \n \n \n\n
\n )\n }\n\n\n\n return (\n <>\n \n {language == 'EN'\n ? 'Almost done! One more question!'\n : 'Presque terminé ! Une question de plus !'}\n \n\n \n {language == 'EN'\n ? \"As mentioned, we're conducting interviews to inform the Hockey Sport Environment Assessment.\"\n : \"Comme mentionné, nous menons des entretiens pour informer l'évaluation du milieu sportif du hockey.\"}\n \n\n \n {language == 'EN'\n ? 'Here are key points about the interviews:'\n : 'Voici les points clés sur les entretiens :'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Participation in the interview is entirely voluntary;'\n : 'La participation à l\\'entretien est entièrement volontaire ;'}
  • \n \n
  • {language == 'EN'\n ? 'The interview sign-up is completely separate from the survey you completed; and,'\n : 'L\\'inscription à l\\'entretien est complètement distincte du sondage que vous avez complété ; et,'}
  • \n\n
  • {language == 'EN'\n ? 'Your survey responses remain anonymous, regardless of whether you choose to participate in an interview.'\n : 'Vos réponses au sondage restent anonymes, que vous choisissiez ou non de participer à un entretien.'}
  • \n\n
\n
\n\n \n {language == 'EN'\n ? 'Would you be interested in participating in a phone interview in the future?'\n : 'Seriez-vous intéressé à participer à un entretien téléphonique à l\\'avenir ?'}\n \n\n \n\n \n \n\n \n\n \n\n \n {language == 'EN'\n ? 'You will find a link to a separate and secure interview registration form on the next page. Please click it if you are interested in being interviewed.'\n : 'Vous trouverez un lien vers un formulaire d\\'inscription à l\\'entretien séparé et sécurisé sur la page suivante. Veuillez cliquer dessus si vous êtes intéressé par un entretien.'}\n \n\n \n {language =='EN'\n ?

\n {/* If you have any questions, please don't hesitate to reach out to the SEA Team:
\n Toll-free: 1-833-974-1281
\n Email: info@sea-hockey-ems.ca

*/}\n For more information about the Sport Environment Assessment, visit www.sea-hockey-ems.ca

\n \n

\n Important Notice: This survey is not intended for filing complaints or reports about maltreatment in sport. If you have concerns of maltreatment against a specific individual, you may file a Complaint through Hockey Canada’s ITP complaints@sportcomplaints.ca or https://app.alias-solution.com/contact/fr/ls41 (for Quebec Complaints).\n

\n

\n If you are unsure about who to reach out to or want to speak in confidence, the Abuse-Free Sport Helpline operators can be reached by phone or text at 1-888-837-7678 or by email at info@abuse-free-sport.ca or info@sport-sans-abus.ca (en français).\n

\n
\n

:\n

\n {/* Si vous avez des questions, n'hésitez pas à contacter l'équipe de l'ESA
\n Sans frais : 1-833-974-1281
\n Courriel : info@sea-hockey-ems.ca

*/}\n Pour plus d'informations sur l'évaluation du milieu sportif, visitez www.sea-hockey-ems.ca

\n \n

\n Avis important : Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous avez des préoccupations concernant des mauvais traitements à l'égard d'une personne en particulier, vous pouvez déposer une plainte auprès de l'ITP de Hockey Canada à l'adresse complaints@sportcomplaints.ca ou https://app.alias-solution.com/contact/fr/ls41 (pour les plaintes au Québec).\n

\n

\n Si vous n'êtes pas sûr de qui contacter ou si vous souhaitez parler en toute confidentialité, les opérateurs de la ligne d'assistance Sport sans abus peuvent être contactés par téléphone ou par SMS au 1-888-837-7678 ou par courriel à info@abuse-free-sport.ca ou info@sport-sans-abus.ca (en français).\n

\n
\n

\n }\n
\n\n \n \n\n \n\n\n \n\n )\n }\n\nexport default HockeyCompleted2\n\n\nconst QT = styled.div`\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 1rem;\n\n`\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:10px;\nline-height: 1.5;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\n\nconst Button = styled.button`\n background-color: #2d70e2;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 5px;\n cursor: pointer;\n font-size: 16px;\n font-weight: 600;\n margin-bottom:10px;\n transition: all 0.3s;\n margin-right:10px;\n margin-top:5px;\n &:hover {\n background-color: #1d9a7d;\n }\n`;","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport format from \"date-fns/format\";\nimport { words } from '../translations';\nimport Hockey_v2 from \"./CustomCompleted/Hockey_v2\"\nimport Hockey_v3 from \"./CustomCompleted/Hockey_v3\"\n\n\nconst FR1 = \"Nous ne pouvons pas obtenir d'informations sur cette enquête\"\nconst FR2 = \"Cette enquête a été complétée\"\nconst FR3 = \"Cette enquête a été fermée et n'est plus accessible\"\nconst FR4 = \"Hmm! Il semble que cette enquête a expiré\"\n\nconst ES1 = \"No podemos obtener información sobre esta encuesta\"\nconst ES2 = \"Esta encuesta ha sido completada\"\nconst ES3 = \"Esta encuesta ha sido cerrada y ya no es accesible\"\nconst ES4 = \"Hmm! Parece que esta encuesta ha expirado\"\n\n\n\nconst EN5 = \"As part of the OSIC Sport Environment Assessment for Hockey Canada and Hockey in Canada, the SEA team is conducting 60-minute semi-structured interviews with hockey constituents, stakeholders, and youth from [insert date range]. This provides an opportunity for deeper context, diversity of views, and unique experiences to shape a culture of well-being in hockey.\"\nconst EN6 = \"The interviews are completely confidential, and are independent of Hockey Canada, Member Branches, and minor hockey associations meaning that they will never have access to any individual responses. \"\nconst EN7 = \"If you are interested in continuing the conversation further, please click the unique link below to enter your contact information:\"\n\n\nconst FR5 = \"Dans le cadre de l'évaluation de l'environnement sportif de l'OSIC pour Hockey Canada et le hockey au Canada, l'équipe de l'ESA mène des entretiens semi-structurés de 60 minutes avec des parties prenantes du hockey, des intervenants et des jeunes de [insérer la plage de dates]. Cela offre une occasion d'approfondir le contexte, la diversité des points de vue et les expériences uniques pour façonner une culture de bien-être dans le hockey.\"\nconst FR6 = \"Les entretiens sont entièrement confidentiels et sont indépendants de Hockey Canada, des branches membres et des associations de hockey mineur, ce qui signifie qu'ils n'auront jamais accès à aucune réponse individuelle.\"\nconst FR7 = \"Si vous souhaitez poursuivre la conversation, veuillez cliquer sur le lien unique ci-dessous pour saisir vos coordonnées de contact:\"\n\n\nconst Completed = ({ status, language, statusText, completedOn, surveyStatus,title,whitelabel }) => {\n const [endDate, setEndDate] = useState(false)\n const [org_info, setOrgInfo] = useState()\n const [step, setStep] = useState(0)\n const [customMessage, setCustomMessage] = useState('')\n\n\n\n useEffect(()=>{\n if(whitelabel?.endMessage){\n setCustomMessage(whitelabel.endMessage)\n }\n else{\n setCustomMessage(statusText ? statusText : words[\"survey_status1\"][language])\n }\n\n },[whitelabel])\n\n useEffect(() => {\n if (completedOn) {\n setEndDate(format(new Date(completedOn), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\"))\n }\n }, [completedOn])\n\n useEffect(() => {\n if (whitelabel) {\n setOrgInfo(whitelabel)\n }\n }, [whitelabel])\n\n useEffect(()=>{\n if(language == 'FR'){\n setCustomMessage(FR1)\n }\n \n if(language == 'ES'){\n setCustomMessage(ES1)\n }\n \n if (language === 'FR' && status === 2) {\n setCustomMessage(FR2)\n }\n \n if (language== 'FR' && status === 3) {\n setCustomMessage(FR2)\n }\n \n if (language === 'ES' && status === 2) {\n setCustomMessage(ES2)\n }\n \n if (language == 'ES' && status === 3) {\n setCustomMessage('Esta encuesta ha sido completada')\n }\n \n \n \n if (status > 4 && status < 11) {\n setCustomMessage('This survey has been closed and is no longer accessible')\n if (language === 'FR') {\n setCustomMessage(FR3)\n }\n if (language === 'ES') {\n setCustomMessage(ES3)\n }\n }\n if (status === 100) {\n setCustomMessage('Hmm! It looks like this survey has expired')\n if (language === 'FR') {\n setCustomMessage(FR4)\n }\n if (language === 'ES') {\n setCustomMessage(ES4)\n }\n }\n },[language])\n\n \n\n\n const getTitle = () =>{\n if(language === 'FR'){\n return 'Indice de Culture'\n }\n if(language == 'ES'){\n return 'Índice de Cultura'\n }\n return title? title:'Culture Index'\n }\n\n\n\n const getCustomMessage = (org_data) => {\n \n\n\n if (org_data?.public_intro == \"hockey\"){\n\n if(step ==2){\n return (\n
\n \n {language == 'EN'\n ? 'Thank You for Your Participation!'\n : 'Merci'}\n \n\n \n {language == 'EN'\n ? \"Your responses have been successfully submitted. We appreciate your time and input.\"\n : 'Vous avez terminé le sondage avec succès.'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Your responses will be analyzed along with others to provide a comprehensive view of hockey in Canada and Hockey Canada’s organizational culture;'\n : 'Vos réponses seront analysées avec d\\'autres pour fournir une vue d\\'ensemble du hockey au Canada et de la culture organisationnelle de Hockey Canada ;'}
  • \n\n
  • {language == 'EN'\n ? 'OSIC will publish overall results in Spring 2025.'\n : 'OSIC publiera les résultats globaux au printemps 2025.'}
  • \n\n\n
\n
\n\n \n {language == 'EN' ? 'Interview Opportunity' : 'Opportunité d\\'entrevue'}\n \n\n\n \n {language == 'EN' ?\n \"If you'd like to participate in a follow-up interview, please click the button below. This will take you to a separate, secure sign-up page that is not connected to your survey responses in any way:\"\n : \"Si vous souhaitez participer à une entrevue de suivi, veuillez cliquer sur le bouton ci-dessous. Cela vous mènera à une page d'inscription distincte et sécurisée qui n'est en aucun cas liée à vos réponses au sondage :\"}\n \n\n\n \n \n \n\n
\n )\n }\n\n\n\n return (\n <>\n \n {language == 'EN'\n ? 'Almost done! One more question!'\n : 'Presque terminé ! Une question de plus !'}\n \n\n \n {language == 'EN'\n ? \"As mentioned, we're conducting interviews to inform the Hockey Sport Environment Assessment.\"\n : \"Comme mentionné, nous menons des entretiens pour informer l'évaluation de l'environnement sportif du hockey.\"}\n \n\n \n {language == 'EN'\n ? 'Here are key points about the interviews:'\n : 'Voici les points clés sur les entretiens :'}\n \n\n \n
    \n
  • {language == 'EN'\n ? 'Participation in the interview is entirely voluntary;'\n : 'La participation à l\\'entretien est entièrement volontaire ;'}
  • \n \n
  • {language == 'EN'\n ? 'The interview sign-up is completely separate from the survey you completed; and,'\n : 'L\\'inscription à l\\'entretien est complètement distincte du sondage que vous avez complété ; et,'}
  • \n\n
  • {language == 'EN'\n ? 'Your survey responses remain anonymous, regardless of whether you choose to participate in an interview.'\n : 'Vos réponses au sondage restent anonymes, que vous choisissiez ou non de participer à un entretien.'}
  • \n\n
\n
\n\n \n {language == 'EN'\n ? 'Would you be interested in participating in a phone interview in the future?'\n : 'Seriez-vous intéressé à participer à un entretien téléphonique à l\\'avenir ?'}\n \n\n \n\n \n \n\n \n\n \n\n \n {language == 'EN'\n ? 'You will find a link to a separate and secure interview registration form on the next page. Please click it if you are interested in being interviewed.'\n : 'Vous trouverez un lien vers un formulaire d\\'inscription à l\\'entretien séparé et sécurisé sur la page suivante. Veuillez cliquer dessus si vous êtes intéressé par un entretien.'}\n \n\n \n {language =='EN'\n ?

\n If you have any questions, please don't hesitate to reach out to the SEA Team:
\n Toll-free: 1-833-974-1281
\n Email: info@sea-hockey-ems.ca

\n For more information about the Sport Environment Assessment, visit www.sea-hockey-ems.ca

\n Important Notice: This survey is not intended for filing complaints or reports about maltreatment in sport. If you need to submit such a complaint or report, please visit the Office of the Sport Integrity Commissioner (OSIC) website.\n \n

:\n

\n Si vous avez des questions, n'hésitez pas à contacter l'équipe de l'ESA
\n Sans frais : 1-833-974-1281
\n Courriel : info@sea-hockey-ems.ca

\n Pour plus d'informations sur l'évaluation de l'environnement sportif, visitez www.sea-hockey-ems.ca

\n Avis important : Ce sondage n'est pas destiné à déposer des plaintes ou des rapports sur des mauvais traitements dans le sport. Si vous devez soumettre une telle plainte ou un tel rapport, veuillez visiter le site Web du Commissaire à l'intégrité dans le sport (OSIC) site Web.\n

\n }\n
\n\n \n\n )\n }\n\n if (org_data?.public_intro == \"hockey_members\"){\n return \n\n }\n\n if(org_data?.public_intro == \"hockey_participants\"){\n return \n }\n\n return (\n <>\n 🎉 \n Thank you for completing the {getTitle()}\n \n {customMessage}\n {endDate ? ` ${format(\n new Date(endDate.toLocaleString()),\n \"EEEE, MMM do h:mm a\"\n )}.` : '.'}\n\n\n \n \n )\n\n\n }\n\n return (\n \n {getCustomMessage(org_info)}\n \n )\n}\n\n\nexport default Completed;\n\n\nconst ImportantNotice = ({ children }) => (\n

\n {children}\n

\n);\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:100%;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n padding-bottom:40px;\n\n\n li{\n margin-bottom:10px;\n }\n\n @media(max-width:768px){\n padding:10px;\n }\n\n @media(max-height:700px){\n padding-top:40px;\n }\n`;\n\nconst QT = styled.div`\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 1rem;\n\n`\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:10px;\nline-height: 1.5;\n\np{\n white-space: pre-line;\n}\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\n\nconst Button = styled.button`\n background-color: #2d70e2;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 5px;\n cursor: pointer;\n font-size: 16px;\n font-weight: 600;\n margin-bottom:10px;\n transition: all 0.3s;\n margin-right:10px;\n margin-top:5px;\n &:hover {\n background-color: #1d9a7d;\n }\n`;","import React, { useState} from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/gb.png'\nimport FR from 'assets/images/fr.png'\nimport ES from 'assets/images/ES.png'\nimport { useNavigate } from 'react-router-dom';\n\nconst Language = ({language,setLanguage,languages}) =>{\n // const [language,setLanguage] = useState('EN')\n const navigate = useNavigate();\n\n\n const [open,setOpen] = useState(false)\n\n const getPic = () =>{\n if(language === 'EN'){\n return Pic\n }else if(language === 'FR'){\n return FR\n }else if(language === 'ES'){\n return ES\n }\n }\n\n const SelectLanguage = (lang) =>{\n setOpen(!open)\n setLanguage(lang)\n\n if(lang === 'FR'){\n navigate(`?language=1`, { replace: true });\n }\n if(lang === 'EN'){\n navigate(`?language=0`, { replace: true });\n }\n if(lang === 'ES'){\n navigate(`?language=2`, { replace: true });\n }\n }\n\n return (\n setOpen(!open)}>\n \n \"Image\n {language}\n\n \n \n \n {languages?.includes('ES') && }\n \n \n \n \n )\n}\n\n\nexport default Language\n\n\nconst Container = styled.div`\n position:absolute;\n top:15px;\n right:30px;\n cursor:pointer;\n z-index:10000;\n`\n\nconst InnerContainer = styled.div`\n position:relative;\n display:flex;\n align-items:center;\n`\n\nconst Image = styled.img`\n width:24px;\n margin-right:8px;\n`\n\nconst Text = styled.div`\nfont-weight: 600;\nfont-size: 16px;\ncolor: #2A3039;\n`\nconst Options = styled.div`\n display:${props=>props.open?'flex':'none'};\n flex-direction:column;\n background:white;\n border-radius:8px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n position:absolute;\n top:40px;\n right:0px;\n\n\n`\nconst Option = styled.div`\n padding:8px 16px;\n font-size:16px;\n color:#2A3039;\n cursor:pointer;\n &:hover{\n background:#EBF1FD;\n }\n`","import { commentTypeQuestion } from \"constants/questionTypes\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { words } from \"../translations\";\n\nconst Comments = ({ question, saveUpdatedAnswers, currentQuestionDet, language }) => {\n // console.log(\"question\", question)\n\n const textareaRef = useRef();\n const [feedbackText, setFeedbackText] = useState('');\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight - 16}px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = 'inherit';\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n const ResponseObj = {\n ques_sort_order: currentQuestionDet?.id,\n survey_q_id: currentQuestionDet.id,\n feedback: event.target.value,\n question_type: currentQuestionDet?.question_type,\n clicked: true,\n }\n\n saveUpdatedAnswers(currentQuestionDet?.id, ResponseObj, commentTypeQuestion)\n };\n\n useEffect(() => {\n if (currentQuestionDet?.response) {\n setFeedbackText(currentQuestionDet?.response?.feedback)\n } else {\n setFeedbackText('')\n }\n }, [currentQuestionDet])\n\n\n return (\n \n {words['Feedback'][language]}\n \n {language === 'FR'? question?.fr : question?.question}\n \n\n \n \n\n )\n\n}\n\nexport default Comments\n\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n width:100%;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:34px;\nline-height:1.6;\n`\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom:40px;\n`\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%; \n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2A3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: 'Raleway', sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2D70E2;\n outline: 0;\n }\n`;","\nimport React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport {Icon} from 'semantic-ui-react'\nimport Question from './questionTypes/Question';\nimport MultipleChoice from './questionTypes/MultipleChoice';\nimport ProgressBar from './Components/ProgressBar';\nimport CustomButton from './Components/Button';\nimport Feedback from './questionTypes/Feedback';\nimport Categories from './questionTypes/Categories';\nimport Introduction from './Introduction';\nimport './index.css'\nimport BulletProgressBar from './IntroScreens/BulletProgressBar';\nimport { SlideDirection } from 'constants/animation';\nimport FollowUp from './chatGpt/FollowUp';\nimport Submit from './questionTypes/Submit';\nimport IntroSection from './IntroSection';\nimport Values from './questionTypes/Values';\nimport Completed from './questionTypes/Completed'\nimport Language from './Language'\nimport Comments from './questionTypes/Comment'\n// ... existing components ...\nconst IntroductionProgress = styled(BulletProgressBar)`\n\n`;\n\n\n\nconst questions = [\n {\n id: 1,\n type: 'introduction',\n intro_id:1,\n total:4\n },\n {\n id: 2,\n type: 'introduction',\n intro_id:2,\n total:4\n },\n {\n id: 3,\n type: 'introduction',\n intro_id:3,\n total:4\n },\n {\n id: 4,\n type: 'introduction',\n intro_id:4,\n total:4,\n buttonType:'I agree'\n },\n {\n id: 5,\n type: 'categories',\n question: 'Please choose a category:',\n description:'Gender refers to current gender which may be different from sex assigned at birth and may be different from what is indicated on legal documents',\n categories: [\n { id: 'cat1', text: 'Category 1' },\n { id: 'cat2', text: 'Category 2' },\n ],\n },\n {\n id: 6,\n type: 'categories',\n question: 'Thank you for answering these preliminary questions.',\n description:'Now we are going to ask you some questions about your experience with Resulta - Testing resulta. Your experience matters.',\n },\n {\n id: 7,\n type: 'question',\n question: 'On a scale of 1-10, how would you rate your experience?',\n },\n {\n id: 8,\n text: 'Question 1',\n type: 'multipleChoice',\n choices: [\n { id: '1a', text: 'Disagree strongly' },\n { id: '1b', text: 'Disagree moderately' },\n { id: '1c', text: 'Disagree a little' },\n { id: '1d', text: 'Neither agree nor disagree' },\n { id: '1e', text: 'Agree a little' },\n { id: '1f', text: 'Agree moderately' },\n { id: '1g', text: 'Agree strongly' },\n ],\n },\n // {\n // id: 9,\n // type: 'feedback',\n // direction:'min',\n // question: 'It’s safe to take risks and be bold when solving problems here.',\n // score:1,\n // },\n // {\n // id: 10,\n // type: 'follow_up',\n // direction:'min',\n // response: 'I do feel safe to take risks and be bold when solving problems here.',\n // question: 'It’s safe to take risks and be bold when solving problems here.',\n // },\n // {\n // id: 11,\n // type: 'comment',\n // question: 'It’s safe to take risks and be bold when solving problems here.',\n // },\n {\n id: 12,\n type: 'submit',\n buttonType:'Submit',\n },\n {\n id: 13,\n type: 'introSection',\n emoji:'📝',\n title: 'Getting to know you',\n text:['In an effort to better contextualize the feedback we have received from you, we’d like to ask you a few questions about your personality. For the following 10 questions please rate the extent to which you agree or disagree with the statement.','Your data is always kept private, and no one can access your individual responses to these questions.'],\n buttonType:'Begin',\n },\n {\n id: 14,\n type: 'values',\n statement: 'Using only one word, finish the sentence with whatever comes to your mind:',\n question:'I would describe this organization as a culture of...'\n },\n {\n id: 15,\n type: 'completed',\n },\n // Add slider, multipleChoice, and feedback questions as needed\n ];\n\n\n \n\n const Survey = () => {\n const [currentQuestion, setCurrentQuestion] = useState(0);\n const [direction, setDirection] = useState('');\n const [clicked,setClicked] = useState(0)\n const [totalIntro, setTotalIntro] = useState(questions.filter(f=>f.type=='introduction').length);\n const [isVisible, setIsVisible] = useState(true);\n const [addResponse,setResponse] = useState(0)\n const [surveyFinished,setSurveyFinished] = useState(false)\n\n const isIntroductionActive = () => {\n return questions[currentQuestion].type === 'introduction';\n };\n\n const handleNext = () => {\n if (currentQuestion < questions.length - 1 ) {\n setDirection('next'); \n setClicked(clicked + 1)\n if(currentQuestion ==questions.length-2){\n setSurveyFinished(true)\n }\n }\n };\n\n useEffect(()=>{\n if(direction === 'next'){\n setCurrentQuestion(currentQuestion + 1);\n }\n if(direction === 'back'){\n setCurrentQuestion(currentQuestion - 1);\n }\n },[clicked])\n \n const handleBack = () => {\n if (currentQuestion > 0) {\n setDirection('back');\n setClicked(clicked -1)\n \n }\n };\n\n const onEntered = () => {\n setIsVisible(true);\n };\n \n const onExited = () => {\n setIsVisible(false);\n };\n\n const renderModule = (question) => {\n switch (question.type) {\n case 'introduction':\n return ;\n case 'categories':\n return ;\n case 'question':\n return ;\n case 'multipleChoice':\n return ;\n case 'feedback':\n return ;\n case 'follow_up':\n return ;\n case 'introSection':\n return ;\n case 'comment':\n return ;\n case 'values':\n return ;\n case 'completed':\n return ;\n case 'submit':\n return ;\n default:\n return null;\n }\n };\n\n console.log(\"currentQuestion\", currentQuestion)\n const renderButtons = (question) =>{\n if(surveyFinished){\n return \n }\n if(isIntroductionActive()){\n return (\n <>\n \n {question?.buttonType?question?.buttonType:'Next'}\n )\n }\n\n // if(question?.buttonType){\n\n // return(\n // <>\n // \n // \n // \n // ) \n // }\n\n\n return (\n <>\n Back oNE\n Next TWO\n \n )\n }\n \n\n return (\n \n {!isIntroductionActive() && !surveyFinished && }\n {isIntroductionActive() && currentQuestion!=0 && }\n \n \n \n {renderModule(questions[currentQuestion])} \n \n \n \n \n\n\n\n \n {renderButtons(questions[currentQuestion])} \n \n\n \n );\n };\n \n export default Survey;\n \n\n // ...\nconst SurveyContainer = styled.div`\nwidth: 100%;\nmin-height: 100vh;\ndisplay: flex;\nflex-direction: column;\nbackground-color: #f8f9fa;\nposition:relative;\nfont-family: 'Raleway', sans-serif;\noverflow-x:hidden;\n`;\n\nconst SurveyContent = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n// ...\n\nconst ButtonContainer = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n padding: 1rem;\n background-color: #f8f8f8;\n z-index: 2;\n`;\n\n\n// ...\n\n\nconst ModuleContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding:20px;\n`;\n\nconst Back = styled.div`\n position:absolute;\n left:28px;\n top:20px;\n cursor: pointer;\n font-size:20px;\n width:50px;\n height:50px;\n z-index:2;\n color:#2A3039;\n`","import styled from 'styled-components';\nimport React, { useState, useEffect } from 'react';\nimport { questionTypeQuestion, modularOutcomeTypeQuestion } from 'constants/questionTypes';\n\n// ... styled-components code ...\n\nconst Slider = ({ id, save, selectedResponse,scale }) => {\n const [sliderValue, setSliderValue] = useState(selectedResponse?selectedResponse:5);\n const [isDragging, setIsDragging] = useState(false);\n const [clickedVal, setClickedVal] = useState(false)\n const [isClicking,setIsClicking] = useState(false)\n\n console.log(selectedResponse)\n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n save(newValue)\n };\n\n const handleMouseUp = () => {\n\n setIsDragging(false);\n setSliderValue(Math.round(sliderValue));\n save(Math.round(sliderValue))\n };\n\n const handleTouchMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.touches[0].clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n save(newValue)\n };\n\n const handleTouchEnd = () => {\n let newValue = Math.round(sliderValue)\n setIsDragging(false);\n setSliderValue(newValue);\n save(newValue)\n \n };\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleTouchMove);\n window.addEventListener('touchend', handleTouchEnd);\n\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('touchend', handleTouchEnd);\n \n };\n\n \n }, [isDragging, sliderValue]);\n\n\n const handleClick = (e) => {\n setIsClicking(true)\n const track = document.getElementById('slider-track');\n // const track = document.getElementById(id);\n const rect = track.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const newValue = Math.round((x / rect.width) * 10);\n setSliderValue(newValue);\n save(newValue);\n setClickedVal(true)\n };\n\n // Add a function to interpolate between two colors\n const lerpColor = (color1, color2, t) => {\n const r = color1.r + t * (color2.r - color1.r);\n const g = color1.g + t * (color2.g - color1.g);\n const b = color1.b + t * (color2.b - color1.b);\n return { r, g, b };\n };\n\n // Add a function to calculate the thumb color\n const getThumbColor = () => {\n const color1 = { r: 248, g: 168, b: 176 };\n const color2 = { r: 254, g: 205, b: 141 };\n const color3 = { r: 149, g: 230, b: 210 };\n const t = selectedResponse / 10;\n\n if (t < 0.5232) {\n const newT = t / 0.5232;\n const interpolatedColor = lerpColor(color1, color2, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n } else {\n const newT = (t - 0.5232) / (1 - 0.5232);\n const interpolatedColor = lerpColor(color2, color3, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n }\n };\n\n const handleMouseDown = () => {\n setIsDragging(true);\n };\n\n const handleTouchStart = () => {\n setIsDragging(true);\n };\n\n const thumbPosition = {\n left: `calc(${(selectedResponse / 10) * 100}% - 10px )`,\n };\n\n const dotCount = 11;\n const dots = Array.from({ length: dotCount }, (_, index) => (\n \n ));\n\n return (\n \n\n \n \n {dots}\n \n \n {Math.round(selectedResponse)}\n \n \n \n \n \n\n \n {scale[0].text}\n Neutral\n {scale[1].text}\n \n \n );\n};\n\nexport default Slider;\n\n \nconst Container = styled.div`\n width:100%;\n padding-top:70px;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n`\n\nconst ScaleLabel = styled.span`\n font-size: 14px;\n`;\n\nconst SliderContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst ScaleLabelsContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 8px;\n`;\n\nconst TrackWrapper = styled.div`\n position: relative;\n height: calc(10px + 10px); // 5px above and below the track area\n cursor: pointer;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\n\nconst Track = styled.div`\n width: 100%;\n height: 6px;\n background: linear-gradient(\n to right,\n #F8A8B0 0%,\n #FECD8D 52.32%,\n #95E6D2 100%\n );\n position: relative;\n border-radius: 5px;\n cursor: pointer;\n`;\n\nconst Thumb = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #000;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n user-select: none;\n border: 4px solid white;\n box-shadow: 0px 8px 20px rgba(63, 134, 254, 0.08);\n`;\n\n\nconst Tooltip = styled.div`\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: #666D79;\n border-radius: 8px;\n width: 33px;\n height: 29px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => props.clicked? '#FFFFFF': '#D6DBDF'};\n font-size: 14px;\n font-weight: ${(props) => props.clicked? '700': ' 400'};\n margin-bottom: 8px; // 8px above the track\n`;\n\n\nconst Triangle = styled.div`\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 4px 0;\n border-color: #666D79 transparent transparent;\n`;\n\n\n\nconst DotsContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 1px;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Dot = styled.div`\n width: 4px;\n height: 4px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n transform: translateY(-50%);\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Slider from './Slider';\n\nconst Question = ({ question, id, setSelectedResponse,selectedResponse,scale}) => {\n\n return (\n {question}\n setSelectedResponse(r)} selectedResponse={selectedResponse!==null?selectedResponse:5} scale={scale}/>\n )\n};\nexport default Question;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n max-width:600px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst Title = styled.div`\n color: #2D70E2;\n text-transform: uppercase;\n font-size:14px;\n font-weight:600;\n margin-bottom: 40px;\n`\n\nconst Qualifier = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n`\n\nconst QuestionText = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n line-height: 1.5;\n\n @media(max-width:768px){\n font-size: 18px;\n }\n`","import React,{useState,useEffect} from 'react';\nimport styled, { keyframes, css } from 'styled-components';\nimport '../AuditV2/index.css'\n\n\nconst MultipleChoice = ({ currentQuestionDet, choices,question,isVisible,setSelectedResponse,selectedResponse }) => {\n\n const [visibleChoices, setVisibleChoices] = useState([]);\n\n\n const handleSelection = (choice) => {\n setSelectedResponse(choice);\n };\n\n useEffect(() => {\n let timeoutIds = [];\n choices.map((choice, index) => {\n const timeoutId = setTimeout(() => {\n setVisibleChoices((prevVisibleChoices) => [...prevVisibleChoices, choice]);\n }, index * 20); // Adjust the delay as needed (300ms here)\n timeoutIds.push(timeoutId);\n });\n\n return () => {\n timeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));\n };\n }, [choices]);\n\n\n return (\n \n {question}\n \n {visibleChoices.map((choice, index) => (\n \n \n handleSelection(index)}\n />\n \n {choice.text}\n \n \n \n ))}\n \n \n );\n};\n\nexport default MultipleChoice;\n\n\nconst ChoiceContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:calc(100% - 40px);\n max-width:600px;\n`;\n\nconst Choice = styled.div`\nmargin-left:20px;\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom: 40px;\n`\n\nconst fadeInMoveDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst StyledChoice = styled.div`\n transform: translateY(-15px);\n opacity:0;\n animation-name: ${fadeInMoveDown};\n animation-duration: 300ms;\n animation-fill-mode: forwards;\n ${({ delay }) =>\n delay &&\n css`\n animation-delay: ${delay}ms;\n `}\n`;\nconst Question = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n line-height: 1.5;\n\n @media(max-width:768px){\n font-size: 18px;\n }\n`\n\nconst ListContainer = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n width:100%;\n`;\n\nconst ListItem = styled.label`\n display: block;\n position: relative;\n padding: 16px;\n padding-left: 40px;\n cursor: pointer;\n user-select: none;\n width:100%;\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : 'transparent')};\n color: ${({ isSelected }) => (isSelected ? '#2D70E2' : 'inherit')};\n \n &:hover {\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : '#f0f0f0')};\n }\n`;\n\nconst RadioInput = styled.input.attrs({ type: 'radio' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:checked ~ .checkmark {\n background-color: #EBF1FD;\n border-color: #2D70E2;\n }\n\n &:checked ~ .checkmark:after {\n display: block;\n }\n`;\n\nconst Checkmark = styled.span`\n position: absolute;\n top: 50%;\n left: 16px;\n transform: translateY(-50%);\n height: 16px;\n width: 16px;\n background-color: #fff;\n border: 2px solid #ccc;\n border-radius: 50%;\n\n &:after {\n content: '';\n position: absolute;\n display: none;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #2D70E2;\n transform: translate(-50%, -50%);\n }\n`;\n","\nexport const questions = [\n {\n id: 1,\n type: 'introSection',\n emoji:'🧭',\n title: \"Innerlogic's readiness & ROI calculator\",\n subtitle:\"Ready to go from insights to action instantly with innerlogic’s AI culture copilot?\",\n text:['Powered by AI and a world-class knowledge base, innerlogic instantly transforms culture KPI’s and feedback into rich recommendations unique to your organization, teams, and leaders.'],\n buttonType:'Begin',\n intro_id:1,\n total:1,\n buttonsVisible: true\n },\n {\n id: 2,\n question: 'How much of a priority is it for your organization to scale a healthy, high-performing culture?',\n \"type\": \"question\",\n \"choices\": [\n { \"id\": '7a', \"text\": 'Very low' },\n { \"id\": '7b', \"text\": 'Very high' }\n ],\n buttonsVisible: true\n },\n {\n id: 3,\n question: 'How much do you value the unique experiences and perspectives of your people when it comes to building / growing your culture?',\n \"type\": \"question\",\n \"choices\": [\n { \"id\": '7a', \"text\": 'Not at all' },\n { \"id\": '7b', \"text\": 'Very much' }\n ],\n buttonsVisible: true\n },\n {\n id: 4,\n \"text\": \"What is your current process for gathering data on the unique experiences and perspectives within your culture? (select all that apply)\",\n \"type\": \"multiSelect\",\n \"choices\": [\n { \"id\": '2a', \"text\": 'No formal process',value:10 },\n { \"id\": '2b', \"text\": 'Informal conversations',value:10 },\n { \"id\": '2c', \"text\": 'Structured Interviews/check-ins',value:10 },\n { \"id\": '2d', \"text\": 'Static surveys or pulses (standardized questions for everyone)',value:10 },\n { \"id\": '2e', \"text\": 'Conversational AI (dynamic questions/prompts unique to each individual)',value:0 },\n ],\n buttonsVisible: true\n },\n {\n id: 5,\n question: 'How important is it for your organization to enact timely change regarding culture gaps or growth areas?',\n \"type\": \"question\",\n \"choices\": [\n { \"id\": '7a', \"text\": 'Not at all' },\n { \"id\": '7b', \"text\": 'Very much' }\n ],\n buttonsVisible: true\n },\n {\n id: 6,\n \"text\": \"How long does it typically take for your organization to implement effective, evidence-based changes using culture feedback?\",\n \"type\": \"multipleChoice\",\n \"choices\": [\n { \"id\": '5b', \"text\": \"About a week\" },\n { \"id\": '5c', \"text\": \"About a month\" },\n { \"id\": '5d', \"text\": \"2-3 months\" },\n { \"id\": '5e', \"text\": \"More than 3 months\" },\n { \"id\": '5f', \"text\": \"Never happens\" }\n ],\n buttonsVisible: true\n },\n {\n id: 7,\n question: 'How valuable would it be for the leaders in your organization to have instant access to resources and solutions matched to them based on their people data?',\n \"type\": \"question\",\n \"choices\": [\n { \"id\": '7a', \"text\": 'Not at all' },\n { \"id\": '7b', \"text\": 'Very valuable' }\n ],\n buttonsVisible: true\n },\n {\n id: 8,\n \"text\": \"How much access do the leaders in your organization currently have to curated resources and solutions based on their people data?\",\n \"type\": \"multipleChoice\",\n \"choices\": [\n { \"id\": '8a', \"text\": \"None\" },\n { \"id\": '8b', \"text\": \"A few times a year\" },\n { \"id\": '8c', \"text\": \"About half the year\" },\n { \"id\": '8d', \"text\": \"Most of the time\" },\n { \"id\": '8e', \"text\": \"Unlimited / full time access\" }\n ],\n buttonsVisible: true\n },\n {\n id: 9,\n type: 'completed',\n buttonsVisible: true\n },\n {\n id: 10,\n type: 'submit',\n buttonsVisible: false\n },\n // Add slider, multipleChoice, and feedback questions as needed\n ];\n","import React from 'react';\nimport styled from 'styled-components';\n\n\n\n\nconst Submit = ({email}) =>{\n\n\n return (\n\n \n 👏 \n Thank you for responding to the innerlogic readiness & roi calculator.\n \n Please check your email {email} for your in depth roi report. \n \n \n\n )\n}\n\n\nexport default Submit;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 20px;\n font-weight: 600;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","import React, { useState,useRef,useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport Logo from 'assets/images/Logo blue.png';\n\n\nconst IntroSection = ({data}) =>{\n\n\n return (\n\n \n \n {data.title}\n {data.subtitle}\n {data.text.map((item, i)=>{\n return {item}\n })}\n \n \n\n )\n}\n\n\nexport default IntroSection;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst QuestionText = styled.h2`\n margin-bottom: 1rem;\n color:#2A3039;\n font-size: 24px;\n font-weight: 700;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\nfont-style: italic;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\nconst SubTitle = styled.div`\n font-size:16px;\n font-weight:600;\n margin-bottom:24px;\n margin-top:24px;\n`\n\nconst IMG = styled.img`\n width:150px;\n margin-bottom:10px;\n`","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\n\nfunction ErrorList({ errors }) {\n\n const [errorKeys, setErrorKeys] = useState([])\n\n useEffect(() => {\n setErrorKeys(false)\n if (errors) {\n setErrorKeys(Object.keys(errors))\n }\n }, [errors])\n\n if (errors?.length === 0) {\n return null\n }\n\n return (\n \n {errorKeys && errorKeys.map((err, i) => {\n return \n {err}{\": \"}{errors?.[err]}\n \n })}\n\n \n )\n}\n\n\nexport default ErrorList;\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n font-family: 'Raleway', sans-serif;\n margin-top:20px;\n\n`;\n\nconst QuestionText = styled.h2`\n font-family: 'Raleway';\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n margin-bottom:26px;\n line-height: 150%;\n color: red;\n`;\n\nconst RowContainer = styled.div`\n display: flex;\n flex-flow: row wrap;\n\n`\nconst Description = styled.div`\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:26px;\nline-height: 150%;\ncolor: red;\n`\nconst Emoji = styled.div`\n font-size: 48px;\n margin-bottom:24px;\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n","import React from 'react';\nimport styled from 'styled-components';\n\n\nconst Circle = styled.div`\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background-color: #3498db;\n position: relative;\n opacity: 0.5;\n position:relative;\n`;\n\nconst PieSlice = styled.div`\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n position: absolute;\n top: 0;\n left: 0;\n clip-path: polygon(50% 50%, 100% 50%, 100% 0, 50% 0);\n transform-origin: 50% 50%;\n transform: rotate(135deg);\n`;\n\n\nconst InnerCircle = styled.div`\n width: 80%;\n height: 80%;\n border-radius: 50%;\n background-color:white;\n position: absolute;\n top: 10%;\n left: 10%;\n`\n\nconst Border = styled.div`\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n border: 2px solid #000;\n border-radius: 50%;\n clip-path: polygon(50% 50%, 100% 50%, 100% 0, 0 0, 0 100%);\n transform-origin: 50% 50%;\n transform: rotate(calc(135deg - 40% * 360deg));\n`;\n\n\nfunction hexToRGBA(hex, alpha = 1) {\n // Ensure the hex color code starts with a '#'\n if (hex.charAt(0) !== \"#\") {\n throw new Error(\"Invalid hex color code format\");\n }\n\n // Remove the '#' from the hex color code\n const cleanHex = hex.slice(1);\n\n // Check if the hex color code has a valid length (either 3 or 6 characters)\n if (cleanHex.length !== 3 && cleanHex.length !== 6) {\n throw new Error(\"Invalid hex color code length\");\n }\n\n // Expand the 3-character hex color code to a 6-character one if necessary\n const finalHex = cleanHex.length === 3\n ? cleanHex.split(\"\").map(char => char + char).join(\"\")\n : cleanHex;\n\n // Extract the red, green, and blue values from the hex color code\n const r = parseInt(finalHex.slice(0, 2), 16);\n const g = parseInt(finalHex.slice(2, 4), 16);\n const b = parseInt(finalHex.slice(4, 6), 16);\n\n // Return the RGBA color value as a string\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\n\nconst Dial = ({ strokeWidth=3, borderPercentage=25,borderColor='#2D70E2',text }) => {\n const radius = 50;\n const innerRadius = radius * 0.8;\n const borderCircleRadius = radius + strokeWidth;\n const circleCircumference = 2 * Math.PI * (borderCircleRadius);\n\n const borderLength = ((borderPercentage / 100) * 270) * ((circleCircumference-20) / 360);\n\n const getCirclePosition = (angle, radius) => {\n const x = 50 + radius * Math.cos((angle - 90) * (Math.PI / 180));\n const y = 50 + radius * Math.sin((angle - 90) * (Math.PI / 180));\n return { x, y };\n };\n const circleAngle = 225 + (((borderPercentage+2) / 100) * 266);\n const circlePosition = getCirclePosition(circleAngle, borderCircleRadius - strokeWidth / 2);\n\n return (\n \n \n \n \n \n \n \n {text}\n \n \n );\n};\n\n\n \n export default Dial;\n","import React, {useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport ErrorList from './ErrorList';\nimport { ValidateEmail } from \"utilities/Validate\";\nimport Logo from 'assets/images/Logo blue.png';\nimport Smiley from 'assets/images/top-view-smiley-face-growth-arrow 1.png';\nimport Dial from './Dial';\n\nconst readiness_questions = [2,3,5,7]\nconst roi_questions = [4,6,8]\n\nconst Q6 ={0:0,1:4,2:6,3:8,4:10}\nconst Q8 ={0:10,1:8,2:6,3:4,4:0}\n\nconst ROI = ({data, showerrors, email, setEmail, setShowErrors, handleSubmit}) =>{\n\n const calculate_readiness =() =>{\n let total = 0;\n let count = 0;\n Object.keys(data).forEach((item)=>{\n\n if(readiness_questions.includes(Number(item))){\n total += data[item]\n count++\n }\n })\n return total/count\n }\n\n const calculate_roi =() =>{\n let total = 0;\n let count = 0;\n Object.keys(data).forEach((item,i)=>{\n if(roi_questions.includes(Number(item))){\n if(i==2){\n if(!data[item].includes(4)){\n total+=10\n }\n }\n else if(i==4){\n total+= Q6[data[item]]\n }\n else{\n total += Q8[data[item]]\n }\n count++\n }\n })\n return total/count\n }\n\n const [pristine, setPristine] = useState(true);\n const [readiness, setReadiness] = useState(calculate_readiness());\n const [roi, setRoi] = useState(calculate_roi());\n\n \n\n const handleInputChange = (event) => {\n const { value } = event.target;\n setEmail(value);\n setShowErrors(false)\n };\n\n const handleKeyDown = (event) => {\n if (event.keyCode === 13) {\n // Enter key pressed\n FormSubmit();\n }\n };\n\n function FormSubmit() {\n if (showerrors?.errors > 0) {\n setPristine(false);\n return;\n }\n handleSubmit();\n }\n\n useEffect(() => {\n const ErrorList = [];\n // let totalErrors = 0\n \n if (email?.length === 0) {\n ErrorList[\"email\"] = [\"Please enter an email\"]\n // totalErrors += 1\n } else {\n if (!ValidateEmail(email)) {\n ErrorList[\"email\"] = [\"Email address is invalid\"]\n // totalErrors += 1\n }\n }\n \n // ErrorList['errors'] = totalErrors\n setShowErrors(ErrorList);\n \n }, [ email, pristine, setShowErrors]);\n\n\n const getLanguage = (value) =>{\n if(value<4){\n return 'Low'\n }\n else if(value<7){\n return 'Moderate'\n }\n else{\n return 'High'\n }\n }\n\n const getColor = (value) =>{\n if(value<4){\n return '#F15062'\n }\n else if(value<7){\n return '#F1C62B'\n }\n else{\n return '#2D70E2'\n }\n }\n\n return (\n \n \n \n \n <div style={{display:'flex',alignItems:'center'}}>ROI <IMG2 src={Smiley}/></div> \n <div>calculation</div> \n <div>results</div> \n \n\n \n \n \n
Readiness for innerlogic\n

Your overall readiness for innerlogic is based on how important prioritizing healthy, \n high performance organizational culture is. It considers the value of unique employee\n perspectives in identifying culture gaps and growth areas in a timely manner.

\n
\n \n \n \n \n \n
\n\n \n \n
Projected ROI of innerlogic\n

Your return on investment in using innerlogic considers your current practices for \n collecting organizational culture data, as well as time and access when it comes to\n deploying curated solutions across your organization based on survey results.

\n
\n \n \n \n \n \n
\n
\n
\n \n \n \n\n \n Get your detailed readiness and ROI report:\n

Enter your work e-mail below

\n\n \n \n Submit\n \n\n \n
\n \n
\n )\n}\n\n\nexport default ROI\n\n\nconst Container = styled.div`\n width:100%;\n padding:0px 0px 20px 0px;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media(max-width:768px){\n padding:0px 0px 30px 0px;\n height:100%;\n }\n`\n\nconst IMG = styled.img`\n width:100px;\n position:absolute;\n left:60px;\n top:-60px;\n\n @media(max-width:768px){\n left:10px;\n top:-40px;\n } \n`\n\nconst IMG2 = styled.img`\n border-radius:50px;\n margin-left:20px;\n width:150px;\n\n @media(max-width:768px){\n width:100px;\n }\n`\n\n\nconst Content = styled.div`\n width:100%;\n max-width:1200px;\n display:flex;\n align-items:center;\n justify-content:space-between;\n margin-top:60px;\n background: #F8FAFF;\n border-radius: 20px;\n padding: 60px;\n position:relative;\n\n @media (max-width: 768px) {\n flex-direction:column;\n padding:10px;\n }\n`\nconst Title = styled.div`\n display:flex;\n font-family: 'Raleway';\n flex-direction:column;\n font-weight: 500;\n font-size: 60px;\n line-height:1.3;\n text-transform: uppercase;\n color: #2A3039;\n\n @media(max-width:768px){\n font-size: 40px;\n }\n`\n\nconst Data = styled.div`\n width:100%;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media(max-width:768px){\n margin-top:50px;\n }\n`\n\nconst Block = styled.div`\n display:flex;\n width:564px;\n justify-content:space-evenly;\n\n @media(max-width:768px){\n width:100%;\n }\n`\n\nconst T2 = styled.div`\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 600;\nfont-size: 20px;\ncolor: #2A3039;\nline-height:1.3;\n`\n\nconst P = styled.div`\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 12px;\nline-height: 125%;\ncolor: #666D79;\nmax-width:300px;\nmargin-top:10px;\n`\n\nconst DialContainer = styled.div`\n width:150px;\n margin-top:-20px;\n\n`\n\nconst Text = styled.div`\n width:300px;\n`\n\nconst Email = styled.div`\n width:100%;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media(max-width:768px){\n margin-top:30px;\n padding:10px;\n margin-bottom:30px;\n }\n`\n\nconst EmailInput = styled.input`\n padding: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-right: 10px;\n font-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\ncolor: #666D79;\nwidth:300px;\n\n@media(max-width:768px){\n width:200px;\n}\n`;\n\nconst SubmitButton = styled.button`\n padding: 10px 20px;\n font-size: 14px;\n background-color: #2D70E2;\n border: none;\n color: white;\n border-radius: 4px;\n cursor: pointer;\n font-family: 'Raleway';\n\n &:hover {\n background-color: #45a049;\n }\n`;\n\nconst InputContainer = styled.div`\n display: flex;\n align-items: center;\n margin-top:20px;\n\n \n`;","\nexport const ValidateEmail = (email) => {\n return String(email)\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n };","import React,{useState,useEffect} from 'react';\nimport styled, { keyframes, css } from 'styled-components';\nimport '../AuditV2/index.css'\n\n\nconst MultiSelect = ({ currentQuestionDet, choices,question,isVisible,setSelectedResponse,selectedResponse }) => {\n\n const [visibleChoices, setVisibleChoices] = useState([]);\n\n\n const handleSelection = (choice) => {\n setSelectedResponse(choice);\n };\n\n useEffect(() => {\n let timeoutIds = [];\n choices.map((choice, index) => {\n const timeoutId = setTimeout(() => {\n setVisibleChoices((prevVisibleChoices) => [...prevVisibleChoices, choice]);\n }, index * 20); // Adjust the delay as needed (300ms here)\n timeoutIds.push(timeoutId);\n });\n\n return () => {\n timeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));\n };\n }, [choices]);\n\n console.log(selectedResponse)\n\n return (\n \n {question}\n \n {visibleChoices.map((choice, index) => (\n \n \n handleSelection(index)}\n />\n \n {choice.text}\n \n \n \n ))}\n \n \n );\n};\n\nexport default MultiSelect;\n\n\nconst ChoiceContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:calc(100% - 40px);\n max-width:600px;\n\n @media(max-height:550px){\n overflow-y:scroll;\n max-height:70%;\n /* For Webkit browsers like Chrome, Safari, etc. */\n &::-webkit-scrollbar {\n width: 2px; /* width of the scrollbar */\n }\n \n &::-webkit-scrollbar-thumb {\n background-color: #888; /* color of the scroll thumb */\n border-radius: 4px; /* roundness of the scroll thumb */\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background-color: #555; /* color of the scroll thumb on hover */\n }\n \n /* For Firefox */\n scrollbar-width: thin;\n scrollbar-color: #888 #f5f5f5; /* thumb and track color */\n \n }\n`;\n\nconst Choice = styled.div`\nmargin-left:20px;\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom: 40px;\n`\n\nconst fadeInMoveDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst StyledChoice = styled.div`\n transform: translateY(-15px);\n opacity:0;\n animation-name: ${fadeInMoveDown};\n animation-duration: 300ms;\n animation-fill-mode: forwards;\n ${({ delay }) =>\n delay &&\n css`\n animation-delay: ${delay}ms;\n `}\n`;\nconst Question = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n line-height: 1.5;\n\n @media(max-width:768px){\n font-size: 18px;\n }\n`\n\nconst ListContainer = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n width:100%;\n`;\n\nconst ListItem = styled.label`\n display: block;\n position: relative;\n padding: 16px;\n padding-left: 40px;\n cursor: pointer;\n user-select: none;\n width:100%;\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : 'transparent')};\n color: ${({ isSelected }) => (isSelected ? '#2D70E2' : 'inherit')};\n \n &:hover {\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : '#f0f0f0')};\n }\n`;\n\nconst RadioInput = styled.input.attrs({ type: 'radio' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:checked ~ .checkmark {\n background-color: #EBF1FD;\n border-color: #2D70E2;\n }\n\n &:checked ~ .checkmark:after {\n display: block;\n }\n`;\nconst Checkmark = styled.span`\n position: absolute;\n top: 50%;\n left: 16px;\n transform: translateY(-50%);\n height: 16px;\n width: 16px;\n background-color: #fff;\n border: 2px solid #ccc;\n border-radius: 3px;\n\n &:after {\n content: '';\n position: absolute;\n display: none;\n left: 4px; // adjust left position\n top: -4px; // adjust top position\n width: 7px; // increase width\n height: 12px; // increase height\n border: solid black; \n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n }\n`;\n\n\n// Style the CheckboxInput component\nconst CheckboxInput = styled.input.attrs({ type: 'checkbox' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:checked ~ .checkmark {\n border-color: #2D70E2;\n background-color: #EBF1FD;\n }\n\n &:checked ~ .checkmark:after {\n display: block;\n }\n`;","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useSelector, shallowEqual, useDispatch } from \"react-redux\";\n\n\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport {Icon} from 'semantic-ui-react'\nimport Question from './Question';\nimport MultipleChoice from './MultipleChoice';\nimport ProgressBar from '../AuditV2/Components/ProgressBar';\nimport Button from '../AuditV2/Components/Button';\n\nimport Introduction from '../AuditV2/Introduction';\nimport '../AuditV2/index.css'\n\nimport {questions} from './questions';\n\nimport Submit from './Submit';\nimport IntroSection from './IntroSection';\n\nimport ROI from './ROI'\n\nimport MultiSelect from './MultiSelect';\n// ... existing components ...\nimport {\n\tSG_MARKETING_ROI\n} from \"constants/actions\";\n\n\n\n const Survey = () => {\n const dispatch = useDispatch();\n const [currentQuestion, setCurrentQuestion] = useState(0);\n const [direction, setDirection] = useState('');\n const [clicked,setClicked] = useState(0)\n const [totalIntro, setTotalIntro] = useState(questions.filter(f=>f.type=='introduction').length);\n const [isVisible, setIsVisible] = useState(true);\n const [surveyFinished,setSurveyFinished] = useState(false)\n const [responses, setResponses] = useState({ });\n const [selectedResponse, setSelectedResponse] = useState(null);\n const [showErrors, setShowErrors] = useState(false)\n\n const [email, setEmail] = React.useState('');\n\n const { get_marketingRoi, get_errors } = useSelector(\n (state) => ({\n get_marketingRoi: state.marketingRoi,\n get_errors: state.errors.errors,\n }),\n shallowEqual\n );\n\n\n // console.log(get_errors)\n\n useEffect(() => {\n const setVh = () => {\n let vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n }\n \n // Listen to the resize event\n window.addEventListener('resize', setVh);\n \n // Set the initial value\n setVh();\n \n // Remove event listener on cleanup\n return () => {\n window.removeEventListener('resize', setVh);\n };\n }, []);\n \n useEffect(() => {\n document.body.addEventListener('touchmove', function(e){ \n e.preventDefault();\n });\n }, []);\n\n\n const isIntroductionActive = () => {\n return questions[currentQuestion]?.type === 'introduction' || questions[currentQuestion]?.type== 'introSection';\n };\n\n const handleResponse = (questionId, responseId) => {\n setResponses(prevResponses => ({\n ...prevResponses,\n [questionId]: responseId\n }));\n }\n\n const getResponse = (questionId) => {\n if (questionId in responses) {\n return responses[questionId];\n }\n else {\n return null;\n }\n }\n \n\n const handleNext = () => {\n if (currentQuestion < questions.length - 1 ) {\n setDirection('next'); \n setClicked(clicked + 1)\n\n if(selectedResponse!=null){\n handleResponse(questions[currentQuestion].id,selectedResponse)\n setSelectedResponse(null)\n }\n if(currentQuestion ==questions.length-3){\n setSurveyFinished(true)\n }\n }\n };\n\n useEffect(()=>{\n if(direction === 'next'){\n setSelectedResponse(getResponse(questions[currentQuestion+1].id));\n setCurrentQuestion(currentQuestion + 1);\n }\n if(direction === 'back'){\n setSelectedResponse(getResponse(questions[currentQuestion-1].id));\n setCurrentQuestion(currentQuestion - 1);\n }\n },[clicked])\n \n const handleBack = () => {\n if (currentQuestion > 0) {\n setDirection('back');\n setClicked(clicked -1)\n \n }\n };\n\n const onEntered = () => {\n setIsVisible(true);\n };\n \n const onExited = () => {\n setIsVisible(false);\n };\n\n const handleMultiSelect = (choice) => {\n if(!selectedResponse){\n setSelectedResponse([choice])\n return\n }\n \n setSelectedResponse((prevArray) => {\n if (prevArray.includes(choice)) {\n // Remove the value\n let val = prevArray.filter(item => item !== choice);\n if(val.length==0){\n return null\n }\n return val\n } else {\n // Append the value\n return [...prevArray, choice];\n }\n });\n\n }\n\n function handleSubmit() {\n const payload = {\n email: email,\n response: responses,\n query_string: window.location.href,\n }\n\n // console.log(payload)\n\n dispatch({\n type: SG_MARKETING_ROI,\n payload: payload\n })\n }\n\n useEffect(() => {\n if (get_marketingRoi?.markeingRoi?.id > 0) {\n console.log(\"this changed here\")\n setCurrentQuestion(9)\n setSurveyFinished(true)\n }\n },[get_marketingRoi])\n\n // console.log(questions[9])\n // console.log(get_marketingRoi)\n\n useEffect(() => {\n setShowErrors(get_errors?.data)\n },[get_errors.data])\n\n const renderModule = (question) => {\n switch (question.type) {\n case 'introduction':\n return ;\n case 'question':\n return setSelectedResponse(r)} selectedResponse={selectedResponse} scale={question.choices}/>;\n case 'multipleChoice':\n return setSelectedResponse(r)} selectedResponse={selectedResponse}/>;\n case 'multiSelect':\n return handleMultiSelect(r)} selectedResponse={selectedResponse}/>; \n case 'introSection':\n return ;\n case 'completed':\n return ;\n case 'submit':\n return ;\n default:\n return null;\n }\n };\n\n const handleKeyDown = (event) => {\n if (event.keyCode === 13) {\n // Enter key pressed\n handleNext();\n }\n };\n\n const renderButtons = (question) =>{\n if (question?.buttonsVisible === false) {\n return\n }\n if(surveyFinished || question.type=='completed'){\n return \n }\n if(isIntroductionActive()){\n return (\n <>\n
\n \n )\n \n }\n if(question?.buttonType){\n\n return(\n <>\n \n \n \n ) \n }\n\n\n return (\n <>\n \n \n \n )\n\n }\n \n\n return (\n \n {!isIntroductionActive() && !surveyFinished && }\n {isIntroductionActive() && currentQuestion!=0 && }\n \n \n {renderModule(questions[currentQuestion])} \n \n \n \n \n\n\n\n \n {renderButtons(questions[currentQuestion])} \n \n\n \n );\n };\n \n export default Survey;\n \n\n // ...\n const SurveyContainer = styled.div`\n\twidth: 100%;\n\theight: calc(var(--vh, 1vh) * 100);\n\tdisplay: flex;\n\tflex-direction: column;\n\tbackground-color: #f8f9fa;\n\tposition:relative;\n\tfont-family: 'Raleway', sans-serif;\n\toverflow-x:hidden;\n\t`;\n\nconst SurveyContent = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n// ...\n\nconst ButtonContainer = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: ${props=>props.finished?'none':'flex'};\n justify-content: space-between;\n padding: 1rem;\n background-color: #f8f8f8;\n z-index: 2;\n\n\n`;\n\n\n// ...\n\n\nconst ModuleContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding:20px;\n min-height:${props=>!props.finished?'100%':'750px'};\n\n @media (max-width: 768px) {\n min-height:${props=>!props.finished?'100%':'1050px'};\n }\n\n\n`;\n\nconst Back = styled.div`\n position:absolute;\n left:28px;\n top:20px;\n cursor: pointer;\n font-size:20px;\n width:50px;\n height:50px;\n z-index:2;\n color:#2A3039;\n`","import React from \"react\";\nimport styled from \"styled-components\";\n\nconst PersonalityIntro = ({start}) =>{\n\n\n\treturn (\n\t\t\n\t\t\tGetting to know you\n\n\t\t\tIn an effort to better contextualize the feedback we have received from you, we'd like to \n\t\t\task you a few questions about your personality. For the following 10 questions please rate the extent to which you agree or disagree with the statement.\n\n\n\t\t\t\n\t\t\t\tYour data is always kept private, and no one can access your individual responses to these questions.\n\t\t\t\n\t\t\tstart()}\n\t\t\t\tenabled={true}>Begin\n\t\t\n\t\t)\n}\n\n\nexport default PersonalityIntro\n\n\n\n\n\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.5;\n color: white;\n margin-bottom:30px;\n max-width:654px;\n\n\n\n @media only screen and (min-width:992px){\n\n margin-bottom:20px;\n font-size: 23px;\n }\n\n\n`\n\nconst Container = styled.div`\n position:absolute;\n top:10%;\n padding:20px;\n background:${props=>props.color};\n\n\n @media only screen and (min-width: 768px) {\n left: calc(50% - 350px);\n top: 15%;\n }\n\n @media only screen and (max-height:550px){\n top: 10%;\n }\n\n @media(max-width:350px){\n height:850px;\n }\n`\n\nconst Next = styled.button`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: ${props=>props.color};\n font-size: 16px;\n font-weight: bold;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n border: none;\n\n ${(props) => !props.enabled && `\n opacity: 0.4;\n cursor:auto;\n pointer-events: none;\n `}\n`\n\nconst Title = styled.div`\n\tfont-size:22px;\n\tfont-weight:bold;\n\tmargin-bottom:15px;\n\tcolor:white;\n`","import React from \"react\";\nimport styled from \"styled-components\";\n\n\n\n\nconst Personality = ({q, answer, UpdateAnswer, words, questions}) => {\n// const [answer, setAnswer] = useState(null)\n\n return (\n \n \n\n\n {`I see myself as ${questions[q]}`}\n\n \n {[0, 1, 2, 3, 4,5,6].map((item, i) => {\n return (\n UpdateAnswer(i+1)}\n >\n {item + 1}\n {words[i]}\n \n );\n })}\n \n\n \n\n \n \n\n )\n}\n\n\nexport default Personality\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n width:100%;\n max-width:650px;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Question = styled.div`\n font-size: 18px;\n font-weight: 600;\n line-height:1.6;\n height:50px;\n\n color: white;\n margin-top: 14px;\n max-width:100%;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst QuestionItem = styled.div`\n width: 100%;\n height: 115px;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n border: 1px solid white;\n cursor: pointer;\n background-color: ${(props) => (props.answer === props.i ? \"white\" : \"none\")};\n color: ${(props) => (props.answer === props.i ? \"#002046\" : \"white\")};\n padding:5px;\n\n &:active {\n background: white;\n color:#002046;\n }\n\n @media only screen and (min-width: 992px) {\n height: 115px;\n width: 20%;\n flex-direction: column;\n padding:5px;\n border-radius: ${(props) =>\n props.i === 1 ? \"7px 0px 0px 7px\" : props.i === 7 ? \"0 7px 7px 0\" : \"none\"};\n\n &:hover {\n background: white;\n color: #002046;\n }\n &:active {\n background: #002046;\n color:white;\n }\n }\n\n \n`;\n\nconst QuestionContainer = styled.div`\n max-width:650px;\n height: 75px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 30px;\n flex-direction: row;\n }\n`;\n\n\nconst Num = styled.div`\n font-size: 18px;\n font-weight: bold;\n margin-top: 10px;\n\n @media only screen and (min-width: 992px) {\n font-size: 24px;\n margin-top: 20px;\n }\n`;\nconst Rating = styled.div`\n font-size: 10px;\n font-weight: 500;\n margin-top: 0px;\n text-align:center;\n line-height:1.4;\n margin-top:10px;\n margin-left:20px;\n\n @media only screen and (min-width: 992px) {\n font-size: 11px;\n margin-top: 10px;\n margin-left:0px;\n }\n`;\n\n","import React, { useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\n\nimport {\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE\n} from \"constants/actions\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { Icon } from \"semantic-ui-react\";\n\nimport PersonalityIntro from './PersonalityIntro'\nimport Personality from './Personality'\nimport {personalityQuestionList, personalityWordList} from \"constants/questionTypes\"\n\n\nconst InSurveyPersonality = ({ setSurveyPersonalityResp,\n setShowInSurveyPersonality,\n setEnableNavigation,\n briefResponseId,\n token }) => {\n const dispatch = useDispatch();\n const [answer, setAnswer] = useState({})\n const [q, setQ] = useState(-1)\n const [direction, setDirection] = useState(\"right\")\n\n const { get_brief_response } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n }),\n shallowEqual\n );\n\n function PrevQuestion() {\n if ((q -1) >= 0) {\n setQ(q - 1)\n setDirection(\"right\")\n }\n }\n\n function NextQuestion() {\n if ((q) < personalityQuestionList.length) {\n setQ(q + 1)\n setDirection(\"left\")\n }\n }\n\n function StartPersonality() {\n setQ(0)\n setEnableNavigation(false)\n }\n\n \n function UpdateAnswer(e) {\n console.log(\"updated answer\", e, q)\n if ((q) < personalityQuestionList.length && q >= 0) {\n\n setQ(q + 1)\n const _answer = answer\n _answer[q + 1] = {\n question: q + 1,\n response: e\n }\n setAnswer(_answer)\n setSurveyPersonalityResp(_answer)\n if ((q + 1) === personalityQuestionList.length) {\n CompletedPersonality(_answer)\n }\n }\n }\n\n\n function CompletedPersonality(_answer) {\n const payload = {\n visual_question: get_brief_response?.visual_question,\n current_question: get_brief_response?.current_question,\n current_answer: get_brief_response?.current_answer,\n high_answer: get_brief_response?.high_answer,\n answers: get_brief_response?.answers,\n complete: get_brief_response?.complete,\n intro_completed: get_brief_response?.intro_completed,\n intro2_completed: get_brief_response?.intro2_completed,\n validation_token: get_brief_response?.validation_token,\n feedback: get_brief_response?.feedback,\n modular_response: get_brief_response?.modular_response,\n survey_personality: _answer,\n in_survey_personality: true,\n }\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: get_brief_response?.validation_token,\n ...(payload && { stored_response: payload }),\n }\n })\n }\n setShowInSurveyPersonality(false)\n setEnableNavigation(true)\n\n }\n // console.log(questions.length)\n // console.log(answer[q - 1])\n // console.log(answer[q + 1])\n // console.log(answer)\n // console.log(answer[q + 1] === undefined)\n\n if (q === personalityQuestionList.length) {\n return (\n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames=\"feedback\"\n >\n setQ(0)} />\n \n \n )\n }\n\n\n if (q === -1) {\n return (\n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames=\"feedback\"\n >\n \n \n \n )\n }\n\n return (\n <>\n\n \n {\n node.addEventListener(\"transitionend\", done, false);\n }}\n classNames={`feedback-${direction}`}\n >\n \n\n \n\n \n \n \n \n \n\t\t\t\t\n\t\t\t\t\n {/* \n \n \n \n\n )\n}\n\nconst Phase2 = ({setFinish,phase2Ques,loading}) =>{\n\n if(loading){\n return \n }\n\n return (\n \n {\n typewriter.changeDelay(17)\n .typeString(phase2Ques)\n .pauseFor(100)\n .callFunction((el) => {\n setFinish(3)\n })\n .start()\n\n }}\n />\n )\n}\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n color: white;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 18px;\n font-weight: 500;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.6;\n font-style:italic;\n margin-bottom: 20px;\n margin-left:20px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 20px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 18px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button2 = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props => props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;\n\n\nconst TopText = styled.div`\n font-size: 18px;\n max-width:600px;\n line-height:1.6;\n white-space: pre-line;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 10px;\n \n }\n\n`\n\nconst Score = styled.div`\n font-size:18px;\n margin-bottom:20px;\n margin-top:10px;\n line-height:1.6;\n max-width:600px;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n }\n`\n\nconst Hidden = styled.div`\n opacity:${props => props.show? 1 : 0};\n transition: opacity 0.8s ease-in-out;\n`\n\nconst ModalContent = styled.div`\n padding:20px;\n font-size:16px;\n line-height:1.6;\n font-family:Poppins, sans-serif;\n\n @media (max-width:768px){\n font-size:14px;\n }\n`\n\nconst FeedbackPackage = {\n \"1\": [{\n \"type\":\"question\",\n \"question\": \"We noticed you scored this item lower than others. Please provide a clear and specific solution or suggestion for our organization to improve in this area.\",\n },\n {\n \"type\":\"AI\"\n },\n {\n \"type\":\"question\",\n \"question\": \"We noticed you scored this item lower than others. Please provide a clear and specific solution or suggestion for our organization to improve in this area.\",\n }],\n \"2\": [{\n \"type\":\"question\",\n \"question\": \"We noticed you scored this item lower than others. Please provide a clear and specific solution or suggestion for our organization to improve in this area.\",\n },\n {\n \"type\":\"AI\"\n },\n {\n \"type\":\"question\",\n \"question\": \"We noticed you scored this item lower than others. Please provide a clear and specific solution or suggestion for our organization to improve in this area.\",\n }],\n}","import { de } from \"faker/lib/locales\"\n\nimport {REVERSE} from \"data/reverseScores\"\n\nexport const getPromptLanguage = (language,getResponse,respValue) =>{\n\n switch(language){\n case 0:\n return `Context:\n The following is feedback from a culture analysis survey. The feedback is a response to the following statement: ${getResponse?.question} \\n\n Feedback:\\n${respValue}\\n\n Question:\\nWhat follow up question would a world class culture consultant ask based on the feedback given that would help create recommendations for the organization to address these issues? Make sure your response is simple enough for an 7th grader to understand. Only return the question istelf. \\n\n Response:\\n`\n\n case 1:\n return `Contexte :\n Voici un retour d'information provenant d'une enquête d'analyse de la culture. Le retour d'information est une réponse à l'énoncé suivant : ${getResponse?.question} \\n\n Retour d'information :\\n${respValue}\\n\n Question :\\nQuelle question de suivi un consultant culturel de classe mondiale poserait-il sur la base des retours d'information donnés qui aiderait à créer des recommandations pour l'organisation afin de traiter ces problèmes ? Assurez-vous que votre réponse est suffisamment simple pour qu'un élève de 7e année puisse la comprendre. Ne retournez que la question elle-même. \\n\n Réponse :\\n`\n\n default:\n return `Context:\n The following is feedback from a culture analysis survey. The feedback is a response to the following statement: ${getResponse?.question} \\n\n Feedback:\\n${respValue}\\n\n Question:\\nWhat follow up question would a world class culture consultant ask based on the feedback given that would help create recommendations for the organization to address these issues? Make sure your response is simple enough for an 7th grader to understand. Only return the question istelf. \\n\n Response:\\n`\n }\n\n}\n\n\nexport const getBottomQuestionLanguage = (language,getResponse) =>{\n\n if (getResponse.type === 'min') {\n switch(language){\n case 0:\n return 'You scored a '+(getResponse.reverse? REVERSE[getResponse?.response]: getResponse.response)+'/10. Can you provide specific examples of how this factor has impacted you or your colleagues?'\n case 1:\n return 'Vous avez obtenu un '+(getResponse.reverse? REVERSE[getResponse?.response]: getResponse.response)+'/10. Pouvez-vous fournir des exemples spécifiques de la façon dont ce facteur vous a affecté, vous ou vos collègues?'\n default:\n return 'You scored a '+(getResponse.reverse? REVERSE[getResponse?.response]: getResponse.response)+'/10. Can you provide specific examples of how this factor has impacted you or your colleagues?'\n \n }\n }\n\n switch(language){\n case 0:\n return \"We’d love to know more! Please provide an example of why.\"\n case 1:\n return \"Nous aimerions en savoir plus! Veuillez fournir un exemple de pourquoi.\"\n default:\n return \"We’d love to know more! Please provide an example of why.\"\n }\n\n}\n\nexport const getTopQuestionLanguage = (language,getResponse) =>{\n if (getResponse.type === 'min') {\n switch(language){\n case 0:\n return 'We noticed you scored the following statement amongst the lowest overall:'\n case 1:\n return 'Nous avons remarqué que vous avez obtenu l’énoncé suivant parmi les plus bas dans l’ensemble:'\n default:\n return 'We noticed you scored the following statement amongst the lowest overall:'\n }\n }\n\n switch(language){\n case 0:\n return 'You scored the following statement the highest:'\n case 1:\n return 'Vous avez obtenu l’énoncé suivant le plus haut:'\n default:\n return 'You scored the following statement the highest:'\n }\n}","import styled from \"styled-components\";\nimport React from \"react\";\n\nimport Slider from '@material-ui/core/Slider';\nimport { createMuiTheme } from '@material-ui/core/styles';\nimport { ThemeProvider } from '@material-ui/styles';\n\n\n\n// const PrettoSlider = withStyles({\n// root: {\n// color: 'grey',\n// height: 8,\n// },\n// thumb: {\n// height: 24,\n// width: 24,\n// backgroundColor: '#FA675C',\n// color: '#FA675C',\n// border: '2px solid currentColor',\n// marginTop: -8,\n// marginLeft: -12,\n// '&:focus, &:hover, &$active': {\n// boxShadow: 'inherit',\n// },\n// },\n// active: {},\n// valueLabel: {\n// left: 'calc(-50% + 4px)',\n// },\n// track: {\n// height: 8,\n// borderRadius: 4,\n// },\n// rail: {\n// height: 8,\n// borderRadius: 4,\n// },\n// })(Slider);\n\nfunction isInt(value) {\n return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))\n}\n\nconst SliderQ = ({ preValue, saveResult,color,language,reversed }) => {\n\n const [res1, setRes1] = React.useState(0)\n // const [clicked, setClicked] = React.useState(false)\n let muiTheme\n\n\n if(reversed){\n muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#002046',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#002046'\n },\n rail: {\n color: '#054ea3'\n }\n }\n }})\n }\n else if(color===\"#4048FF\"){\n muiTheme = createMuiTheme({overrides:{\n MuiSlider: {\n thumb:{\n color:'#66D686;',\n },\n mark:{\n color:'white'\n },\n track: {\n color:'#66D686'\n },\n rail: {\n color: '#054ea3'\n }\n }\n}})\n }else{\n muiTheme = createMuiTheme({\n overrides:{\n MuiSlider: {\n thumb:{\n color,\n },\n mark:{\n color:'white'\n },\n track: {\n color\n },\n rail: {\n color: 'black'\n }\n }\n}\n});\n }\n\n\n\n // console.log(preValue)\n // console.log(clicked)\n // console.log(preValue !== undefined)\n\n React.useEffect(() => {\n if (isInt(preValue)) {\n setRes1(preValue)\n // setClicked(true)\n }\n else {\n setRes1(0)\n // setClicked(false)\n }\n }, [preValue]);\n\n function ClickedOnSlider(t) {\n // setClicked(true)\n setRes1(t)\n \n }\n\n function commitSlide(t) {\n saveResult(t)\n \n }\n\n // const save = () => {\n // saveResult(res1)\n // setRes1(0)\n // setClicked(false)\n // }\n\n return (\n \n { }\n \n ClickedOnSlider(t)}\n onChangeCommitted={(e, t) => commitSlide(t)}\n />\n \n \n
{language===1?\"Pas du tout d'accord\":\"Strongly disagree\"}
\n
{language===1?\"Neutre\":\"Neutral\"}
\n
{language===1?\"Tout à fait d'accord\":\"Strongly agree\"}
\n
\n\n {/* save()}\n disabled={!clicked}\n color={color}\n id=\"next\">\n {language===1?\"Suivant\":\"Next\"}\n */}\n
\n )\n}\n\n\nexport default SliderQ\n\n\n\nconst QuestionContainer = styled.div`\n width: 100%;\n margin-top: 10px;\n padding-left:10px;\n display: flex;\n flex-direction: column;\n\n @media only screen and (min-width: 992px) {\n width: 600px;\n margin-top: 40px;\n }\n`;\n\n\n// const Button = styled.button`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// border: 0;\n// box-shadow: none;\n// color: ${props=>props.color};\n// font-size: 16px;\n// font-weight: bold;\n\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// // display: none;\n\n// :disabled{\n// background-color:lightgrey;\n// color:grey;\n// cursor:not-allowed;\n// opacity:0.5;\n// }\n\n\n// @media only screen and (min-width: 992px), (min-height: 760px) {\n// display: flex;\n// }\n// `;\n\nconst Text = styled.div`\n color:white;\n font-size:20px;\n margin-bottom:40px;\n margin-top:20px;\n`\n\n\nconst Scale = styled.div`\n width:calc(100% + 40px);\n margin-left:-20px;\n display:flex;\n justify-content:space-between;\n color:white;\n font-size:12px;\n`","import React, { useEffect, useState } from \"react\";\nimport Slider from './Slider'\n\nimport styled from \"styled-components\";\n\n\nconst QuestionTemplate = ({ saveQuestionAnswer,\n question,\n response,\n textColor,\n language,\n type,\n setBackground,\n qualifier\n}) => {\n \n const [respValue, setRespValue] = useState(0)\n const save = (resp) => {\n saveQuestionAnswer({\n id: question?.dimension,\n factor: question?.factor,\n q: question?.q,\n ques_order: question.order,\n response: resp,\n role: question?.role,\n reverse: question?.reverse,\n })\n }\n\n useEffect(() => {\n if (response) {\n setRespValue(response?.response)\n } else {\n setRespValue(null)\n }\n }, [response]);\n\n useEffect(() => {\n if (question.reverse) {\n setBackground(true)\n } else {\n setBackground(false)\n }\n }, [question, setBackground])\n\n if (question.reverse) {\n\n return (\n \n \n \n * {language === 1 ? \"Cette question est notée à l'envers\" : 'Please pay attention to the wording of this statement when selecting your level of agreement'}\n {qualifier ? qualifier : type === 3 || type === 4 ? language === 1 ? 'Dans cette culture...' : 'In this culture...' : \"\"}\n {language === 1 ? 'fr in question' ? question.fr : question?.question : question?.question}\n save(resp)} />\n \n \n )\n }\n\n return (\n \n \n \n \n {qualifier ? qualifier : type === 3 || type === 4 ? language === 1 ? 'Dans cette culture...' : 'In this culture...' : \"\"}\n {language === 1 ? 'fr in question' ? question.fr : question?.question : question?.question}\n save(resp)} />\n \n\n \n )\n}\n\nexport default QuestionTemplate\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 15%;\n width:100%;\n max-width:650px;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 18px;\n font-weight: 300;\n\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.6;\n\n @media only screen and (min-width: 992px) {\n font-size: 20px;\n margin-top: 28px;\n }\n`;\n\n\nconst Qualifier = styled.div`\n color:white;\n font-size: 16px;\n font-style:italic;\n\n @media(max-width:768px){\n margin-bottom:25px;\n }\n`\n\nconst Container = styled.div`\n padding:30px;\n position:relative;\n width:100%;\n`\n\nconst Info = styled.div`\n position:absolute;\n color:white;\n font-size:16px;\n font-weight:bold;\n top:-50px;\n\n @media(max-width:768px){\n max-width:80%;\n }\n`\n\n// const Button = styled.div`\n// height: 40px;\n// border-radius: 10px;\n// background-color: white;\n// color: #6a00ff;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Barlow\", sans-serif;\n// display: flex;\n// justify-content: center;\n// align-items: center;\n// cursor: pointer;\n// width: 100px;\n// margin-top: 50px;\n// `;\n\n\n// const SubmitButton = styled(Button)`\n// width: 170px;\n// height: 47px;\n// border-radius: 5px;\n// background-color: ${(props) => (props.enabled ? \"white\" : \"#bbc7bd\")};\n// // color: white;\n// // background-color: white;\n// color: #6A00FF;\n// font-size: 16px;\n// font-weight: bold;\n// font-family: \"Red Hat Display\", sans-serif;\n// cursor: ${(props) => (props.enabled ? \"pointer\" : \"not-allowed\")};\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// cursor: pointer;\n// `;\n\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\n\n\nconst Comments = ({ saveCommentAnswer,\n question,\n response,\n language,\ntextColor}) => {\n\n const [respValue, setRespValue] = useState('')\n\n const save = () => {\n saveCommentAnswer({\n id: question?.id,\n question: question?.question,\n ques_order: question?.order,\n response: respValue\n })\n }\n\n useEffect(() => {\n setRespValue('')\n if (response) {\n setRespValue(response?.response)\n }\n }, [response]);\n\n\n\treturn (\n\t\t\n\t\t\t{language===1?question?.fr: question?.question}\n\t\t\tsetRespValue(e.target.value)}/>\n\n\t \n\t\t\n\t\t)\n}\n\nexport default Comments\n\n\nconst SurveyContainer = styled.div`\n padding: 0px;\n box-sizing: border-box;\n position: absolute;\n left: 0%;\n top: 10%;\n padding: 20px;\n\n @media only screen and (min-width: 768px) {\n padding: 30px;\n left: calc(50% - 350px);\n top: 15%;\n }\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n font-weight: 400;\n color: white;\n margin-top: 14px;\n max-width:600px;\n line-height:1.3;\n margin-bottom:30px;\n\n @media only screen and (min-width: 992px) {\n font-size: 23px;\n margin-top: 28px;\n }\n`;\n\nconst SubText = styled.textarea`\n width:600px;\n color: black;\n font-size: 16px;\n background-color:white;\n border-radius:8px;\n border:none;\n padding:15px;\n resize: none;\n\n &:focus{\n outline: none;\n }\n\n ::placeholder{\n color: #b8b8b8;\n }\n\n @media(max-width:768px){\n max-width:calc(100vw - 40px);\n\n }\n`\n\nconst Button = styled.button`\n height: 40px;\n border-radius: 10px;\n background-color: white;\n border: 0;\n box-shadow: none;\n color: ${props=>props.color};\n font-size: 16px;\n font-weight: bold;\n\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 100px;\n margin-top: 50px;\n // display: none;\n\n :disabled{\n \tbackground-color:lightgrey;\n \tcolor:grey;\n \tcursor:not-allowed;\n \topacity:0.5;\n }\n\n\n @media only screen and (min-width: 992px), (min-height: 760px) {\n display: flex;\n }\n`;","import React from 'react';\nimport styled from 'styled-components';\n\nconst End = (props) =>{\n const {title, intro, submitAnswer} = props\n\treturn (\n\t\t\n\t\t\t{title}\n\t\t\t{intro}\n\t\t\tsubmitAnswer()} id=\"end\" color={props.textColor}>{props.langugage===1?\"Envoyer\":\"Submit\"}\n\t\t\n\n\t\t)\n}\n\nexport default End\n\n\nconst Title = styled.div`\n\tfont-size: 50px;\n font-weight: bold;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n color:white;\n line-height:1;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n }\n`\nconst SubTitle = styled.div`\n\tfont-size: 18px;\n\tline-height: 1.6;\n color: white;\n font-family: 'Barlow', sans-serif;\n margin-bottom:20px;\n max-width:654px;\n\n @media only screen and (min-width:992px){\n font-size: 72px;\n margin-bottom:50px;\n font-size: 24px;\n }\n`\n\nconst Next = styled.div`\n\twidth: 170px;\n height: 47px;\n border-radius: 5px;\n background-color: white;\n color: ${props=>props.color};\n font-size: 16px;\n font-weight: bold;\n font-family: 'Red Hat Display', sans-serif;\n display:flex;\n align-items:center;\n justify-content:center;\n cursor:pointer;\n`\n\nconst Container = styled.div`\n position:absolute;\n top:15%;\n padding:20px;\n background:${props=>props.color};\n\n @media only screen and (min-width:992px){\n left: 25%;\n top: 25%;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\n\nimport { Dimmer, Loader, Segment, Icon } from \"semantic-ui-react\";\n\nimport Outcome from \"ModularQuestions/Outcome\";\nimport ValuesBuilder from \"ModularQuestions/ValuesBuilder\";\n\nimport {\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n} from \"constants/actions\";\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\";\nimport { v4 as uuidv4 } from 'uuid';\n\nconst ModularQuestion = ({\n id,\n setModularComplete,\n token,\n briefResponseId,\n setSurveyModularResp,\n setEnableNavigation,\n language,\n}) => {\n const dispatch = useDispatch();\n\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\n const [currentQuestion, setCurrentQuestion] = useState(false);\n\n const [allQuestions, setAllQuestions] = useState([]);\n const [answers, setAnswers] = useState({});\n\n\n const { get_brief_response, get_modular_questions } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n get_modular_questions: state.questions,\n }),\n shallowEqual\n );\n\n // Extract feedback_builder questions\n useEffect(() => {\n const _totalQuestions = [];\n \n if (\n get_modular_questions?.modular_questions?.feedback_builder?.questions?.[0]\n ?.questions\n ) {\n get_modular_questions.modular_questions.feedback_builder.questions[0].questions.forEach(\n (q) => _totalQuestions.push({ question_type: \"feedback_builder\", ...q })\n );\n }\n if (\n get_modular_questions?.modular_questions?.outcome_question?.questions\n ) {\n get_modular_questions.modular_questions.outcome_question.questions.forEach(\n (questionGroup) => {\n if (questionGroup?.questions?.length > 0) {\n questionGroup.questions.forEach((q) => {\n _totalQuestions.push({ question_type: \"outcome_question\", ...q });\n });\n }\n }\n );\n }\n // {\n // get_modular_questions.modular_questions.outcome_question.questions[0].questions.forEach(\n // (q) => _totalQuestions.push({ question_type: \"outcome_question\", ...q })\n // );\n // }\n \n \n setAllQuestions(_totalQuestions);\n const timer1 = setTimeout(() => {\n if (_totalQuestions?.length === 0) {\n setModularComplete(true);\n }\n\t\t}, 1000);\n return () => clearTimeout(timer1);\n\n }, [get_modular_questions]);\n\n useEffect(() => {\n if (allQuestions?.length > 0) {\n setCurrentQuestion(allQuestions[currentQuestionIndex]);\n }\n }, [\n currentQuestionIndex,\n allQuestions,\n setModularComplete,\n setEnableNavigation,\n ]);\n\n const saveAnswer = (currentresponse) => {\n const mod_answers = { ...answers }; // Create a shallow copy of answers\n\n // Initialize the nested objects if they don't exist\n if (!mod_answers[currentresponse?.question_type]) {\n mod_answers[currentresponse?.question_type] = {};\n }\n\n // Assign currentresponse to the appropriate question type and id\n mod_answers[currentresponse?.question_type][`${currentresponse?.q}-${currentresponse?.s}`] =\n currentresponse;\n\n setAnswers(mod_answers);\n\n if (currentQuestionIndex + 1 > allQuestions?.length - 1) {\n // forced delay to allow state to update\n setTimeout(() => {\n const keys = Object.keys(mod_answers);\n const modResp = {}\n keys.forEach((key) => {\n const modResponses = Object.values(mod_answers?.[key]);\n modResp[key]= {\n \"id\": uuidv4(),\n \"value\": key,\n \"on_date\": new Date(),\n \"ask_again\": 1,\n \"completed\": true,\n \"responses\": modResponses\n }\n })\n setSurveyModularResp(modResp);\n MarkCurrentComplete(modResp);\n setModularComplete(true);\n setEnableNavigation(true);\n }, 50);\n }\n\n setCurrentQuestionIndex(currentQuestionIndex + 1);\n };\n\n\n // // console.log(allQuestions)\n // console.log(\"answers\", answers);\n // console.log(\"allQuestions\", allQuestions);\n\n function MarkCurrentComplete(modResp) {\n const payload = {\n visual_question: get_brief_response?.visual_question,\n current_question: get_brief_response?.current_question,\n current_answer: get_brief_response?.current_answer,\n high_answer: get_brief_response?.high_answer,\n answers: get_brief_response?.answers,\n complete: get_brief_response?.complete,\n intro_completed: get_brief_response?.intro_completed,\n intro2_completed: get_brief_response?.intro2_completed,\n validation_token: get_brief_response?.validation_token,\n feedback: get_brief_response?.feedback,\n survey_personality: get_brief_response?.survey_personality,\n in_survey_personality: get_brief_response?.in_survey_personality,\n modular_response: modResp,\n };\n\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: get_brief_response?.validation_token,\n },\n });\n }\n }\n\n return (\n \n \n {!currentQuestion ? (\n \n \n \n ) : (\n <>\n {currentQuestion?.question_type === \"outcome_question\" && (\n \n )}\n\n {(currentQuestion?.question_type === \"values_builder\") |\n (currentQuestion?.question_type === \"feedback_builder\") && (\n \n )}\n \n )}\n \n \n );\n};\n\nexport default ModularQuestion;\n\nconst SpinnerContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n \n .spinner.icon {\n font-size: 2em; /* Adjust the size as needed */\n }\n`;","import React, { useEffect, useState } from \"react\";\n\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { Dimmer, Loader } from \"semantic-ui-react\";\n\nimport Personality from \"../InSurveyPersonality\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport {\n SG_START_BRIEF_SURVEY,\n NEW_VALIDATION_TOKEN,\n RESET_VALIDATION_TOKEN,\n CLEAR_ALL,\n SG_POST_BRIEF_RESPONSE,\n UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n // SG_GET_ALL_MODULAR_QUESTIONS,\n} from \"constants/actions\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport Intro from \"./Intro\";\nimport Intro2 from \"./Intro2\";\nimport Intro3 from \"./Intro3\";\nimport SurveyMessage from \"./Message\";\nimport ReLoadPage from \"./ReLoadPage\";\nimport styled, { keyframes, css } from \"styled-components\";\nimport { Icon } from \"semantic-ui-react\";\nimport Language from \"./Language\";\nimport CCIntro from \"./CCIntro\";\n\nimport NoToken from \"./NoToken\";\n\nimport { RunRules } from \"utilities/FeedbackRules\";\n\nimport CategoryQuestion from \"./Categories\";\nimport CommentsFeedback from \"./CommentsFeedback\";\n\nimport { SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { TRANSITIONSPEED, SlideDirection } from \"constants/animation\";\n\nimport \"../survey.css\";\n\nimport QuestionTemplate from \"./Questions\";\nimport CommentTemplate from \"./Comments\";\nimport ExistingDataFound from \"survey/SurveyComponents/ExistingData\";\n\nimport Agreement from \"survey/SurveyComponents/Agreement\";\nimport End from \"./End\";\nimport ModularQuestion from \"ModularQuestions/index\";\nimport { useTranslation } from \"react-i18next\";\n\nconst categoryType = \"category\";\nconst questionsType = \"questions\";\nconst commentsType = \"comments\";\n\nconst arrange_Questions = (questions) => {\n if (questions?.dimensions) {\n return questions.dimensions\n .map((item, i) => {\n return item.factors.map((factor, f) => {\n return factor.questions.map((q, idx) => {\n return {\n question: q.q,\n dimension: i,\n factor: f,\n q: idx,\n role: q.role,\n reverse: q.reverse,\n order: q.id,\n fr: \"fr\" in q ? q.fr : null,\n };\n });\n });\n })\n .flat()\n .flat()\n .sort((a, b) => a.order - b.order);\n }\n};\n\nconst Audit = () => {\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n const { t, i18n } = useTranslation();\n\n let { token } = useParams();\n\n // eslint-disable-next-line no-unused-vars\n let [searchParams, setSearchParams] = useSearchParams();\n const direct_language = Number(searchParams.get(\"language\"));\n\n const [direction, setDirection] = useState(1);\n const [showPrev, setShowPrev] = useState(true);\n const [showNext, setShowNext] = useState(true);\n // const [location, setLocation] = useState(0)\n const [showIntro, setShowIntro] = useState(false);\n const [showIntro2, setShowIntro2] = useState(false);\n const [showIntro3, setShowIntro3] = useState(false);\n const [noResponse, setNoResponse] = useState(false);\n const [loading, setLoading] = useState(true);\n const [feedbackKey, setFeedbackKey] = useState(0);\n\n const [ruleFeedback, setRuleFeedback] = useState(false);\n const [completedRuleFeedback, setCompletedRuleFeedback] = useState([]);\n const [ruleFeedbackComplete, setRuleFeedbackComplete] = useState(true);\n const [askFeedback, setAskFeedback] = useState(false);\n const [enableNavigation, setEnableNavigation] = useState(true);\n\n const [defaultMessage, setDefaultMessage] = useState({\n title: \"Survey completed\",\n subTitle: \"This survey has been successfully submitted\",\n });\n //\n const [totalQuestions, setTotalQuestions] = useState({\n total: 0,\n runningTotal: 0,\n questions: 0,\n culture: 0,\n sequence: {},\n });\n\n const [questions, setQuestions] = useState([]);\n const [categoryQues, setCategoryQues] = useState([]);\n const [employeeCategory, setEmployeeCategory] = useState([]);\n // stored persisting response\n const [validationToken, setValidationToken] = useState(false);\n const [briefResponseId, setBriefResponseId] = useState(false);\n const [storedResponseFound, setStoredResponseFound] = useState(false);\n //\n const [briefResponse, setBriefResponse] = useState([]);\n const [questionNo, setQuestionNo] = useState(0);\n const [visualQuestionNo, setVisualQuestionNo] = useState(0);\n //\n const [prevResponse, setPrevResponse] = useState({});\n //\n const [checkRole, setCheckRole] = useState(false);\n\n const [questionAnswers, setQuestionAnswers] = useState({\n categories: {},\n questions: {},\n comments: {},\n });\n const [surveyFeedbackResp, setSurveyFeedbackResp] = useState([]);\n const [surveyPersonalityResp, setSurveyPersonalityResp] = useState({});\n const [surveyModularResp, setSurveyModularResp] = useState({});\n\n // in_survey_personality\n const [showInSurveyPersonality, setShowInSurveyPersonality] = useState(true);\n\n const [thankMessage, setThankMessage] = useState(false);\n const [complete, setComplete] = useState(false);\n\n const [surveyStatus, setSurveyStatus] = useState(0);\n const [resetAnswers, setResetAnswers] = useState(false);\n const [surveyDeleted, setSurveyDeleted] = useState(false);\n const [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\n const [primaryCategory, setPrimaryCategory] = useState(false);\n const [surveyName, setSurveyName] = useState(false);\n const [neverAskResponse, setNeverAskResponse] = useState(false);\n const [prevFoundResponse, setPrevFoundResponse] = useState(false);\n\n const [consentProvided, setConsentProvided] = useState(false);\n const [language, setLanguage] = React.useState(0);\n const [showLanguage, setShowLanguage] = React.useState(false);\n const [background, setBackground] = React.useState(false);\n\n const [askComments, setAskComments] = useState(false);\n\n const [submitError, setSubmitError] = useState(false);\n const [organizationInfo, setOrganizationInfo] = useState(false);\n\n const [surveyModules, setSurveyModules] = useState([]);\n\n const [modularComplete, setModularComplete] = useState(false);\n const [modSurveyRule, setModSurveyRule] = useState([]);\n\n const { get_brief_response, get_errors } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n get_errors: state.errors,\n }),\n shallowEqual\n );\n\n // console.log(\"ruleFeedback\", ruleFeedback)\n\n useEffect(() => {\n if (direct_language === 1) {\n i18n.changeLanguage(direct_language == 1 ? \"fr\" : \"en\");\n setLanguage(direct_language);\n }\n }, [direct_language]);\n\n useEffect(() => {\n i18n.changeLanguage(language == 1 ? \"fr\" : \"en\");\n }, [language]);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 1500);\n }, []);\n\n useEffect(() => {\n setRuleFeedbackComplete(true);\n const RuleRun = RunRules({ questions, get_brief_response });\n // console.log(\"Feedback Rules\", RuleRun)\n if (RuleRun.length > 0) {\n setRuleFeedbackComplete(false);\n }\n setRuleFeedback(RuleRun);\n setSurveyModules(\n get_brief_response?.response?.organization_info?.survey_sequence\n );\n }, [get_brief_response, questions]);\n\n // console.log(surveyModules)\n // console.log(get_brief_response)\n // console.log(get_brief_response?.visual_question)\n // console.log(totalQuestions)\n // console.log(\"questionNo\", questionNo)\n\n // console.log(\"show not have In Survey Personality enabled\")\n useEffect(() => {\n const SurveyPersonality =\n get_brief_response?.response?.organization_services?.filter(\n (os) => os.name === \"In Survey Personality\"\n )?.[0];\n // console.log(SurveyPersonality)\n // console.log(\"should not contain in_survey_personality\")\n // console.log(get_brief_response?.response?.employee_survey_spec?.['survey_personality'])\n const sp_earlier =\n get_brief_response?.response?.employee_survey_spec?.[\n \"survey_personality\"\n ];\n if (SurveyPersonality?.enabled === true) {\n // personality completed ealier dont ask again but inject in the response\n if (sp_earlier) {\n setShowInSurveyPersonality(false);\n setSurveyPersonalityResp(sp_earlier?.survey_personality);\n } else {\n // console.log(get_brief_response?.response?.employee_survey_spec)\n // personality survey completed and refreshing and collection from store data\n if (get_brief_response?.in_survey_personality) {\n setShowInSurveyPersonality(false);\n setSurveyPersonalityResp(get_brief_response?.survey_personality);\n } else {\n setShowInSurveyPersonality(true);\n }\n }\n } else {\n setShowInSurveyPersonality(false);\n }\n }, [\n get_brief_response.response,\n get_brief_response.in_survey_personality,\n get_brief_response.survey_personality,\n ]);\n\n // console.log(surveyPersonalityResp)\n // console.log(showInSurveyPersonality)\n // question no based on role skip logic\n // step 1 set role\n useEffect(() => {\n if (questionAnswers?.categories) {\n const CatRes = Object.values(questionAnswers?.categories);\n setCheckRole(\n CatRes.filter((ct) => ct.priority === \"secondary\")?.[0]?.response\n );\n }\n }, [questionAnswers]);\n\n // // Ask Comments\n useEffect(() => {\n if (get_brief_response?.response?.questions?.comments) {\n if (get_brief_response?.response?.questions?.comments?.length > 0) {\n setAskComments(get_brief_response?.response?.questions?.comments);\n }\n }\n }, [get_brief_response]);\n\n useEffect(() => {\n if (get_brief_response && !organizationInfo) {\n setQuestions(arrange_Questions(get_brief_response?.response?.questions));\n setEmployeeCategory(get_brief_response?.response?.employee_category);\n setOrganizationInfo(get_brief_response?.response?.organization_info);\n setCategoryQues(\n get_brief_response?.response?.culture_questions?.sort(\n (a, b) => a?.id - b?.id\n )\n );\n\n //Do something here to set the language component\n if (get_brief_response?.response?.questions?.language) {\n setShowLanguage(true);\n // console.log(get_brief_response)\n }\n }\n }, [get_brief_response, organizationInfo]);\n\n // console.log(get_brief_response)\n // console.log(\"get_brief_response?.validation_token\", get_brief_response?.validation_token)\n // console.log(\"get_brief_response?.response?.stored_response?.high_answer\", get_brief_response?.response?.stored_response?.high_answer)\n\n // primary Response\n useEffect(() => {\n let _id = \"\";\n let _response = 0;\n let subfactorFound = false;\n let _subfactor = null;\n const SurveyName = get_brief_response?.response?.survey_name;\n setSurveyName(get_brief_response?.response?.survey_name);\n if (get_brief_response?.response?.primary_question) {\n get_brief_response.response.primary_question.map((pq) => {\n _id = pq.id;\n if (pq?.subfactor) {\n subfactorFound = true;\n }\n pq &&\n pq.answers.map((aq) => {\n if (aq?.name === SurveyName) {\n if (subfactorFound) {\n _subfactor = aq?.id;\n _response = aq?.parent_id;\n } else {\n _response = aq?.id;\n }\n }\n return null;\n });\n return null;\n });\n }\n\n setBriefResponseId(get_brief_response?.id);\n\n if (get_brief_response?.validation_token) {\n // console.log(\"get_brief_response?.validation_token\", get_brief_response?.validation_token)\n setValidationToken(get_brief_response?.validation_token);\n if (get_brief_response?.response?.stored_response?.high_answer > 2) {\n // console.log(\"get_brief_response?.response?.stored_response?.high_answer > 2\", get_brief_response?.response?.stored_response?.high_answer)\n setStoredResponseFound(true);\n } else {\n setStoredResponseFound(false);\n }\n } else {\n setStoredResponseFound(false);\n setValidationToken(false);\n }\n\n setShowIntro(get_brief_response?.intro_completed);\n setShowIntro2(get_brief_response?.intro2_completed);\n // setStoredResponse(get_brief_response?.storedResponse)\n\n setPrimaryCategory({\n id: _id,\n response: _response,\n subfactor: _subfactor,\n priority: \"primary\",\n });\n }, [get_brief_response]);\n\n //skip questions\n useEffect(() => {\n const _seq = {};\n // const _empCat = employeeCategory\n // add category question nos to list\n\n const _prevResp = {};\n const _neverAskResp = {};\n\n let running_total = 0;\n let total = 0;\n let CatLength = 0;\n if (categoryQues) {\n categoryQues.map((q, v) => {\n if (q?.input === \"always_ask\") {\n // console.log(q)\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `always_ask ${q.id}`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n };\n return null;\n }\n // change this to ids\n if (q?.input === \"ask_if_not_found\") {\n // setPrevFoundResponse\n const _empCat = employeeCategory.filter(\n (ec) => ec?.name_id === q.id\n )?.[0]?.value_id;\n if (_empCat) {\n // console.log(_empCat)\n const _response = q.answers.filter((rq) => rq?.id === _empCat)?.[0]\n ?.id;\n running_total += 1;\n CatLength += 1;\n total += 0;\n _seq[running_total] = {\n from: `ask_if_not_found ${q.id}`,\n quesType: categoryType,\n skip: true,\n sno: running_total,\n };\n _prevResp[running_total] = {\n id: q.id,\n response: _response,\n priority: q.priority,\n };\n } else {\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `ask_if_not_found ${q.id}`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n };\n }\n return null;\n }\n // change this to ids\n if (q?.input === \"never_ask\") {\n running_total += 1;\n CatLength += 1;\n total += 0;\n _seq[running_total] = {\n from: `never_ask ${q?.id}`,\n quesType: categoryType,\n skip: true,\n sno: running_total,\n };\n const _empCat = employeeCategory.filter(\n (ec) => ec?.name_id === q.id\n )?.[0]?.value_id;\n\n _neverAskResp[running_total] = {\n id: q.id,\n response: _empCat ? _empCat : null,\n priority: q.priority,\n };\n return null;\n }\n\n if (!q?.input) {\n running_total += 1;\n CatLength += 1;\n total += 1;\n _seq[running_total] = {\n from: `undefined`,\n quesType: categoryType,\n skip: false,\n sno: running_total,\n };\n }\n return null;\n });\n }\n\n setPrevFoundResponse(_prevResp);\n setNeverAskResponse(_neverAskResp);\n\n let quesLength = 0;\n if (questions) {\n questions.map((q, v) => {\n if (checkRole) {\n if (q?.role) {\n if (q?.role.includes(checkRole)) {\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question for specific role\",\n skip: false,\n sno: running_total,\n };\n return null;\n } else {\n running_total += 1;\n // quesLength += 1\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question not included role specifics\",\n skip: true,\n sno: running_total,\n };\n return null;\n }\n } else {\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"question without role\",\n skip: false,\n sno: running_total,\n };\n return null;\n }\n } else {\n running_total += 1;\n quesLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: questionsType,\n from: \"no role checked\",\n skip: false,\n sno: running_total,\n };\n return null;\n }\n });\n }\n\n let commLength = 0;\n if (askComments) {\n askComments.map((q, v) => {\n running_total += 1;\n commLength += 1;\n total += 1;\n _seq[running_total] = {\n quesType: commentsType,\n skip: false,\n sno: running_total,\n };\n return null;\n });\n }\n\n setTotalQuestions({\n total: total,\n runningTotal: running_total,\n questions: quesLength,\n category: CatLength, // add primaryCategory\n comments: commLength,\n sequence: _seq,\n });\n }, [questions, categoryQues, askComments, checkRole, employeeCategory]);\n\n // if the number of questions changes based on responses\n // reset or remove the older questions which were answered\n useEffect(() => {\n setResetAnswers(true);\n }, [totalQuestions.total]);\n\n useEffect(() => {\n if (resetAnswers && questionAnswers?.categories !== undefined) {\n setResetAnswers(false);\n let _quesAns = questionAnswers;\n\n setQuestionAnswers({\n categories: _quesAns?.categories,\n questions: {},\n comments: {},\n });\n }\n }, [resetAnswers, questionAnswers, dispatch, totalQuestions, questionNo]);\n\n function nextQuestion() {\n let _questionNo = questionNo + 1;\n while (_questionNo <= totalQuestions?.runningTotal) {\n if (totalQuestions.sequence[_questionNo]?.skip) {\n _questionNo++;\n } else {\n setQuestionNo(_questionNo);\n setVisualQuestionNo(visualQuestionNo + 1);\n return;\n }\n }\n }\n\n function prevQuestion() {\n let _questionNo = questionNo - 1;\n while (_questionNo >= 1) {\n if (totalQuestions.sequence[_questionNo]?.skip) {\n _questionNo--;\n } else {\n setQuestionNo(_questionNo);\n setVisualQuestionNo(visualQuestionNo - 1);\n return;\n }\n }\n }\n\n function PreCloseSurvey() {\n if (questionNo + 1 <= totalQuestions.runningTotal) {\n nextQuestion();\n return false;\n } else {\n if (!ruleFeedbackComplete) {\n setAskFeedback(true);\n return false;\n }\n setAskFeedback(false);\n setComplete(true);\n return true;\n }\n }\n\n useEffect(() => {\n if (get_brief_response?.response?.id) {\n setNoResponse(false);\n } else {\n setNoResponse(true);\n }\n }, [get_brief_response]);\n\n useEffect(() => {\n setPrevResponse(null);\n if (questionNo) {\n const QueType = totalQuestions?.sequence?.[questionNo]?.quesType;\n // console.log(QueType)\n if (QueType === categoryType) {\n setPrevResponse(get_brief_response?.answers?.categories?.[questionNo]);\n }\n if (QueType === questionsType) {\n setPrevResponse(get_brief_response?.answers?.questions?.[questionNo]);\n }\n if (QueType === commentsType) {\n setPrevResponse(get_brief_response?.answers?.comments?.[questionNo]);\n }\n }\n }, [totalQuestions, get_brief_response.answers, questionNo]);\n\n useEffect(() => {\n setShowPrev(false);\n setShowNext(false);\n setBriefResponse(get_brief_response);\n\n if (!questionNo) {\n setShowPrev(false);\n setShowNext(false);\n }\n if (questionNo === 1) {\n setShowPrev(false);\n if (questionNo <= get_brief_response?.high_answer) {\n if (questionNo < totalQuestions?.total) {\n setShowNext(true);\n }\n }\n }\n if (questionNo > 1) {\n setShowPrev(true);\n if (questionNo <= get_brief_response?.high_answer) {\n if (questionNo < totalQuestions?.total) {\n setShowNext(true);\n }\n }\n }\n //\n setSurveyDeleted(\n get_brief_response?.to_delete ? get_brief_response?.to_delete : false\n );\n setSurveyDeletedOn(\n get_brief_response?.deleted_on ? get_brief_response?.deleted_on : false\n );\n setSurveyStatus(\n get_brief_response?.survey_status ? get_brief_response?.survey_status : 0\n );\n\n if (get_brief_response?.response?.stored_response?.answers) {\n setQuestionAnswers(\n get_brief_response?.response?.stored_response?.answers\n );\n }\n if (get_brief_response?.response?.stored_response?.feedback) {\n setSurveyFeedbackResp(\n get_brief_response?.response?.stored_response?.feedback\n );\n }\n\n // if (get_brief_response?.response?.stored_response?.modular_response) {\n // setSurveyModularResp(\n // get_brief_response?.response?.stored_response?.modular_response\n // );\n // }\n\n if (get_brief_response?.response?.stored_response?.survey_personality) {\n setSurveyPersonalityResp(\n get_brief_response?.response?.stored_response?.survey_personality\n );\n }\n \n }, [get_brief_response, questionNo, totalQuestions]);\n\n useEffect(() => {\n // Run! Like go get some data from an API.\n if (token) {\n dispatch({\n type: SG_START_BRIEF_SURVEY,\n payload: `?token=${token}`,\n });\n }\n }, [dispatch, token]);\n\n // console.log(\"completedRuleFeedback\", completedRuleFeedback)\n // console.log(\"get_brief_response\", get_brief_response)\n\n function submitAnswer() {\n const CompleteCategories = {\n ...questionAnswers?.categories,\n ...prevFoundResponse,\n ...neverAskResponse,\n };\n if (CompleteCategories) {\n CompleteCategories[0] = primaryCategory;\n }\n if (totalQuestions?.questions && questionAnswers?.questions) {\n if (\n totalQuestions?.questions >\n Object.values(questionAnswers?.questions).length\n ) {\n // console.log(\"error found\")\n setSubmitError(\"There was error in the submition please try again!\");\n return;\n }\n }\n\n let _completeCategories = [];\n if (CompleteCategories) {\n _completeCategories = Object.values(CompleteCategories);\n }\n\n let _completeQuestions = [];\n if (questionAnswers.questions) {\n _completeQuestions = Object.values(questionAnswers.questions);\n }\n\n let _completeComments = [];\n if (questionAnswers.comments) {\n _completeComments = Object.values(questionAnswers.comments);\n }\n\n // const QuestionArray = Object.values(questionAnswers.questions).filter(qa => qa.response !== undefined)\n // const surveyComponents = get_brief_response?.modular_response\n // console.log({\n // questions: {\n // questions: _completeQuestions,\n // categories: _completeCategories,\n // comments: _completeComments,\n // },\n // total_question_map: totalQuestions,\n // feedback: completedRuleFeedback,\n // survey_personality: surveyPersonalityResp,\n // modular_response: surveyModularResp,\n // });\n dispatch({\n type: SG_POST_BRIEF_RESPONSE,\n payload: {\n survey_token: briefResponse?.survey_token,\n debrief_schedule: briefResponse?.debrief_schedule,\n employee: briefResponse?.employee,\n validation_token: null,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n feedback: completedRuleFeedback,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n },\n full_response: {\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n feedback: completedRuleFeedback,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n },\n },\n },\n });\n dispatch({\n type: RESET_VALIDATION_TOKEN,\n payload: null,\n });\n dispatch({\n type: CLEAR_ALL,\n payload: null,\n });\n setThankMessage(true);\n }\n\n const IntroQuestionAnswer = () => {\n let CatLength = 0;\n if (categoryQues) {\n CatLength = categoryQues?.length;\n }\n const NewValidationToken = uuidv4();\n\n const payload = {\n current_question: CatLength > 0 ? 0 : 1,\n current_answer: 0,\n high_answer: 0,\n answers: {\n categories: {},\n questions: {},\n comments: {},\n },\n complete: false,\n intro_completed: true,\n validation_token: NewValidationToken,\n modular_response: get_brief_response?.modular_response,\n };\n\n setDirection(1);\n dispatch({\n type: NEW_VALIDATION_TOKEN,\n payload: NewValidationToken,\n });\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload: {\n total_categories: CatLength,\n total_questions: totalQuestions?.runningTotal,\n current_category: CatLength > 0 ? 1 : 0,\n category_answer: 0,\n high_category: 0,\n total_question_map: totalQuestions,\n ...payload,\n },\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n validation_token: NewValidationToken,\n query: `?token=${token}&start=true`,\n },\n });\n }\n\n setShowIntro(true);\n nextQuestion();\n };\n\n const Intro2QuestionAnswer = () => {\n setShowIntro2(true);\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: questionAnswers,\n complete: false,\n intro_completed: showIntro,\n intro2_completed: true,\n validation_token: validationToken,\n survey_personality: get_brief_response?.survey_personality,\n in_survey_personality: get_brief_response?.in_survey_personality,\n modular_response: get_brief_response?.modular_response,\n };\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload: {\n intro2_completed: true,\n },\n });\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: validationToken,\n },\n });\n }\n };\n\n const saveCategoryAnswer = (response) => {\n let _answers = questionAnswers?.categories;\n setDirection(1);\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n setQuestionAnswers({\n categories: _answers,\n questions: questionAnswers?.questions,\n comments: questionAnswers?.comments,\n });\n\n let _complete = PreCloseSurvey();\n // payload for storing response\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n questions: questionAnswers?.questions,\n comments: questionAnswers?.comments,\n categories: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n intro2_completed: showIntro2,\n validation_token: validationToken,\n in_survey_personality:\n get_brief_response?.stored_response?.in_survey_personality,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: validationToken,\n },\n });\n }\n };\n\n const saveQuestionAnswer = (response) => {\n let _answers = questionAnswers.questions;\n setDirection(1);\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n setQuestionAnswers({\n categories: questionAnswers?.categories,\n comments: questionAnswers?.comments,\n questions: _answers,\n });\n let _complete = PreCloseSurvey();\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n categories: questionAnswers?.categories,\n comments: questionAnswers?.comments,\n questions: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n intro2_completed: showIntro2,\n validation_token: validationToken,\n in_survey_personality:\n get_brief_response?.stored_response?.in_survey_personality,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: validationToken,\n },\n });\n }\n };\n\n const saveCommentAnswer = (response) => {\n // console.log(response)\n let _answers = questionAnswers.comments;\n setDirection(1);\n if (_answers?.questionNo) {\n _answers.questionNo = response;\n } else {\n _answers[questionNo] = response;\n }\n\n setQuestionAnswers({\n categories: questionAnswers?.categories,\n questions: questionAnswers?.questions,\n comments: _answers,\n });\n\n let _complete = PreCloseSurvey();\n\n setComplete(_complete);\n const payload = {\n visual_question: visualQuestionNo,\n current_question: questionNo,\n current_answer: questionNo,\n high_answer:\n questionNo > briefResponse?.high_answer\n ? questionNo\n : briefResponse?.high_answer,\n answers: {\n categories: questionAnswers?.categories,\n questions: questionAnswers?.questions,\n comments: _answers,\n },\n complete: _complete,\n intro_completed: showIntro,\n intro2_completed: showIntro2,\n validation_token: validationToken,\n in_survey_personality:\n get_brief_response?.stored_response?.in_survey_personality,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n };\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload,\n });\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n stored_response: payload,\n query: `?token=${token}`,\n validation_token: validationToken,\n },\n });\n }\n };\n\n // console.log(briefResponse?.high_answer)\n // console.log(\"questionNo\", questionNo)\n // console.log(\"visualQuestionNo\", visualQuestionNo)\n\n const forward = () => {\n if (briefResponse?.high_answer >= questionNo) {\n setPrevResponse(null);\n setDirection(1);\n if (questionNo + 1 <= totalQuestions.runningTotal) {\n nextQuestion();\n setComplete(false);\n } else {\n setComplete(true);\n }\n }\n };\n\n const back = () => {\n if (questionNo > 1) {\n setDirection(0);\n setPrevResponse(null);\n setComplete(false);\n if (questionNo === totalQuestions.runningTotal) {\n setComplete(false);\n if (questionNo === briefResponse?.current_question) {\n dispatch({\n type: UPDATE_BRIEF_RESPONSE,\n payload: {\n current_question: 0,\n current_answer: 0,\n complete: false,\n },\n });\n } else {\n prevQuestion();\n }\n } else {\n prevQuestion();\n }\n }\n };\n\n const getBackgroundColor = () => {\n if (background) {\n return \"#66D686\";\n }\n if (organizationInfo?.survey_background) {\n return organizationInfo.survey_background;\n }\n return \"#002046\";\n };\n\n const getTextColor = () => {\n if (organizationInfo?.survey_button_text) {\n return organizationInfo.survey_button_text;\n }\n return \"#4048FF\";\n };\n\n const getSurveyFont = () => {\n if (organizationInfo?.survey_font) {\n return organizationInfo.survey_font;\n }\n return \"Poppins, sans-serif;\";\n };\n\n useEffect(() => {\n if (get_errors?.errors?.error?.request?.response) {\n let RESP = JSON.parse(get_errors?.errors?.error?.request?.response);\n setSubmitError(RESP?.detail);\n }\n }, [get_errors]);\n\n useEffect(() => {\n // setPageLoading(true);\n setDefaultMessage({\n title: \"Looking for Survey\",\n subTitle: \"Please wait while we try and get that survey loaded\",\n });\n const timer1 = setTimeout(() => {\n setDefaultMessage({\n title: \"No Survey details found\",\n subTitle:\n \"Unfortunately we have not been able to retrive any information on this survey\",\n });\n }, 5000);\n return () => clearTimeout(timer1);\n }, [noResponse]);\n\n const Main_section = () => {\n // const introText = \"Innerlogic processes your personal data and aggregates responses on behalf of OTP. Your personal data is never directly personally identifiable to your NSO and is only ever presented in an anonymized fashion. Please consult our privacy statement for further details.\"\n const consentText =\n \"Do you agree with your personal data being processed as described above and in our privacy statement? You must click accept in order to give your feedback.\";\n const consentTextFR =\n \"Acceptez-vous que vos données personnelles soient traitées comme décrit ci-dessus et dans notre déclaration de confidentialité ? Vous devez cliquer sur accepter pour donner votre avis.\";\n\n const EndText =\n \"Congratulations on completing every question in this survey! Your valuable insights matter to us. Go ahead and hit that 'Submit' button to share your thoughts and help shape our organization's future.\";\n const EndTextFR =\n \"Vous avez répondu à toutes les questions de ce sondage. Merci de soumettre vos réponses.\";\n\n const customAgreement = (\n setConsentProvided(checked)}\n hasConsented={consentProvided}\n language={language}\n />\n );\n\n if (!showIntro) {\n // ask for existing data in storage\n if (storedResponseFound) {\n return (\n \n );\n }\n\n return (\n \n ) : (\n \n {language === 1\n ? \"Indice de Culture Sportive\"\n : \"Sport Culture Index\"}\n \n )\n }\n intro={\"test\"}\n setShowIntro={setShowIntro}\n saveAnswer={IntroQuestionAnswer}\n consentText={consentText}\n consentCheckedCb={(response) => setConsentProvided(response)}\n customElement={customAgreement}\n surveyEnabled={consentProvided}\n textColor={getTextColor()}\n background={getBackgroundColor()}\n language={language}\n customContent={get_brief_response?.response?.questions}\n />\n );\n\n // return \n // \t\t: {language === 1 ? 'Indice de Culture Sportive' : 'Sport Culture Index'}}\n // \tintro={'test'}\n // \tsetShowIntro={setShowIntro}\n // \tsaveAnswer={IntroQuestionAnswer}\n // \tconsentText={consentText}\n // \tconsentCheckedCb={(response) => setConsentProvided(response)}\n // \tcustomElement={customAgreement}\n // \tsurveyEnabled={consentProvided}\n // \ttextColor={getTextColor()}\n // \tbackground={getBackgroundColor()}\n // \tlanguage={language}\n // \tcustomContent={get_brief_response?.response?.questions}\n\n // />\n }\n\n // comments feedback as for more info based on rules set for min - max for each question\n if (askFeedback) {\n return (\n setFeedbackKey(feedbackKey + 1)}\n setAskFeedback={setAskFeedback}\n setComplete={setComplete}\n />\n );\n }\n\n if (totalQuestions?.sequence[questionNo]?.quesType === categoryType) {\n // console.log(\"totalQuestions?.sequence[questionNo]?.quesType === categoryType 1205\")\n return (\n \n );\n }\n\n if (!showIntro2) {\n return (\n f?.priority == \"primary\"\n )}\n text={\n language == 1\n ? get_brief_response?.response?.questions?.intro2_fr\n ? get_brief_response?.response?.questions?.intro2_fr\n : get_brief_response?.response?.questions?.intro2\n : get_brief_response?.response?.questions?.intro2\n }\n />\n );\n }\n\n // console.log(\"totalQuestions?.sequence[questionNo]?.quesType\", totalQuestions?.sequence[questionNo]?.quesType)\n // console.log(\"complete\", complete)\n\n // regular question answer template\n if (!complete) {\n if (totalQuestions?.sequence[questionNo]?.quesType === questionsType) {\n return (\n setBackground(b)}\n qualifier={organizationInfo?.survey_qualifier}\n question={\n questions.filter(\n (q) => q.order === questionNo - totalQuestions?.category\n )[0]\n }\n />\n );\n }\n if (totalQuestions?.sequence[questionNo]?.quesType === commentsType) {\n if (!showIntro3) {\n return (\n setShowIntro3(true)}\n textColor={getTextColor()}\n background={getBackgroundColor()}\n surveyName={surveyName}\n language={language}\n organizationInfo={organizationInfo}\n organization={get_brief_response?.response?.organization_name}\n primary={get_brief_response?.response?.employee_category.find(\n (f) => f.priority == \"primary\"\n )}\n text={get_brief_response?.response?.questions?.comment_intro}\n />\n );\n }\n\n \n // questions which need answer in comments\n return (\n saveQ(r)}\n saveCommentAnswer={saveCommentAnswer}\n response={prevResponse}\n textColor={getTextColor()}\n language={language}\n question={\n askComments.filter(\n (q) => Number(q.order) === questionNo - totalQuestions?.category\n )[0]\n }\n />\n );\n }\n }\n\n if (showInSurveyPersonality) {\n return (\n \n );\n }\n // console.log(\"modularComplete \", modularComplete, \" complete \", complete)\n // this is the last step in main section\n if (complete) {\n // before we close check for any additonal modular questions which are enabled\n if (!modularComplete) {\n return (\n \n );\n }\n\n if (modularComplete) {\n console.log(\"modularComplete \", modularComplete, \" complete \", complete)\n return (\n submitAnswer()}\n language={language}\n textColor={getTextColor()}\n background={getBackgroundColor()}\n intro={language === 1 ? EndTextFR : EndText}\n />\n );\n }\n }\n\n return (\n \n );\n };\n\n if (thankMessage) {\n const ThanksMessage = \"Thank you for contributing\";\n\n const ThanksMessageFR = \"Merci pour votre réponse au sondage\";\n\n let end_message = get_brief_response?.response?.questions?.end_message;\n let messages = [ThanksMessage, ThanksMessageFR];\n return (\n \n \n \n );\n }\n\n if (noResponse) {\n return (\n \n \n \n \n \n );\n }\n if (!token) {\n return (\n \n );\n }\n\n if (submitError) {\n return (\n \n \n \n \n \n \n \n );\n }\n\n if (surveyDeleted) {\n return (\n \n \n \n \n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n {Main_section()}\n \n \n {showLanguage ? (\n \n ) : (\n \"\"\n )}\n\n {/* {enableNavigation && showIntro && (\n \n \n
\n \n {language === 1\n ? \"Indice de Culture Sportive\"\n : get_brief_response?.response?.questions?.title}\n \n {visualQuestionNo === 0 ? 1 : visualQuestionNo}{\" \"}\n {language === 1 ? \"de\" : \"of\"} {totalQuestions?.total} questions\n
\n
\n \n \n \n
\n )} */}\n \n );\n};\n\nexport default Audit;\n\nconst transition = keyframes`\n from {opacity: 0;}\n to {opacity: 1;}\n`;\n\nconst fadeout = keyframes`\n 0% {opacity: 1;}\n 50% {opacity: 0;}\n 100% {opacity: 1;}\n`;\n\nconst transition2 = keyframes`\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n`;\n\nconst Container = styled.div`\n height: 100vh;\n width: 100vw;\n min-height: 600px;\n background-color: ${(props) => props.background};\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n font-family: ${(props) => props.font};\n\n animation: ${(props) =>\n props.toggle\n ? css`\n ${transition} 1.5s linear\n `\n : css`\n ${transition2} 1.5s linear\n `};\n`;\n\nconst CounterContainer = styled.div`\n position: fixed;\n bottom: 10px;\n right: 20px;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: white;\n font-size: 14px;\n\n @media only screen and (min-width: 992px) {\n bottom: 50px;\n right: 50px;\n font-size: 20px;\n }\n\n @media (max-width: 350px) {\n bottom: 20px;\n }\n`;\n\nconst Counter = styled.div`\n padding: 5px 10px 5px 10px;\n background-color: ${(props) => props.color};\n\n font-size: 12px;\n border-radius: 7px;\n margin-right: 10px;\n\n @media only screen and (min-width: 992px) {\n padding: 10px 25px 10px 25px;\n font-size: 16px;\n margin-right: 25px;\n }\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n font-weight: bold;\n\n @media only screen and (min-width: 992px) {\n margin-bottom: 5px;\n font-size: 20px;\n }\n`;\n\nconst Space = styled.div`\n @media only screen and (min-width: 992px) {\n width: 20px;\n }\n`;\n\nconst Logo = styled.img`\n width: 200px;\n margin-bottom: 10px;\n animation: ${(props) =>\n props.fade\n ? css`\n ${fadeout} 0.5s linear\n `\n : `none`};\n position: absolute;\n\n top: -100px;\n left: 30px;\n\n @media (max-width: 768px) {\n top: -100px;\n left: 30px;\n }\n\n @media (max-height: 800px) {\n top: 50px;\n }\n\n @media (max-width: 376px) {\n height: 20px;\n top: 20px;\n }\n\n @media (max-height: 550px) {\n top: 20px;\n }\n`;\n\nconst TitleTop = styled.div`\n font-size: 40px;\n font-weight: bold;\n color: white;\n margin-top: 10px;\n display: ${(props) => (props.show ? \"flex\" : \"none\")};\n margin-bottom: 30px;\n\n @media (max-width: 768px) {\n font-size: 26px;\n }\n\n @media (max-width: 376px) {\n height: 26px;\n font-size: 22px;\n }\n`;\n","export const MISSING_OR_INVALID_TOKEN = \"We're sorry, but this survey does not appear to be valid. Please contact your innerlogic administrator for additional information or help if this issue persists.\"\nexport const ERROR_ON_SUBMISSION = \"There was error in the submition please try again!\"\nexport const THANKYOU_MESSAGE = {\n EN: 'Thank you for contributing',\n FR: 'Merci pour votre réponse au sondage',\n ES: 'Gracias por contribuir'\n}","import React, { useState, useEffect } from 'react'\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useDispatch } from \"react-redux\";\n\nimport { Button, Header, Icon, Modal } from 'semantic-ui-react'\n\nimport {\n RESET_VALIDATION_TOKEN,\n UPDATE_BRIEF_RESPONSE_ANSWERS,\n UPDATE_STORED_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n} from \"constants/actions\";\n\nimport {words} from '../AuditV2/translations'\n\n// const VALIDATION_TOKEN = localStorage.getItem(\"validation_token\");\n// storedResponseFound={storedResponseFound}\n// storedResponse={storedResponse}\nfunction AuditExistingDataFound({ \n setQuestionNo,\n setVisualQuestionNo,\n briefResponseId,\n token,\n resetValidationToken,\n storedResponse,\n storedResponseFound,\n setCurrentQuestionNo,\n setCurrentQuestionDet,\n setQuestionSequenceMap, \n setShowingStoredResponse,\n language}) {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(true)\n\n const [timed, setTimed] = useState(true)\n const [defaultMessage, setDefaultMessage] = useState({\n header: \"Searching ...\",\n text: \"Looking for an earlier response, please wait ...\"\n })\n// c0ab26e7-151b-4acd-b73e-9b6ca86f5e83\n function ResetSurvey() {\n const NewValidationToken = uuidv4()\n localStorage.setItem(\"validation_token\", NewValidationToken)\n resetValidationToken(NewValidationToken)\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: NewValidationToken,\n reset_stored_data : true, // makes validation_token null\n }\n })\n setOpen(false)\n setShowingStoredResponse(true)\n }\n\n useEffect(() => {\n\t\tconst timer1 = setTimeout(() => {\n\t\t\tsetTimed(false)\n\t\t}, 1000);\n\t\treturn () => clearTimeout(timer1);\n\t},[timed])\n\n\n function Continue() {\n let NUMS = storedResponse?.current_question\n if (NUMS) { \n const _checkFdbk = storedResponse?.questionSequenceMap?.[NUMS]?.response?.skipped\n // check if follow up and feedback is skipped\n if (_checkFdbk) {\n NUMS--\n }\n setCurrentQuestionNo(NUMS)\n setCurrentQuestionDet(storedResponse?.questionSequenceMap?.[NUMS])\n setQuestionSequenceMap(storedResponse?.questionSequenceMap)\n \n }\n\n dispatch({\n type: UPDATE_BRIEF_RESPONSE_ANSWERS,\n payload: storedResponse, \n \n });\n setShowingStoredResponse(true)\n setQuestionNo(NUMS)\n setOpen(false)\n setVisualQuestionNo(storedResponse?.visual_question || NUMS)\n }\n\n return (\n \n
\n {timed ? \n \n :\n \n }\n {language? words['Searching'][language] :defaultMessage?.header}\n\n
\n \n

\n {language? words['Searching2'][language] : defaultMessage?.text}\n

\n
\n \n \n\n \n {language? words['Load'][language]:'Load saved survey'}\n \n\n \n \n )\n}\n\nexport default AuditExistingDataFound","import React from 'react';\n// import styled from 'styled-components';\nimport BulletProgressBar from '../IntroScreens/BulletProgressBar';\nimport CustomButton from './Button';\nimport { introductionBtn, nextQuestionBtn, submitSurvey } from 'constants/questionTypes';\n\nimport {words} from '../translations'\n// intro pages\n\n\nfunction NavigationButtons({\n introQuestion,\n currentQuestionDet,\n handleBack,\n handleNext,\n surveyFinished,\n submitAnswer,\n StartSurvey,\n language,\n color,\n disabledNext = false\n }) {\n let currentQues = currentQuestionDet?.sort_order\n\n if (surveyFinished) {\n return null\n }\n if (currentQuestionDet?.buttonType === introductionBtn) {\n return (\n <>\n \n {words[currentQuestionDet?.buttonText][language]}\n )\n }\n if (currentQuestionDet?.buttonType === submitSurvey) {\n return (\n <>\n {words['back'][language]}\n {words[currentQuestionDet?.buttonText][language]}\n \n )\n }\n return (\n <>\n {words['back'][language]}\n {words[currentQuestionDet?.buttonText][language]}\n \n )\n\n}\n\nexport default NavigationButtons\n\n","import React, { useEffect, useState, useRef } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { Loader } from \"semantic-ui-react\";\nimport Typewriter from \"typewriter-effect\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { SG_GET_CHAT_GPT_SUMMARY_MULTI, CLEAR_CHAT_GPT_SUMMARY } from \"constants/actions\";\nimport Logo from \"assets/images/Ilogo.svg\";\nimport {words} from '../translations'\nimport SkipModal from \"../Components/SkipModal\";\n\nconst follow_ups = [\n {\n question: \"This is the first question that was asked\",\n response: \"This was the response to the question\",\n },\n];\nconst outcome =\n \"What follow up question would a world class culture consultant ask based on the feedback given that would help to get more context around this area, and also help to generate recommendations for this organization?\";\n\nconst context =\n \"This is a conversation between a person and an organization trying to dig deeper into the feedback given in a culture survey.\";\n\nconst contextFr =\n \"Ceci est une conversation entre une personne et une organisation qui essaie d'approfondir les commentaires donnés dans une enquête sur la culture.\";\n\nconst outcomeFr = `Quelle question de suivi un consultant en culture de classe mondiale poserait-il en fonction des commentaires donnés qui aideraient à obtenir plus de contexte dans ce domaine et aideraient également à générer des recommandations pour cette organisation?`;\n\nconst contextEs =\n \"Esta es una conversación entre una persona y una organización que intenta profundizar en los comentarios dados en una encuesta cultural.\";\n\nconst outcomeEs = `¿Qué pregunta de seguimiento haría un consultor de cultura de clase mundial basada en los comentarios dados que ayudarían a obtener más contexto en esta área y también ayudarían a generar recomendaciones para esta organización?`;\n\n\nconst MultiFollowUp = ({\n localToken,\n questionSequenceMap,\n currentQuestionDet,\n saveUpdatedAnswers,\n direction,\n handleNext,\n handleBack,\n language\n}) => {\n const dispatch = useDispatch();\n const timeout = useRef(null);\n const [prompt, setPrompt] = useState(false);\n const [loading, setLoading] = useState(true);\n const [question, setQuestion] = useState(\"\");\n const textareaRef = useRef();\n const [feedbackText, setFeedbackText] = useState(\"\");\n const [refQues, setRefQues] = useState(\"\");\n // skip modal\n const [open, setOpen] = useState(false);\n\n // console.log(\"MultiFollowUp\", currentQuestionDet)\n // console.log(\"feedbackText\", feedbackText)\n useEffect(() => {\n const timer1 = setTimeout(() => {\n \n }, 500);\n return () => clearTimeout(timer1);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // console.log(\"currentQuestionDet?.response?.question\", currentQuestionDet)\n // console.log(\"!currentQuestionDet?.response?.question\", !currentQuestionDet?.response?.question) \n // console.log(\"!currentQuestionDet?.response?.questio currentQuestionDet?.followUpQuestions?.length >\", !currentQuestionDet?.response?.question &&\n // currentQuestionDet?.followUpQuestions?.length > 0) \n\n useEffect(() => {\n\n let followUpStrings = [];\n // if previous qestions were skipped ignore and skip this\n // we need to add this because of reset changes !currentQuestionDet?.response\n let SkipQuestion = [];\n\n\n if (\n (!currentQuestionDet?.response?.question &&\n currentQuestionDet?.followUpQuestions?.length > 0)\n ) {\n // console.log(\"I am here ======================================= 67\", currentQuestionDet?.id )\n setRefQues(questionSequenceMap[currentQuestionDet.followUpQuestions[0]]);\n currentQuestionDet.followUpQuestions.forEach((cq) => {\n // console.log(\"cq\", cq);\n // console.log(\"questionSequenceMap[cq]\", questionSequenceMap[cq]?.response);\n // console.log(\"questionSequenceMap[cq]?.response?.skipped\", questionSequenceMap[cq]?.response?.skip);\n if (questionSequenceMap[cq]?.response?.skip) {\n SkipQuestion.push(cq);\n }\n\n if(language === 'EN'){\n followUpStrings.push(\n `\\n\\nQuestion:\\n${questionSequenceMap[cq]?.response?.question}\\nResponse:\\n${questionSequenceMap[cq]?.response?.response}\\n`\n );\n }\n if(language === 'FR'){\n followUpStrings.push(\n `\\n\\nQuestion:\\n${questionSequenceMap[cq]?.response?.fr}\\nResponse:\\n${questionSequenceMap[cq]?.response?.response}\\n`\n );\n }\n if(language === 'ES'){\n followUpStrings.push(\n `\\n\\nQuestion:\\n${questionSequenceMap[cq]?.response?.es}\\nResponse:\\n${questionSequenceMap[cq]?.response?.response}\\n`\n );\n }\n });\n\n let _prompt = `Context: ${context}. Here is the sequence of questions and responses so far:`;\n _prompt += followUpStrings.join(\"\");\n _prompt += `Task: Based on this dialogue, ${outcome}. Make sure your response is simple enough for an 7th grader to understand. Only return the question itself.\\n\\nQuestion:\\n`;\n\n if(language=='FR'){\n _prompt = `Contexte: ${contextFr}. Voici la séquence des questions et des réponses jusqu'à présent:`;\n _prompt += followUpStrings.join(\"\");\n _prompt += `Tâche: Sur la base de ce dialogue, ${outcomeFr}. Assurez-vous que votre réponse est assez simple pour qu'un élève de 7e année la comprenne. Ne retournez que la question elle-même.\\n\\nQuestion:\\n`;\n }\n\n if(language=='ES'){\n _prompt = `Contexto: ${contextEs}. Aquí está la secuencia de preguntas y respuestas hasta ahora:`;\n _prompt += followUpStrings.join(\"\");\n _prompt += `Tarea: Basado en este diálogo, ${outcomeEs}. Asegúrese de que su respuesta sea lo suficientemente simple para que un estudiante de 7º grado la entienda. Solo devuelve la pregunta en sí.\\n\\nPregunta:\\n`;\n }\n // console.log(\"SkipQuestion\", SkipQuestion)\n\n if (SkipQuestion?.length > 0) {\n // quwstion was skipped because one of the previous questions was skipped\n if (direction === \"slide-back\") {\n\n handleBack();\n } else {\n const ResponseObj = {\n survey_q_id: currentQuestionDet.id,\n comments: `askOnRefResp - out of range skip checked question ${SkipQuestion}`,\n skip: true,\n feedback: \"\",\n dimension: refQues?.response?.dimension,\n factor: refQues?.response?.factor,\n fr: refQues?.response?.fr,\n es: refQues?.response?.es,\n id: refQues?.response?.id,\n q: refQues?.response?.q,\n s: refQues?.response?.s,\n ques_order: refQues?.response?.ques_order,\n question: refQues?.response?.question,\n response: \"\",\n reverse: refQues?.response?.reverse,\n role: refQues?.response?.role,\n type: refQues?.response?.type,\n prompt: \"\",\n prompt_question: \"\",\n };\n saveUpdatedAnswers(\n currentQuestionDet.id,\n ResponseObj,\n currentQuestionDet?.quesType\n );\n setOpen(false);\n handleNext();\n }\n } else {\n\n \n setPrompt(_prompt);\n // console.log(_prompt)\n dispatch({\n type: SG_GET_CHAT_GPT_SUMMARY_MULTI,\n payload: {\n token: localToken,\n payload: {\n prompt: `${_prompt}`,\n survey_token: localToken,\n question_no: currentQuestionDet?.sno,\n },\n },\n });\n\n setFeedbackText(\"\");\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n currentQuestionDet.id,\n // dispatch,\n // localToken,\n // currentQuestionDet,\n // questionSequenceMap,\n // handleNext,\n // refQues,\n // saveUpdatedAnswers, \n // handleBack,\n // direction\n ]);\n\n // useEffect(() => {\n // const delayedExecution = () => {\n // // Your code to run after the delay\n // let followUpStrings = [];\n // // if previous qestions were skipped ignore and skip this\n // // we need to add this because of reset changes !currentQuestionDet?.response\n // let SkipQuestion = [];\n // if (\n // (!currentQuestionDet?.response?.question &&\n // currentQuestionDet?.followUpQuestions?.length > 0)\n // ) {\n // console.log(\"I am here ======================================= 67\", currentQuestionDet?.id )\n // setRefQues(questionSequenceMap[currentQuestionDet.followUpQuestions[0]]);\n // currentQuestionDet.followUpQuestions.forEach((cq) => {\n // // console.log(\"cq\", cq);\n // // console.log(\"questionSequenceMap[cq]\", questionSequenceMap[cq]?.response);\n // // console.log(\"questionSequenceMap[cq]?.response?.skipped\", questionSequenceMap[cq]?.response?.skip);\n // if (questionSequenceMap[cq]?.response?.skip) {\n // SkipQuestion.push(cq);\n // }\n // followUpStrings.push(\n // `\\n\\nQuestion:\\n${questionSequenceMap[cq]?.response?.question}\\nResponse:\\n${questionSequenceMap[cq]?.response?.response}\\n`\n // );\n // });\n \n // let _prompt = `Context: ${context}. Here is the sequence of questions and responses so far:`;\n // _prompt += followUpStrings.join(\"\");\n // _prompt += `Task: Based on this dialogue, ${outcome}. Make sure your response is simple enough for an 7th grader to understand. Only return the question itself.`;\n \n // console.log(\"SkipQuestion\", SkipQuestion)\n \n // if (SkipQuestion?.length > 0) {\n // // quwstion was skipped because one of the previous questions was skipped\n // if (direction === \"slide-back\") {\n // handleBack();\n // } else {\n // const ResponseObj = {\n // survey_q_id: currentQuestionDet.id,\n // comments: `askOnRefResp - out of range skip checked question ${SkipQuestion}`,\n // skip: true,\n // feedback: \"\",\n // dimension: refQues?.response?.dimension,\n // factor: refQues?.response?.factor,\n // fr: refQues?.response?.fr,\n // id: refQues?.response?.id,\n // q: refQues?.response?.q,\n // ques_order: refQues?.response?.ques_order,\n // question: refQues?.response?.question,\n // response: \"\",\n // reverse: refQues?.response?.reverse,\n // role: refQues?.response?.role,\n // type: refQues?.response?.type,\n // prompt: \"\",\n // prompt_question: \"\",\n // };\n // saveUpdatedAnswers(\n // currentQuestionDet.id,\n // ResponseObj,\n // currentQuestionDet?.quesType\n // );\n // setOpen(false);\n // handleNext();\n // }\n // } else {\n // setPrompt(_prompt);\n // dispatch({\n // type: SG_GET_CHAT_GPT_SUMMARY_MULTI,\n // payload: {\n // token: localToken,\n // payload: {\n // prompt: `${_prompt}`,\n // survey_token: localToken,\n // question_no: currentQuestionDet?.sno,\n // },\n // },\n // });\n \n // setFeedbackText(\"\");\n // }\n // }\n \n // console.log('Delayed execution completed.');\n // };\n \n // // Set a delay of, for example, 3000 milliseconds (3 seconds)\n // const delayMilliseconds = 10;\n \n // // Use setTimeout to delay the execution of delayedExecution\n // const timeoutId = setTimeout(delayedExecution, delayMilliseconds);\n \n // // Cleanup the timeout to avoid memory leaks\n // return () => clearTimeout(timeoutId);\n \n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [questionSequenceMap.id]); // Empty dependency array to run this effect only once after the initial render\n\n \n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${\n textareaRef.current.scrollHeight - 16\n }px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = \"inherit\";\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n const ResponseObj = {\n ques_sort_order: currentQuestionDet.id,\n ques_order: currentQuestionDet?.id,\n id: currentQuestionDet.id,\n followUpQuestions: currentQuestionDet?.followUpQuestions,\n question_type: currentQuestionDet?.quesType,\n question: question,\n fr: refQues?.response?.fr,\n es: refQues?.response?.es,\n response: event.target.value,\n prompt: prompt,\n clicked: true,\n };\n\n saveUpdatedAnswers(\n currentQuestionDet?.id,\n ResponseObj,\n currentQuestionDet.quesType\n );\n };\n\n const { get_chat_gpt } = useSelector(\n (state) => ({\n get_chat_gpt: state.chatgpt,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n\n if (currentQuestionDet?.response?.question) {\n setLoading(false);\n\n let _question = currentQuestionDet?.response?.question;\n\n if (language === \"FR\" && currentQuestionDet?.response?.fr) {\n _question = currentQuestionDet?.response?.fr;\n }\n\n if (language === \"ES\" && currentQuestionDet?.response?.es) {\n _question = currentQuestionDet?.response?.es;\n }\n\n setQuestion(_question);\n setFeedbackText(currentQuestionDet?.response?.response);\n } else {\n setLoading(get_chat_gpt?.response_pending);\n setQuestion(get_chat_gpt.chat_gpt_summary?.response);\n }\n }, [get_chat_gpt, currentQuestionDet]);\n\n useEffect(() => {\n if (get_chat_gpt?.response_pending === true) {\n timeout.current = setTimeout(() => {\n setLoading(false)\n SkipQuestion()\n }, 15000);\n }\n\n if (get_chat_gpt?.response_pending === false) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n\n setLoading(get_chat_gpt?.response_pending);\n if (get_chat_gpt.chat_gpt_summary?.response) {\n setQuestion(get_chat_gpt.chat_gpt_summary?.response);\n }\n\n return () => {\n clearTimeout(timeout.current);\n };\n }, [get_chat_gpt]);\n\n useEffect(() => {\n if (get_chat_gpt?.response_pending === false) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n\n return () => {\n clearTimeout(timeout.current);\n };\n }, [get_chat_gpt]);\n\n const handleSkip = () => {\n setOpen(true);\n dispatch({\n type: CLEAR_CHAT_GPT_SUMMARY,\n })\n };\n\n function SkipQuestion() {\n const ResponseObj = {\n survey_q_id: currentQuestionDet.id,\n feedback: \"\",\n dimension: refQues?.response?.dimension,\n factor: refQues?.response?.factor,\n fr: refQues?.response?.fr,\n es: refQues?.response?.es,\n id: refQues?.response?.id,\n q: refQues?.response?.q,\n ques_order: refQues?.response?.ques_order,\n question: refQues?.response?.question,\n response: \"\",\n reverse: refQues?.response?.reverse,\n role: refQues?.response?.role,\n type: refQues?.response?.type,\n prompt: \"\",\n prompt_question: \"\",\n };\n saveUpdatedAnswers(\n currentQuestionDet.id,\n ResponseObj,\n currentQuestionDet?.quesType\n );\n setOpen(false);\n dispatch({\n type: CLEAR_CHAT_GPT_SUMMARY,\n })\n handleNext();\n }\n\n return (\n \n \n <Circle>\n <IMG src={Logo} />\n </Circle>\n Innerlogic AI\n \n \n {loading ? (\n \n ) : (\n {\n typewriter\n .changeDelay(14)\n .typeString(question)\n .pauseFor(100)\n .start();\n }}\n />\n )}\n \n\n \n {words['Skip'][language]} >\n \n \n );\n};\n\nexport default MultiFollowUp;\n\n// {/* \n// <Circle><IMG src={Logo}/></Circle>Innerlogic AI\n// \n// {loading? :\n// {\n// typewriter.changeDelay(14)\n// .typeString(question)\n// .pauseFor(100)\n// .start()\n\n// }}\n// />}\n// \n\n// \n\n// Skip >\n// \n// */}\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 600px;\n width: 100%;\n font-family: \"Raleway\", sans-serif;\n`;\n\nconst Description = styled.div`\n color: #2a3039;\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n margin-bottom: 34px;\n line-height: 1.6;\n`;\nconst Title = styled.div`\n color: #2d70e2;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 40px;\n`;\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2a3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: \"Raleway\", sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2d70e2;\n outline: 0;\n }\n`;\n\nconst Circle = styled.div`\n width: 40px;\n height: 40px;\n border-radius: 10px;\n background-color: #2d70e2;\n margin-right: 10px;\n min-width: 40px;\n align-items: center;\n display: flex;\n justify-content: center;\n position: relative;\n`;\n\nconst IMG = styled.img`\n width: 20px;\n`;\n\nconst Skip = styled.div`\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n color: #2d70e2;\n margin-top: 40px;\n cursor: pointer;\n`;\n","import styled from \"styled-components\";\nimport React, { useState, useEffect } from \"react\";\nimport { modularOutcomeTypeQuestion } from \"constants/questionTypes\";\nimport {words} from '../translations'\nimport { use } from \"i18next\";\n// ... styled-components code ...\n\nconst SliderOutcome = ({\n id,\n resetResponsesOnChange,\n question,\n saveUpdatedAnswers,\n currentQuestionDet,\n questionSequenceMap,\n language\n}) => {\n const [sliderValue, setSliderValue] = useState(5);\n const [isDragging, setIsDragging] = useState(false);\n const [clickedVal, setClickedVal] = useState(false);\n const [sliderScale, setSliderScale] = useState(question.scale);\n const [sliderWords, setSliderWords] = useState(words);\n\n useEffect(() => {\n if (question.scale) {\n setSliderScale(question.scale);\n }\n }, [question]);\n \n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById(\"slider-track\");\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n setSliderValue(Math.round(sliderValue));\n saveValue(Math.round(sliderValue));\n };\n\n const handleTouchMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById(\"slider-track\");\n const trackRect = track.getBoundingClientRect();\n let newValue =\n ((e.touches[0].clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue);\n };\n\n const handleTouchEnd = () => {\n let newValue = Math.round(sliderValue);\n setIsDragging(false);\n setSliderValue(newValue);\n saveValue(newValue);\n };\n\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"touchmove\", handleTouchMove);\n window.addEventListener(\"touchend\", handleTouchEnd);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n window.removeEventListener(\"touchend\", handleTouchEnd);\n };\n }, [isDragging, sliderValue]);\n\n useEffect(() => {\n if (currentQuestionDet?.response) {\n setSliderValue(currentQuestionDet?.response?.response);\n setClickedVal(true);\n } else {\n setSliderValue(5);\n setClickedVal(false);\n }\n }, [currentQuestionDet]);\n\n const saveValue = (newValue) => {\n setClickedVal(true);\n //\n SaveResponse(newValue);\n };\n\n const handleClick = (e) => {\n const track = document.getElementById(\"slider-track\");\n // const track = document.getElementById(id);\n const rect = track.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const newValue = Math.round((x / rect.width) * 10);\n setSliderValue(newValue);\n setClickedVal(true);\n //\n SaveResponse(newValue);\n };\n\n\n // save the response\n function SaveResponse(newValue) {\n // reset associated questions\n // check if value changed\n if (currentQuestionDet?.response &&\n currentQuestionDet?.response?.response !== newValue) {\n if (currentQuestionDet?.resetOnChange) {\n // resetResponsesOnChange\n if (resetResponsesOnChange[currentQuestionDet?.id]) {\n // reset the responses to each of the linked questions\n // console.log(resetResponsesOnChange[currentQuestionDet?.id]);\n resetResponsesOnChange[currentQuestionDet?.id].map((sq) => {\n console.log(\"questionSequenceMap[sq].response \", questionSequenceMap[sq]);\n questionSequenceMap[sq].response = false;\n questionSequenceMap[sq].clicked = false;\n return null;\n });\n }\n }\n }\n\n const QuesResp = {\n order: currentQuestionDet?.id,\n clicked: true,\n s: currentQuestionDet?.s,\n q: currentQuestionDet?.q,\n id: currentQuestionDet?.id,\n ques_order: currentQuestionDet?.id,\n scale: question?.scale,\n question: question?.question,\n response: newValue,\n ques_sort_order: currentQuestionDet?.id,\n };\n saveUpdatedAnswers(\n currentQuestionDet.id,\n QuesResp,\n modularOutcomeTypeQuestion\n );\n }\n\n // Add a function to interpolate between two colors\n const lerpColor = (color1, color2, t) => {\n const r = color1.r + t * (color2.r - color1.r);\n const g = color1.g + t * (color2.g - color1.g);\n const b = color1.b + t * (color2.b - color1.b);\n return { r, g, b };\n };\n\n // Add a function to calculate the thumb color\n const getThumbColor = () => {\n const color1 = { r: 248, g: 168, b: 176 };\n const color2 = { r: 254, g: 205, b: 141 };\n const color3 = { r: 149, g: 230, b: 210 };\n const t = sliderValue / 10;\n\n if (t < 0.5232) {\n const newT = t / 0.5232;\n const interpolatedColor = lerpColor(color1, color2, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n } else {\n const newT = (t - 0.5232) / (1 - 0.5232);\n const interpolatedColor = lerpColor(color2, color3, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n }\n };\n\n const handleMouseDown = () => {\n setIsDragging(true);\n };\n\n const handleTouchStart = () => {\n setIsDragging(true);\n };\n\n const thumbPosition = {\n left: `calc(${(sliderValue / 10) * 100}% - 10px )`,\n };\n\n const dotCount = 11;\n const dots = Array.from({ length: dotCount }, (_, index) => (\n \n ));\n\n \n\n const get_slider_words = (text) => {\n console.log(text)\n if (words[text]) {\n return words[text][language];\n }\n\n return text;\n\n }\n\n return (\n \n \n \n {dots}\n \n \n {Math.round(sliderValue)}\n \n \n \n \n \n\n \n \n {sliderScale.length > 0 ? get_slider_words(sliderScale[0]) : \"Strongly Disagree\"}\n \n \n {sliderScale.length > 2 ?get_slider_words(sliderScale[1]) : words[\"Neutral\"][language]}\n \n \n {sliderScale.length > 1\n ? get_slider_words(sliderScale[sliderScale.length - 1])\n : \"Strongly Agree\"}\n \n \n \n );\n};\n\nexport default SliderOutcome;\n\nconst Container = styled.div`\n width: 100%;\n padding-top: 70px;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\n\nconst ScaleLabel = styled.span`\n font-size: 14px;\n`;\n\nconst SliderContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst ScaleLabelsContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 8px;\n`;\n\nconst TrackWrapper = styled.div`\n position: relative;\n height: calc(10px + 10px); // 5px above and below the track area\n cursor: pointer;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\n\nconst Track = styled.div`\n width: 100%;\n height: 6px;\n background: linear-gradient(\n to right,\n #f8a8b0 0%,\n #fecd8d 52.32%,\n #95e6d2 100%\n );\n position: relative;\n border-radius: 5px;\n cursor: pointer;\n`;\n\nconst Thumb = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #000;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n user-select: none;\n border: 4px solid white;\n box-shadow: 0px 8px 20px rgba(63, 134, 254, 0.08);\n`;\n\nconst Tooltip = styled.div`\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: #666d79;\n border-radius: 8px;\n width: 33px;\n height: 29px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => (props.clicked ? \"#FFFFFF\" : \"#D6DBDF\")};\n font-size: 14px;\n font-weight: ${(props) => (props.clicked ? \"700\" : \" 400\")};\n margin-bottom: 8px; // 8px above the track\n`;\n\nconst Triangle = styled.div`\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 4px 0;\n border-color: #666d79 transparent transparent;\n`;\n\nconst DotsContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 1px;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Dot = styled.div`\n width: 4px;\n height: 4px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n transform: translateY(-50%);\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport SliderOutcome from \"../Components/SliderOutcome\";\n\nconst QuestionOutcome = ({\n question,\n saveUpdatedAnswers,\n currentQuestionDet,\n resetResponsesOnChange,\n questionSequenceMap,\n language,\n teamName\n}) => {\n\n console.log(currentQuestionDet, 'currentQuestionDet')\n\n const getTitle = ()=>{\n if(currentQuestionDet?.fr_name && language === 'FR'){\n return currentQuestionDet?.fr_name\n } \n if(currentQuestionDet?.es_name && language === 'ES'){\n return currentQuestionDet?.es_name\n }\n\n return currentQuestionDet?.name\n }\n\n const getQuestion = ()=>{\n if(question?.fr && language === 'FR'){\n return question?.fr.replace('{entity}', teamName)\n } \n if(question?.es && language === 'ES'){\n return question?.es.replace('{entity}', teamName)\n }\n\n return question?.question.replace('{entity}', teamName)\n }\n\n\n return (\n \n \n {getTitle()}\n \n {/* In this culture... */}\n {getQuestion()}\n \n \n );\n};\nexport default QuestionOutcome;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst Title = styled.div`\n color: #2d70e2;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 40px;\n`;\n\nconst Qualifier = styled.div`\n color: #2a3039;\n font-size: 20px;\n font-weight: 600;\n margin-bottom: 14px;\n`;\n\nconst QuestionText = styled.div`\n font-size: 16px;\n color: #2a3039;\n white-space: pre-wrap;\n`;\n","import { modularCommentTypeQuestion } from \"constants/questionTypes\";\nimport React, { useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\n\nimport {words} from '../translations'\n\nconst QuestionComments = ({\n questionSequenceMap,\n direction,\n handleNext,\n handleBack,\n saveUpdatedAnswers,\n currentQuestionDet,\n language,\n}) => {\n const textareaRef = useRef();\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${\n textareaRef.current.scrollHeight - 16\n }px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = \"inherit\";\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const askOnRefResp = questionSequenceMap[currentQuestionDet?.askOnRefQID];\n \n console.log(\"currentQuestionDet\", currentQuestionDet);\n // console.log(\"askOnRefResp\", askOnRefResp);\n // console.log(`currentQuestionDet?.askOnRef?.value?.length > 0\n // && Number.isInteger(askOnRefResp?.response?.response)`, \n // currentQuestionDet?.askOnRef?.value?.length > 0 &&\n // Number.isInteger(askOnRefResp?.response?.response));\n console.log(\"currentQuestionDet?.askOnRef?.value\", currentQuestionDet?.askOnRef?.value);\n console.log(\"askOnRefResp?.response?.response\", Number.isInteger(askOnRefResp?.response?.response));\n // askOnRef: {value\": [ 2, 5], enabled: true, ref_type: 'outcome', ref_question_id: '1.1'}\n // askOnRefQID: 47\n useEffect(() => {\n // Introduce a microsecond delay (e.g., 100 milliseconds)\n // const delay = 10;\n\n // Check if the required data is loaded\n if (\n currentQuestionDet?.askOnRef?.value?.length > 0 &&\n Number.isInteger(askOnRefResp?.response?.response)\n ) {\n // Use setTimeout to delay the execution of the effect\n // const timerId = setTimeout(() => {\n // Rest of your existing code\n let _refQuesResp = askOnRefResp?.response?.response;\n // Convert _refQuesResp to an integer if it's a valid number\n if (!isNaN(_refQuesResp)) {\n _refQuesResp = parseInt(_refQuesResp, 10);\n }\n const currentAskRefVal = currentQuestionDet?.askOnRef?.value;\n\n function isInRange(value, min, max) {\n console.log(\"value, min, max\", value, min, max);\n if ( value >= min && value <= max)\n {\n return false\n }\n return true\n }\n\n const skipQuestion = isInRange(\n _refQuesResp,\n currentAskRefVal[0],\n currentAskRefVal[1]\n );\n\n // console.log(\"isInRange\", isInRange(\n // _refQuesResp,\n // currentAskRefVal[0],\n // currentAskRefVal[1]\n // ));\n \n console.log(\"currentQuestionDet.id\", currentQuestionDet.id);\n\n if (skipQuestion) {\n // console.log(\"out of range skip\", currentQuestionDet.id);\n if (direction === \"slide-back\") {\n handleBack();\n } else {\n const QuesResp = {\n ques_sort_order: currentQuestionDet?.id,\n comments: `askOnRefResp - out of range skip [checking for ${_refQuesResp} in ${currentAskRefVal}]`,\n ques_order: currentQuestionDet?.id,\n response: null,\n scale: currentQuestionDet?.scale,\n question: currentQuestionDet?.question?.question,\n fr: currentQuestionDet?.question?.fr,\n es: currentQuestionDet?.question?.es,\n question_type: currentQuestionDet?.quesType,\n order: currentQuestionDet?.id,\n clicked: true,\n skip: true,\n s: currentQuestionDet?.s,\n q: currentQuestionDet?.q,\n id: currentQuestionDet?.id,\n };\n\n saveUpdatedAnswers(\n currentQuestionDet?.id,\n QuesResp,\n modularCommentTypeQuestion\n );\n handleNext();\n }\n }\n\n // console.log(\n // \"is in range ask\",\n // currentQuestionDet.id,\n // isInRange(_refQuesResp, currentAskRefVal[0], currentAskRefVal[1])\n // );\n // }, delay);\n\n // Clear the timeout on component unmount to avoid memory leaks\n // return () => clearTimeout(timerId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n currentQuestionDet,\n askOnRefResp,\n // handleNext,\n // saveUpdatedAnswers,\n // direction,\n // handleBack,\n ]);\n\n const handleChange = (event) => {\n // setFeedbackText(event.target.value);\n const QuesResp = {\n ques_sort_order: currentQuestionDet?.id,\n ques_order: currentQuestionDet?.id,\n response: event.target.value,\n scale: currentQuestionDet?.scale,\n question: currentQuestionDet?.question?.question,\n fr: currentQuestionDet?.question?.fr,\n es: currentQuestionDet?.question?.es,\n question_type: currentQuestionDet?.quesType,\n order: currentQuestionDet?.id,\n clicked: true,\n s: currentQuestionDet?.s,\n q: currentQuestionDet?.q,\n id: currentQuestionDet?.id,\n };\n saveUpdatedAnswers(\n currentQuestionDet?.id,\n QuesResp,\n modularCommentTypeQuestion\n );\n };\n\n const getDescription = () => {\n if (language === \"FR\" && currentQuestionDet?.question?.fr) {\n return currentQuestionDet?.question?.fr;\n }\n if (language === \"ES\" && currentQuestionDet?.question?.es) {\n return currentQuestionDet?.question?.es;\n }\n return currentQuestionDet?.question?.question;\n }\n\n return (\n \n {words['Feedback'][language]}\n \n {getDescription()}\n \n\n \n \n );\n};\n\nexport default QuestionComments;\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 600px;\n width: 100%;\n font-family: \"Raleway\", sans-serif;\n`;\n\nconst Description = styled.div`\n color: #2a3039;\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n margin-bottom: 34px;\n line-height: 1.6;\n white-space: pre-wrap;\n`;\nconst Title = styled.div`\n color: #2d70e2;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 40px;\n`;\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2a3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: \"Raleway\", sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2d70e2;\n outline: 0;\n }\n`;\n","import React,{useState,useEffect} from 'react';\nimport styled, { keyframes, css } from 'styled-components';\nimport '../index.css'\n\nimport {personalityQuestionList, personalityWordList} from \"constants/questionTypes\"\nimport { personalityTypeQuestion } from 'constants/questionTypes';\n\n\nconst PersonalityChoice = ({ saveUpdatedAnswers, currentQuestionDet }) => {\n\n const [visibleChoices, setVisibleChoices] = useState([]);\n const [selectedChoice, setSelectedChoice] = useState(null);\n\n\n const handleSelection = (choice) => {\n setSelectedChoice(choice);\n const QuesResp = {\n ques_sort_order: currentQuestionDet?.id,\n question: currentQuestionDet?.perListNo,\n response: choice,\n clicked: true,\n }\n saveUpdatedAnswers(currentQuestionDet?.id, QuesResp, personalityTypeQuestion)\n };\n\n useEffect(() => {\n // setSelectedChoice(null)\n if (currentQuestionDet?.response?.response !== null) {\n setSelectedChoice(currentQuestionDet?.response?.response)\n } \n }, [currentQuestionDet.response])\n// perListNo\n useEffect(() => {\n let timeoutIds = [];\n personalityWordList.map((choice, index) => {\n const timeoutId = setTimeout(() => {\n setVisibleChoices((prevVisibleChoices) => [...prevVisibleChoices, choice]);\n }, index * 20); // Adjust the delay as needed (300ms here)\n timeoutIds.push(timeoutId);\n });\n\n return () => {\n timeoutIds.forEach((timeoutId) => clearTimeout(timeoutId));\n };\n }, []);\n\n\n return (\n \n Personality Questions\n {`I see myself as ${personalityQuestionList?.[(currentQuestionDet?.perListNo -1 )]}`}\n \n {visibleChoices.map((choice, index) => (\n \n \n handleSelection(index)}\n />\n \n {choice}\n \n \n \n ))}\n \n \n );\n};\n\nexport default PersonalityChoice;\n\n\nconst ChoiceContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width:calc(100% - 40px);\n max-width:600px;\n`;\n\nconst Choice = styled.div`\nmargin-left:20px;\n`;\n\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom: 40px;\n`\n\nconst fadeInMoveDown = keyframes`\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst StyledChoice = styled.div`\n transform: translateY(-15px);\n opacity:0;\n animation-name: ${fadeInMoveDown};\n animation-duration: 300ms;\n animation-fill-mode: forwards;\n ${({ delay }) =>\n delay &&\n css`\n animation-delay: ${delay}ms;\n `}\n`;\nconst Question = styled.div`\n color:#2A3039;\n font-size: 20px;\n font-weight:600;\n margin-bottom:14px;\n`\n\nconst ListContainer = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n width:100%;\n`;\n\nconst ListItem = styled.label`\n display: block;\n position: relative;\n padding: 16px;\n padding-left: 40px;\n cursor: pointer;\n user-select: none;\n width:100%;\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : 'transparent')};\n color: ${({ isSelected }) => (isSelected ? '#2D70E2' : 'inherit')};\n \n &:hover {\n background-color: ${({ isSelected }) => (isSelected ? '#EBF1FD' : '#f0f0f0')};\n }\n`;\n\nconst RadioInput = styled.input.attrs({ type: 'radio' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:checked ~ .checkmark {\n background-color: #EBF1FD;\n border-color: #2D70E2;\n }\n\n &:checked ~ .checkmark:after {\n display: block;\n }\n`;\n\nconst Checkmark = styled.span`\n position: absolute;\n top: 50%;\n left: 16px;\n transform: translateY(-50%);\n height: 16px;\n width: 16px;\n background-color: #fff;\n border: 2px solid #ccc;\n border-radius: 50%;\n\n &:after {\n content: '';\n position: absolute;\n display: none;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #2D70E2;\n transform: translate(-50%, -50%);\n }\n`;\n","import { modularValuesTypeQuestion } from \"constants/questionTypes\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { words } from \"../translations\";\n\nconst QuestionValues = ({ question, saveUpdatedAnswers, currentQuestionDet, language }) => {\n \n const textareaRef = useRef();\n // const [feedbackText, setFeedbackText] = useState('');\n\n // console.log(\"******************************\", currentQuestionDet)\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = `${textareaRef.current.scrollHeight - 16}px`;\n }\n }, []);\n\n const handleInput = (e) => {\n e.target.style.height = 'inherit';\n e.target.style.height = `${e.target.scrollHeight - 16}px`;\n };\n\n const handleChange = (event) => {\n // setFeedbackText(event.target.value);\n const QuesResp = {\n ques_sort_order: currentQuestionDet?.id,\n response: event.target.value,\n scale: question?.scale,\n question: question?.question,\n fr: question?.fr,\n es: question?.es,\n question_type: modularValuesTypeQuestion,\n order: currentQuestionDet?.id,\n clicked: true,\n s: currentQuestionDet?.s,\n q: currentQuestionDet?.q,\n id: currentQuestionDet?.id,\n ques_order: currentQuestionDet?.id,\n\n }\n saveUpdatedAnswers(currentQuestionDet?.id, QuesResp, modularValuesTypeQuestion)\n };\n\n // useEffect(() => {\n // if (currentQuestionDet?.response) {\n // setFeedbackText(currentQuestionDet?.response?.response)\n // } else {\n // setFeedbackText('')\n // }\n // }, [currentQuestionDet])\n\n const getQuestion = () =>{\n if (language === \"FR\" && question?.fr) {\n return question?.fr;\n }\n if (language === \"ES\" && question?.es) {\n return question?.es;\n }\n return question?.question;\n }\n\n\n return (\n \n Values\n \n {getQuestion()}\n \n\n \n \n\n )\n\n}\n\nexport default QuestionValues\n\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width:600px;\n width:100%;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst Description = styled.div`\ncolor: #2A3039;\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 16px;\nmargin-bottom:34px;\nline-height:1.6;\n`\nconst Title = styled.div`\ncolor: #2D70E2;\ntext-transform: uppercase;\nfont-size:14px;\nfont-weight:600;\nmargin-bottom:40px;\n`\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%; \n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2A3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: 'Raleway', sans-serif;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2D70E2;\n outline: 0;\n }\n`;","import React, { useEffect, useState } from \"react\";\nimport styled,{keyframes} from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { Icon } from \"semantic-ui-react\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\"; // new\n\nimport {\n SG_START_BRIEF_SURVEY,\n NEW_VALIDATION_TOKEN,\n RESET_VALIDATION_TOKEN,\n CLEAR_ALL,\n SG_POST_BRIEF_RESPONSE,\n // UPDATE_BRIEF_RESPONSE,\n SG_UPDATE_BRIEF_RESPONSE,\n CLEAR_CHAT_GPT_SUMMARY,\n // SG_GET_ALL_MODULAR_QUESTIONS,\n} from \"constants/actions\";\n\nimport {\n // BrowserView,\n // MobileView,\n isBrowser,\n isMobile,\n deviceType,\n osName,\n osVersion,\n deviceDetect,\n} from \"react-device-detect\";\n\nimport {\n introductionTypeQuestion,\n categoryTypeQuestion,\n questionTypeQuestion,\n feedbackTypeQuestion,\n personalityTypeQuestion,\n modularOutcomeTypeQuestion,\n modularValuesTypeQuestion,\n modularCommentTypeQuestion,\n // commentsType,\n // questionsType,\n ModularSurveyQuestionTypes,\n personalityQuestionList,\n introSectionTypeQuestion,\n followupAiTypeQuestion,\n multiAiFollowupCommentQuestion, // feedback_builder multiAiFollowupCommentQuestion\n completedTypeQuestion,\n submitTypeQuestion,\n commentTypeQuestion,\n submitSurvey,\n nextQuestionBtn,\n introductionBtn,\n} from \"constants/questionTypes\";\n\nimport {\n MISSING_OR_INVALID_TOKEN,\n ERROR_ON_SUBMISSION,\n THANKYOU_MESSAGE,\n} from \"constants/messaging\";\n\nimport { AuditRunRules } from \"utilities/FeedbackRules\";\nimport { ModularSurveyCheck } from \"utilities/ModularRules\";\nimport AuditExistingDataFound from \"survey/SurveyComponents/AuditExistingData\";\n\n// new survey\nimport Question from \"./questionTypes/Question\";\n\nimport ProgressBar from \"./Components/ProgressBar\";\n\nimport Feedback from \"./questionTypes/Feedback\";\nimport Categories from \"./questionTypes/Categories\";\nimport Introduction from \"./Introduction\";\nimport \"./index.css\";\n\nimport NavigationButtons from \"./Components/NavigationButtons\";\nimport FollowUp from \"./chatGpt/FollowUp\";\nimport MultiFollowUp from \"./chatGpt/MultiFollowUp\";\nimport Submit from \"./questionTypes/Submit\";\nimport IntroSection from \"./IntroSection\";\n\nimport Completed from \"./questionTypes/Completed\";\nimport Language from \"./Language\";\nimport Comments from \"./questionTypes/Comment\";\nimport QuestionModular from \"./questionTypes/QuestionOutcome\";\nimport QuestionComments from \"./questionTypes/QuestionComments\";\nimport PersonalityChoice from \"./questionTypes/PersonalityChoice\";\n\nimport QuestionValues from \"./questionTypes/QuestionValues\";\nimport LogoAnimation from \"survey/SurveyComponents/LogoAnimations\";\nimport {words} from './translations'\nimport { sort } from \"semver\";\nimport { get } from \"http\";\n\n\n// const categoryType = \"category\"\nlet LOCAL_VALIDATION_TOKEN = localStorage.getItem(\"validation_token\");\n\n\nconst arrange_Questions = (questions) => {\n if (questions?.dimensions) {\n return questions.dimensions\n .map((item, i) => {\n return item.factors.map((factor, f) => {\n return factor.questions.map((q, idx) => {\n return {\n question: q.q,\n dimension: i,\n factor: f,\n q: idx,\n role: q.role,\n reverse: q.reverse,\n order: q.id,\n fr: \"fr\" in q ? q.fr : null,\n es: \"es\" in q ? q.es : null,\n title: questions?.question_titles ? factor.title : false,\n qualifier: q?.qualifier,\n scale: q?.scale,\n };\n });\n });\n })\n .flat()\n .flat()\n .sort((a, b) => a.order - b.order);\n }\n};\n\nconst AuditSurvey = () => {\n const dispatch = useDispatch();\n const deviceDetected = deviceDetect();\n\n let { token } = useParams();\n\n // eslint-disable-next-line no-unused-vars\n let [searchParams, setSearchParams] = useSearchParams();\n const direct_language = Number(searchParams.get(\"language\"));\n\n const [noResponse, setNoResponse] = useState(false);\n // const [loading, setLoading] = useState(true)\n\n const [ruleFeedback, setRuleFeedback] = useState(false);\n const [orgRules, setOrgRules] = useState(false);\n\n const [delayedShow, setDelayedShow] = useState(true);\n\n //\n const [questionSequenceMap, setQuestionSequenceMap] = useState(false);\n const [totalQuestions, setTotalQuestions] = useState({\n total: 0,\n runningTotal: 0,\n questions: 0,\n culture: 0,\n sequence: {},\n });\n\n const [showingStoredResponse, setShowingStoredResponse] = useState(false);\n const [questionList, setQuestionList] = useState([]);\n const [categoryQues, setCategoryQues] = useState([]);\n const [employeeCategory, setEmployeeCategory] = useState([]);\n const [showLanguage, setShowLanguage] = React.useState(false);\n const [languages, setLanguages] = React.useState([]);\n\n // stored persisting response\n // const [validationToken, setValidationToken] = useState(false)\n const [briefResponseId, setBriefResponseId] = useState(false);\n const [storedResponseFound, setStoredResponseFound] = useState(false);\n //\n const [briefResponse, setBriefResponse] = useState([]);\n const [storedResponse, setStoredResponse] = useState(false);\n const [questionNo, setQuestionNo] = useState(0);\n const [visualQuestionNo, setVisualQuestionNo] = useState(0);\n //\n // const [prevResponse, setPrevResponse] = useState({})\n //\n const [checkRole, setCheckRole] = useState(false);\n\n const [questionAnswers, setQuestionAnswers] = useState({\n categories: {},\n questions: {},\n comments: {},\n });\n\n const [formPayload, setFormPayload] = useState(false);\n // const [thankMessage, setThankMessage] = useState(false)\n\n const [surveyStatus, setSurveyStatus] = useState(0);\n const [surveyDeleted, setSurveyDeleted] = useState(false);\n const [surveyDeletedOn, setSurveyDeletedOn] = useState(false);\n\n const [primaryCategory, setPrimaryCategory] = useState(false);\n // const [surveyName, setSurveyName] = useState(false)\n const [neverAskResponse, setNeverAskResponse] = useState(false);\n const [prevFoundResponse, setPrevFoundResponse] = useState(false);\n\n const [organizationName, setOrganizationName] = useState(\"\");\n\n const [language, setLanguage] = useState(\"EN\");\n\n const [askComments, setAskComments] = useState(false);\n\n const [submitError, setSubmitError] = useState(false);\n const [organizationInfo, setOrganizationInfo] = useState(false);\n const [surveyStandards, setSurveyStandards] = useState(false);\n //\n const [surveyFeedbackResp, setSurveyFeedbackResp] = useState(false);\n const [surveyPersonalityResp, setSurveyPersonalityResp] = useState({});\n const [surveyModularResp, setSurveyModularResp] = useState(false);\n // in_survey_personality\n const [showInSurveyPersonality, setShowInSurveyPersonality] = useState(true);\n\n const [askNextQuestion, setAskNextQuestion] = useState(false);\n //\n const [modSurveyRule, setModSurveyRule] = useState([]);\n // //new\n const [currentQuestionDet, setCurrentQuestionDet] = useState({});\n const [currentQuestionNo, setCurrentQuestionNo] = useState(1);\n const [direction, setDirection] = useState(\"slide\");\n const [isVisible, setIsVisible] = useState(true);\n const [surveyFinished, setSurveyFinished] = useState(false);\n // //new\n const [storedTitle, setStoredTitle] = useState(\"\");\n const [teamName, setTeamName] = useState(\"\");\n\n const [progressBarColor, setProgressBarColor] = useState(\"#f5f5f5\");\n const [sortOrder,setSortOrder] = useState(0)\n const[disableNext,setDisableNext] = useState(false)\n const [height, setHeight] = useState(window.innerHeight);\n\n const { get_brief_response, get_errors } = useSelector(\n (state) => ({\n get_brief_response: state.briefresponse,\n get_errors: state.errors,\n }),\n shallowEqual\n );\n\n \n\n useEffect(() => {\n const updateHeight = () => {\n setHeight(window.innerHeight);\n };\n\n window.addEventListener(\"resize\", updateHeight);\n\n // Set the initial height based on viewport\n updateHeight();\n\n // Cleanup event listener on unmount\n return () => {\n window.removeEventListener(\"resize\", updateHeight);\n };\n }, []);\n\n useEffect(() => {\n if (direct_language === 1) {\n setLanguage('FR');\n }\n if(direct_language === 2){\n setLanguage('ES');\n }\n }, [direct_language]);\n\n // useEffect(() => {\n // \tsetTimeout(() => {\n // \t\tsetLoading(false)\n // \t}, 1500)\n // }, [])\n\n useEffect(() => {\n const RuleRun = AuditRunRules(questionList, orgRules, questionAnswers,surveyStandards);\n setRuleFeedback(RuleRun);\n }, [\n orgRules,\n questionList,\n questionAnswers,\n currentQuestionNo,\n showingStoredResponse,\n surveyStandards,\n ]);\n\n // console.log(\"orgRules\", orgRules)\n // console.log(\"RuleFeedback\", ruleFeedback); \n useEffect(() => {\n setTimeout(() => {\n if (get_brief_response?.validation_token === null) {\n // console.log(\"NEW_VALIDATION_TOKEN updated **************************\");\n const _newToken = uuidv4();\n localStorage.setItem(\"validation_token\", _newToken);\n LOCAL_VALIDATION_TOKEN = _newToken;\n } \n }, 500); // 1000 milliseconds = 1 second\n }, [get_brief_response.validation_token]);\n\n // console.log(\"modSurveyRule\", modSurveyRule)\n // console.log(\"orgRules\", orgRules)\n // // console.log(\"questionAnswers\", questionAnswers)\n // console.log(\"get_brief_response?.response?.stored_response\", get_brief_response?.response?.stored_response)\n // console.log(\"storedResponseFound\", storedResponseFound)\n // console.log(\"storedResponse\", storedResponse)\n // console.log(\"get_brief_response?.response?.stored_response\", get_brief_response?.response?.stored_response)\n\n // console.log(\"storedResponse validation_token\", storedResponse?.validation_token)\n // console.log(\"get_brief_response?.validation_token\",get_brief_response?.validation_token)\n // console.log(questionSequenceMap)\n // console.log(\"formPayload\",formPayload)\n // console.log(\"survey standards\", get_brief_response?.response?.survey_standards)\n \n // ModularSurveyCheck\n // console.log(\"ModularSurveyRule get_brief_response\", get_brief_response)\n useEffect(() => {\n if (get_brief_response?.surveyComponents) {\n console.log(get_brief_response)\n const surveyComponents = get_brief_response?.surveyComponents;\n setModSurveyRule(ModularSurveyCheck({ surveyComponents }));\n }\n }, [get_brief_response.surveyComponents]);\n\n useEffect(() => {\n setSurveyStandards(get_brief_response?.response?.survey_standards);\n },[get_brief_response.response.survey_standards])\n\n useEffect(()=>{\n setSortOrder(get_brief_response?.response?.organization_services?.find(f=>f.name=='Audit')?.question_sort_order)\n },[get_brief_response.response.organization_services])\n\n // // modSurveyRule\n // useEffect(() => {\n // if (!surveyDeleted) {\n // if (modSurveyRule && token) {\n // modSurveyRule.map((ms) => {\n // dispatch({\n // type: SG_GET_ALL_MODULAR_QUESTIONS,\n // payload: `?token=${token}&component=${ms?.value}`,\n // });\n // return null;\n // });\n // }\n // }\n // }, [dispatch, modSurveyRule, token, surveyDeleted]);\n\n // console.log(\"get_brief_response?.modular_question ===========\", modSurveyRule)\n // console.log(\"get_brief_response?.modular_question ===========\", get_modular_questions)\n // console.log(get_brief_response)\n // console.log(get_brief_response?.visual_question)\n // console.log(totalQuestions)\n // console.log(\"questionSequenceMap\", questionSequenceMap)\n\n // console.log(\"show not have In Survey Personality enabled\")\n useEffect(() => {\n const SurveyPersonality =\n get_brief_response?.response?.organization_services?.filter(\n (os) => os.name === \"In Survey Personality\"\n )?.[0];\n // console.log(SurveyPersonality)\n // console.log(\"should not contain in_survey_personality\")\n // console.log(get_brief_response?.response?.employee_survey_spec?.['survey_personality'])\n const sp_earlier =\n get_brief_response?.response?.employee_survey_spec?.[\n \"survey_personality\"\n ];\n if (SurveyPersonality?.enabled === true) {\n // personality completed ealier dont ask again but inject in the response\n if (sp_earlier) {\n setShowInSurveyPersonality(false);\n // setSurveyPersonalityResp(sp_earlier?.survey_personality)\n } else {\n // console.log(get_brief_response?.response?.employee_survey_spec)\n // personality survey completed and refreshing and collection from store data\n if (get_brief_response?.in_survey_personality) {\n setShowInSurveyPersonality(false);\n // setSurveyPersonalityResp(get_brief_response?.survey_personality)\n } else {\n setShowInSurveyPersonality(true);\n }\n }\n } else {\n setShowInSurveyPersonality(false);\n }\n }, [\n get_brief_response.organization_services,\n get_brief_response.in_survey_personality,\n get_brief_response.survey_personality,\n get_brief_response.response.employee_survey_spec,\n get_brief_response.response.organization_services,\n ]);\n\n // console.log(\"surveyFeedbackResp\", surveyFeedbackResp)\n // console.log(get_brief_response?.response?.stored_response)\n // // console.log(\"surveyModularResp\", surveyModularResp)\n\n useEffect(() => {\n if (get_brief_response?.response?.stored_response?.answers) {\n setQuestionAnswers(\n get_brief_response?.response?.stored_response?.answers\n );\n }\n if (formPayload?.feedback?.length > 0) {\n setSurveyFeedbackResp(formPayload?.feedback);\n } else {\n setSurveyFeedbackResp(\n get_brief_response?.response?.stored_response?.feedback\n );\n }\n if (get_brief_response?.response?.stored_response?.modular_response) {\n setSurveyModularResp(\n get_brief_response?.response?.stored_response?.modular_response\n );\n }\n if (get_brief_response?.response?.stored_response?.survey_personality) {\n setSurveyPersonalityResp(\n get_brief_response?.response?.stored_response?.survey_personality\n );\n }\n }, [get_brief_response.response.stored_response, formPayload.feedback]);\n\n useEffect(() => {\n setQuestionList(arrange_Questions(get_brief_response?.response?.questions));\n setBriefResponse(get_brief_response);\n //\n\n setOrgRules(get_brief_response?.response?.organization_info?.rules);\n //\n setSurveyDeleted(\n get_brief_response?.to_delete ? get_brief_response?.to_delete : false\n );\n setSurveyDeletedOn(\n get_brief_response?.deleted_on ? get_brief_response?.deleted_on : false\n );\n setSurveyStatus(\n get_brief_response?.survey_status ? get_brief_response?.survey_status : 0\n );\n\n setOrganizationName(get_brief_response?.response?.organization_name);\n if (get_brief_response?.response?.employee_category) {\n if (get_brief_response?.response?.organization_info?.organization == 1) {\n setOrganizationName(\n `${get_brief_response?.response?.organization_name}`\n );\n }\n else{\n let EmpPrimary = get_brief_response?.response?.employee_category.find(\n (ec) => ec?.priority === \"primary\"\n )?.value;\n\n const primaryFrench = get_brief_response?.response?.primary_question[0]?.options.find(f=>f.name == EmpPrimary)?.fr\n if(language==\"FR\" && primaryFrench){\n EmpPrimary = primaryFrench\n }\n\n\n setTeamName(EmpPrimary);\n\n if(get_brief_response?.response?.organization_info?.organization == 2){\n setOrganizationName(\n `${EmpPrimary}`\n );\n }\n else{\n setOrganizationName(\n `${get_brief_response?.response?.organization_name} - ${EmpPrimary}`\n );\n }\n }\n }\n\n let _id = \"\";\n let _response = 0;\n let subfactorFound = false;\n let _subfactor = null;\n const SurveyName = get_brief_response?.response?.survey_name;\n // setSurveyName(get_brief_response?.response?.survey_name)\n if (get_brief_response?.response?.primary_question) {\n get_brief_response.response.primary_question.map((pq) => {\n _id = pq.id;\n if (pq?.subfactor) {\n subfactorFound = true;\n }\n pq &&\n pq.answers.map((aq) => {\n if (aq?.name === SurveyName) {\n if (subfactorFound) {\n _subfactor = aq?.id;\n _response = aq?.parent_id;\n } else {\n _response = aq?.id;\n }\n }\n return null;\n });\n return null;\n });\n }\n\n setBriefResponseId(get_brief_response?.id);\n setPrimaryCategory({\n id: _id,\n response: _response,\n subfactor: _subfactor,\n priority: \"primary\",\n });\n }, [get_brief_response]);\n\n useEffect(() => {\n if (get_brief_response?.response?.questions?.title) {\n setStoredTitle(get_brief_response?.response?.questions?.title);\n }\n\n if (get_brief_response?.response?.questions?.language) {\n // console.log(get_brief_response)\n if(get_brief_response?.response?.questions?.languages){\n setLanguages(get_brief_response?.response?.questions?.languages);\n \n }\n setShowLanguage(true);\n \n // console.log(get_brief_response)\n }\n }, [get_brief_response]);\n\n // question no based on role skip logic\n // step 1 set role\n useEffect(() => {\n if (questionAnswers?.categories) {\n const CatRes = Object.values(questionAnswers?.categories).filter(\n (value) => value !== null\n );\n setCheckRole(\n CatRes.filter((ct) => ct.priority === \"secondary\")?.[0]?.response\n );\n }\n // console.log(\"setCheckRole changed\")\n }, [questionAnswers]);\n\n // // Ask Comments\n useEffect(() => {\n const _askComments = [];\n if (get_brief_response?.response?.questions?.comments) {\n if (get_brief_response?.response?.questions?.comments?.length > 0) {\n get_brief_response.response.questions.comments.map((ac, i) => {\n return _askComments.push({ ...ac, id: i + 1 });\n });\n }\n }\n // console.log(\"setAskComments changed\")\n setAskComments(_askComments);\n }, [get_brief_response.response.questions]);\n\n // console.log(get_brief_response?.response?.culture_questions)\n useEffect(() => {\n if (get_brief_response?.response) {\n // console.log(\"setQuestionList categoryQues setEmployeeCategory setOrganizationInfo changed\")\n\n setEmployeeCategory(get_brief_response?.response?.employee_category);\n setOrganizationInfo(get_brief_response?.response?.organization_info);\n\n setCategoryQues(\n get_brief_response?.response?.culture_questions?.sort(\n (a, b) => a?.id - b?.id\n )\n );\n\n //Do something here to set the language component\n if (get_brief_response?.response?.questions?.language) {\n console.log(\n \"get_brief_response?.response?.questions?.language\",\n get_brief_response?.response?.questions?.language\n );\n }\n }\n }, [get_brief_response.response]);\n\n // console.log(storedResponse?.validation_token === get_brief_response?.response?.validation_token)\n // console.log(\"VALIDATION_TOKEN \", VALIDATION_TOKEN )\n // console.log(\"get_brief_response?.response?.validation_token\", get_brief_response?.response?.validation_token)\n\n // console.log(\"et_brief_response?.response?.stored_response?.high_answer > 4\", get_brief_response?.response?.stored_response?.high_answer > 4)\n // console.log(get_brief_response?.response?.stored_response)\n\n // primary Response\n useEffect(() => {\n setStoredResponseFound(false);\n if (get_brief_response?.response?.validation_token) {\n if (get_brief_response?.response?.stored_response?.high_answer > 4) {\n // if clicked once it showing_stored_response === true, show only if its false\n // it resets to false on refresh\n const uuid_str = (get_brief_response?.response?.validation_token || \"\")\n .toLowerCase()\n .trim();\n const valid_token = LOCAL_VALIDATION_TOKEN?.toLowerCase().trim();\n\n if (showingStoredResponse === false) {\n // console.log(\"I am heree eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\")\n if (uuid_str === valid_token) {\n // console.log(\"matched uuid_str === valid_token +++++++++++++++++++++++++++++++++\")\n setStoredResponseFound(true);\n setStoredResponse(get_brief_response?.response?.stored_response);\n }\n }\n }\n }\n }, [get_brief_response.response, showingStoredResponse]);\n\n // the core list for managing survey within the app\n useEffect(() => {\n const _seq = {};\n\n \n let visualTotal = 0;\n const resetResponsesOnChange = {};\n const hockeyIntro = organizationInfo?.public_intro === \"hockey\" || organizationInfo?.public_intro === \"hockey_members\" || organizationInfo?.public_intro === \"hockey_participants\";\n\n let running_total = 0;\n let total = 0;\n let introQuestion = 0;\n\n if(hockeyIntro){\n _seq[1] = {\n id: 1,\n sort_order: 1,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n intro_type:organizationInfo?.public_intro,\n intro_id: 6,\n total: 1,\n skip: false,\n buttonText: \"Start\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n\n _seq[2] = {\n id: 2,\n sort_order: 2,\n intro_id: 4,\n total: 2,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n buttonText: \"I agree\",\n survey_sort_order: sortOrder,\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n\n\n running_total = 2;\n total = 2;\n introQuestion = 2;\n\n }\n else{\n _seq[1] = {\n id: 1,\n sort_order: 1,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n intro_id: 1,\n total: 1,\n skip: false,\n buttonText: \"Start\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n _seq[2] = {\n id: 2,\n sort_order: 2,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n intro_id: 2,\n total: 2,\n skip: false,\n buttonText: \"Next\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n _seq[3] = {\n id: 3,\n sort_order: 3,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n intro_id: 3,\n total: 3,\n buttonText: \"Next\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n _seq[4] = {\n id: 4,\n sort_order: 4,\n intro_id: 4,\n total: 4,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n buttonText: \"I agree\",\n survey_sort_order: sortOrder,\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n \n running_total = 4;\n total = 4;\n introQuestion = 4;\n }\n\n \n\n if(organizationInfo?.public_intro === \"hockey_participants\"){\n _seq[3] = {\n id: 3,\n sort_order: 3,\n intro_id: 7,\n total: 3,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n buttonText: \"I agree\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n\n total+=1;\n running_total+=1;\n introQuestion+=1;\n }\n\n if(sortOrder === 160){\n _seq[5] = {\n id: 5,\n sort_order: 5,\n intro_id: 5,\n total: 5,\n quesType: introductionTypeQuestion,\n buttonType: introductionBtn,\n buttonText: \"I agree\",\n visualTotal,\n clicked: true,\n response: { response: true },\n };\n\n total+=1;\n running_total+=1;\n introQuestion+=1;\n }\n\n \n let CatLength = 0;\n // ai feedback questions\n let feedbackLength = 0;\n\n const _prevResp = {};\n const _neverAskResp = {};\n\n if (categoryQues) {\n let catQuesNo = 0;\n categoryQues.map((q, v) => {\n if (q?.input === \"always_ask\") {\n // console.log(q)\n running_total += 1;\n visualTotal += 1;\n CatLength += 1;\n total += 1;\n catQuesNo += 1;\n _seq[running_total] = {\n id: running_total,\n from: `always_ask ${q.id}`,\n category_question_id: q.id,\n quesType: categoryTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: false,\n sno: running_total,\n catQuesNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n }\n // change this to ids\n if (q?.input === \"ask_if_not_found\") {\n // setPrevFoundResponse\n const _empCat = employeeCategory.filter(\n (ec) => ec?.name_id === q.id\n )?.[0]?.value_id;\n if (_empCat) {\n // console.log(_empCat)\n // found dont ask\n const _response = q.answers.filter((rq) => rq?.id === _empCat)?.[0]\n ?.id;\n running_total += 1;\n\n CatLength += 1;\n total += 0;\n catQuesNo += 1;\n _seq[running_total] = {\n id: running_total,\n from: `ask_if_not_found ${q.id}`,\n category_question_id: q.id,\n quesType: categoryTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: true,\n sno: running_total,\n catQuesNo,\n visualTotal,\n clicked: false,\n category_id: q.id,\n response: { response: _response },\n priority: q.priority,\n buttonText: \"Next\",\n };\n _prevResp[running_total] = {\n id: q.id,\n response: _response,\n priority: q.priority,\n };\n } else {\n //\n running_total += 1;\n CatLength += 1;\n visualTotal += 1;\n total += 1;\n catQuesNo += 1;\n _seq[running_total] = {\n id: running_total,\n from: `ask_if_not_found ${q.id}`,\n category_question_id: q.id,\n quesType: categoryTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: false,\n sno: running_total,\n catQuesNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n }\n return null;\n }\n // change this to ids\n // not shown in total\n if (q?.input === \"never_ask\") {\n const _empCat = employeeCategory.filter(\n (ec) => ec?.name_id === q.id\n )?.[0]?.value_id;\n running_total += 1;\n CatLength += 1;\n total += 0;\n catQuesNo += 1;\n _seq[running_total] = {\n id: running_total,\n from: `never_ask ${q?.id}`,\n category_question_id: q.id,\n quesType: categoryTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: true,\n sno: running_total,\n catQuesNo,\n visualTotal,\n clicked: false,\n category_id: q.id,\n response: { response: _empCat ? _empCat : null },\n priority: q.priority,\n buttonText: \"Next\",\n };\n\n _neverAskResp[running_total] = {\n id: q.id,\n response: _empCat ? _empCat : null,\n priority: q.priority,\n };\n return null;\n }\n // no input type found show in total\n if (!q?.input) {\n running_total += 1;\n CatLength += 1;\n total += 1;\n visualTotal += 1;\n catQuesNo += 1;\n _seq[running_total] = {\n id: running_total,\n from: `undefined`,\n category_question_id: q.id,\n quesType: categoryTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: false,\n sno: running_total,\n catQuesNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n }\n return null;\n });\n\n // category completed\n if(total>4){\n running_total += 1;\n total += 1;\n _seq[running_total] = {\n id: running_total,\n sort_order: running_total,\n quesType: categoryTypeQuestion,\n total: running_total,\n visualTotal,\n skip: false,\n buttonType: nextQuestionBtn,\n organizationName:organizationName,\n clicked: true,\n response: { response: true },\n buttonText: \"Next\"\n };\n }\n \n }\n\n setPrevFoundResponse(_prevResp);\n setNeverAskResponse(_neverAskResp);\n\n let quesLength = 0;\n if (questionList) {\n let quesListNo = 0;\n questionList.map((q, v) => {\n if (checkRole) {\n if (q?.role) {\n if (q?.role.includes(checkRole)) {\n running_total += 1;\n quesLength += 1;\n total += 1;\n visualTotal += 1;\n quesListNo += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: questionTypeQuestion,\n buttonType: nextQuestionBtn,\n from: \"question for specific role\",\n skip: false,\n sno: running_total,\n quesListNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n } else {\n running_total += 1;\n // quesLength += 1\n quesListNo += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: questionTypeQuestion,\n buttonType: nextQuestionBtn,\n from: \"question not included role specifics\",\n skip: true,\n sno: running_total,\n quesListNo,\n visualTotal,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n }\n } else {\n running_total += 1;\n quesLength += 1;\n total += 1;\n visualTotal += 1;\n quesListNo += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: questionTypeQuestion,\n buttonType: nextQuestionBtn,\n from: \"question without role\",\n skip: false,\n sno: running_total,\n quesListNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n }\n } else {\n running_total += 1;\n quesLength += 1;\n total += 1;\n visualTotal += 1;\n quesListNo += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: questionTypeQuestion,\n buttonType: nextQuestionBtn,\n from: \"no role checked\",\n skip: false,\n sno: running_total,\n quesListNo,\n visualTotal,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n }\n });\n }\n\n let maxRows =\n get_brief_response?.response?.organization_info?.rules?.filter(\n (ru) => ru?.type === \"max\"\n )?.[0]?.rows || 0;\n let minRows =\n get_brief_response?.response?.organization_info?.rules?.filter(\n (ru) => ru?.type === \"min\"\n )?.[0]?.rows || 0;\n const TotalRows = Number(maxRows) + Number(minRows);\n\n if (TotalRows) {\n Array.from(Array(TotalRows)).map((_, i) => {\n visualTotal += 1;\n running_total += 1;\n total += 1;\n feedbackLength += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: feedbackTypeQuestion,\n skip: false,\n sno: running_total,\n buttonType: nextQuestionBtn,\n visualTotal,\n feedListNo: feedbackLength,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n\n let quesRefId = running_total;\n\n visualTotal += 1;\n running_total += 1;\n total += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: followupAiTypeQuestion,\n skip: false,\n sno: running_total,\n buttonType: nextQuestionBtn,\n visualTotal,\n feedListNo: feedbackLength,\n clicked: false,\n response: false,\n quesRefId: quesRefId,\n buttonText: \"Next\",\n };\n return null;\n // return console.log(rr)\n });\n }\n\n let commLength = 0;\n if (askComments) {\n askComments.map((q, v) => {\n running_total += 1;\n commLength += 1;\n visualTotal += 1;\n total += 1;\n\n _seq[running_total] = {\n id: running_total,\n quesType: commentTypeQuestion,\n buttonType: nextQuestionBtn,\n skip: false,\n sno: running_total,\n visualTotal,\n comListNo: commLength,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n });\n }\n\n\n\n \n\n // personalityQuestion\n if (showInSurveyPersonality) {\n let inPerListNo = 0;\n // visualTotal += 1\n running_total += 1;\n feedbackLength += 1;\n total += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: introSectionTypeQuestion,\n emoji: \"📝\",\n title: \"Getting to know you\",\n text: [\n \"In an effort to better contextualize the feedback we have received from you, we’d like to ask you a few questions about your personality. For the following 10 questions please rate the extent to which you agree or disagree with the statement.\",\n \"Your data is always kept private, and no one can access your individual responses to these questions.\",\n ],\n buttonType: nextQuestionBtn,\n buttonText: \"I agree\",\n skip: false,\n sno: running_total,\n visualTotal,\n perListNo: inPerListNo,\n clicked: false,\n response: { response: true },\n };\n\n personalityQuestionList.map(() => {\n visualTotal += 1;\n running_total += 1;\n feedbackLength += 1;\n total += 1;\n inPerListNo += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: personalityTypeQuestion,\n skip: false,\n sno: running_total,\n buttonType: nextQuestionBtn,\n visualTotal,\n perListNo: inPerListNo,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n });\n }\n\n // let _outcomeQuestions = []\n // console.log(\"get_modular_questions?.modular_questions\", get_modular_questions?.modular_questions)\n modSurveyRule.map((modSur) => {\n const ModQues =\n get_brief_response?.modular_questions[modSur?.value]?.questions;\n // console.log(\"ModQues\", ModQues);\n // console.log(\"_outcomeQuestions\", _outcomeQuestions)\n // console.log(\"modSur\", get_modular_questions?.modular_questions[modSur?.value])\n // console.log(\"modSur\", modSur)\n // category completed\n let catTotal = 0;\n if (ModQues) {\n // to enable intro screen to modules use the code below\n // running_total += 1\n // feedbackLength += 1\n // total += 1\n // _seq[running_total] = {\n // \tid: running_total,\n // \tquesType: introSectionTypeQuestion,\n // \temoji: '📝',\n // \ttitle: 'Getting to know you',\n // \ttext: [`In an effort to better contextualize the feedback we have received from you, we’d like to ask you a few questions about ${modSur?.name}. `],\n // \tbuttonType: nextQuestionBtn,\n // \tbuttonText: 'Next',\n // \tskip: false,\n // \tsno: running_total,\n // \tvisualTotal,\n // \tclicked: false,\n // \tresponse: {response: true,},\n // }\n let _askOnRef = null;\n let _quesOnRef = null;\n ModQues.map((MainQues) => {\n // check for AI follow up\n // console.log(\"MainQues\", MainQues);\n _askOnRef = null;\n _quesOnRef = null;\n // loop through each question\n MainQues.questions.map((mq) => {\n if (mq?.ask_on_ref?.enabled) {\n \n _askOnRef = mq?.ask_on_ref;\n // get this question id from outcomeQuestion\n // console.log(\"_askOnRef running_total\", running_total, _askOnRef)\n const [q, s] = _askOnRef?.ref_question_id.split(\".\").map(Number);\n const filteredResults = Object.keys(_seq)\n .filter(\n (key) =>\n _seq[key].quesType === \"modularOutcomeTypeQuestion\" &&\n _seq[key]?.question?.q === q &&\n _seq[key]?.question?.s === s\n )\n .map((key) => _seq[key]);\n\n _quesOnRef = filteredResults?.[0]?.id;\n\n if (_quesOnRef) {\n if (resetResponsesOnChange[_quesOnRef]) {\n // If it exists, add the new property\n resetResponsesOnChange[_quesOnRef].push(running_total+1);\n } else {\n // If it doesn't exist, create a new object with the new property\n resetResponsesOnChange[_quesOnRef] = [running_total+1];\n }\n }\n \n // Check if _quesOnRef exists in _seq\n if (_seq[_quesOnRef]) {\n // If it exists, add the new property\n _seq[_quesOnRef].resetOnChange = true;\n } else {\n // If it doesn't exist, create a new object with the new property\n _seq[_quesOnRef] = { resetOnChange: true };\n }\n }\n\n if (mq?.ai_follow_up?.enabled) {\n\n _askOnRef = mq?.ask_on_ref;\n // get this question id from outcomeQuestion\n // console.log(\"_askOnRef running_total\", running_total, _askOnRef)\n const [q, s] = _askOnRef?.ref_question_id.split(\".\").map(Number);\n const filteredResults = Object.keys(_seq)\n .filter(\n (key) =>\n _seq[key].quesType === \"modularOutcomeTypeQuestion\" &&\n _seq[key]?.question?.q == q &&\n _seq[key]?.question?.s == s\n )\n .map((key) => _seq[key]);\n\n _quesOnRef = filteredResults?.[0]?.id;\n\n // add the pre ai follow up question.\n running_total += 1;\n total += 1;\n visualTotal += 1;\n catTotal += 1;\n if (_quesOnRef) {\n if (resetResponsesOnChange[_quesOnRef]) {\n // If it exists, add the new property\n resetResponsesOnChange[_quesOnRef].push(running_total);\n } else {\n // If it doesn't exist, create a new object with the new property\n resetResponsesOnChange[_quesOnRef] = [running_total];\n }\n }\n // console.log(\"_askOnRef 1160 a\", _askOnRef);\n // console.log(\"running_total 1160 a\", running_total);\n // console.log(\"filteredResults\", filteredResults?.[0])\n // console.log(\"_quesOnRef 1160 b\" , _quesOnRef)\n\n _seq[running_total] = {\n quesType: ModularSurveyQuestionTypes[modSur?.value],\n aiFollowUp: true,\n followUpQuestions: true,\n sno: running_total,\n q: mq?.q,\n s: mq?.s,\n id: running_total,\n sort_order: running_total,\n question: mq,\n buttonType: nextQuestionBtn,\n name: `${MainQues?.name}`,\n uniqueName: `${modSur?.value}-${MainQues?.name}`,\n total: running_total,\n askOnRef: _askOnRef,\n askOnRefQID: _quesOnRef,\n catTotal: catTotal,\n skip: false,\n visualTotal,\n value: modSur?.value,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n fr_name:MainQues?.fr_name,\n es_name:MainQues?.es_name,\n };\n\n const _aiFollowUpList = [];\n\n if (mq?.ai_follow_up?.questions?.length) {\n // error in this\n mq.ai_follow_up.questions.map((fq) => {\n _aiFollowUpList.push(running_total);\n running_total += 1;\n total += 1;\n visualTotal += 1;\n catTotal += 1;\n if (_quesOnRef) {\n // console.log(\"resetResponsesOnChange[_quesOnRef]\", resetResponsesOnChange[_quesOnRef], running_total)\n if (resetResponsesOnChange[_quesOnRef]) {\n // If it exists, add the new property\n resetResponsesOnChange[_quesOnRef].push(running_total);\n } else {\n // If it doesn't exist, create a new object with the new property\n resetResponsesOnChange[_quesOnRef] = [running_total];\n }\n }\n\n _askOnRef = mq?.ask_on_ref;\n // get this question id from outcomeQuestion\n // console.log(\"_askOnRef running_total\", running_total, _askOnRef)\n const [q, s] = _askOnRef?.ref_question_id.split(\".\").map(Number);\n const filteredResults = Object.keys(_seq)\n .filter(\n (key) =>\n _seq[key].quesType === \"modularOutcomeTypeQuestion\" &&\n _seq[key]?.question?.q == q &&\n _seq[key]?.question?.s == s\n )\n .map((key) => _seq[key]);\n\n _quesOnRef = filteredResults?.[0]?.id;\n\n // console.log(\"_askOnRef 1229 b\", _askOnRef);\n // console.log(\"running_total 1229 b\", running_total);\n // // console.log(\"filteredResults\", filteredResults)\n // console.log(\"_quesOnRef 1229 b\", _quesOnRef)\n\n _seq[running_total] = {\n quesType: multiAiFollowupCommentQuestion,\n aiFollowUp: true,\n followUpQuestions: [..._aiFollowUpList], // Use _aiFollowUpList directly,\n sno: running_total,\n q: mq?.q,\n s: mq?.s,\n askOnRef: _askOnRef,\n askOnRefQID: _quesOnRef,\n q_id: fq?.id,\n scale: mq?.scale,\n id: running_total,\n sort_order: running_total,\n question: fq?.question,\n fr: fq?.fr,\n es:fq?.es,\n buttonType: nextQuestionBtn,\n name: `${MainQues?.name}-aiFollowUp`,\n uniqueName: `${modSur?.value}-${MainQues?.name}-aiFollowUp`,\n total: running_total,\n catTotal: catTotal,\n skip: false,\n visualTotal,\n value: modSur?.value,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n };\n return null;\n });\n }\n _askOnRef = null;\n _quesOnRef = null;\n // console.log(\"mq ---\", running_total, mq)\n return null;\n // Update ifollowupquestions after the loop\n }\n // console.log(modSur);\n // console.log(mq);\n running_total += 1;\n total += 1;\n visualTotal += 1;\n catTotal += 1;\n\n _askOnRef = mq?.ask_on_ref;\n // // get this question id from outcomeQuestion\n \n let [q, s] = [0,0]\n if (_askOnRef?.ref_question_id.split(\".\")) {\n [q, s] = _askOnRef?.ref_question_id.split(\".\");\n }\n \n // const [q, s] = _askOnRef?.ref_question_id.split(\".\").map(Number);\n const filteredResults = Object.keys(_seq)\n .filter(\n (key) =>\n _seq[key].quesType === \"modularOutcomeTypeQuestion\" &&\n // eslint-disable-next-line eqeqeq\n _seq[key]?.question?.q == q &&\n // eslint-disable-next-line eqeqeq\n _seq[key]?.question?.s == s\n )\n .map((key) => _seq[key]);\n\n _quesOnRef = filteredResults?.[0]?.id;\n \n // console.log(\"_askOnRef 1277 c\", mq);\n // console.log(\"_askOnRef 1277 c\", _askOnRef);\n // console.log(\"running_total 1277 c\", running_total);\n // console.log(\"filteredResults 1277 c\", filteredResults)\n // console.log(\"_quesOnRef 1277 c\", _quesOnRef)\n\n return (_seq[running_total] = {\n quesType: ModularSurveyQuestionTypes[modSur?.value],\n aiFollowUp: false,\n followUpQuestions: false,\n sno: running_total,\n q: mq?.q,\n s: mq?.s,\n id: running_total,\n sort_order: running_total,\n question: mq,\n buttonType: nextQuestionBtn,\n name: `${MainQues?.name}`,\n uniqueName: `${modSur?.value}-${MainQues?.name}`,\n total: running_total,\n askOnRef: _askOnRef,\n askOnRefQID: _quesOnRef,\n catTotal: catTotal,\n skip: false,\n visualTotal,\n value: modSur?.value,\n clicked: false,\n response: false,\n buttonText: \"Next\",\n fr_name:MainQues?.fr_name,\n es_name:MainQues?.es_name\n });\n });\n\n _askOnRef = null;\n _quesOnRef = null;\n return null;\n });\n }\n\n return null;\n });\n\n // final submit\n running_total += 1;\n total += 1;\n _seq[running_total] = {\n id: running_total,\n quesType: submitTypeQuestion,\n buttonType: submitSurvey,\n buttonText: \"Submit\",\n skip: false,\n sno: running_total,\n visualTotal,\n clicked: false,\n response: { response: true },\n };\n\n // const setresetResponsesOnChange = new Set(resetResponsesOnChange);\n\n setTotalQuestions({\n total: total,\n introQuestion,\n visualTotal,\n runningTotal: running_total,\n introduction: quesLength,\n questions: quesLength,\n category: CatLength, // add primaryCategory\n comments: commLength,\n feedback: feedbackLength,\n sequence: _seq,\n resetResponsesOnChange: resetResponsesOnChange,\n });\n\n // setQuestionSequenceMap(_seq)\n // console.log(\"question seq ran\")\n }, [\n questionList,\n get_brief_response.response.organization_info,\n get_brief_response.modular_questions,\n categoryQues,\n employeeCategory,\n organizationInfo,\n askComments,\n checkRole,\n modSurveyRule,\n showInSurveyPersonality,\n organizationName,\n ]);\n\n // console.log(\"currentQuestionDet.id\", currentQuestionDet?.id);\n // console.log(\"totalQuestions\", totalQuestions);\n // console.log(\"questionSequenceMap\", questionSequenceMap);\n // console.log(\"questionSequenceMap\", questionSequenceMap[currentQuestionNo]);\n // console.log(\n // \"totalQuestions.resetResponsesOnChange\",\n // totalQuestions.resetResponsesOnChange\n // );\n // console.log(\n // \"totalQuestions?.runningTotal $$$$$$$$$$$$$$$$$$$$$$$$$$$$\",\n // totalQuestions?.runningTotal\n // );\n\n useEffect(() => {\n if (currentQuestionNo > 1 && questionSequenceMap) {\n setCurrentQuestionDet(questionSequenceMap[currentQuestionNo]);\n } else {\n setCurrentQuestionDet(totalQuestions.sequence[1]);\n }\n }, [questionSequenceMap, currentQuestionNo, totalQuestions]);\n\n // console.log(\"currentQuestionNo\", currentQuestionNo);\n\n function nextQuestion() {\n let _questionNo = currentQuestionNo + 1;\n // this is for first question\n if (currentQuestionNo === 1) {\n return 2;\n }\n while (_questionNo <= totalQuestions?.runningTotal) {\n if (questionSequenceMap[_questionNo]?.skip) {\n // console.log(\"_checkFdbk ++++++++++++ SKIP\", currentQuestionNo, _questionNo)\n _questionNo++;\n } else {\n const _checkFdbk = questionSequenceMap[_questionNo]?.response?.skip;\n // check if follow up and feedback is skipped\n if (_checkFdbk) {\n // console.log(\"_checkFdbk ++++++++++++ RESPONSE SKIP\", currentQuestionNo, _questionNo)\n _questionNo++;\n } else {\n // console.log(\"_checkResp ++++++++++++ OK\", currentQuestionNo, _questionNo)\n return _questionNo;\n }\n }\n }\n\n return currentQuestionNo;\n }\n\n const handleNext = () => {\n const timer1 = setTimeout(() => {\n // this whole block is to check if the question is skipped\n // this block checks if the question is skipped\n\n if (currentQuestionNo) {\n const _currQuestion = questionSequenceMap[currentQuestionNo];\n\n if (_currQuestion) {\n // Skip the entire block if _currQuestion is skipped or response is skipped or response is empty\n // Continue if any of the specified conditions is true\n if (\n _currQuestion?.skip ||\n _currQuestion.response?.skip ||\n _currQuestion?.response?.clicked ||\n _currQuestion.response?.response !== undefined \n ) {\n // console.log(\"Continue with the code\");\n // Continue with the code\n } else {\n // Return from handleNext\n // console.log(\"Conditions not met - Returning from handleNext\");\n return;\n }\n }\n }\n // console.log(\"currentQuestionNo handleNext >>>>>>>>>>>>>>>>>>>>>>>>>> \");\n const NextQues = nextQuestion();\n if (currentQuestionNo < NextQues) {\n setDirection(\"slide\");\n // persist with api\n\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: LOCAL_VALIDATION_TOKEN,\n ...(formPayload && {\n stored_response: {\n ...formPayload,\n validation_token: LOCAL_VALIDATION_TOKEN,\n },\n }),\n },\n });\n }\n setQuestionNo(NextQues);\n // // setVisualQuestionNo(visualQuestionNo + 1)\n setVisualQuestionNo(questionSequenceMap[NextQues]?.visualTotal);\n // console.log(\n // \"NextQues handleNext ++++++++++++++++++++++++++++++++++++\",\n // NextQues\n // );\n setCurrentQuestionNo(NextQues);\n }\n }, 10);\n\n // console.log(\n // \"currentQuestionNo handleNext ++++++++^^^^^^^^^^^^^^^^\",\n // currentQuestionNo\n // );\n return () => clearTimeout(timer1);\n };\n\n function prevQuestion() {\n let _questionNo = currentQuestionNo - 1;\n while (_questionNo >= 1) {\n if (totalQuestions.sequence[_questionNo]?.skip) {\n _questionNo--;\n } else {\n const _checkFdbk = questionSequenceMap[_questionNo]?.response?.skip;\n const _checkResp = questionSequenceMap[_questionNo]?.response;\n // check if follow up and feedback is skipped\n if (_checkFdbk) {\n _questionNo--;\n } else if (!_checkResp) {\n return _questionNo;\n } else {\n setQuestionNo(_questionNo);\n // setVisualQuestionNo(visualQuestionNo - 1)\n setVisualQuestionNo(currentQuestionDet?.visualTotal);\n return _questionNo;\n }\n }\n }\n return currentQuestionNo;\n }\n\n const handleBack = () => {\n setDisableNext(false)\n if (currentQuestionNo > 0) {\n setDirection(\"slide-back\");\n // persist with api\n const timer1 = setTimeout(() => {\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: LOCAL_VALIDATION_TOKEN,\n ...(formPayload && {\n stored_response: {\n ...formPayload,\n validation_token: LOCAL_VALIDATION_TOKEN,\n },\n }),\n },\n });\n }\n setCurrentQuestionNo(prevQuestion());\n }, 10);\n return () => clearTimeout(timer1);\n }\n };\n\n function resetValidationToken(newValidationToken) {\n LOCAL_VALIDATION_TOKEN = newValidationToken;\n }\n // console.log(formPayload)\n\n useEffect(() => {\n if (get_brief_response?.response?.id) {\n setNoResponse(false);\n } else {\n setNoResponse(true);\n }\n }, [get_brief_response]);\n\n useEffect(()=>{\n\n if(get_brief_response?.response.length == 0){\n return \n }\n\n let EmpPrimary = get_brief_response?.response?.employee_category.find(\n (ec) => ec?.priority === \"primary\"\n )?.value;\n \n const primaryFrench = get_brief_response?.response?.primary_question[0]?.options?.find(f=>f.name == EmpPrimary)?.fr\n \n if(language==\"FR\" && primaryFrench){\n EmpPrimary = primaryFrench\n }\n\n\n setTeamName(EmpPrimary);\n\n if(get_brief_response?.response?.organization_info?.organization == 2){\n setOrganizationName(\n `${EmpPrimary}`\n );\n }\n else{\n setOrganizationName(\n `${get_brief_response?.response?.organization_name} - ${EmpPrimary}`\n );\n }\n },[language])\n\n useEffect(() => {\n const timer1 = setTimeout(() => {\n setDelayedShow(get_brief_response?.pending);\n }, 1000);\n return () => clearTimeout(timer1);\n }, [get_brief_response]);\n\n // console.log(\"OR\", get_brief_response?.pending | get_modular_questions?.pending)\n // console.log(\"AND\", get_brief_response?.pending & get_modular_questions?.pending)\n useEffect(() => {\n // Run! Like go get some data from an API.\n if (token) {\n dispatch({\n type: SG_START_BRIEF_SURVEY,\n payload: `?token=${token}`,\n });\n }\n }, [dispatch, token]);\n\n // console.log(\"surveyModularResp\", surveyModularResp)\n // final submit\n function submitAnswer() {\n const CompleteCategories = {\n ...questionAnswers?.categories,\n ...prevFoundResponse,\n ...neverAskResponse,\n };\n if (CompleteCategories) {\n CompleteCategories[0] = primaryCategory;\n }\n if (totalQuestions?.questions && questionAnswers?.questions) {\n if (\n totalQuestions?.questions >\n Object.values(questionAnswers?.questions).length\n ) {\n // console.log(\"error found\")\n setSubmitError(ERROR_ON_SUBMISSION);\n return;\n }\n }\n\n let _completeCategories = [];\n if (CompleteCategories) {\n _completeCategories = Object.values(CompleteCategories);\n }\n\n let _completeQuestions = [];\n if (questionAnswers.questions) {\n _completeQuestions = Object.values(questionAnswers.questions);\n }\n\n let _completeComments = [];\n if (questionAnswers.comments) {\n _completeComments = Object.values(questionAnswers.comments);\n }\n\n // console.log( {\n // \t\t\tquestions: {\n // \t\t\t\tquestions: _completeQuestions,\n // \t\t\t\tcategories: _completeCategories,\n // \t\t\t\tcomments: _completeComments,\n // \t\t\t},\n // \t\t\ttotal_question_map: totalQuestions,\n // \t\t\tfeedback: surveyFeedbackResp,\n // \t\t\tsurvey_personality: surveyPersonalityResp,\n // \t\t\tmodular_response: surveyModularResp,\n // \t\t\tversion: 2.0,\n // \t\t\tversion_description: \"Culture Audit version which includes revised chat gpt and home list of all questions\",\n // \t\t})\n\n dispatch({\n type: SG_POST_BRIEF_RESPONSE,\n payload: {\n survey_token: briefResponse?.survey_token,\n debrief_schedule: briefResponse?.debrief_schedule,\n employee: briefResponse?.employee,\n validation_token: null,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n version: 2.0,\n version_description:\n \"Culture Audit version which includes revised chat gpt and home list of all questions\",\n },\n full_response: {\n isBrowser: isBrowser,\n isMobile: isMobile,\n browser: deviceDetected.browserName,\n deviceType,\n osVersion,\n osName,\n deviceDetected: deviceDetected,\n response: {\n questions: {\n questions: _completeQuestions,\n categories: _completeCategories,\n comments: _completeComments,\n },\n total_question_map: totalQuestions,\n feedback: surveyFeedbackResp,\n survey_personality: surveyPersonalityResp,\n modular_response: surveyModularResp,\n version: 2.0,\n version_description:\n \"Culture Audit version which includes revised chat gpt and home list of all questions\",\n },\n },\n },\n });\n dispatch({\n type: RESET_VALIDATION_TOKEN,\n payload: null,\n });\n dispatch({\n type: CLEAR_ALL,\n payload: null,\n });\n localStorage.clear();\n\n setSurveyFinished(true);\n }\n\n function StartSurvey() {\n const _questionSequenceMap = totalQuestions?.sequence;\n _questionSequenceMap[currentQuestionNo].clicked = true;\n _questionSequenceMap[currentQuestionNo].response = true;\n let NewValidationToken = uuidv4();\n\n if (LOCAL_VALIDATION_TOKEN) {\n NewValidationToken = LOCAL_VALIDATION_TOKEN;\n } else {\n localStorage.setItem(\"validation_token\", NewValidationToken);\n }\n\n setFormPayload({\n current_question: 1,\n current_answer: 0,\n high_answer: 0,\n answers: {\n categories: {},\n questions: {},\n comments: {},\n },\n complete: false,\n intro_completed: true,\n modular_response: {},\n survey_personality: {},\n feedback: [],\n questionSequenceMap: _questionSequenceMap,\n validation_token: NewValidationToken,\n });\n\n dispatch({\n type: NEW_VALIDATION_TOKEN,\n payload: NewValidationToken,\n });\n\n setQuestionSequenceMap(_questionSequenceMap);\n handleNext();\n }\n\n // console.log(\"get_brief_response?.feedback\", get_brief_response?.feedback)\n // console.log(\"get_brief_response?.survey_personality\", get_brief_response?.survey_personality)\n // console.log(\"get_brief_response?.modular_response\", get_brief_response?.modular_response)\n // console.log(\"get_brief_response?.answers\", get_brief_response?.answers)\n // console.log(\"currentQuestionNo\", currentQuestionNo)\n\n // console.log(\"currentQuestionDet\", currentQuestionDet)\n // console.log(\"surveyModularResp\", surveyModularResp)\n // console.log(\"categoryQues\", categoryQues)\n\n // updated answers\n function saveUpdatedAnswers(curQuesNo, response, typeOf) {\n // console.log(\"saveUpdatedAnswers\" ,curQuesNo, response, typeOf)\n let _feedbackResp = [];\n if (surveyFeedbackResp) {\n _feedbackResp = surveyFeedbackResp;\n }\n\n const _questionAnswers = questionAnswers;\n\n let _survey_personality = {};\n if (surveyPersonalityResp) {\n _survey_personality = surveyPersonalityResp;\n }\n\n let _modular_response = {};\n if (surveyModularResp) {\n _modular_response = surveyModularResp;\n }\n\n const _curQuesDet = questionSequenceMap[curQuesNo];\n\n if (typeOf === categoryTypeQuestion) {\n _questionAnswers.categories[curQuesNo] = response;\n }\n\n if (typeOf === questionTypeQuestion) {\n _questionAnswers.questions[curQuesNo] = response;\n }\n\n if (typeOf === commentTypeQuestion) {\n _questionAnswers.comments[curQuesNo] = response;\n }\n\n if (typeOf === feedbackTypeQuestion) {\n _feedbackResp = _feedbackResp.filter(\n (fb) => fb?.survey_q_id !== response?.survey_q_id\n );\n _feedbackResp.push(response);\n }\n\n if (typeOf === followupAiTypeQuestion) {\n _feedbackResp = _feedbackResp.filter(\n (fb) => fb?.survey_q_id !== response?.survey_q_id\n );\n _feedbackResp.push(response);\n }\n\n if (typeOf === personalityTypeQuestion) {\n _survey_personality[_curQuesDet?.perListNo] = response;\n }\n\n // console.log(\"modularOutcomeTypeQuestion\", modularOutcomeTypeQuestion)\n\n if (typeOf === modularOutcomeTypeQuestion) {\n // console.log(response)\n const modularQuestion = get_brief_response?.surveyComponents.find(\n (sc) => sc.value === _curQuesDet?.value\n );\n if (_modular_response[_curQuesDet?.value]?.responses) {\n let _modResps = _modular_response[_curQuesDet?.value]?.responses;\n // match ques_order\n _modResps = _modResps.filter(\n (fb) => fb?.ques_order !== _curQuesDet?.id\n );\n _modResps.push(response);\n _modular_response[_curQuesDet?.value].responses = _modResps;\n } else {\n _modular_response[_curQuesDet?.value] = {\n id: modularQuestion?.id,\n label: modularQuestion?.name,\n value: modularQuestion?.value,\n on_date: new Date(),\n ask_again: 2,\n completed: true,\n responses: [response],\n briefResponseId: get_brief_response?.id,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n };\n }\n // console.log(\"modularQuestion\", modularQuestion)\n }\n\n // console.log(\"_feedbackResp\", _feedbackResp)\n if (typeOf === modularValuesTypeQuestion) {\n const modularQuestion = get_brief_response?.surveyComponents.find(\n (sc) => sc.value === _curQuesDet?.value\n );\n if (_modular_response[_curQuesDet?.value]?.responses) {\n let _modResps = _modular_response[\n _curQuesDet?.value\n ]?.responses?.filter((fb) => fb?.ques_order !== _curQuesDet?.id);\n // match ques_order\n\n _modResps.push(response);\n _modular_response[_curQuesDet?.value].responses = _modResps;\n } else {\n _modular_response[_curQuesDet?.value] = {\n id: modularQuestion?.id,\n label: modularQuestion?.name,\n value: modularQuestion?.value,\n on_date: new Date(),\n ask_again: 2,\n completed: true,\n responses: [response],\n briefResponseId: get_brief_response?.id,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n };\n }\n }\n\n if (typeOf === modularCommentTypeQuestion) {\n const modularQuestion = get_brief_response?.surveyComponents.find(\n (sc) => sc.value === _curQuesDet?.value\n );\n if (_modular_response[_curQuesDet?.value]?.responses) {\n let _modResps = _modular_response[\n _curQuesDet?.value\n ]?.responses?.filter((fb) => fb?.ques_order !== _curQuesDet?.id);\n // match ques_order\n\n _modResps.push(response);\n _modular_response[_curQuesDet?.value].responses = _modResps;\n } else {\n _modular_response[_curQuesDet?.value] = {\n id: modularQuestion?.id,\n label: modularQuestion?.name,\n value: modularQuestion?.value,\n on_date: new Date(),\n ask_again: 2,\n completed: true,\n responses: [response],\n briefResponseId: get_brief_response?.id,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n };\n }\n }\n\n // multiAiFollowupCommentQuestion\n if (typeOf === multiAiFollowupCommentQuestion) {\n const modularQuestion = get_brief_response?.surveyComponents.find(\n (sc) => sc.value === _curQuesDet?.value\n );\n if (_modular_response[_curQuesDet?.value]?.responses) {\n let _modResps = _modular_response[\n _curQuesDet?.value\n ]?.responses?.filter((fb) => fb?.ques_order !== _curQuesDet?.id);\n // match ques_order\n\n _modResps.push(response);\n _modular_response[_curQuesDet?.value].responses = _modResps;\n } else {\n _modular_response[_curQuesDet?.value] = {\n id: modularQuestion?.id,\n label: modularQuestion?.name,\n value: modularQuestion?.value,\n on_date: new Date(),\n ask_again: 2,\n completed: true,\n responses: [response],\n briefResponseId: get_brief_response?.id,\n brief_schedule_id: get_brief_response?.debrief_schedule,\n };\n }\n dispatch({\n type: CLEAR_CHAT_GPT_SUMMARY,\n });\n }\n\n let _complete = false;\n if (curQuesNo + 1 >= totalQuestions.visualTotal) {\n _complete = true;\n }\n\n setQuestionAnswers(_questionAnswers);\n setSurveyPersonalityResp(_survey_personality);\n setSurveyFeedbackResp(_feedbackResp);\n\n const _questionSequnce = questionSequenceMap;\n _questionSequnce[curQuesNo][\"clicked\"] = true;\n _questionSequnce[curQuesNo][\"response\"] = response;\n\n setQuestionSequenceMap(_questionSequnce);\n\n setFormPayload({\n visual_question: _curQuesDet?.visualTotal,\n current_question: curQuesNo,\n current_answer: curQuesNo,\n high_answer:\n curQuesNo > briefResponse?.high_answer\n ? curQuesNo\n : briefResponse?.high_answer,\n answers: _questionAnswers,\n complete: _complete,\n validation_token: LOCAL_VALIDATION_TOKEN,\n survey_personality: _survey_personality,\n modular_response: _modular_response,\n questionSequenceMap: _questionSequnce,\n feedback: _feedbackResp,\n });\n\n setSurveyModularResp(_modular_response);\n\n if (askNextQuestion) {\n const quesSeq = questionSequenceMap[curQuesNo + 1];\n if (quesSeq?.response) {\n if (quesSeq.response.prompt) {\n quesSeq.response.prompt = null;\n }\n if (quesSeq.response.prompt_question) {\n quesSeq.response.prompt_question = null;\n }\n if (quesSeq.response.feedback) {\n quesSeq.response.feedback = null;\n }\n if (quesSeq.response.skipped) {\n quesSeq.response.skipped = false;\n }\n }\n }\n }\n\n useEffect(() => {\n if (get_errors?.errors?.error?.request?.response) {\n let RESP = JSON.parse(get_errors?.errors?.error?.request?.response);\n setSubmitError(RESP?.detail);\n }\n }, [get_errors]);\n\n // console.log(direction)\n\n function skipNextQuestion() {\n console.log(\n \"skipNextQuestion ++++++++++++++++++++++++++++++++++++ *************************\"\n );\n setDirection(\"slide\");\n const _refQues = questionSequenceMap[currentQuestionNo];\n const _curQues = questionSequenceMap[currentQuestionNo + 1];\n let ResponseObj = {\n survey_q_id: _curQues.id,\n dimension: _refQues?.response?.dimension,\n factor: _refQues?.response?.factor,\n fr: _refQues?.response?.fr,\n es: _refQues?.response?.es,\n id: _refQues?.response?.id,\n q: _refQues?.response?.q,\n ques_order: _refQues?.response?.ques_order,\n question: _refQues?.response?.question,\n // response: _refQues?.response?.feedback,\n reverse: _refQues?.response?.reverse,\n role: _refQues?.response?.role,\n type: _refQues?.response?.type,\n // prompt: \"skipped\",\n // prompt_question: \"skipped\",\n // feedback: '',\n skipped: true,\n };\n let _questionNo = currentQuestionNo + 2;\n\n saveUpdatedAnswers(_curQues.id, ResponseObj, followupAiTypeQuestion);\n\n // setCurrentQuestionDet(questionSequenceMap[_questionNo])\n setCurrentQuestionNo(_questionNo);\n\n setQuestionNo(_questionNo);\n setVisualQuestionNo(questionSequenceMap[_questionNo]?.visualTotal);\n\n if (currentQuestionNo < _questionNo) {\n // persist with api\n if (briefResponseId) {\n dispatch({\n type: SG_UPDATE_BRIEF_RESPONSE,\n payload: {\n id: briefResponseId,\n query: `?token=${token}`,\n validation_token: LOCAL_VALIDATION_TOKEN,\n ...(formPayload && { stored_response: formPayload }),\n },\n });\n }\n }\n }\n\n // console.log(currentQuestionDet)\n\n const renderModule = (currentQuestionDet) => {\n switch (currentQuestionDet?.quesType) {\n case introductionTypeQuestion:\n return (\n setDisableNext(v)}\n intro_type={currentQuestionDet?.intro_type}\n title={\n organizationInfo?.intro_title\n ? get_brief_response?.response?.organization_name\n : false\n }\n />\n );\n\n case categoryTypeQuestion:\n return (\n \n );\n case questionTypeQuestion:\n return (\n q.order === currentQuestionDet?.quesListNo\n )[0]\n }\n saveUpdatedAnswers={saveUpdatedAnswers}\n currentQuestionDet={currentQuestionDet}\n language={language}\n qualifier={organizationInfo?.survey_qualifier}\n team_qualifier={organizationInfo?.team_qualifier}\n teamName={teamName}\n />\n );\n case commentTypeQuestion:\n return (\n q.id === currentQuestionDet?.comListNo\n )[0]\n }\n saveUpdatedAnswers={saveUpdatedAnswers}\n currentQuestionDet={currentQuestionDet}\n language={language}\n />\n );\n case feedbackTypeQuestion:\n // AI feedback question ln 1188\n return (\n \n );\n case followupAiTypeQuestion:\n // AI chat gpt follow up question for max -min feedback only\n // console.log(currentQuestionDet)\n const refFollowUpQues =\n questionSequenceMap[currentQuestionDet?.quesRefId];\n return (\n \n );\n\n case personalityTypeQuestion:\n return (\n \n );\n case modularOutcomeTypeQuestion:\n return (\n \n );\n case modularValuesTypeQuestion:\n // question, saveUpdatedAnswers, currentQuestionDet\n return (\n \n );\n case modularCommentTypeQuestion:\n return (\n \n );\n case multiAiFollowupCommentQuestion:\n // AI multi follow up\n \n return (\n \n );\n case introSectionTypeQuestion:\n return ;\n // incase the survey was completed earlier or token's missing or something\n // case completedTypeQuestion:\n // return ;\n case submitTypeQuestion:\n return ;\n default:\n return null;\n }\n };\n\n if (delayedShow) {\n return (\n \n \n \n \n\n );\n }\n\n if (surveyFinished) {\n return (\n \n \n \n \n \n );\n }\n\n if (surveyDeleted) {\n return (\n \n \n \n \n \n );\n }\n\n // // ask for existing data in storage\n if (currentQuestionNo > 1 && storedResponseFound) {\n return (\n \n );\n }\n\n if (!token | !get_brief_response.id | noResponse) {\n return (\n\n \n \n \n );\n }\n\n return (\n \n {/* progress bar when it not introduction */}\n {currentQuestionNo > totalQuestions?.introQuestion && !surveyFinished && (\n \n )}\n\n {/* back button to take one question back when it not introduction */}\n {currentQuestionNo > 1 && currentQuestionNo <= totalQuestions?.introQuestion && (\n \n {\" \"}\n \n )}\n\n {showLanguage && }\n\n \n \n {renderModule(currentQuestionDet)}\n \n \n\n \n \n {/* {renderButtons(questionsList[currentQuestion])} */}\n \n \n );\n};\n\nexport default AuditSurvey;\n\nconst SurveyContainer = styled.div`\n width: 100%;\n min-height: calc(var(--vh, 1vh) * 100);\n display: flex;\n flex-direction: column;\n background-color: #f8f9fa;\n position: relative;\n font-family: \"Raleway\", sans-serif;\n\n\n @media (max-width: 768px) {\n height:100%;\n padding-top:50px;\n padding-bottom:0px;\n }\n`;\n\nconst SurveyContent = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n// ...\n\nconst ButtonContainer = styled.div`\n\n display: flex;\n justify-content: space-between;\n padding: 1rem;\n`;\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\n// ...\n\nconst ModuleContainer = styled.div`\n \n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n min-height:${props=>`calc(${props.height}px - 130px)`};\n padding:20px;\n opacity:0;\n\n animation: ${fadeIn} 1s ease-out forwards;\n animation-delay: ${({ delay }) => delay}s; // Use props to set delay\n\n @media(min-width:768px){\n min-height:calc(100vh - 90px);\n }\n`;\n\nconst Back = styled.div`\n position: absolute;\n left: 28px;\n top: 20px;\n cursor: pointer;\n font-size: 20px;\n width: 50px;\n height: 50px;\n z-index: 10000;\n color: #2a3039;\n`;\n","\nexport function ModularSurveyCheck({ surveyComponents }) { // get questions and enabled data\n // const dispatch = useDispatch();\n\n const ModularSurvey = []\n\n\n const _openSurvey = surveyComponents.filter(\n br => br?.enabled === true\n && br?.editable === true\n && br?.completed === false\n && br?.question?.sort_order\n && br?.ask_again?.value > 0)\n\n\n\n _openSurvey.map(op => {\n if (op?.enabled === true) {\n ModularSurvey.push(op)\n }\n return null\n\n })\n\n return ModularSurvey\n}\n\n","\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { Icon } from 'semantic-ui-react'\n\n\n// New Survey\nimport Question from './questionTypes/Question';\nimport MultipleChoice from './questionTypes/MultipleChoice';\nimport ProgressBar from './Components/ProgressBar';\n\nimport Feedback from './questionTypes/Feedback';\nimport Categories from './questionTypes/Categories';\nimport Introduction from './Introduction';\nimport './index.css'\n\nimport NavigationButtons from './Components/NavigationButtons';\nimport FollowUp from './chatGpt/FollowUp';\nimport Submit from './questionTypes/Submit';\nimport IntroSection from './IntroSection';\nimport Values from './questionTypes/Values';\nimport Completed from './questionTypes/Completed'\nimport Language from './Language'\nimport Comments from './questionTypes/Comment'\n// new survey\n\n\n\nconst questionsList = [\n {\n id: 1,\n sort_order: 1,\n type: 'introduction',\n buttonType: 'introduction',\n intro_id: 1,\n total: 4,\n buttonText: 'Start',\n },\n {\n id: 2,\n sort_order: 2,\n type: 'introduction',\n buttonType: 'introduction',\n intro_id: 2,\n total: 4,\n buttonText: 'Next',\n },\n {\n id: 3,\n sort_order: 3,\n type: 'introduction',\n buttonType: 'introduction',\n intro_id: 3,\n total: 4,\n buttonText: 'Next',\n },\n {\n id: 4,\n sort_order: 4,\n type: 'introduction',\n buttonType: 'introduction',\n intro_id: 4,\n total: 4,\n buttonText: 'I agree'\n },\n {\n id: 5,\n sort_order: 5,\n type: 'categories',\n buttonType: 'regular',\n question: 'Please choose a category:',\n description: 'Gender refers to current gender which may be different from sex assigned at birth and may be different from what is indicated on legal documents',\n categories: [\n { id: 'cat1', text: 'Category 1' },\n { id: 'cat2', text: 'Category 2' },\n ],\n },\n {\n id: 6,\n sort_order: 6,\n type: 'categories',\n buttonType: 'regular',\n question: 'Thank you for answering these preliminary questions.',\n description: 'Now we are going to ask you some questions about your experience with Resulta - Testing resulta. Your experience matters.',\n },\n {\n id: 7,\n sort_order: 7,\n type: 'question',\n buttonType: 'regular',\n question: 'On a scale of 1-10, how would you rate your experience?',\n },\n {\n id: 8,\n sort_order: 8,\n text: 'Question 1',\n type: 'multipleChoice',\n buttonType: 'regular',\n choices: [\n { id: '1a', text: 'Disagree strongly' },\n { id: '1b', text: 'Disagree moderately' },\n { id: '1c', text: 'Disagree a little' },\n { id: '1d', text: 'Neither agree nor disagree' },\n { id: '1e', text: 'Agree a little' },\n { id: '1f', text: 'Agree moderately' },\n { id: '1g', text: 'Agree strongly' },\n ],\n },\n {\n id: 9,\n sort_order: 9,\n type: 'feedback',\n buttonType: 'regular',\n direction: 'min',\n question: 'It’s safe to take risks and be bold when solving problems here.',\n score: 1,\n },\n {\n id: 10,\n sort_order: 10,\n type: 'follow_up',\n buttonType: 'regular',\n direction: 'min',\n response: 'I do feel safe to take risks and be bold when solving problems here.',\n question: 'It’s safe to take risks and be bold when solving problems here.',\n },\n {\n id: 11,\n sort_order: 11,\n type: 'comment',\n buttonType: 'regular',\n question: 'It’s safe to take risks and be bold when solving problems here.',\n },\n {\n id: 12,\n sort_order: 12,\n type: 'submit',\n buttonType: 'regular',\n buttonType: 'Submit',\n },\n {\n id: 13,\n sort_order: 13,\n type: 'introSection',\n buttonType: 'regular',\n emoji: '📝',\n title: 'Getting to know you',\n text: ['In an effort to better contextualize the feedback we have received from you, we’d like to ask you a few questions about your personality. For the following 10 questions please rate the extent to which you agree or disagree with the statement.', 'Your data is always kept private, and no one can access your individual responses to these questions.'],\n buttonType: 'Begin',\n },\n {\n id: 14,\n sort_order: 14,\n type: 'values',\n buttonType: 'regular',\n statement: 'Using only one word, finish the sentence with whatever comes to your mind:',\n question: 'I would describe this organization as a culture of...'\n },\n {\n id: 15,\n sort_order: 15,\n type: 'completed',\n buttonType: 'regular',\n },\n // Add slider, multipleChoice, and feedback questions as needed\n];\n\n\n\nconst AuditSurvey = () => {\n\n\n // \n const [currentQuestion, setCurrentQuestion] = useState(0);\n const [direction, setDirection] = useState('slide');\n const [isVisible, setIsVisible] = useState(true);\n const [surveyFinished, setSurveyFinished] = useState(false)\n // \n\n const handleNext = () => {\n if (currentQuestion < questionsList.length - 1) {\n setDirection('slide');\n setCurrentQuestion(currentQuestion + 1);\n if (currentQuestion === questionsList.length - 2) {\n setSurveyFinished(true)\n }\n }\n };\n\n\n const handleBack = () => {\n if (currentQuestion > 0) {\n setDirection('slide-back');\n setCurrentQuestion(currentQuestion - 1);\n }\n };\n\n\n\n const renderModule = (question) => {\n switch (question.type) {\n case 'introduction':\n return ;\n case 'categories':\n return ;\n case 'question':\n return ;\n case 'multipleChoice':\n return ;\n case 'feedback':\n return ;\n case 'follow_up':\n return ;\n case 'introSection':\n return ;\n case 'comment':\n return ;\n case 'values':\n return ;\n case 'completed':\n return ;\n case 'submit':\n return ;\n default:\n return null;\n }\n };\n\n return (\n \n {/* progress bar when it not introduction */}\n {currentQuestion > 4 && !surveyFinished && }\n\n {/* back button to take one question back when it not introduction */}\n {currentQuestion > 0 && currentQuestion < 4 && }\n\n \n \n setIsVisible(true)}\n onExited={() => setIsVisible(false)}\n >\n \n \n {renderModule(questionsList[currentQuestion])}\n \n \n \n\n \n\n\n\n\n \n \n {/* {renderButtons(questionsList[currentQuestion])} */}\n \n\n \n );\n};\n\nexport default AuditSurvey;\n\n\n// ...\nconst SurveyContainer = styled.div`\nwidth: 100%;\nmin-height: 100vh;\ndisplay: flex;\nflex-direction: column;\nbackground-color: #f8f9fa;\nposition:relative;\nfont-family: 'Raleway', sans-serif;\noverflow-x:hidden;\n`;\n\nconst SurveyContent = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n// ...\n\nconst ButtonContainer = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n padding: 1rem;\n background-color: #f8f8f8;\n z-index: 2;\n`;\n\n\n// ...\n\n\nconst ModuleContainer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding:20px;\n`;\n\nconst Back = styled.div`\n position:absolute;\n left:28px;\n top:20px;\n cursor: pointer;\n font-size:20px;\n width:50px;\n height:50px;\n z-index:2;\n color:#2A3039;\n`","\nimport React, { useState } from \"react\";\nimport { TransitionGroup, SwitchTransition, CSSTransition } from \"react-transition-group\";\nimport { Button, Divider, Header, Icon } from \"semantic-ui-react\";\n\n// import \"./styles.css\";\n\n// const SlideDirectionOne = [\"SlideDown\", \"SlideUp\"];\nconst SlideDirection = [\"slide-down\", \"slide-up\"];\nconst MoveDirection = [\"feedback-left\", \"feedback-right\"];\nconst Transition = [\"out-in\", \"in-out\"]\nconst TodoList = [{\n id: 1,\n name: \"Run 1k\"\n},\n{\n id: 2,\n name: \"wights\"\n},\n{\n id: 3,\n name: \"cardio\"\n}\n]\n\n\n\nconst AnimateOne = ({ change, state }) => {\n return (\n \n \n <>\n

New One {state ? \"Hello, world!\" : \"Goodbye, world!\"} -- {MoveDirection[change]}

\n \n \n\n
\n );\n};\n\n\nconst AnimateTwo = ({ change, state }) => {\n return (\n \n \n <>\n

New Two {state ? \"Hello, world!\" : \"Goodbye, world!\"} -- {MoveDirection[change]}

\n \n \n\n
\n );\n};\n\nfunction AnimateThree({ change, state }) {\n\n\n // React.useEffect(() => {\n // setDirection(Math.random())\n // }, [state]);\n return (\n \n \n\n <>\n

New Three -- {SlideDirection[change]}

\n\n {state ? \"true\" : \"false\"}\n\n \n \n
\n\n )\n}\n\nfunction AnimateFive({ change, number }) {\n // const [inProp, setInProp] = useState(false);\n return (\n \n \n
\n {\"I'll receive my-node-* classes slide-down \" + number}\n
\n \n
\n\n );\n}\n\nfunction AnimateText({ number }) {\n // const [inProp, setInProp] = useState(false);\n return (\n\n
\n {\"I'll receive my-node-* classes slide-down \" + number}\n
\n\n\n );\n}\n\nexport default function App() {\n\n const [state, setState] = useState(true);\n const [wholeCont, setWholeCont] = useState(true);\n const [direction, setDirection] = useState(1);\n const [change, setChange] = useState(1);\n const [todoList, setTodoList] = useState(TodoList)\n // const [showMessage, setShowMessage] = useState(true);\n\n function ChangeDirection() {\n if (direction) {\n setDirection(0)\n } else {\n setDirection(1)\n }\n // if (direction < 3) {\n // setDirection(direction + 1)\n // } else {\n // setDirection(0)\n // }\n }\n\n function ChangeThis() {\n if (change) {\n setChange(0)\n } else {\n setChange(1)\n }\n }\n\n const NumberList = []\n const loopTime = 10;\n\n for (let i = 0; i < loopTime; i++) {\n NumberList.push(i)\n }\n const [randomNumber, setRandomNumber] = useState(0)\n\n function InRandm() {\n\n setRandomNumber(randomNumber + 1)\n }\n return (\n <>\n {NumberList}\n \n
\n \n Next\n
\n
\n\n\n \n \n {randomNumber % 2 ?\n \n :\n \n }\n \n \n\n\n\n \n
\n \n Next\n
\n
\n\n {randomNumber % 2 ?\n \n :\n \n }\n\n\n\n \n\n \n \n \n\n {/* */}\n\n \n \n \n {/* out-in in-out*/}\n \n
\n \n Next\n
\n
\n \n {\n // node.addEventListener(\"transitionend\", done, false);\n // }}\n >\n
\n

Whole component -- {wholeCont ? \"Hello, world!\" : \"Goodbye, world!\"} -- {SlideDirection[change]}

\n \n
\n \n
\n \n
{\n setTodoList(TodoList)\n\n }\n }>\n \n Reset All\n
\n
\n \n\n
    \n {todoList.map(({ id, name }) => {\n return (\n \n\n
  1. \n {name}\n setTodoList(todoList.filter(td => td.id !== id))}\n >Remove ×\n\n\n\n
  2. \n\n \n )\n })}\n
\n
\n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport Logo from 'assets/images/Logo blue.png';\nimport Smiley from 'assets/images/top-view-smiley-face-growth-arrow 1.png';\nimport Dial from './Dial';\n\nconst InitialReport = () =>{\n\n\n return (\n \n \n\n \n \n \n <div style={{display:'flex',alignItems:'center'}}>ROI <IMG2 src={Smiley}/></div> \n <div>calculation</div> \n <div>results</div> \n \n\n \n \n \n
Readiness for innerlogic\n

Includes question 1, 2, 5, and 7 - \n the total score is out of 40 but can \n be averaged to be calculated out of 10\n if we want to show the values beneath \n the dial visual/state what they scored.

\n
\n \n \n \n \n \n
\n\n \n \n
Projected ROI of innerlogic\n

Includes question 1, 2, 5, and 7 - \n the total score is out of 40 but can \n be averaged to be calculated out of 10\n if we want to show the values beneath \n the dial visual/state what they scored.

\n
\n \n \n \n \n \n
\n
\n
\n\n\n \n Want to get the extended readiness and ROI report?\n

Enter your work e-mail below

\n\n \n \n Submit\n \n
\n
\n )\n}\n\nexport default InitialReport;\n\nconst Container = styled.div`\n width:100%;\n padding:60px 20px;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n \n`\n\nconst IMG = styled.img`\n width:100px;\n position:absolute;\n left:60px;\n top:-60px;\n\n @media(max-width:768px){\n left:10px;\n } \n`\n\nconst IMG2 = styled.img`\n border-radius:50px;\n margin-left:20px;\n width:150px;\n\n @media(max-width:768px){\n width:100px;\n }\n`\n\n\nconst Content = styled.div`\n width:100%;\n max-width:1200px;\n display:flex;\n align-items:center;\n justify-content:space-between;\n margin-top:60px;\n background: #F8FAFF;\n border-radius: 20px;\n padding: 60px;\n position:relative;\n\n @media (max-width: 768px) {\n flex-direction:column;\n padding:10px;\n }\n`\nconst Title = styled.div`\n display:flex;\n font-family: 'Raleway';\n flex-direction:column;\n font-weight: 500;\n font-size: 60px;\n line-height:1.3;\n text-transform: uppercase;\n color: #2A3039;\n\n @media(max-width:768px){\n font-size: 40px;\n }\n`\n\nconst Data = styled.div`\n width:100%;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media(max-width:768px){\n margin-top:50px;\n }\n`\n\nconst Block = styled.div`\n display:flex;\n width:564px;\n justify-content:space-evenly;\n\n @media(max-width:768px){\n width:100%;\n }\n`\n\nconst T2 = styled.div`\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 600;\nfont-size: 20px;\ncolor: #2A3039;\nline-height:1.3;\n`\n\nconst P = styled.div`\nfont-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\nfont-size: 12px;\nline-height: 125%;\ncolor: #666D79;\nmax-width:220px;\nmargin-top:10px;\n`\n\nconst DialContainer = styled.div`\n width:150px;\n margin-top:-20px;\n\n`\n\nconst Text = styled.div`\n width:300px;\n`\n\nconst Email = styled.div`\n width:100%;\n display:flex;\n flex-direction:column;\n align-items:center;\n\n @media(max-width:768px){\n margin-top:50px;\n padding:10px;\n }\n`\n\nconst EmailInput = styled.input`\n padding: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-right: 10px;\n font-family: 'Raleway';\nfont-style: normal;\nfont-weight: 400;\ncolor: #666D79;\nwidth:300px;\n\n@media(max-width:768px){\n width:200px;\n}\n`;\n\nconst SubmitButton = styled.button`\n padding: 10px 20px;\n font-size: 14px;\n background-color: #2D70E2;\n border: none;\n color: white;\n border-radius: 4px;\n cursor: pointer;\n font-family: 'Raleway';\n\n &:hover {\n background-color: #45a049;\n }\n`;\n\nconst InputContainer = styled.div`\n display: flex;\n align-items: center;\n margin-top:20px;\n\n \n`;","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\n\nconst EN1 = () => (\n

To access the Hockey Canada Sport Environment Assessment survey (an initiative of the Office of the Sport Integrity Commissioner), we’ll need to email you a unique and personalized link that verifies that your responses are secure and genuine.

\n );\n \n const EN2 = () => (\n

While we will use your email to deliver a secure link to your survey, your responses remain completely anonymous and will only be analyzed and presented in aggregate form.

\n );\n \n const EN3 = () => (\n

Your survey responses are not linked to your email or identity.

\n );\n \n const EN4 = () => (\n

Please look for an email from innerlogic@innerlogic.com

\n );\n \n const FR1 = () => (\n

Pour accéder au sondage d'évaluation de l'environnement sportif de Hockey Canada (une initiative du Bureau du Commissaire à l'intégrité dans le sport), nous devrons vous envoyer par e-mail un lien unique et personnalisé qui vérifie que vos réponses sont sécurisées et authentiques.

\n );\n \n const FR2 = () => (\n

Alors que nous utiliserons votre e-mail pour vous envoyer un lien sécurisé vers votre sondage, vos réponses restent totalement anonymes et ne seront analysées et présentées que sous forme agrégée.

\n );\n \n const FR3 = () => (\n

Vos réponses au sondage ne sont pas liées à votre e-mail ou identité.

\n );\n \n const FR4 = () => (\n

Veuillez chercher un e-mail provenant de innerlogic@innerlogic.com

\n );\n\nconst HockeyIntro = ({language}) => {\n\n\n return (\n \n \n {language == 'EN' ? 'Hockey Culture Index - Hockey Canada Survey' : 'Indice de culture du hockey - Sondage Hockey Canada'}\n {language == 'EN' ? EN1(): FR1()}\n {language == 'EN' ? EN2(): FR2()}\n {language == 'EN' ? EN3(): FR3()}\n {language == 'EN' ? EN4(): FR4()}\n \n \n )\n\n\n}\n\nexport default HockeyIntro;\n\n\n\nconst Content = styled.div`\n max-width: 800px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n\n @media(max-width:768px){\n font-size:14px;\n padding:0px;\n }\n\n`\n\nconst Title = styled.div`\n font-size: 24px;\n font-weight:700;\n margin-bottom: 20px;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n`\n\nconst Logo = styled.img`\n width:300px;\n margin-bottom:20px;\n margin-left:-15px;\n\n \n`","import React, { useState} from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/gb.png'\nimport FR from 'assets/images/fr.png'\n\n\nconst Language = ({language,setLanguage}) =>{\n // const [language,setLanguage] = useState('EN')\n\n const [open,setOpen] = useState(false)\n\n const getPic = () =>{\n if(language === 'EN'){\n return Pic\n }else if(language === 'FR'){\n return FR\n }\n }\n\n const SelectLanguage = (lang) =>{\n setOpen(!open)\n setLanguage(lang)\n }\n\n return (\n setOpen(!open)}>\n \n \"Image\n {language}\n\n \n \n \n \n \n \n \n \n )\n}\n\n\nexport default Language\n\n\nconst Container = styled.div`\n position:absolute;\n top:10px;\n right:10px;\n cursor:pointer;\n z-index:10000;\n`\n\nconst InnerContainer = styled.div`\n position:relative;\n display:flex;\n align-items:center;\n`\n\nconst Image = styled.img`\n width:24px;\n margin-right:8px;\n`\n\nconst Text = styled.div`\nfont-weight: 600;\nfont-size: 16px;\ncolor: #2A3039;\n`\nconst Options = styled.div`\n display:${props=>props.open?'flex':'none'};\n flex-direction:column;\n background:white;\n border-radius:8px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n position:absolute;\n top:40px;\n right:0px;\n\n\n`\nconst Option = styled.div`\n padding:8px 16px;\n font-size:16px;\n color:#2A3039;\n cursor:pointer;\n &:hover{\n background:#EBF1FD;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\n\n\n\nconst Courtex = () => {\n\n return (\n \n \n \n \n \n \n \n The Sterling Hawkins Group is seeking your anonymous feedback to assess the organizational culture within Fonterra's South Asia & South-East Asia division.\n \n Please provide your work email address to receive a unique survey link. Your responses will remain confidential and will only be analyzed in aggregate once the survey closes. \n\n \n If you have any questions, please contact Renú at renu.nair@fonterra.com.\n \n\n \n Thank you for your participation.\n \n \n \n )\n}\n\n\nexport default Courtex;\n\n\nconst Container = styled.div`\n display:flex;\n flex-direction:column;\n align-items:center;\n`\n\nconst Content = styled.div`\n max-width: 600px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n background-color: #F8FAFF;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n\n @media(max-width:768px){\n font-size:14px;\n padding:20px;\n }\n\n`\nconst IMG = styled.img`\n width:200px;\n margin-bottom:20px;\n\n @media(max-width:768px){\n width:75%;\n }\n`\n\nconst Text = styled.div`\n margin-bottom:20px;\n line-height:1.6;\n`\n\nconst T1 = styled.div`\n font-size: 16px;\n font-weight: bold;\n margin-bottom: 10px;\n`;\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\n\nconst EN1 = () => (\n

To access the Hockey Sport Environment Assessment survey (an initiative of the Office of the Sport Integrity Commissioner), we’ll need to email you a unique and personalized link that verifies that your responses are secure and genuine.

\n );\n \n const EN2 = () => (\n

While we will use your email to deliver a secure link to your survey, your responses remain completely anonymous and will only be analyzed and presented in aggregate form.

\n );\n \n const EN3 = () => (\n

Your survey responses are not linked to your email or identity.

\n );\n \n const EN4 = () => (\n

Please look for an email from innerlogic@innerlogic.com

\n );\n \n const FR1 = () => (\n

Pour accéder au sondage d'évaluation de l'environnement sportif de Hockey Canada (une initiative du Bureau du Commissaire à l'intégrité dans le sport), nous devrons vous envoyer par e-mail un lien unique et personnalisé qui vérifie que vos réponses sont sécurisées et authentiques.

\n );\n \n const FR2 = () => (\n

Alors que nous utiliserons votre e-mail pour vous envoyer un lien sécurisé vers votre sondage, vos réponses restent totalement anonymes et ne seront analysées et présentées que sous forme agrégée.

\n );\n \n const FR3 = () => (\n

Vos réponses au sondage ne sont pas liées à votre e-mail ou identité.

\n );\n \n const FR4 = () => (\n

Veuillez chercher un e-mail provenant de innerlogic@innerlogic.com

\n );\n\nconst HockeyIntro = ({language}) => {\n\n\n return (\n \n \n {language == 'EN' ? 'Hockey Culture Index - Member Branch Survey' : 'Indice de culture du hockey - Sondage de Membre'}\n {language == 'EN' ? EN1(): FR1()}\n {language == 'EN' ? EN2(): FR2()}\n {language == 'EN' ? EN3(): FR3()}\n {language == 'EN' ? EN4(): FR4()}\n \n \n )\n\n\n}\n\nexport default HockeyIntro;\n\n\n\nconst Content = styled.div`\n max-width: 800px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n\n @media(max-width:768px){\n font-size:14px;\n padding:0px;\n }\n\n`\n\nconst Title = styled.div`\n font-size: 24px;\n font-weight:700;\n margin-bottom: 20px;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n`\n\nconst Logo = styled.img`\n width:300px;\n margin-bottom:20px;\n margin-left:-15px;\n\n \n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\n\nconst EN1 = () => (\n

To access the Hockey Sport Environment Assessment survey (an initiative of the Office of the Sport Integrity Commissioner), we’ll need to email you a unique and personalized link that verifies that your responses are secure and genuine.

\n );\n \n const EN2 = () => (\n

While we will use your email to deliver a secure link to your survey, your responses remain completely anonymous and will only be analyzed and presented in aggregate form.

\n );\n\n const EN5 = () => (\n

Important Note: Each personalized survey link can only be used once. If you are a parent/guardian filling out the survey with more than one player or on the behalf of more than one child, please use separate e-mail addresses to receive unique survey links.\n

)\n \n const EN3 = () => (\n

Your survey responses are not linked to your email or identity.

\n );\n \n const EN4 = () => (\n

Please look for an email from innerlogic@innerlogic.com

\n );\n \n const FR1 = () => (\n

Pour accéder au sondage d'évaluation de l'environnement sportif de Hockey Canada (une initiative du Bureau du Commissaire à l'intégrité dans le sport), nous devrons vous envoyer par e-mail un lien unique et personnalisé qui vérifie que vos réponses sont sécurisées et authentiques.

\n );\n \n const FR2 = () => (\n

Alors que nous utiliserons votre e-mail pour vous envoyer un lien sécurisé vers votre sondage, vos réponses restent totalement anonymes et ne seront analysées et présentées que sous forme agrégée.

\n );\n \n const FR3 = () => (\n

Vos réponses au sondage ne sont pas liées à votre e-mail ou identité.

\n );\n \n const FR4 = () => (\n

Veuillez chercher un e-mail provenant de innerlogic@innerlogic.com

\n );\n\nconst FR5 = () => (\n

Note importante : Chaque lien de sondage personnalisé ne peut être utilisé qu'une seule fois. Si vous êtes un parent/tuteur remplissant le sondage avec plus d'un joueur ou au nom de plus d'un enfant, veuillez utiliser des adresses e-mail séparées pour recevoir des liens de sondage uniques.

\n )\n\n\nconst HockeyIntro = ({language}) => {\n\n\n return (\n \n \n {language == 'EN' ? 'Hockey Culture Index - Participant Survey' : 'Indice de culture du hockey - Enquête de participant'}\n {language == 'EN' ? EN1(): FR1()}\n {language == 'EN' ? EN2(): FR2()}\n {language == 'EN' ? EN5(): FR5()}\n {language == 'EN' ? EN3(): FR3()}\n {language == 'EN' ? EN4(): FR4()}\n \n \n )\n\n\n}\n\nexport default HockeyIntro;\n\n\n\nconst Content = styled.div`\n max-width: 800px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n\n @media(max-width:768px){\n font-size:14px;\n padding:0px;\n }\n\n`\n\nconst Title = styled.div`\n font-size: 24px;\n font-weight:700;\n margin-bottom: 20px;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n`\n\nconst Logo = styled.img`\n width:300px;\n margin-bottom:20px;\n margin-left:-15px;\n\n \n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { Icon,Loader } from \"semantic-ui-react\";\nimport Chat from 'assets/images/chat.png'\nimport HockeyIntro from \"./HockeyIntro\";\nimport Logo from \"assets/images/logo_full.png\";\nimport Language from \"./Language\";\nimport { Message } from \"semantic-ui-react\";\nimport Courtex from \"./Custom/courtex\";\nimport HockeyIntro2 from \"./Custom/HockeyIntro_v2\"\nimport HockeyIntro3 from \"./Custom/HockeyIntro_v3\"\n\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\"; // new\nimport LogoAnimation from \"survey/SurveyComponents/LogoAnimations\";\n\nimport {\n SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY,\n SG_DEBRIEF_SURVEY,\n CLEAR_DEBRIEF_SURVEY,\n} from \"constants/actions\";\nimport { get } from \"http\";\n\nconst SurveyStart = ({ title }) => {\n const dispatch = useDispatch();\n let { token } = useParams();\n\n let [searchParams, setSearchParams] = useSearchParams();\n const direct_language = Number(searchParams.get(\"language\"));\n\n const [debriefSurvey, setDebriefSurvey] = useState(false);\n const [direction, setDirection] = useState(\"slide\");\n const [isVisible, setIsVisible] = useState(true);\n const [submitError, setSubmitError] = useState(false);\n const [language, setLanguage] = useState(\"EN\");\n\n const [loading, setLoading] = useState(true);\n\n const [email, setEmail] = useState(\"\");\n\n const [formErrors, setFormErrors] = useState([]);\n const [pristine, setPristine] = useState(true);\n\n const [surveyCreated, setSurveyCreated] = useState(false);\n\n const { get_debrief_survey, get_errors } = useSelector(\n (state) => ({\n get_debrief_survey: state.debrief_survey,\n get_errors: state.errors,\n }),\n shallowEqual\n );\n\n console.log(\"get_debrief_survey\", get_debrief_survey);\n console.log(\"get_debrief_survey?.debrief_survey?.organization_info\", get_debrief_survey?.debrief_survey?.organization_info);\n console.log(\"get_debrief_survey?.debrief_survey?.organization_name\", get_debrief_survey?.debrief_survey?.organization_name);\n console.log(\"get_debrief_survey?.debrief_survey?.organization_services\", get_debrief_survey?.debrief_survey?.organization_services);\n\n useEffect(() => {\n if (get_debrief_survey?.debrief_survey) {\n setDebriefSurvey(get_debrief_survey?.debrief_survey);\n }\n }, [get_debrief_survey.debrief_survey]);\n\n useEffect(() => {\n setTimeout(() => {\n setLoading(false);\n }, 400);\n }, []);\n\n useEffect(() => {\n if (get_debrief_survey?.employee_added) {\n setSurveyCreated(get_debrief_survey?.employee_added);\n setFormErrors({submitted: {error: false, message: 'already submitted, reset the form'}, errors: 1});\n }\n }, [get_debrief_survey.employee_added]);\n\n useEffect(() => {\n setLanguage(direct_language === 1 ? \"FR\" : \"EN\");\n }, [direct_language]);\n\n\n useEffect(() => {\n if (token) {\n dispatch({\n type: SG_DEBRIEF_SURVEY,\n payload: token,\n });\n }\n }, [dispatch, token]);\n\n function handleSubmit() {\n if (formErrors?.errors > 0) {\n setPristine(false);\n return;\n }\n\n dispatch({\n type: SG_ADD_EMPLOYEE_TO_DEBRIEF_SURVEY,\n payload: {\n survey_id: token,\n email_id: email,\n },\n });\n }\n\n useEffect(() => {\n setSubmitError(get_errors?.errors?.data?.message?.message)\n },[get_errors])\n\n useEffect(() => {\n const ErrorList = {};\n let totalErrors = 0;\n setSubmitError(false);\n console.log(get_errors)\n\n if (email?.length === 0) {\n ErrorList[\"email\"] = {\n error: true,\n message: language == \"EN\" ? \"Please enter an email\" : \"Veuillez entrer un e-mail\",\n };\n totalErrors += 1;\n } else {\n if (!ValidateEmail(email)) {\n ErrorList[\"email\"] = {\n error: true,\n message: language == 'EN' ? \"Please enter a valid email\" : \"Veuillez entrer un e-mail valide\",\n };\n totalErrors += 1;\n }\n }\n if (!debriefSurvey?.survey_id) {\n ErrorList[\"debriefSurvey\"] = {\n error: true,\n message: language == 'EN' ? \"No Valid Survey found\" : \"Aucun sondage valide trouvé\",\n };\n }\n if (get_errors?.errors?.data?.detail) {\n ErrorList[\"token\"] = {\n error: true,\n message: get_errors?.errors?.data?.detail,\n };\n }\n\n if(get_errors?.errors?.status === 403){\n ErrorList[\"token\"] = {\n error: true,\n message: language == \"EN\" ? 'Looks like this email has already been used to complete a survey. Please use a different email address to proceed.' : \"Il semble que cet e-mail ait déjà été utilisé pour compléter un sondage. Veuillez utiliser une autre adresse e-mail pour continuer.\",\n };\n }\n ErrorList[\"errors\"] = totalErrors;\n setFormErrors(ErrorList);\n }, [email, pristine, debriefSurvey, get_errors]);\n\n function ChangeEmailId(e) {\n setEmail(e.target.value)\n setFormErrors({ email: { error: false, message: \"\" }, errors: 0 });\n }\n\n\n\n const getCustomIntro = () =>{\n \n\n if(loading){\n return (\n
\n \n
)\n \n }\n\n if(get_debrief_survey?.debrief_survey?.organization_info){\n console.log(get_debrief_survey?.debrief_survey?.organization_info?.public_intro)\n\n if(get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey\"){\n return \n }\n\n if(get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"courtex\"){\n return \n }\n\n if(get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey_members\"){\n return \n }\n\n if(get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey_participants\"){\n return \n }\n\n }\n\n\n\n return (\n \n Welcome to innerlogic, a safe and secure platform for collecting culture feedback.\n \"Image\n \n )\n }\n\n\n return (\n \n setIsVisible(true)}\n onExited={() => setIsVisible(false)}\n >\n \n
\n \n\n \n \n \n { get_debrief_survey?.debrief_survey?.organization_info?.public_intro !== \"courtex\" && \"Innerlogic }\n { get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey\" && }\n {get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey_members\" && }\n {get_debrief_survey?.debrief_survey?.organization_info?.public_intro == \"hockey_participants\" && }\n \n\n \n\n {getCustomIntro()}\n \n \n \n \n {formErrors?.email?.error && !pristine && (\n \n )}\n {formErrors?.token?.error && (\n \n )}\n {submitError && (\n \n )}\n {surveyCreated?.message?.message && (\n \n )}\n
\n \n {language=='EN'?'Enter your email to receive your unique survey link.':\n 'Entrez votre adresse e-mail pour recevoir votre lien de sondage unique.'}\n \n ChangeEmailId(e)}\n placeholder={language=='EN'? \"Enter email \": \"Entrez votre adresse e-mail\"}\n />\n \n \n\n
\n \n \n
\n \n
\n );\n};\n\nexport default SurveyStart;\n\nexport const ValidateEmail = (email) => {\n return String(email)\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n};\nconst ModuleContainer = styled.div`\n position: absolute;\n top: 10%;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n z-index: 3;\n max-width:100vw;\n\n @media (max-height: 700px) {\n top:5%;\n }\n\n @media (max-width: 768px) {\n top: 0;\n }\n\n`;\n\nconst Powered = styled.div`\n display:flex;\n font-family: 'Raleway', sans-serif;\n align-items:center;\n font-weight:600;\n margin-bottom:20px;\n position:relative;\n`\n\n\n\nconst Content = styled.div`\n max-width: 600px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n background-color: #F8FAFF;\n font-size:44px;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n font-family: 'Raleway', sans-serif;\n\n @media(max-width:768px){\n font-size:24px;\n }\n`\n\nconst Image = styled.img`\n width: 100px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n\n @media(max-width:768px){\n width: 50px;\n }\n`;\n\nconst Blue = styled.span`\n color: #2d70e2;\n font-weight:700;\n`\n\nconst Form = styled.div`\n display: flex;\n flex-direction: column;\n\n background: white;\n padding: 20px;\n border-radius: 8px;\n`;\n\nconst Title = styled.div`\n font-size: 14px;\n margin-top:20px;\n line-height: 1.4;\n color: #2a3039;\n margin-bottom: 10px;\n width:100%;\n font-weight:bold;\n font-family: 'Raleway', sans-serif;\n`;\n\nconst Input = styled.input`\n font-size: 14px;\n padding: 15px;\n border: 1px solid #ddd;\n border-radius: 4px;\n width: 100%;\n font-family: 'Raleway', sans-serif;\n margin-bottom: 10px;\n`;\n\nconst Button = styled.button`\n font-size: 16px;\n font-weight:400;\n font-family: 'Raleway', sans-serif;\n padding:15px;\n color: white;\n background-color: #2254AA;\n border: none;\n cursor: pointer;\n\n @media(max-width:768px){\n margin-top:20px;\n\n }\n`\nconst IMG = styled.img`\n width: 120px;\n margin-left: 10px;\n \n @media(max-width:768px){\n margin-top:8px;\n}\n\n`\n\nconst Row = styled.div`\ndisplay:flex;\nflex-direction:column;\n\n\nwidth:400px;\nmax-width:100%;\n\n @media(max-width:768px){\n flex-direction:column;\n padding-bottom:50px;\n width:100%;\n }\n\n`","import styled from \"styled-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { SG_DEBRIEF_SURVEY } from \"constants/actions\";\nimport { useNavigate } from \"react-router-dom\";\nimport Chat from 'assets/images/chat.png'\n\nconst Screen1 = ({ title }) => {\n const dispatch = useDispatch();\n let navigate = useNavigate();\n const [text, setText] = useState(\"\");\n const [token, setToken] = useState(false);\n\n const { get_debrief_survey, get_errors } = useSelector(\n (state) => ({\n get_debrief_survey: state.debrief_survey,\n get_errors: state.errors,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n if (get_debrief_survey?.debrief_survey?.survey_id) {\n setToken(get_debrief_survey?.debrief_survey?.survey_id);\n navigate(`/culture-audit/start/${get_debrief_survey?.debrief_survey?.survey_id}`);\n }\n }, [get_debrief_survey.debrief_survey, navigate]);\n\n// {\n// \"id\": 848,\n// \"survey_id\": \"336dab17-a2a8-4dbc-b036-96a4c563e071\",\n// \"name\": \"San Fransisco\",\n// \"name_uid\": \"c05b3038-73b5-48dc-af52-5af2c499bdc5\",\n// \"status\": 3,\n// \"status_text\": \"Live\",\n// \"close_at\": \"2024-09-03T13:40:10.384000Z\"\n// }\n\n console.log(\"get_debrief_survey\", get_debrief_survey?.debrief_survey);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n // Handle form submission logic here\n console.log(text);\n if (text) {\n dispatch({\n type: SG_DEBRIEF_SURVEY,\n payload: text,\n });\n }\n };\n\n return (\n \n
\n \n Welcome to innerlogic, a safe and secure platform for collecting culture feedback.\n \"Image\n \n {title}\n setText(e.target.value)}\n placeholder=\"Enter token here\"\n />\n \n \n
\n );\n};\n\nexport default Screen1;\n\n// Styled components\nconst Container = styled.div`\n width: 100%;\n height: 100vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-family: 'Raleway', sans-serif;\n`\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n align-items: center;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n`;\n\nconst Title = styled.h1`\n font-weight: 500;\n font-size: 24px;\n line-height: 1.4;\n color: #2a3039;\n margin-bottom: 16px;\n`;\n\n\nconst Content = styled.div`\n max-width: 600px;\n width: 100%;\n padding: 40px;\n border-radius:20px;\n background-color: #F8FAFF;\n font-size:44px;\n line-height: 1.5;\n font-weight:500;\n color:#2A3039;\n\n @media(max-width:768px){\n font-size:24px;\n }\n`\n\nconst Image = styled.img`\n width: 100px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n\n @media(max-width:768px){\n width: 50px;\n }\n`;\n\n\nconst Input = styled.input`\n font-size: 16px;\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n width: 100%;\n max-width: 300px;\n margin-bottom: 16px;\n`;\n\nconst Button = styled.button`\n background-color: #2d70e2;\n color: white;\n border: none;\n border-radius: 4px;\n padding: 10px 20px;\n font-size: 16px;\n cursor: pointer;\n\n &:hover {\n background-color: #1b5fc4;\n }\n`;\n\n\nconst Blue = styled.span`\n color: #2d70e2;\n font-weight:700;\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { useParams, useSearchParams } from \"react-router-dom\";\nimport { Routes, Route } from 'react-router-dom';\n\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\"; // new\n\nimport Survey from \"./Survey\";\nimport Default from \"./Default\";\n\nconst SurveyStartHome = () => {\n const dispatch = useDispatch();\n let { token } = useParams();\n\n const [direction, setDirection] = useState(\"slide\");\n const [isVisible, setIsVisible] = useState(true);\n\n return (\n \n setIsVisible(true)}\n onExited={() => setIsVisible(false)}\n >\n \n } />\n } />\n \n \n \n );\n};\n\nexport default SurveyStartHome;\n\nconst ModuleContainer = styled.div`\n position: fixed;\n top: 0px;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 10px;\n max-height: 100vh;\n overflow: hidden;\n z-index: 3;\n\n @media (max-height: 875px) and (max-width: 768px) {\n align-items: flex-start;\n top: 125px;\n max-height: calc(100vh - 125px);\n }\n\n @media (max-height: 750px) and (max-width: 768px) {\n align-items: flex-start;\n top: ${(props) => (props.selected == \"categories\" ? \"75px\" : \"125px\")};\n max-height: calc(100vh - 125px);\n \n }\n\n @media (max-height: 550px) {\n align-items: flex-start;\n top: 75px;\n max-height: calc(100vh - 75px);\n }\n`;\n","import React, { useState,useEffect,useRef } from 'react';\nimport {Icon} from 'semantic-ui-react'\nimport styled, { keyframes } from \"styled-components\";\n\n\nconst questions= [\"Hi Michael, you've been identified as a top performer in your department. We're interested in learning more about your environment and how your organization can improve with your feedback.\",\n\"Question 2\",\"Question 3\",\"Question 4\"]\n\nconst Recon = () =>{\n\n const [question,setQuestion] = useState(0)\n const [loading,setLoading] = useState(false)\n const [prompt,setPrompt] = useState(\"\")\n const inputRef = useRef(null);\n\n\n\n const changeQuestion = () =>{\n setLoading(true)\n setTimeout(()=>{\n setLoading(false)\n setQuestion(question+1)\n inputRef.current.focus();\n },200)\n }\n\n const handleKeyDown = (e) =>{\n\n if(e.key === 'Enter'){\n e.preventDefault()\n if(prompt.length>0){\n inputRef.current.focus();\n changeQuestion()\n setPrompt(\"\")\n }\n }\n }\n\n return (\n \n
\n \n \n {!loading && }\n\n\n {question>0 && \n \n setPrompt(e.target.value)}\n style={{ width: \"100%\", marginRight: 10 }}\n placeholder=\"Enter your response here...\"\n onKeyDown={handleKeyDown}\n rows=\"1\"\n // disabled={feedback_length === 0}\n // disabledStyle={feedback_length === 0}\n />\n handleKeyDown({ key: \"Enter\" })}>\n \n \n \n }\n\n \n
\n
\n )\n\n}\n\n\nconst ChatContainer = ({message,question,setQuestion}) =>{\n\n return (\n \n \n {AiIcon()}\n \n {message}\n \n\n \n \n {question==0?\n \n :\"\"}\n \n )\n}\n\nexport default Recon\n\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst Container = styled.div`\n display:flex;\n flex-direction:column;\n width:100%;\n justify-content:center;\n align-items:center;\n font-family:'Raleway';\n`\n\nconst Center = styled.div`\n width:800px;\n`\n\n\nconst Circle = styled.div`\n width: 60px;\n height: 60px;\n border-radius: 10px;\n background-color: #2d70e2;\n margin-right: 10px;\n min-width: 60px;\n align-items: center;\n display: flex;\n justify-content: center;\n position: relative;\n z-index: -1;\n`;\n\n\nconst TopText = styled.div`\n display: flex;\n flex-direction: column;\n position:absolute;\n top:30%;\n max-width:800px;\n\n opacity: 0; // Start with hidden state\nanimation: ${fadeIn} 0.5s forwards; // Animation name, duration and play-state\n\n\n// 3. Adjust delay for each sample\nanimation-delay: 0.3s; \n`\n\nconst Row = styled.div`\n display:flex;\n`\n\nconst MessageContainer = styled.div`\n background: #f8faff;\n border-radius: 8px;\n padding: 16px;\n margin-right: 10px;\n font-size: 16px;\n line-height: 1.7;\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-top: 20px;\n `;\n\nconst Button = styled.div`\n background: #2d70e2;\n border-radius: 8px;\n padding: 10px 20px;\n color: white;\n font-weight: 600;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s ease;\n `\n\n const Bottom = styled.div`\n position: fixed;\n bottom: 0px;\n \n max-width: 970px;\n width: calc(100% - 400px);\n background-color: white;\n padding-bottom: 40px;\n\n opacity: 0; // Start with hidden state\n animation: ${fadeIn} 0.5s forwards; // Animation name, duration and play-state\n \n \n // 3. Adjust delay for each sample\n animation-delay: 0.3s; \n `;\n \n const ChatInput = styled.div`\n display: flex;\n align-items: center;\n background-color: white;\n border-radius: 8px;\n border: 1px solid #dfdfdf;\n padding: 16px;\n width: 100%;\n `;\n \n const Input = styled.textarea`\n flex-grow: 1;\n background-color: transparent;\n border: none;\n color: #2a3039;\n padding: 0 5px; /* Remove padding-top and padding-bottom */\n outline: none;\n resize: none;\n overflow: auto;\n max-height: 300px; /* Height for 4 lines */\n line-height: 24px; /* Adjust the line-height to match the desired initial height */\n width: 100%;\n \n font-family: Raleway;\n font-size: 14px;\n \n opacity: ${({ disabledStyle }) => (disabledStyle ? \"0.5\" : \"1\")};\n cursor: ${({ disabled }) => (disabled ? \"not-allowed\" : \"auto\")};\n \n &::placeholder {\n color: #666d79;\n font-size: 14px;\n }\n `;\n \n const SendButton = styled.button`\n background-color: transparent;\n border: none;\n color: #e0e0e0;\n cursor: pointer;\n outline: none;\n padding: 5px;\n margin-left: 5px;\n `;\n \n \n\n\nfunction AiIcon(fill) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n \n ","import styled,{keyframes} from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/People.png'\nimport Logo from 'assets/images/Logo blue.png'\n\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\n\nconst Text = styled.div`\nfont-weight: 500;\nfont-size: 44px;\nline-height: 1.4;\ncolor: #2A3039;\n\n\n@media (max-width: 768px) {\n font-size: 38px;\n}\n`\n\nconst SmallText = styled.div`\nfont-weight: 600;\nfont-size: 14px;\ntext-transform: uppercase;\nmargin-bottom: 20px;\n`\n\nconst Image = styled.img`\n width:300px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n margin-bottom:20px;\n\n`\n\nconst LOGO = styled.img`\n width:150px;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n\nconst IntroductionContainer = styled.div`\ndisplay: flex;\nflex-direction: column;\nalign-items: flex-start;\nmax-width:800px;\n\nopacity:0;\n\n animation: ${fadeIn} 1s ease-out forwards;\n`;\n\nconst ButtonArea = styled.div`\n display: flex;\n width:100%;\n justify-content: flex-end;\n margin-top: 20px;\n\n`;\n\nconst Button = styled.button`\n background-color: #2D70E2;\n color: white;\n font-size: 16px;\n font-weight: 400;\n border: none;\n border-radius: 5px;\n padding: 15px 30px;\n cursor: pointer;\n transition: all 0.3s;\n &:hover {\n background-color: #1F4E9D;\n }\n`;\n\nconst EN1 = (\n A conversational engine designed to convert experiences into instant actions.\n )\n\nconst FR1 = (\n Un moteur conversationnel conçu pour convertir les expériences en actions instantanées.\n )\n\nconst ES1 = (\n Un motor conversacional diseñado para convertir experiencias en acciones instantáneas.\n )\n\nconst Screen1 = ({setScreen,language}) =>{\n\n return (\n \n \n \n \n \"Image\n {language === 'EN' && EN1}\n {language === 'FR' && FR1}\n {language === 'ES' && ES1}\n \n \n \n \n \n \n \n )\n}\n\nexport default Screen1\n\n","export const words = {\n \"intro1-0\": {\n \"EN\": \"Your\",\n \"FR\": \"Ton\",\n \"ES\": \"Tu\"\n },\n \"intro1-1\": {\n \"EN\": \"experience as an\",\n \"FR\": \"expérience en tant que\",\n \"ES\": \"experiencia, como\"\n },\n \"intro1-2\": {\n \"EN\": \"integral part\",\n \"FR\": \"partie intégrante\",\n \"ES\": \"parte integral\"\n },\n \"intro1-3\": {\n \"EN\": \"of this culture\",\n \"FR\": \"de cette culture\",\n \"ES\": \"de esta cultura\"\n },\n \"intro1-4\": {\n \"EN\": \"matters\",\n \"FR\": \"compte\",\n \"ES\": \"nos importa\"\n },\n \"intro2-0\": {\n \"EN\": \"Your\",\n \"FR\": \"T'es\",\n \"ES\": \"Tu\"\n },\n \"intro2-1\": {\n \"EN\": \"responses\",\n \"FR\": \"réponses\",\n \"ES\": \"respuestas\"\n },\n \"intro2-2\": {\n \"EN\": \"from this survey\",\n \"FR\": \"de cette enquête\",\n \"ES\": \"en esta encuesta\"\n },\n \"intro2-3\": {\n \"EN\": \"will be used to create\",\n \"FR\": \"seront utilisées pour créer\",\n \"ES\": \"se utilizarán para crear\"\n },\n \"intro2-4\": {\n \"EN\": \"real change.\",\n \"FR\": \"un vrai changement.\",\n \"ES\": \"un cambio real.\"\n },\n \"intro3-0\": {\n \"EN\": \"Your\",\n \"FR\": \"T'es\",\n \"ES\": \"Tu\"\n },\n \"intro3-1\": {\n \"EN\": \"responses\",\n \"FR\": \"réponses\",\n \"ES\": \"respuestas\"\n },\n \"intro3-2\": {\n \"EN\": \"are anonymous\",\n \"FR\": \"sont anonymes\",\n \"ES\": \"son anónimas\"\n },\n \"intro3-3\": {\n \"EN\": \" and will never be \",\n \"FR\": \" et ne seront jamais \",\n \"ES\": \" y nunca serán \"\n },\n \"intro3-4\": {\n \"EN\": \"attached to\",\n \"FR\": \"attachées à\",\n \"ES\": \"vinculadas a\"\n },\n \"intro3-5\": {\n \"EN\": \"your identity.\",\n \"FR\": \"votre identité.\",\n \"ES\": \"tu identidad.\"\n },\n \"intro4-0\": {\n \"EN\": \"Do you agree with your personal data being processed as described below and in our privacy statement?\",\n \"FR\": \"Êtes-vous d'accord pour que vos données personnelles soient traitées comme décrit ci-dessus et dans notre déclaration de confidentialité ?\",\n \"ES\": \"¿Estás de acuerdo con que tus datos personales sean procesados como se describe abajo y en nuestra declaración de privacidad?\"\n },\n \"intro4-1\": {\n \"EN\": \"Privacy Agreement\",\n \"FR\": \"Accord de confidentialité\",\n \"ES\": \"Acuerdo de Privacidad\"\n },\n \"intro5-0\": {\n \"EN\": \"Are you over the age of 16?\",\n \"FR\": \"Avez-vous plus de 16 ans ?\",\n \"ES\": \"Acuerdo de Privacidad\"\n },\n \"intro7-0\": {\n \"EN\":\"Are you 19 years old or older?\",\n \"FR\":\"Avez-vous 19 ans ou plus?\",\n \"ES\":\"¿Tienes 19 años o más?\"\n },\n \"back\": {\n \"EN\": \"Back\",\n \"FR\": \"Retour\",\n \"ES\": \"Atrás\"\n },\n \"Start\": {\n \"EN\": \"Start\",\n \"FR\": \"Démarrer\",\n \"ES\": \"Empezar\"\n },\n \"Next\": {\n \"EN\": \"Next\",\n \"FR\": \"Suivant\",\n \"ES\": \"Siguiente\"\n },\n \"I agree\": {\n \"EN\": \"I agree\",\n \"FR\": \"Je suis d'accord\",\n \"ES\": \"Estoy de acuerdo\"\n },\n \"Submit\": {\n \"EN\": \"Submit\",\n \"FR\": \"Soumettre\",\n \"ES\": \"Enviar\"\n },\n \"of\": {\n \"EN\": \"of\",\n \"FR\": \"de\",\n \"ES\": \"de\"\n },\n \"category\": {\n \"EN\": \"Categorical Question\",\n \"FR\": \"Question catégorique\",\n \"ES\": \"Pregunta Categórica\"\n },\n \"Culture Question\": {\n \"EN\": \"Culture Question\",\n \"FR\": \"Question Culturelle\",\n \"ES\": \"Pregunta Cultural\"\n },\n \"qualifier\": {\n \"EN\": \"In this culture...\",\n \"FR\": \"Dans cette culture...\",\n \"ES\": \"En esta cultura...\"\n },\n \"Strongly Disagree\": {\n \"EN\": \"Strongly Disagree\",\n \"FR\": \"Fortement en désaccord\",\n \"ES\": \"Muy en desacuerdo\"\n },\n \"Strongly Agree\": {\n \"EN\": \"Strongly Agree\",\n \"FR\": \"Fortement d'accord\",\n \"ES\": \"Totalmente de acuerdo\"\n },\n \"Neutral\": {\n \"EN\": \"Neutral\",\n \"FR\": \"Neutre\",\n \"ES\": \"Neutral\"\n },\n \"min_feedback\": {\n \"EN\": \"We noticed you scored the following statement amongst lowest overall\",\n \"FR\": \"Nous avons remarqué que vous avez obtenu le score le plus bas pour l'énoncé suivant\",\n \"ES\": \"Hemos notado que calificaste la siguiente afirmación entre las más bajas en general\"\n },\n \"max_feedback\": {\n \"EN\": \"We noticed you scored the following statement amongst highest overall\",\n \"FR\": \"Nous avons remarqué que vous avez obtenu le score le plus élevé pour l'énoncé suivant\",\n \"ES\": \"Hemos notado que calificaste la siguiente afirmación entre las más altas en general\"\n },\n \"min_feedback1\": {\n \"EN\": \"You scored a\",\n \"FR\": \"Vous avez obtenu un\",\n \"ES\": \"La has calificado como\"\n },\n \"min_feedback2\": {\n \"EN\": \"Can you provide specific examples of how this factor has impacted you or your colleagues?\",\n \"FR\": \"Pouvez-vous fournir des exemples spécifiques de la façon dont ce facteur a impacté vous ou vos collègues?\",\n \"ES\": \"¿Puedes proporcionar ejemplos específicos de cómo este factor te ha afectado a ti o a tus colegas?\"\n },\n \"min_feedback3\":{\n \"EN\":\"Please provide an example of why.\",\n \"FR\":\"Veuillez fournir un exemple pour expliquer pourquoi.\",\n \"ES\":\"Por favor proporciona un ejemplo de por qué.\"\n },\n \"max_feedback1\": {\n \"EN\": \"We'd love to know more! Please provide an example of why.\",\n \"FR\": \"Nous aimerions en savoir plus! Veuillez fournir un exemple pour expliquer pourquoi.\",\n \"ES\": \"¡Nos encantaría saber más! Por favor proporciona un ejemplo de por qué.\"\n },\n \"textarea\": {\n \"EN\": \"Type your answer here\",\n \"FR\": \"Tapez votre réponse ici\",\n \"ES\": \"Escribe tu respuesta aquí\"\n },\n \"Skip\": {\n \"EN\": \"Skip\",\n \"FR\": \"Passer\",\n \"ES\": \"Omitir\"\n },\n 'welcomeMessage': {\n 'EN': 'We understand that your time is precious, but we\\'d like to take a moment to emphasize how important your feedback is to us. Your thoughts and insights can make a world of difference!',\n 'FR': 'Nous comprenons que votre temps est précieux, mais nous aimerions prendre un moment pour souligner à quel point vos retours sont importants pour nous. Vos pensées et insights peuvent faire toute la différence !',\n 'ES': 'Entendemos que tu tiempo es precioso, pero nos gustaría tomar un momento para enfatizar cuán importante es tu feedback para nosotros. ¡Tus pensamientos y percepciones pueden marcar una gran diferencia!'\n },\n 'driveChangeTitle': {\n 'EN': 'Drive meaningful change',\n 'FR': 'Provoquer un changement significatif',\n 'ES': 'Impulsar un cambio significativo'\n },\n 'driveChangeText': {\n 'EN': 'Your feedback pinpoints areas for improvement, enabling us to prioritize and implement impactful changes.',\n 'FR': 'Vos retours identifient les domaines à améliorer, nous permettant de prioriser et mettre en œuvre des changements significatifs.',\n 'ES': 'Tu feedback identifica áreas para mejorar, permitiéndonos priorizar e implementar cambios significativos.'\n },\n 'reinforceStrengthsTitle': {\n 'EN': 'Reinforce our strengths',\n 'FR': 'Renforcer nos points forts',\n 'ES': 'Reforzar nuestras fortalezas'\n },\n 'reinforceStrengthsText': {\n 'EN': 'Your positive feedback helps us maintain and enhance the features that resonate with you, ensuring exceptional services.',\n 'FR': 'Vos retours positifs nous aident à maintenir et améliorer les fonctionnalités qui vous parlent, assurant des services exceptionnels.',\n 'ES': 'Tu feedback positivo nos ayuda a mantener y mejorar las características que resuenan contigo, asegurando servicios excepcionales.'\n },\n 'influenceDecisionsTitle': {\n 'EN': 'Influence strategic decisions',\n 'FR': 'Influencer les décisions stratégiques',\n 'ES': 'Influir en las decisiones estratégicas'\n },\n 'influenceDecisionsText': {\n 'EN': 'Your input informs our decision-making process, leading to a more responsive and user-focused organization.',\n 'FR': 'Vos contributions éclairent notre processus décisionnel, menant à une organisation plus réactive et centrée sur l\\'utilisateur.',\n 'ES': 'Tu aporte informa nuestro proceso de toma de decisiones, llevando a una organización más receptiva y centrada en el usuario.'\n },\n \"Leave feedback\": {\n \"EN\": \"Leave feedback\",\n \"FR\": \"Laisser un commentaire\",\n \"ES\": \"Dejar feedback\"\n },\n \"Skip anyway\": {\n \"EN\": \"Skip anyway\",\n \"FR\": \"Passer quand même\",\n \"ES\": \"Omitir de todos modos\"\n },\n \"sharing\": {\n \"EN\": \"By sharing your experiences, you help us:\",\n \"FR\": \"En partageant vos expériences, vous nous aidez à :\",\n \"ES\": \"Al compartir tus experiencias, nos ayudas a:\"\n },\n \"matters\": {\n \"EN\": \"Your Feedback Matters!\",\n \"FR\": \"Vos retours sont importants !\",\n \"ES\": \"¡Tu Feedback Importa!\"\n },\n \"Very Poor\": {\n \"EN\": \"Very Poor\",\n \"FR\": \"Très mauvais\",\n \"ES\": \"Muy Malo\"\n },\n \"Excellent\": {\n \"EN\": \"Excellent\",\n \"FR\": \"Excellent\",\n \"ES\": \"Excelente\"\n },\n \"Congratulations\": {\n \"EN\": \"You're almost done!\",\n \"FR\": \"Vous avez presque terminé !\",\n \"ES\": \"¡Casi has terminado!\"\n },\n \"Value\": {\n \"EN\": \"Your valuable insights matter to us. Go ahead and hit that\",\n \"FR\": \"Vos précieux retours nous importent. Allez-y et appuyez sur\",\n \"ES\": \"Tu percepcion es valiosa e importante para nosotros. Presiona el botón\"\n },\n \"Value2\": {\n \"EN\": \"button to share your thoughts and help shape our organization’s future.\",\n \"FR\": \"bouton pour partager vos pensées et aider à façonner l'avenir de notre organisation.\",\n \"ES\": \"para compartir tus pensamientos y ayudar a construir el futuro de nuestra organización.\"\n },\n \"Feedback\": {\n \"EN\": \"Feedback\",\n \"FR\": \"Commentaire\",\n \"ES\": \"Feedback\"\n },\n \"category_completed\":{\n \"EN\":\"Thank you for answering these preliminary questions.\",\n \"FR\":\"Merci d'avoir répondu à ces questions préliminaires.\",\n \"ES\":\"Gracias por responder a estas preguntas preliminares.\"\n },\n \"category_completed2\":{\n \"EN\":\"Now we are going to ask you some questions about your experience with {organizationName}. Your perspectives are important.\",\n \"FR\":\"Maintenant, nous allons vous poser quelques questions sur votre expérience avec {organizationName}. Vos perspectives sont importantes.\",\n \"ES\":\"Ahora vamos a hacerte algunas preguntas sobre tu experiencia con {organizationName}. Tus perspectivas son importantes.\"\n },\n \"Searching\":{\n \"EN\":\"Looking for an existing response\",\n \"FR\":\"Recherche d'une réponse existante\",\n \"ES\":\"Buscando una respuesta existente\"\n },\n \"Searching2\":{\n \"EN\":\"It looks like we've found an existing survey response. Would you like to:\",\n \"FR\":\"Il semble que nous ayons trouvé une réponse à l'enquête existante. Souhaitez-vous :\",\n \"ES\":\"Parece que hemos encontrado una respuesta existente a la encuesta. ¿Te gustaría:\"\n },\n 'Restart':{\n \"EN\":'Restart the survey',\n \"FR\":'Redémarrer l\\'enquête',\n \"ES\":'Reiniciar la encuesta'\n },\n \"Load\":{\n \"EN\":\"Load the existing response\",\n \"FR\":\"Charger la réponse existante\",\n \"ES\":\"Cargar la respuesta existente\"\n },\n \"completed_on\":{\n \"EN\":\"This survey was completed on\",\n \"FR\":\"Cette enquête a été complétée le\",\n \"ES\":\"Esta encuesta fue completada el\"\n },\n \"survey_status1\":{\n \"EN\":\"We are unable to get information about this survey.\",\n \"FR\":\"Nous ne pouvons pas obtenir d'informations sur cette enquête.\",\n \"ES\":\"No podemos obtener información sobre esta encuesta.\"\n },\n \"team_qualifier\":{\n \"EN\":\"In {team}'s culture...\",\n \"FR\":\"Dans la culture de {team}...\",\n \"ES\":\"En la cultura de {team}...\"\n },\n \"In the hockey environment (training and competition)...\":{\n \"EN\":\"In the hockey environment (training and competition)...\",\n \"FR\":\"Dans l'environnement du hockey (entraînement et compétition)...\",\n \"ES\":\"En el entorno del hockey (entrenamiento y competencia)...\"\n },\n \"intro4-2\":{\n \"EN\":\"DISCLAIMER: This survey uses conversational AI at times to ask more specifically about your experiences. If you are uncomfortable with any AI prompt and do not want to respond, please just hit the skip button. Thank you.\",\n \"FR\":\"AVERTISSEMENT : Cette enquête utilise l'IA conversationnelle parfois pour demander plus spécifiquement sur vos expériences. Si vous n'êtes pas à l'aise avec une invite d'IA et ne souhaitez pas répondre, appuyez simplement sur le bouton Ignorer. Merci.\",\n },\n \n}","import styled from 'styled-components';\nimport React, { useState, useEffect } from 'react';\nimport {words} from './translations'\n// ... styled-components code ...\n\nconst Slider = ({ id, question, saveUpdatedAnswers,language }) => {\n const [sliderValue, setSliderValue] = useState(5);\n const [isDragging, setIsDragging] = useState(false);\n const [clickedVal, setClickedVal] = useState(false)\n\n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (!isDragging) return;\n\n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue);\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n setSliderValue(Math.round(sliderValue));\n saveValue(Math.round(sliderValue))\n };\n\n const handleTouchMove = (e) => {\n if (!isDragging) return;\n \n const track = document.getElementById('slider-track');\n const trackRect = track.getBoundingClientRect();\n let newValue = ((e.touches[0].clientX - trackRect.left) / trackRect.width) * 10;\n\n newValue = Math.min(Math.max(newValue, 0), 10);\n\n setSliderValue(newValue);\n saveValue(newValue)\n };\n\n const handleTouchEnd = () => {\n let newValue = Math.round(sliderValue)\n setIsDragging(false);\n setSliderValue(newValue);\n saveValue(newValue)\n };\n \n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleTouchMove);\n window.addEventListener('touchend', handleTouchEnd);\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('touchend', handleTouchEnd);\n \n };\n \n }, [isDragging, sliderValue]);\n\n\n\n const handleClick = (e) => {\n const track = document.getElementById('slider-track');\n // const track = document.getElementById(id);\n const rect = track.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const newValue = Math.round((x / rect.width) * 10);\n setSliderValue(newValue);\n //\n // SaveResponse(newValue)\n saveValue(newValue)\n };\n\n const handleMouseDown = () => {\n setIsDragging(true);\n };\n\n const handleTouchStart = () => {\n setIsDragging(true);\n };\n\n\n const saveValue = (newValue) => {\n setClickedVal(true)\n //\n SaveResponse(newValue)\n }\n // save the response\n function SaveResponse(newValue) {\n const QuesResp = {\n q: question,\n response: newValue,\n type: 'quantitative'\n }\n\n saveUpdatedAnswers(QuesResp)\n }\n\n // Add a function to interpolate between two colors\n const lerpColor = (color1, color2, t) => {\n const r = color1.r + t * (color2.r - color1.r);\n const g = color1.g + t * (color2.g - color1.g);\n const b = color1.b + t * (color2.b - color1.b);\n return { r, g, b };\n };\n\n // Add a function to calculate the thumb color\n const getThumbColor = () => {\n const color1 = { r: 248, g: 168, b: 176 };\n const color2 = { r: 254, g: 205, b: 141 };\n const color3 = { r: 149, g: 230, b: 210 };\n const t = sliderValue / 10;\n\n if (t < 0.5232) {\n const newT = t / 0.5232;\n const interpolatedColor = lerpColor(color1, color2, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n } else {\n const newT = (t - 0.5232) / (1 - 0.5232);\n const interpolatedColor = lerpColor(color2, color3, newT);\n return `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;\n }\n };\n\n\n const thumbPosition = {\n left: `calc(${(sliderValue / 10) * 100}% - 10px )`,\n };\n\n const dotCount = 11;\n const dots = Array.from({ length: dotCount }, (_, index) => (\n \n ));\n\n return (\n \n\n \n \n {dots}\n \n \n {Math.round(sliderValue)}\n \n \n \n \n \n\n \n {words['Strongly Disagree'][language]}\n {words['Neutral'][language]}\n {words['Strongly Agree'][language]}\n \n \n );\n};\n\nexport default Slider;\n\n \nconst Container = styled.div`\n width:100%;\n padding-top:70px;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n`\n\nconst ScaleLabel = styled.span`\n font-size: 14px;\n\n @media (max-width: 500px) {\n font-size: ${props=>props.language=='EN'?'14px':'12px'};\n }\n`;\n\nconst SliderContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst ScaleLabelsContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 8px;\n`;\n\nconst TrackWrapper = styled.div`\n position: relative;\n height: calc(10px + 10px); // 5px above and below the track area\n cursor: pointer;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\n\nconst Track = styled.div`\n width: 100%;\n height: 6px;\n background: linear-gradient(\n to right,\n #F8A8B0 0%,\n #FECD8D 52.32%,\n #95E6D2 100%\n );\n position: relative;\n border-radius: 5px;\n cursor: pointer;\n`;\n\nconst Thumb = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #000;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n cursor: pointer;\n user-select: none;\n border: 4px solid white;\n box-shadow: 0px 8px 20px rgba(63, 134, 254, 0.08);\n`;\n\n\nconst Tooltip = styled.div`\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: #666D79;\n border-radius: 8px;\n width: 33px;\n height: 29px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${(props) => props.clicked? '#FFFFFF': '#D6DBDF'};\n font-size: 14px;\n font-weight: ${(props) => props.clicked? '700': ' 400'};\n margin-bottom: 8px; // 8px above the track\n`;\n\n\nconst Triangle = styled.div`\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 4px 0;\n border-color: #666D79 transparent transparent;\n`;\n\n\n\nconst DotsContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 1px;\n display: flex;\n justify-content: space-between;\n`;\n\nconst Dot = styled.div`\n width: 4px;\n height: 4px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n transform: translateY(-50%);\n`;\n","import React from 'react';\nimport styled,{keyframes} from 'styled-components';\nimport Slider from './Slider';\nimport {words} from './translations';\n\nconst Question = ({ question,id,saveResponse,setScreen,response,language }) => {\n\n\n const getQuestion = () =>{\n if(language==\"EN\"){\n return question.question\n }\n if(language==\"FR\"){\n return question.fr\n }\n if(language==\"ES\"){\n return question.es\n }\n }\n\n \n return (\n {words['Culture Question'][language]}\n {words['qualifier'][language]}\n {getQuestion()}\n \n\n\n \n \n \n )\n};\nexport default Question;\n\n\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst QuestionContainer = styled.div`\n width: 100%;\n max-width:600px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n opacity:0;\n\n animation: ${fadeIn} 1s ease-out forwards;\n`;\n\nconst Title = styled.div`\n color: #2D70E2;\n text-transform: uppercase;\n font-size:14px;\n font-weight:600;\n margin-bottom: 40px;\n`\n\nconst Qualifier = styled.div`\n color:#2A3039;\n font-size:16px;\n font-weight:600;\n margin-bottom:14px;\n line-height:1.4;\n`\n\nconst QuestionText = styled.p`\n font-size: 16px;\n font-weight:400;\n color: #2A3039;\n`;\n\n\nconst ButtonArea = styled.div`\n display: flex;\n width:100%;\n justify-content: flex-end;\n margin-top: 20px;\n\n`;\n\nconst Button = styled.button`\n background-color: #2D70E2;\n color: white;\n font-size: 16px;\n font-weight: 400;\n border: none;\n border-radius: 5px;\n padding: 10px 35px;\n cursor: pointer;\n transition: all 0.3s;\n margin-top:40px;\n &:hover {\n background-color: #1F4E9D;\n }\n\n &:disabled{\n background-color: #ccc;\n cursor: not-allowed;\n }\n`;","\n\nexport const structurePrompt = (responses,language) => {\n\n if(language == 'EN'){\n return structureENPrompt(responses)\n }\n\n if(language == 'FR'){\n return structureFRPrompt(responses)\n }\n\n if(language == 'ES'){\n return structureESPrompt(responses)\n }\n \n\n\n}\n\nconst structureENPrompt = (responses) => {\n let follow_up = false\n let prompt = 'The following are the quantitative responses to a culture survey from a respondent:\\n\\n'\n Object.keys(responses).map((i) => {\n if(responses[i].type == \"quantitative\"){\n prompt += `Question: ${responses[i].q.question}\\Score: ${responses[i].response} /10\\n\\n`\n }\n if(responses[i].type == 'ai'){\n follow_up = true\n prompt +='\\n\\n Based on the quantitative questions, we have already generated the following follow up question(s), and included are the respondents answer(s):\\n'\n prompt += `Question: ${responses[i].question}\\nResponse: ${responses[i].response}\\n\\n`\n }\n \n })\n\n if(follow_up){\n\n prompt += `## TASK:\\nYour goal is to generate a follow up question based on the respondents last response that is gets feedback that is actionable and can be used to generate recommendations for the organization. \n Dont be ambiguous about the question. You should focus on understanding why the respondent gave the response they did, and provide enough information for the \n respondent to understand what you are asking. If the scores are predominantly positive, then you should seek to understand what is working well and why.\n You are trying gain a better understanding of the respondents perspective and potential solution. The goal here is to understand to the greatest extent possible the cause and potential solutions to the lowest\n scoring areas. Deeper context and understanding about a single very low score is always better then shallow understanding of multiple scores. \\n\\n\n The question should be simple enough for a 7th grader to understand. Only ever return the question itself. Never reference a question number. Be compassionate and empathetic in your question.\n Act as a coach, not a judge. \\n\\n\n Question:\\n`\n\n }else{\n prompt += `## TASK:\\nYour goal is to generate a follow up question which is designed to get feedback which will\n get the respondent to elaborate on their score in such a way that the feedback is actionable and can be used to generate recommendations for the organization. \n Dont be ambiguous about the score or question. You should focus on understanding why the respondent gave the score they did, and provide enough information for the \n respondent to understand what you are asking. If the scores are predominantly positive, then you should seek to understand what is working well and why.\n The question should be simple enough for a 7th grader to understand. Only ever return the question itself. Never reference a question number. Be compassionate and empathetic in your question.\n Act as a coach, not a judge. \\n\\n\n Question:\\n`\n\n }\n\n return prompt\n}\n\nconst structureFRPrompt = (responses) => {\n let follow_up = false\n let prompt = 'Les réponses quantitatives suivantes sont celles d\\'un répondant à une enquête sur la culture:\\n\\n'\n Object.keys(responses).map((i) => {\n if(responses[i].type == \"quantitative\"){\n prompt += `Question: ${responses[i].q.question}\\Score: ${responses[i].response} /10\\n\\n`\n }\n if(responses[i].type == 'ai'){\n follow_up = true\n prompt +='\\n\\n Sur la base des questions quantitatives, nous avons déjà généré la ou les questions de suivi suivantes, et les réponses des répondants sont incluses:\\n'\n prompt += `Question: ${responses[i].question}\\nRéponse: ${responses[i].response}\\n\\n`\n }\n \n })\n\n if(follow_up){\n\n prompt += `## TÂCHE:\\nVotre objectif est de générer une question de suivi basée sur la dernière réponse du répondant qui obtient des commentaires qui sont exploitables et peuvent être utilisés pour générer des recommandations pour l'organisation. \n Ne soyez pas ambigu sur la question. Vous devriez vous concentrer sur la compréhension de pourquoi le répondant a donné la réponse qu'il a donnée, et fournir suffisamment d'informations pour que le répondant comprenne ce que vous demandez. Si les scores sont principalement positifs, alors vous devriez chercher à comprendre ce qui fonctionne bien et pourquoi.\n Vous essayez de mieux comprendre la perspective du répondant et la solution potentielle. L'objectif ici est de comprendre dans la plus grande mesure possible la cause et les solutions potentielles aux domaines les moins bien notés. Un contexte et une compréhension plus approfondis sur un seul score très bas sont toujours meilleurs qu'une compréhension superficielle de plusieurs scores. \\n\\n\n La question doit être assez simple pour qu'un élève de 7e année la comprenne. Ne retournez jamais que la question elle-même. Ne faites jamais référence à un numéro de question. Soyez compatissant et empathique dans votre question.\n Agissez en tant que coach, pas en tant que juge. \\n\\n\n Question:\\n`\n\n }else{\n prompt += `## TÂCHE:\\nVotre objectif est de générer une question de suivi conçue pour obtenir des commentaires qui permettront au répondant d'élaborer sur sa note de manière à ce que les commentaires soient exploitables et puissent être utilisés pour générer des recommandations pour l'organisation. \n Ne soyez pas ambigu sur la note ou la question. Vous devriez vous concentrer sur la compréhension de pourquoi le répondant a donné la note qu'il a donnée, et fournir suffisamment d'informations pour que le répondant comprenne ce que vous demandez. Si les scores sont principalement positifs, alors vous devriez chercher à comprendre ce qui fonctionne bien et pourquoi.\n La question doit être assez simple pour qu'un élève de 7e année la comprenne. Ne retournez jamais que la question elle-même. Ne faites jamais référence à un numéro de question. Soyez compatissant et empathique dans votre question.\n Agissez en tant que coach, pas en tant que juge. \\n\\n\n Question:\\n`\n\n }\n\n return prompt\n}\n\nconst structureESPrompt = (responses) => {\n let follow_up = false\n let prompt = 'Las siguientes respuestas cuantitativas son de un encuestado a una encuesta de cultura:\\n\\n'\n Object.keys(responses).map((i) => {\n if(responses[i].type == \"quantitative\"){\n prompt += `Pregunta: ${responses[i].q.question}\\Puntuación: ${responses[i].response} /10\\n\\n`\n }\n if(responses[i].type == 'ai'){\n follow_up = true\n prompt +='\\n\\n Basado en las preguntas cuantitativas, ya hemos generado la(s) siguiente(s) pregunta(s) de seguimiento, y se incluyen las respuestas de los encuestados:\\n'\n prompt += `Pregunta: ${responses[i].question}\\Respuesta: ${responses[i].response}\\n\\n`\n }\n \n })\n\n if(follow_up){\n\n prompt += `## TAREA:\\nSu objetivo es generar una pregunta de seguimiento basada en la última respuesta del encuestado que obtenga comentarios que sean accionables y se puedan utilizar para generar recomendaciones para la organización. \n No sea ambiguo sobre la pregunta. Debería centrarse en comprender por qué el encuestado dio la respuesta que dio y proporcionar suficiente información para que el encuestado comprenda lo que está preguntando. Si las puntuaciones son predominantemente positivas, entonces debería tratar de comprender qué está funcionando bien y por qué.\n Está intentando comprender mejor la perspectiva del encuestado y la solución potencial. El objetivo aquí es comprender en la mayor medida posible la causa y las soluciones potenciales a las áreas menos puntuadas. Un contexto y una comprensión más profundos sobre una sola puntuación muy baja siempre son mejores que una comprensión superficial de múltiples puntuaciones. \\n\\n\n La pregunta debe ser lo suficientemente simple para que un estudiante de séptimo grado la entienda. Solo devuelva la pregunta en sí misma. Nunca haga referencia a un número de pregunta. Sea compasivo y empático en su pregunta.\n Actúe como un entrenador, no como un juez. \\n\\n\n Pregunta:\\n`\n\n }else{\n prompt += `## TAREA:\\nSu objetivo es generar una pregunta de seguimiento diseñada para obtener comentarios que permitan al encuestado elaborar sobre su puntuación de tal manera que los comentarios sean accionables y se puedan utilizar para generar recomendaciones para la organización.\n No sea ambiguo sobre la puntuación o la pregunta. Debería centrarse en comprender por qué el encuestado dio la puntuación que dio y proporcionar suficiente información para que el encuestado comprenda lo que está preguntando. Si las puntuaciones son predominantemente positivas, entonces debería tratar de comprender qué está funcionando bien y por qué.\n La pregunta debe ser lo suficientemente simple para que un estudiante de séptimo grado la entienda. Solo devuelva la pregunta en sí misma. Nunca haga referencia a un número de pregunta. Sea compasivo y empático en su pregunta.\n Actúe como un entrenador, no como un juez. \\n\\n\n Pregunta:\\n`\n\n }\n\n return prompt\n\n}","import React,{useRef,useEffect,useState} from 'react';\nimport styled,{keyframes} from 'styled-components';\nimport Logo from 'assets/images/Logo blue.png'\nimport { Loader } from \"semantic-ui-react\";\nimport { useSelector, useDispatch, shallowEqual } from \"react-redux\";\nimport { SG_GET_CHAT_GPT_SUMMARY } from \"constants/actions\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {structurePrompt} from './structurePrompt'\nimport Typewriter from \"typewriter-effect\";\nimport {words} from './translations'\n\nconst NewValidationToken = uuidv4();\n\n\nconst Conversation = ({responses,setScreen,response,id,saveResponse,language}) =>{\n const dispatch = useDispatch();\n const timeout = useRef(null);\n const [loading, setLoading] = useState(true);\n const textareaRef = useRef();\n const [question, setQuestion] = useState(\"\");\n const [feedbackText, setFeedbackText] = useState(\"\");\n\n const { get_chat_gpt } = useSelector(\n (state) => ({\n get_chat_gpt: state.chatgpt,\n }),\n shallowEqual\n );\n\n useEffect(() => {\n setLoading(true)\n SubmitChatGpt();\n }, [id]);\n\n useEffect(() => {\n if (get_chat_gpt?.response_pending === true) {\n timeout.current = setTimeout(() => {\n setLoading(false);\n }, 15000);\n }\n\n if (get_chat_gpt?.response_pending === false) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n setLoading(get_chat_gpt?.response_pending);\n if (get_chat_gpt.chat_gpt_summary?.response) {\n setQuestion(get_chat_gpt.chat_gpt_summary?.response);\n }\n\n return () => {\n clearTimeout(timeout.current);\n };\n }, [get_chat_gpt]);\n\n \n const handleChange = (event) => {\n setFeedbackText(event.target.value);\n const ResponseObj = {\n response: event.target.value,\n question: question,\n type:'ai'\n };\n\n saveResponse(ResponseObj);\n\n \n };\n\n function SubmitChatGpt() {\n\n let _prompt = structurePrompt(responses,language)\n\n dispatch({\n type: SG_GET_CHAT_GPT_SUMMARY,\n payload: {\n payload: _prompt,\n token: NewValidationToken,\n },\n });\n }\n\n const save = () =>{\n setQuestion(\"\")\n setFeedbackText(\"\")\n setScreen()\n }\n\n\n return (\n \n \n <IMG src={Logo} />\n \n \n {loading ? (\n \n ) : {\n typewriter\n .changeDelay(12)\n .typeString(question)\n .pauseFor(80)\n .start();\n }}\n />\n }\n \n\n \n\n \n \n \n\n \n\n )\n}\n\nexport default Conversation\n\n\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\n\n// Define keyframes\nconst loading01 = keyframes`\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n`;\n\n// Styled component for loading text\nconst Loading = styled.div`\n font-size: 18px;\n font-weight: 600;\n font-family: \"Raleway\", sans-serif;\n text-align: center;\n\n span {\n display: inline-block;\n margin: 0;\n }\n`;\n\n// Styled component for loading01 animation\nconst Loading01 = styled(Loading)`\n span {\n animation: ${loading01} 1.4s infinite alternate;\n\n &:nth-child(1) {\n animation-delay: 0s;\n }\n &:nth-child(2) {\n animation-delay: 0.1s;\n }\n &:nth-child(3) {\n animation-delay: 0.2s;\n }\n &:nth-child(4) {\n animation-delay: 0.3s;\n }\n &:nth-child(5) {\n animation-delay: 0.4s;\n }\n &:nth-child(6) {\n animation-delay: 0.5s;\n }\n &:nth-child(7) {\n animation-delay: 0.6s;\n }\n }\n`;\n\n\n\nconst FeedbackContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 600px;\n width: 100%;\n font-family: \"Raleway\", sans-serif;\n\n opacity:0;\n\n animation: ${fadeIn} 1s ease-out forwards;\n`;\n\n\nconst Description = styled.div`\n color: #2a3039;\n font-family: \"Raleway\";\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n margin-bottom: 34px;\n line-height: 1.6;\n`;\nconst Title = styled.div`\n color: #2d70e2;\n text-transform: uppercase;\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 40px;\n display: flex;\n`;\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n padding: 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.5;\n color: #2a3039;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n resize: none;\n font-family: \"Raleway\", sans-serif;\n height:200px;\n\n &:focus {\n color: #495057;\n background-color: #fff;\n border-color: #2d70e2;\n outline: 0;\n }\n`;\n\n\nconst Circle = styled.div`\n width: 40px;\n height: 40px;\n border-radius: 10px;\n background-color: #2d70e2;\n margin-right: 10px;\n min-width: 40px;\n align-items: center;\n display: flex;\n justify-content: center;\n position: relative;\n`;\n\n\n\nconst IMG = styled.img`\nwidth:150px;`;\n\nconst ButtonArea = styled.div`\n display: flex;\n width:100%;\n justify-content: flex-end;\n margin-top: 20px;\n\n`;\n\nconst Button = styled.button`\n background-color: #2D70E2;\n color: white;\n font-size: 16px;\n font-weight: 400;\n border: none;\n border-radius: 5px;\n padding: 10px 35px;\n cursor: pointer;\n transition: all 0.3s;\n margin-top:40px;\n &:hover {\n background-color: #1F4E9D;\n }\n\n &:disabled{\n background-color: #ccc;\n cursor: not-allowed;\n }\n`;","import styled,{keyframes} from 'styled-components';\nimport React,{ useState } from 'react';\nimport Pic from 'assets/images/People.png'\nimport Logo from 'assets/images/Logo blue.png'\n\nconst EN1 = \"Thank you for participating in the innerlogic survey. Your insights matter to us.\"\nconst FR1 = \"Merci d'avoir participé à l'enquête innerlogic. Vos opinions comptent pour nous.\"\nconst ES1 = \"Gracias por participar en la encuesta de innerlogic. Sus opiniones son importantes para nosotros.\"\n\n\nconst Finish = ({language}) =>{\n\n const getText = () =>{\n if(language == \"EN\") return EN1\n if(language == \"FR\") return FR1\n if(language == \"ES\") return ES1\n }\n\n return (\n \n \n \n \n \n \n {getText()}\n\n \n \n \n \n \n \n )\n}\n\nexport default Finish\n\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\n\nconst Text = styled.div`\nfont-weight: 400;\nfont-size: 20px;\nline-height: 1.4;\ncolor: #2A3039;\n\n\n@media (max-width: 768px) {\n font-size: 38px;\n}\n`\n\nconst SmallText = styled.div`\nfont-weight: 600;\nfont-size: 14px;\ntext-transform: uppercase;\nmargin-bottom: 20px;\n`\n\nconst Image = styled.img`\n width:300px;\n display: inline;\n vertical-align: middle;\n margin-left: 0.25em;\n margin-right: 0.25em;\n margin-bottom:20px;\n\n`\n\nconst LOGO = styled.img`\n width:150px;\n`\n\nconst InlineWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n`;\n\nconst Highlight = styled.span`\nbackground: #EBF1FD;\nborder-radius: 40px;\npadding:0px 16px;\nmargin:0px -8px;\n\n`\n\nconst Bold = styled.span`\n font-weight:600;\n color:#2D70E2;\n`\n\nconst IntroductionContainer = styled.div`\ndisplay: flex;\nflex-direction: column;\nalign-items: flex-start;\nmax-width:800px;\n\nopacity:0;\n\n animation: ${fadeIn} 1s ease-out forwards;\n`;\n\nconst ButtonArea = styled.div`\n display: flex;\n width:100%;\n justify-content: flex-end;\n margin-top: 20px;\n\n`;\n\nconst Button = styled.button`\n background-color: #2D70E2;\n color: white;\n font-size: 16px;\n font-weight: 400;\n border: none;\n border-radius: 5px;\n padding: 15px 30px;\n cursor: pointer;\n transition: all 0.3s;\n &:hover {\n background-color: #1F4E9D;\n }\n`;","import React, { useState} from 'react';\nimport styled from 'styled-components';\nimport Pic from 'assets/images/gb.png'\nimport FR from 'assets/images/fr.png'\nimport ES from 'assets/images/ES.png'\nimport { useNavigate } from 'react-router-dom';\n\nconst Language = ({language,setLanguage,languages}) =>{\n // const [language,setLanguage] = useState('EN')\n const navigate = useNavigate();\n\n\n const [open,setOpen] = useState(false)\n\n const getPic = () =>{\n if(language === 'EN'){\n return Pic\n }else if(language === 'FR'){\n return FR\n }else if(language === 'ES'){\n return ES\n }\n }\n\n const SelectLanguage = (lang) =>{\n setOpen(!open)\n setLanguage(lang)\n\n if(lang === 'FR'){\n navigate(`?language=1`, { replace: true });\n }\n if(lang === 'EN'){\n navigate(`?language=0`, { replace: true });\n }\n if(lang === 'ES'){\n navigate(`?language=2`, { replace: true });\n }\n }\n\n return (\n setOpen(!open)}>\n \n \"Image\n {language}\n\n \n \n \n {languages?.includes('ES') && }\n \n \n \n \n )\n}\n\n\nexport default Language\n\n\nconst Container = styled.div`\n position:absolute;\n top:15px;\n right:30px;\n cursor:pointer;\n z-index:10000;\n`\n\nconst InnerContainer = styled.div`\n position:relative;\n display:flex;\n align-items:center;\n`\n\nconst Image = styled.img`\n width:24px;\n margin-right:8px;\n`\n\nconst Text = styled.div`\nfont-weight: 600;\nfont-size: 16px;\ncolor: #2A3039;\n`\nconst Options = styled.div`\n display:${props=>props.open?'flex':'none'};\n flex-direction:column;\n background:white;\n border-radius:8px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n position:absolute;\n top:40px;\n right:0px;\n\n\n`\nconst Option = styled.div`\n padding:8px 16px;\n font-size:16px;\n color:#2A3039;\n cursor:pointer;\n &:hover{\n background:#EBF1FD;\n }\n`","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport Screen1 from \"./screen1\";\nimport Question from \"./Question\";\nimport Sample from \"./sample.json\"\nimport Conversation from \"./Conversation\";\nimport Finish from \"./Finish\";\nimport Language from \"./Language\";\n\nconst Demo = () =>{\n const [screen, setScreen] = useState(1)\n const [response, setResponse] = useState({})\n const [language, setLanguage] = useState(\"EN\")\n\n const saveResponse = (resp) =>{\n let _response = {...response}\n\n _response[screen] = resp\n\n setResponse(_response) \n }\n\n const renderScreen = () =>{\n\n if(screen ==1){\n return setScreen(2)} language={language}/>\n }\n\n if(screen < Sample.length+2){\n return saveResponse(resp)} \n setScreen={()=>setScreen(screen+1)}/>\n }\n\n if(screen == Sample.length+4){\n return \n }\n\n return saveResponse(resp)} \n setScreen={()=>setScreen(screen+1)} />\n \n }\n\n return (\n \n \n {renderScreen()}\n \n )\n}\n\nexport default Demo\n\nconst Container = styled.div`\n display:flex;\n justify-content:center;\n font-family: 'Raleway';\n align-items:center;\n height:100vh;\n width:100vw;\n padding:20px;\n`","import React from \"react\";\nimport { Navigate } from \"react-router-dom\";\n\nimport Health from \"health\";\n\nimport Survey from \"survey/TeamCulture/index\";\n\nimport PersonalitySurvey from \"survey/Personality/index\";\nimport TeamIntelligence from \"survey/TeamCulture/TeamIntelligence/index\";\n\nimport EdiSurvey from \"survey/EDI\";\nimport EdiPrivacy from \"survey/EDI/Privacy\";\n\nimport OTPV2 from \"survey/OTPV2/index\";\nimport OTP from \"survey/OTP/index\";\nimport OTPPrivacy from \"survey/OTP/Privacy\";\nimport Template from \"survey/Template/index\";\n\nimport Blink from \"survey/Blink/index\";\n// import Debrief from 'survey/Debriefs/index'\n// import Demo from \"survey/Audit/demo\"\n\nimport Subfactor from \"survey/Test/subfactor_value\";\nimport Tested from \"survey/AuditV2/Survey\";\nimport Context from \"survey/Context\";\n// import Legacy from 'survey/Test/legacy'\n\nimport CultureAudit from \"survey/Audit/index\";\n// New Survey Design May 2023\nimport CultureAuditV2 from \"survey/AuditV2/index\";\nimport CultureAuditV2a from \"survey/AuditV2/SurveyV2\";\nimport Test from \"survey/Test\";\nimport InitialReport from \"survey/Context/Initial_Report\";\n// START to check if employee is already in the debrief survey\nimport Start from \"survey/Start\";\n\n\nimport Recon from \"survey/Recon/index\";\nimport Demo from \"survey/Demo/index\";\n\nexport const routes = [\n {\n path: \"/survey/:token\",\n element: ,\n },\n {\n path: \"/personality-survey/:token\",\n element: ,\n },\n {\n path: \"/team-intelligence/:token\",\n element: ,\n },\n {\n path: \"/test\",\n element: ,\n },\n {\n path: \"/roi-calculator\",\n element: ,\n },\n {\n path: \"/context\",\n element: ,\n },\n {\n path: \"/report\",\n element: ,\n },\n {\n path: \"/culture-audit/start/*\",\n element: ,\n },\n {\n path: \"/culture-audit/:token\",\n element: ,\n },\n {\n path: \"/culture-audit-v2/:token\",\n element: ,\n },\n {\n path: \"/culture-audit-v2a/:token\",\n element: ,\n },\n {\n path: \"/edi-survey/:token\",\n element: ,\n },\n {\n path: \"/edi-survey/privacy\",\n element: ,\n },\n {\n path: \"/otp-v2/:token\",\n element: ,\n },\n {\n path: \"/otp/:token\",\n element: ,\n },\n {\n path: \"/otp/privacy\",\n element: ,\n },\n {\n path: \"/insight/:token\",\n element: