{"version":3,"sources":["utils.js","constants.js","services/API/user.js","services/API/client.js","services/API/index.js","services/API/verification.js","services/API/others.js","features/survey/constants/questions.js","features/survey/utils/utils.js","features/survey/constants/constants.js","features/survey/constants/branching.js","pages/user/survey/Survey.jsx","pages/client/setup/setup-style.module.css","pages/user/constants/handleNetworkErrors.js","features/survey/components/survey/questions/video/video-thumbnail/VideoThumbnail.jsx","components/user/survey-questions/video/video-thumbnail/VideoThumbnail.jsx","components/user/profile-questions/checkboxes-special/CheckboxesSpecial.jsx","assets/logo.png","features/survey/components/survey/questions/image/image-thumbnail/ImageThumbnail.jsx","components/user/survey-questions/image/image-thumbnail/ImageThumbnail.jsx","features/survey/utils/questionUtils.js","store.js","features/survey/components/survey/survey.module.css","pages/user/survey/survey.module.css","pages/client/criteria/criteria.module.css","assets/robot-large.png","assets/footer_wave.png","pages/client/new-survey/new-survey-styles.module.css","assets/user-login-bg.png","assets/create-survey.png","assets/history.png","assets/logout.png","assets/profile-icon.png","assets/published-survey.png","assets/settings.png","assets/survey-result.png","features/survey/components/survey/Survey.jsx","features/survey/components/survey/questions/text/Text.jsx","features/survey/components/survey/questions/multiple-choice/MultipleChoice.jsx","features/survey/components/survey/questions/checkboxes/Checkboxes.jsx","features/survey/components/survey/questions/star-rating/StarRating.jsx","features/survey/components/survey/questions/slider/Slider.jsx","features/survey/components/survey/questions/likert/Likert.jsx","features/survey/components/survey/questions/nps/NPS.jsx","features/survey/components/survey/questions/ranking/Ranking.jsx","features/survey/components/survey/questions/dropdown/Dropdown.jsx","features/survey/components/survey/questions/association/Association.jsx","features/survey/components/survey/questions/image/instructions/ImageInstructions.jsx","features/survey/components/survey/questions/image/comment/ImageComment.jsx","features/survey/components/survey/questions/image/multiple-choice/ImageMultipleChoice.jsx","features/survey/components/survey/questions/image/checkboxes/ImageCheckboxes.jsx","features/survey/components/survey/questions/image/rating/ImageRating.jsx","features/survey/components/survey/questions/image/ranking/ImageRanking.jsx","features/survey/components/survey/questions/image/association/ImageAssociation.jsx","features/survey/components/survey/questions/video/instruction/VideoInstruction.jsx","features/survey/components/survey/questions/video/rating/VideoRating.jsx","features/survey/components/survey/questions/video/association/VideoAssociation.jsx","features/survey/components/survey/questions/video/ranking/VideoRanking.jsx","features/survey/components/survey/questions/video/multiple-choice/VideoMultipleChoice.jsx","features/survey/components/survey/questions/video/checkboxes/VideoCheckboxes.jsx","features/survey/components/survey/questions/video/comment/VideoComment.jsx","features/survey/components/survey/questions/ad-analysis/AdAnalysis.jsx","pages/user/constants/getWordCloudReport.js","components/AgoraVideoCall/index.jsx","components/user/survey-questions/text/Text.jsx","components/user/survey-questions/multiple-choice/MultipleChoice.jsx","components/user/survey-questions/checkboxes/Checkboxes.jsx","components/user/survey-questions/star-rating/StarRating.jsx","components/user/survey-questions/slider/Slider.jsx","components/user/survey-questions/likert/Likert.jsx","components/user/survey-questions/nps/NPS.jsx","components/user/survey-questions/ranking/Ranking.jsx","components/user/survey-questions/dropdown/Dropdown.jsx","components/user/survey-questions/association/Association.jsx","components/user/survey-questions/image/instructions/ImageInstructions.jsx","components/user/survey-questions/image/comment/ImageComment.jsx","components/user/survey-questions/image/multiple-choice/ImageMultipleChoice.jsx","components/user/survey-questions/image/checkboxes/ImageCheckboxes.jsx","components/user/survey-questions/image/rating/ImageRating.jsx","components/user/survey-questions/image/ranking/ImageRanking.jsx","components/user/survey-questions/image/association/ImageAssociation.jsx","components/user/survey-questions/video/instruction/VideoInstruction.jsx","components/user/survey-questions/video/rating/VideoRating.jsx","components/user/survey-questions/video/association/VideoAssociation.jsx","components/user/survey-questions/video/ranking/VideoRanking.jsx","components/user/survey-questions/video/multiple-choice/VideoMultipleChoice.jsx","components/user/survey-questions/video/checkboxes/VideoCheckboxes.jsx","components/user/survey-questions/video/comment/VideoComment.jsx","components/user/survey-questions/ad-analysis/AdAnalysis.jsx","assets/copy.png","assets/trash (1).png","pages/client/questions/ad-analysis/ad-analysis-choices.module.css","pages/client/result/QuestionSummary/QuestionSummary.module.css","pages/client/questions/question-box-styles.module.css","services/API/admin.js","pages/client/participants/Modals/CopyPanelModal/CopyPanelModal.module.css","pages/client/criteria/additional-criteria.module.css","pages/client/published-survey/ChatComponent/QuestionBuilder/QuestionBuilder.module.css","logo.svg","pages/client/result/icons/barchart.svg","pages/client/result/icons/barcharth.svg","pages/client/result/icons/barh.svg","pages/client/result/icons/barhh.svg","pages/client/result/icons/pie.svg","pages/client/result/icons/pieh.svg","pages/client/result/icons/line.svg","pages/client/result/icons/lineh.svg","assets/a.png","assets/b.png","assets/c.png","assets/d.png","assets/e.png","assets/f.png","assets/laptop.png","assets/laptopvideo.gif","assets/brand_pics/Kelloggs_logo.png","assets/brand_pics/Mac_logo.png","assets/brand_pics/Macys_logo.png","assets/brand_pics/Philips_logo.png","assets/brand_pics/Poshmark_logo.png","pages/user/time-slot/timeslot.module.css","features/survey/hooks/qualSurvey/useVideoRef.jsx","features/survey/components/survey/questions/Index.jsx","features/survey/components/survey/questions/likert/likert.module.css","features/survey/components/survey/moderatedCall/QuestionPopup/QuestionPopup.module.css","pages/user/profile/profile.module.css","components/form-item-label/form-item-label.module.css","components/user/profile-question-box/profile-question-box.module.css","components/user/profile-questions/multiple-choice/multiple-choice.module.css","pages/user/settings/settings.module.css","components/user/survey-questions/likert/likert.module.css","pages/user/registration-questions/reg-questions.module.css","pages/client/draft/CopySurveyModals/ConfirmationModal.module.css","pages/client/draft/CopySurveyModals/PublishedSurveyListModal.module.css","pages/client/draft/DraftFormBoxCopy.module.css","pages/client/share-modal.module.css","pages/client/draft/draft-forms.module.css","pages/client/project/project.module.css","pages/client/questions/form-star/form-star.module.css","pages/client/questions/likert/likert.module.css","pages/client/questions/slider/slider.module.css","pages/client/questions/multi-choices/MultiChoiceOptions/MultiChoiceOptions.module.css","pages/client/questions/image-multi-choices/imageMultiChoicesOptions/imageMultiChoicesOptions.module.css","pages/client/questions/image-star-rating/imageMultiChoicesOptions/imageMultiChoicesOptions.module.css","pages/client/questions/videoInstruction/VideoInstruction.module.css","pages/client/questions/video-star-rating/videoStarRatingChoices/videoStarRatingChoices.module.css","pages/client/questions/textABTest/textABTestChoices/TextABTestChoices.module.css","pages/client/questions/imageABTest/imageABTestChoices/ImageABTestChoices.module.css","pages/client/questions/videoABTest/videoABTestChoices/VideoABTestChoices.module.css","pages/client/questions/association/associationChoices/AssociationChoices.module.css","pages/client/questions/image-association/ImageAssociationChoices/ImageAssociationChoices.module.css","pages/client/questions/video-association/VideoAssociationChoices/VideoAssociationChoices.module.css","pages/client/questions/question-instruction/QuestionInstruction.module.css","pages/client/questions/add-link/AddLink.module.css","pages/client/questions/imageInstruction/imageInstruction.module.css","pages/client/questions/video-multi-choices/videoMultiChoicesOptions/VideoMultiChoicesOptions.module.css","pages/client/questions/net-promotor-score/NetPromotorScore.module.css","pages/client/questions/survey-brief/SurveyBrief.module.css","pages/client/questionsPage/questions-styles.module.css","pages/client/publish/publish.module.css","pages/client/participants/UploadCSV.module.css","pages/client/participants/criteria.module.css","pages/client/participants/Modals/DeletePanelUserConfirmModal/DeletePanelUserConfirmModal.module.css","pages/client/published-survey/Modals/ShareSurveyModal/ShareSurveyModal.module.css","pages/client/published-survey/Modals/SurveyStateModal/SurveyStateModal.module.css","pages/client/published-survey/Modals/CalendarComponent.module.css","pages/client/published-survey/published-forms.module.css","pages/client/published-survey/PublishedFormBoxNew.module.css","pages/client/published-survey/ChatComponent/ChatComponent.module.css","pages/client/published-survey/ChatComponent/NoteBox/NoteBox.module.css","pages/client/published-survey/PublishedFormBoxNewCopy.module.css","assets/stop (1).png","assets/fi-rr-caret-right.svg","pages/client/result/IndividualReponses/ResponseBox/ResponseBox.module.css","components/sentiment-graph/SentimentGraph.module.css","pages/client/result/IndividualReponses/ResponseBox/TranscriptVideoModal/TranscriptVideoModal.module.css","pages/client/result/IndividualReponses/ResponseBox/ReelsModal/ReelsModal.module.css","pages/client/result/IndividualReponses/ResponseBox/AddParticipantToPanel/AddParticipantToPanel.module.css","pages/client/result/Navbar/navbar.module.css","pages/client/result/QuestionSummary/QuestionBox/QuestionBox.module.css","components/starRating/StarRating.module.css","pages/client/result/result.module.css","pages/admin/users-survey/user-survey.module.css","pages/admin/client-info/client-info.module.css","assets/client-login-1.png","pages/Signin.module.css","assets/Picture5.png","assets/Picture6.png","assets/Picture7.png","components/Card/Card.module.css","assets/trial_illustration.png","assets/images/woman-giving-survey.png","assets/images/accordion-plus.png","assets/images/accordion-minus.png","assets/images/check-mark.png","assets/images/woman-chilling.png","components/user/sidenav/iconImages.js","components/user/sidenav/Sidenav.jsx","components/topbar/Topbar.jsx","actions/users.js","features/survey/utils/moderated/schedule.js","features/survey/hooks/qualSurvey/moderatedSurvey/useCancelCall.jsx","features/survey/components/SurveyCard.jsx","pages/user/constants/commonFunctions.js","pages/user/time-slot/TimeSlot.jsx","features/survey/utils/screeningUtils.js","features/survey/components/InstructionModal/SurveyStartOptions.jsx","features/survey/components/InstructionModal/InstructionModal.jsx","features/survey/hooks/useHandleScreeningQuestions.jsx","features/survey/components/survey/screening/ScreeningWrapper.jsx","features/survey/utils/qual_unmoderated/uploader.js","features/survey/hooks/qualSurvey/moderatedSurvey/qual_unmoderatd/useUploadVideoHandler.jsx","features/survey/hooks/useHandleDisqualification.jsx","features/survey/components/survey/moderatedCall/meeting/index.jsx","agora.config.js","features/survey/components/survey/moderatedCall/QuestionPopup/QuestionPopup.jsx","features/survey/components/survey/moderatedCall/ModeratedSurvey.jsx","features/survey/components/survey/permDenied.jsx","features/survey/components/survey/SurveyWrapper.jsx","features/survey/hooks/useSurveyEventHandlers.jsx","pages/user/form/Form.jsx","components/page-layout/PageLayout.jsx","components/form-item-label/FormItemLabel.jsx","components/input-box/InputBox.jsx","components/button/Button.jsx","components/user/profile-questions/multiple-choice/MultipleChoice.jsx","components/user/profile-questions/checkboxes/Checkboxes.jsx","components/user/profile-question-box/ProfileQuestionBox.jsx","components/profile/email-input-box/EmailInputBox.jsx","components/profile/mobile-input-box/MobileInputBox.jsx","pages/user/profile/Profile.jsx","pages/client/Components.jsx","pages/user/settings/Settings.jsx","components/responsive-table/ResponsiveTable.jsx","components/user/confused/Confused.jsx","pages/user/history/History.jsx","pages/user/sample-survey/SampleSurvey.jsx","pages/user/registration-questions/RegQuestions.jsx","pages/user/User.jsx","components/client/sidenav/iconImages.js","components/client/sidenav/Sidenav.jsx","pages/client/draft/NewFormBox.jsx","pages/client/draft/CopySurveyModals/ConfirmationModal.jsx","pages/client/draft/CopySurveyModals/PublishedSurveyListModal.jsx","pages/client/handleNetworkErrors.js","pages/client/draft/imageIndex.js","pages/client/ShareModal.jsx","pages/client/draft/DraftFormBoxCopy.jsx","pages/client/draft/DraftForms.jsx","components/folderIcon/index.jsx","pages/client/project/Project.jsx","pages/client/new-survey/HeaderButtons.jsx","pages/client/new-survey/Errors.jsx","pages/client/useArray.js","pages/client/setup/Setup.jsx","pages/client/questions/form-star/FormStar.jsx","pages/client/questions/likert/Likert.jsx","pages/client/questions/slider/FormSlider.jsx","pages/client/questions/multi-choices/MultiChoiceOptions/MultiChoiceOptions.jsx","pages/client/questions/multi-choices/MultiChoices.jsx","pages/client/questions/image-multi-choices/imageMultiChoicesOptions/imageMultiChoicesOptions.jsx","pages/client/questions/image-multi-choices/imageMultiChoices.jsx","pages/client/questions/image-star-rating/imageMultiChoicesOptions/imageMultiChoicesOptions.jsx","pages/client/questions/image-star-rating/ImageStarRating.jsx","pages/client/questions/rangeDropDown/RangeDropDown.jsx","pages/client/questions/videoInstruction/VideoInstruction.jsx","pages/client/questions/video-star-rating/videoStarRatingChoices/videoStarRatingChoices.jsx","pages/client/questions/video-star-rating/videoStarRating.jsx","pages/client/questions/textABTest/textABTestChoices/TextABTestChoices.jsx","pages/client/questions/textABTest/TextABTest.jsx","pages/client/questions/imageABTest/imageABTestChoices/ImageABTestChoices.jsx","pages/client/questions/imageABTest/ImageABTest.jsx","pages/client/questions/videoABTest/videoABTestChoices/VideoABTestChoices.jsx","pages/client/questions/videoABTest/VideoABTest.jsx","pages/client/questions/association/associationChoices/AssociationChoices.jsx","pages/client/questions/association/Association.jsx","pages/client/questions/image-association/ImageAssociationChoices/ImageAssociationChoices.jsx","pages/client/questions/image-association/ImageAssociation.jsx","pages/client/questions/video-association/VideoAssociationChoices/VideoAssociationChoices.jsx","pages/client/questions/video-association/VideoAssociation.jsx","pages/client/questions/question-instruction/QuestionInsturction.jsx","pages/client/questions/add-link/AddLink.jsx","pages/client/questions/imageInstruction/imageInstruction.jsx","pages/client/questions/video-multi-choices/videoMultiChoicesOptions/VideoMultiChoicesOptions.jsx","pages/client/questions/video-multi-choices/VideoMultiChoices.jsx","pages/client/questions/net-promotor-score/NetPromotorScore.jsx","pages/client/questions/survey-brief/SurveyBrief.jsx","pages/client/questions/ad-analysis/AdAnalysisChoices.jsx","pages/client/result/IndividualReponses/ResponseBox/VideoModal/VideoModal.jsx","pages/client/questions/ad-analysis/AdAnalysis.jsx","pages/user/survey/SurveyQuestion.jsx","pages/client/questions/QuestionBox.jsx","pages/client/branching-logic/handleErrors.js","pages/client/branching-logic/BranchingLogic.jsx","pages/client/questionsPage/Questions.jsx","pages/client/publish/Publish.jsx","pages/client/criteria/CriteriaUtils.js","pages/client/criteria/FilterUsers.jsx","pages/client/criteria/AdditionalCriteria.jsx","pages/client/criteria/ScreeningQuestion.jsx","pages/client/criteria/AddScreeningQuestion.jsx","pages/client/criteria/Modals/RatioModal/RatioModal.jsx","pages/client/criteria/RatioDescription.jsx","pages/client/criteria/GroupContainer.jsx","pages/client/criteria/RatioContainer.jsx","pages/client/criteria/Criteria.jsx","pages/client/participants/UserQualParticipants.jsx","pages/client/participants/UploadCSV.jsx","pages/client/participants/ImportParticipants.jsx","pages/client/participants/Modals/DeletePanelUserConfirmModal/DeletePanelUserConfirmModal.jsx","pages/client/participants/Modals/CopyPanelModal/CopyPanelModal.jsx","pages/client/participants/PastSurveyParticipants.jsx","pages/client/participants/Participants.jsx","pages/client/new-survey/useErrors.js","pages/client/criteria/defaultCriteria.js","pages/client/new-survey/CostCounter.js","pages/client/published-survey/Modals/ShareSurveyModal/ShareSurveyModal.jsx","pages/client/new-survey/NewSurvey.jsx","pages/client/draft/DraftFormBox.jsx","pages/client/published-survey/Modals/CalendarComponent.jsx","pages/client/published-survey/Modals/SurveyStateModal/SurveyStateModal.jsx","pages/user/meeting/index.jsx","pages/client/published-survey/PublishedFormBoxRefactored.jsx","pages/client/published-survey/ChatComponent/NoteBox/NoteBox.jsx","pages/client/published-survey/ChatComponent/QuestionBuilderError/questionErrors.js","pages/client/published-survey/ChatComponent/QuestionBuilderError/Errors.jsx","pages/client/published-survey/ChatComponent/QuestionBuilder/QuestionBuilder.jsx","pages/client/published-survey/ChatComponent/ChatComponent.jsx","pages/client/published-survey/publishedFormBoxImages.js","pages/client/published-survey/PublishedFormBoxRefactoredCopy.jsx","pages/client/published-survey/PublishedForms.jsx","components/flex-row/index.jsx","pages/client/result/constants/styles.js","components/constants/questionType.js","pages/client/result/IndividualReponses/ResponseBox/ImageModal/ImageModal.jsx","components/wordcloud/WordCloud.jsx","components/CreateChart/CreateChart.jsx","components/sentiment-graph/SentimentGraph.jsx","pages/client/result/IndividualReponses/ResponseBox/WordCloudAndSentimentReport/WordCloudAndSentimentReport.jsx","pages/client/result/IndividualReponses/ResponseBox/TranscriptModal/TranscriptModal.jsx","pages/client/result/IndividualReponses/ResponseBox/TranscriptVideoModal/TransciptVideoModal.jsx","pages/client/result/IndividualReponses/ResponseBox/ReelsModal/ReelsModal.jsx","pages/client/result/IndividualReponses/ResponseBox/EmotionalAnalysisModal/EmotionalAnalysisModal.jsx","pages/client/result/IndividualReponses/ResponseBox/index.jsx","pages/client/result/constants/filterUsers.js","pages/client/result/IndividualReponses/ResponseBox/AddParticipantToPanel/AddParticipantToPanel.jsx","pages/client/result/IndividualReponses/index.jsx","components/dropdown/dropdown.jsx","components/tabbar/TabBar.jsx","pages/client/result/Navbar/index.jsx","pages/client/result/constants/tableUtility.js","components/filter-checkbox/FilterCheckbox.jsx","components/ColorPicker/index.jsx","components/ButtonToggle/index.jsx","components/starRating/StarRating.jsx","components/gaugeMeter/GaugeMeter.jsx","pages/client/result/constants/wordCloudTestData.js","pages/client/result/constants/npsValues.js","pages/client/result/QuestionSummary/QuestionBox/index.jsx","pages/client/result/constants/attributes.js","pages/client/result/QuestionSummary/index.jsx","pages/client/result/index.jsx","pages/client/account/index.jsx","pages/client/AccountModal.jsx","actions/client.js","pages/client/requests/Requests.jsx","pages/client/Client.jsx","components/admin/sidenav/Sidenav.jsx","components/question-text-box/QuestionTextbox.jsx","components/admin/choice-input-box/ChoiceInputBox.jsx","components/admin/two-choice-input-box/TwoChoiceInputBox.jsx","components/admin/a-b-texttypequestion/abTextTypeQuestion.jsx","components/admin/imageMultiChoiceInput/imageMultiChoiceInput.jsx","components/admin/videoMultiChoiceInput/videoMultiChoiceInput.jsx","components/admin/imageABTest/imageABTest.jsx","components/admin/videoABTest/videoABTest.jsx","components/admin/imageAssociation/imageAssociation.jsx","components/admin/videoAssociation/videoAssociation.jsx","actions/admin.js","components/admin/question-box/QuestionBox.jsx","pages/admin/registration-questions/RegQuestions.jsx","pages/admin/sample-questions/SampleQuestions.jsx","pages/admin/additional-questions/AdditionalQuestions.jsx","pages/admin/users-survey/UserSurvey.jsx","components/admin/influencer/categories/Categories.jsx","components/admin/influencer/edit-influencer/EditInfluencerModal.jsx","pages/admin/influencer/Influencer.jsx","components/admin/client-info/config-client-info-modal/ConfigClientInfoModal.jsx","pages/admin/client-info/ClientInfo.jsx","components/admin/pricing/plans-fees-modal/PlansFeesModal.jsx","components/conditional-form-block/ConditionalFormBlock.jsx","components/admin/pricing/config-pricing-modal/ConfigPricingModal.jsx","components/admin/pricing/question-pricing-modal/QuestionPricingModal.jsx","components/admin/pricing/other-pricing-modal/OtherPricingModal.jsx","pages/admin/pricing/Pricing.jsx","components/admin/features/config-features-modal/ConfigFeaturesModal.jsx","pages/admin/features/Features.jsx","pages/admin/Admin.jsx","pages/Signin.jsx","pages/Signup.jsx","pages/Verification.jsx","components/Features/Feature/Feature.js","components/Features/Features.js","components/Card/Card.js","components/Market/Description.jsx","components/Market/Market.js","components/Footer/Footer.js","components/Trial/Trial.js","components/Laptop/Laptop.jsx","components/Navbar/Navbar.jsx","components/Home/Home.jsx","components/Brands/Brands.js","pages/HomeCSSLoad.jsx","pages/Home.jsx","components/HomeV2/HomeTextBanner/HomeTextBanner.jsx","components/HomeV2/HomeQuestionAnswers/questionAnswerData.js","components/HomeV2/HomeQuestionAnswers/HomeQuestionAnswers.jsx","components/HomeV2/HomeFeedback/HomeFeedback.jsx","components/Layout/Header/Header.jsx","components/Layout/Footer/Footer.jsx","components/Layout/Layout/Layout.jsx","pages/BecomeTester.jsx","pages/PrivacyAndTermsAndConditions.jsx","pages/user/AddSurvey.jsx","features/survey/hooks/qualSurvey/useGetSurvey.jsx","features/survey/hooks/openSurvey/useGetOpenSurvey.jsx","features/survey/hooks/openSurvey/useIsOpenSurvey.jsx","pages/user/AttemptSurvey.jsx","Routes.js","App.js","serviceWorker.js","index.js"],"names":["incrementPendingRequests","store","dispatch","increment","decrementPendingRequests","decrement","notify","type","title","msg","duration","notification","message","description","String","capitalizeFirstCharacter","str","charAt","toUpperCase","slice","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","getRoleByToken","token","jwt_decode","role","err","getEmailByToken","email","getSurveyIdByToken","surveyId","getVideoUrl","userId","getModeratedVideoUrl","qualitativeId","surveyAccess","replace","getModeratedSubtitlesUrl","getSubtitlesUrl","generateId","len","c","r","Math","random","toString","Sum","array","reduce","element","total","Number","getDateObject","date","time","split","day","month","year","length","dateString","Date","getClientId","localStorage","getItem","isUserRole","getUserId","fetchUsers","accountId","a","clientId","axios","Routes","client","getAccountUsers","data","allUsers","userPages","FORMS","PROFILE","SETTINGS","HISTORY","adminPages","REGQUESTIONS","SAMPLEQUESTIONS","ADDITIONALQUESTIONS","SURVEYS","INFLUENCERS","CLIENTS","PRICING","FEATURES","COLOR","darkBlue","dullLightGreen","ultraLightGrey","grey","teal","urlPattern","RegExp","EMAIL_VALIDATION_REGEX","months","graphConfigTemplate","options","display","text","fontSize","legend","position","scales","xAxes","stacked","ticks","beginAtZero","yAxes","tooltips","enabled","aspectRatio","labels","datasets","barPercentage","minBarLength","label","backgroundColor","borderColor","borderWidth","barPecentage","colorConstant","g","b","branchingConditions","CONTAINS","DOES_NOT_CONTAIN","CONTAINS_ONE_OF","DOES_NOT_CONTAIN_ANY_OF","CONTAINS_ALL_OF","DOES_NOT_CONTAIN_ALL_OF","IS_EXACTLY","IS_NOT","IS_FROM_TO","RANKING","ASSOCIATION","IMAGE_VIDEO_RATINGS","branchingActions","SKIP_TO_QUESTION","END_SURVEY","DISQUALIFY_RESPONDENT","HIDE_QUESTION","INVALIDATE_QUESTION","surveyStates","IN_PROGRESS","PAUSE","END","questionTemplate","clientLink","stars","starType","likertRange","likertStartLabel","likertMiddleLabel","likertEndLabel","sliderType","sliderValue","sliderMin","sliderMax","sliderStartLabel","sliderMiddleLabel","sliderEndLabel","npsOption","multiChoices","imageMultiChoices","imageLabel","imageData","videoMultiChoices","videoLabel","videoData","imageStarRatingChoices","imageStar","imageStarType","range","questionInstuction","videoStarRatingChoices","videoStar","videoStarType","textABTestChoices","inputWord","percentage","imageABTestChoices","videoABTestChoices","associationChoices","association","imageAssociationChoices","videoAssociationChoices","surveyBrief","adAnalysisChoices","adAnalysisData","url","BASEURL","convertSecondsIntoStandardFormat","seconds","toISOString","substring","floor","GetFilename","stripRandomChars","fileName","replaceRegex","convertSecondsToReadable","secondsString","padStart","minutesString","convertReadableToSecond","timeString","parseInt","convertSecondsToStdString","secs","toFixed","mins","hourString","convertTranscriptToWebVtt","transcript","acc","t","index","isNote","start","end","getClientDisplayName","name","firstName","lastName","ACCESS_LEVEL","create","publish","admin","PERMISSION","VIEW","EDIT","signin","method","signup","forgotPassword","getProfile","id","editProfile","getSurveys","getSurvey","getOpenSurvey","isOpenSurvey","completeSurvey","completeOpenSurvey","startSurvey","startOpenSurvey","addSurvey","removeSurvey","getWordCloudReport","confirmTimeSlot","freeSlot","createAccount","updateAccountName","invitedUsers","inviteClient","editAccess","removeClient","addBalance","upgradeTier","uploadFile","mergeVideos","createSurvey","projectId","editSurvey","sharedCopy","editSurveyShared","deleteSurvey","copySurvey","publishSurvey","sendForApproval","rejectSurvey","upsertQualitativeData","fetchQualitativeData","slotKey","generateOpenModeratedLink","removeReel","createReel","inputs","output","resolution","height","width","nameModifier","addReel","numberOfUsersMatchingCriteria","getVideo","getVideoAnalysis","jobId","nextToken","qualitativeSummaries","getTranscript","cliendId","getPanels","updatePanels","createPanel","getPanel","panelId","getPanelUsers","editPanel","addUserToPanel","deletePanel","getProjects","createProject","getProject","editProjectName","editProjectShare","deleteProject","fetchSurveyInfo","getClientInformation","targetClientId","employOpenModeratedLink","defaults","baseURL","interceptors","request","use","config","headers","Authorization","error","Promise","reject","user","verification","sendOTP","mobileNumber","verifyOTP","sendEmail","verifyEmail","others","tierInfo","adminQuestions","getInfluencerCategories","checkAvailable","queryString","questionTypes","TEXT","MULTI_CHOICE","CHECKBOX","STARS","SLIDER","LIKERT","NPS","DROPDOWN","IMAGE_INSTRUCTION","IMAGE_COMMENT","IMAGE_ABTEST","IMAGE_MULTICHOICE","IMAGE_CHECKBOX","IMAGE_STARRATINGCHOICE","IMAGE_RANKING","IMAGE_ASSOCIATION","VIDEO_INSTRUCTION","VIDEO_COMMENT","VIDEO_MULTICHOICE","VIDEO_CHECKBOX","VIDEO_STARRATINGCHOICE","VIDEO_RANKING","VIDEO_ASSOCIATION","AGE","CHECKBOXESSPECIAL","AD_ANALYSIS","specialTypes","typeRequired","isQuantSurvey","survey","surveyType","isUnmoderatedQualSurvey","mode","isModeratedSurvey","isGroupSurvey","setting","getSurveyType","surveyTypes","QUANTITATIVE","QUALITATIVE_UNMODERATED","QUALITATIVE_MODERATED","getSurveyTime","timingType","round","questions","getRange","fill","map","_","idx","GROUP_SLOTS","SLOT_TIME_HRS","times","value","OPEN","CLOSED","modalStyles","content","top","left","border","padding","borderRadius","cx","RobotLarge","rules","condition","choices","logicalOr","actions","question","isTypeRequired","emptyCheck","answer","isEmpty","Object","el","answers","hiddenQuestions","Survey","isScreeningQuestion","forceClose","onEndSurvey","onDisqualification","tryOwnForm","brandName","brandLogo","surveyInstructions","TopBarResponsive","useMediaQuery","query","isTablet","useState","videoRef","useRef","console","useEffect","i","isOpen","navigator","video","stream","videoObject","step","totalQuestions","endSurveySlideNumber","isQuestionHidden","getQuestionText","getComponentByQuestionType","onChange","values","key","val","defaultValue","style","color","specialField","verifyRuleConditions","conditions","lastElement","op","item","cond","eval","x","JSON","num","ans","executeRuleActions","setStep","setIsDisqualified","performBranchingLogic","results","rl","curr","verified","incrementStep","prevStep","decrementStep","endSurvey","getWordCloudAnalysis","report","resetModal","onCloseModal","onClose","shouldRenderOptions","onRequestClose","className","src","maxHeight","maxWidth","objectFit","cursor","onClick","end_center","marginRight","fontWeight","flexGrow","alignItems","textAlign","whiteSpace","margin","bordered","justifyContent","gap","paddingLeft","window","shape","size","ref","module","exports","handleNetworkErrors","response","log","messageExists","errorExists","desc","status","statusText","info","VideoModal","footer","visible","onCancel","closable","wrapClassName","playing","controls","right","noBorder","setPlay","boxShadow","wordBreak","marginTop","play","CheckboxesSpecial","checkedList","setCheckedList","Group","checkedValue","newCheckedList","filter","marginLeft","lineHeight","alt","setZoom","zoom","image","allowRotate","showTitle","doubleClickZoom","includes","isAnswerEmpty","keys","forEach","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","generateReducers","pendingRequests","profileQuestions","surveys","openModToken","applyMiddleware","thunk","showPermDeniedPage","useVideoRef","setRole","setTempAnswers","onChangeAnswer","updateAnswer","stopVideo","showThankYouPage","setShowThanksPage","Text","TextArea","rows","placeholder","resize","e","target","newValues","addedValues","difference","addedValue","setLocalValue","allowClear","character","getCharacter","count","isTabletOrMobile","marks","tooltipVisible","tipFormatter","max","onAfterChange","paddingTop","likertStyles","class","justifySelf","numbers","ListItem","number","background","onDragEnd","items","setList","droppableId","provided","flexDirection","draggableId","dragHandleProps","minWidth","overflowY","arr","snapshot","draggableStyle","ImageComment","imgUrl","onRatingsChange","rate","setRatings","opt","marginBottom","field","VideoInstruction","VideoRating","ratings","VideoAssociation","destination","source","push","innerRef","droppableProps","flexShrink","flex","draggableProps","isDragging","videoUrl","VideoRanking","VideoMultipleChoice","VideoCheckboxes","localValue","isMcq","VideoComment","AdAnalysis","light","comments","tile_canvas","1","2","3","4","5","6","7","8","9","10","11","12","WIDTH","HEIGHT","constructor","streamInit","defaultConfig","streamID","audio","screen","AgoraRTC","merge","subscribeStreamEvents","rt","evt","setTimeout","removeStream","uid","document","tempList","streamList","addStream","repeatition","concat","handleCamera","handleMic","switchDisplay","displayMode","hideRemote","handleExit","readyState","startRecording","fps","clearRect","audioContext","$","mediaRecorder","MediaRecorder","mimeType","event","isRecordingStarted","stopRecording","isRecordingEnded","props","init","this","socket","io","ss","qData","aData","onHostLeave","startUpload","upload","chunk","endUpload","hostLeave","onPublishQuestion","onSendAnswer","uploadURL","uploader","ex","filePath","transcode","canvas","btnGroup","global","clearTimeout","state","no","setState","dom","triggerQuestionPublished","setTriggerQuestionPublished","trigger","triggerSubmitAnswer","setTriggerSubmitAnswer","unpublish","localStream","leave","merger","numStreams","mute","draw","ctx","done","videoControlBtn","attendeeMode","audioControlBtn","switchDisplayBtn","hideRemoteBtn","exitBtn","startRecordingBtn","stopRecordingBtn","gridGap","justifyItems","gridTemplateRows","gridTemplateColumns","isClient","React","editAdmin","getAdminQuestions","addAdminQuestion","updateAdminQuestions","getAdminQuestion","updateAdminQuestion","questionId","getClients","getClient","addClient","editClient","verifySurvey","getInfluencers","updateInfluencers","createInfluencer","getInfluencer","influencerId","editInfluencer","deleteInfluencer","mediaDevices","getUserMedia","then","current","srcObject","catch","getTracks","track","kind","stop","createSurveyIcon","historyIcon","logOutIcon","profileIcon","publishedSurveyIcon","settingIcon","surveyResultIcon","SidenavItem","StyledIcon","selectedItem","history","useHistory","drawer","to","active","icons","zIndex","setDrawer","placement","setProfile","setSurveys","responses","numberOfParticipants","getState","_id","location","pathname","getProfileQuestions","displayAt","activeProfileQuestions","isActive","areQuestionsAnswered","registration","sample","additional","sampleQuestionsArray","questionObject","userField","questionType","interval","userType","paymentType","paymentValue","screeningQuestions","setProfileQuestions","set","getScheduledSlotForUser","moderatedSlots","surveyDate","surveyTime","timeSlot","getScheduledSlotForUserTimeStamp","isSlotChangeDisabled","d","setHours","getHours","useCancelCall","useDispatch","finally","SurveyCard","handleClick","surveyHeader","surveyTimeSlot","VideoCameraFilled","transform","FileTextFilled","opacity","prevSlot","isMobile","newSlots","filterSlots","DateDiv","selectedDate","TimeDiv","selectedTime","currentDate","setSelecteDate","setSelectedTime","prevDate","prevTime","disabled","hasScreeningQuestions","passedScreeningTest","some","buttonStyle","SurveyStartOptions","handleStartSurveyClick","handleCancel","showTimeSlot","setShowTimeSlot","hasScreeningTest","cancelCall","scheduledCallTimeStamp","Fragment","marging","surveyScheduledTimeStamp","find","slots","InstructionModal","surveyTypeText","surveyModeText","surveySizeText","renderPairs","pair","getInstructions","useHandleScreeningQuestions","getScreeningQuestions","handleScreeningQuestions","onEnd","onPass","setShowFailedScreeningPage","showFailedScreeningPage","on","emit","getDisplayMedia","VideoStreamMerger","y","ondataavailable","destroy","useUploadVideoHandler","setSS","setMediaRecorder","setMerger","setVideo","setScreen","up","initUpload","includeSS","useHandleDisqualification","isOneToOne","videoProfile","channel","baseMode","appId","handleEndSurvey","recordingStartTime","setRecordingStartTime","stopRecordingHandler","notes","setNotes","showQuestionPopup","showAnswer","setOpenUID","employLink","onEndQuestion","onSubmitLiveQuestion","onQuestionSubmit","href","rel","ModeratedSurvey","profile","useSelector","slot","setSlot","questionPopup","setQuestionPopup","setQuestion","showModeratedSurvey","setShowModeratedSurvey","UID","setUID","handleSubmitLiveQuestion","answerOpenModeratedSurveyQuestions","answerModeratedSurveyQuestions","success","userName","undefined","SurveyWrapper","onExit","setIsScreeningQuestion","startedAt","setStartedAt","setEndsAt","handleStartSurvey","onStartSurvey","showPermissionDeniedPage","addWordCloudAnalysis","all","indexOf","endDate","endsAt","useSurveyEventHandlers","closeSurvey","handleDisqualification","setShowPermDeniedPage","instructions","allSurveys","hideInstructionModal","setInstructionModalVisible","surveyList","unScheduledSurveys","moderatedScheduledSurveys","scheduledTimeStamp","filteredSurveys","countAndStoreAvailableSlots","setRefinedSurveyList","availableSlots","bookedSlots","ts","getAvailableSlots","isScheduledSurveyExpired","isExpire","handleSurveyCardClick","obj","showInstructionModal","setSelectedSurvey","setUserId","onOk","setShowSurveyModal","showSurveyModal","refinedSurveyList","ProjectPageLayout","classes","Content","contentClass","InnerContainer","FormItemLabel","extra","hint","InputBox","rule","limit","suffix","InfoCircleOutlined","CheckOutlined","Button","children","rest","Checkboxes","Age","editable","setEditable","textDecoration","renderQuestion","EmailInputBox","test","MobileInputBox","n","isNaN","parseFloat","isFinite","maxLength","paddingBottom","paddingRight","handleVerifyOtp","smBreakpoint","Form","setProfileAnswers","onSendEmail","form","handleSendEmail","onSendOtp","handleSendOtp","setOtpStatus","input_filed_styles","usedForClient","initialValues","onFinish","otpStatus","handleEditProfile","gutter","xs","sm","md","emailStatus","setEmailStatus","noStyle","shouldUpdate","backgroundRadius","enterButton","onSearch","block","htmlType","profileAnswers","updateProfileAnswers","GreenCheckbox","GreenRadio","CustomModal","accessOptions","plans","InviteUser","inviteUser","setEmail","setAccess","columnGap","rowGap","flexWrap","textTransform","accessLevel","localAccountName","accountName","setLocalAccountName","paymentId","setLocalPaymentId","fetchedUsers","setUsers","onInputChange","dupValues","sendInvitation","inviter","pending","closeDeleteModal","setClientNameToDelete","setClientToDelete","setRemoveUserModal","removeUser","clientToDeleteIsTemp","required","initialValue","setModal","closeIcon","setSelectedOption","selectedOption","float","clear","users","initial","setClientToDeleteIsTemp","access","MobileViewTable","dataSource","columns","col","pagination","ExplainerVideo","align","render","dataIndex","sorter","moment","amount","span","justify","Panel","Collapse","SampleSurvey","showModal","setShowModal","getTiming","expandIconPosition","expandIcon","MinusOutlined","PlusOutlined","header","PlayCircleFilled","User","isRegQuestionsAnswered","adminQuestionsAnswers","exact","path","isClientUser","resolve","sendOtp","OTP","isMobileNumberVerified","verifyOtp","component","CopyRight","isAdmin","useLocation","selected","setSelected","pathString","link","handleCreateNewSurvey","centered","okText","cancelText","handleOk","RadioGroup","Radio","filters","timing","Table","getSurveyTags","tags","surveyListData","publishedSurvey","appliedFilters","f","okButtonProps","selectedSurvey","cancelButtonProps","overlay","onVisibleChange","itemLayout","pageSize","showSizeChanger","renderItem","overflowX","copy","trash","permissionOptions","TeamMemberShareControl","updateSharedUser","switchHandler","updateUserPermission","setIsUserSelected","permission","isUserSelected","sharedUserObj","checked","sharedUsers","ownersClientId","availableUsers","newSharedUsers","sharedUser","updateSharedList","updateSharedUsers","shared","setSharedUsers","onMouseOver","setHover","onMouseLeave","hover","textOverflow","images","setShareModal","isOwner","open","projectName","surveyName","useParams","createdBy","s","fetchingSurvey","setDraftSurveys","setProjectName","project","setTempProjectName","setOwner","setIsProjectOwner","fetchingUsers","setAllUsers","copyPublishedSurvey","updateSurveys","setPublishedSurveyPopup","closeEditModal","setEditNameModal","updateProjectName","tempProjectName","updateProjectShare","sharedClients","isProjectOwner","setDeleteProjectModal","publishedSurveysList","setCopySurveyPopup","generateNewSurvey","isVisible","surveyListModal","draftSurveys","edit","device","updatedAt","surveySharedUsers","owner","FolderIcon","FolderOpenFilled","SharedFolderIcon","UsergroupAddOutlined","isFetching","setLoading","setSelfProjects","setSharedProjects","projectToShare","newSelfProjects","cloneDeep","projectToUpdateIndex","closeModal","setProjectToEdit","setCreateProjectModal","setProjectToDelete","projectToDelete","createProjectHandler","projectToEdit","routeToProject","spinning","selfProjects","p2","p1","ellipsis","tooltip","bottom","icon","setProjectToShare","sharedProjects","Option","valueMap","disableQuestionsPage","Errors","errors","alignSelf","reducer","action","payload","dest","Error","useArray","initialState","useReducer","add","useCallback","move","remove","RadioButton","last","styles","lastMargin","surveyTimingOptions","viewOnly","setFormQuestions","logoUploadProps","accept","customRequest","onError","setUploadingLogo","xhr","setBrandLogo","maxCount","showUploadList","guideUploadProps","setUploadingGuide","setGuideFile","pointerEvents","setFormName","formName","setSurveyAccess","setSurveyType","setMode","hasQuestions","setSwitchModeModal","setDevice","setSetting","setTimingType","setAdvancedOptions","advancedOptions","setSurveyInstructions","autoSize","minRows","maxRows","setBrandName","uploadingLogo","guideFile","uploadingGuide","setFormModal","formModal","questionsErrors","clearQuestions","setOptions","Cirle","setSliderValue","min","checkBox","setMcq","choice","setLabel","isFilled","addChoice","totalChoices","removeChoice","mouseLeaveDelay","mouseEnterDelay","MultiChoices","setOptionValue","choiceNumber","newIndex","uploadProps","setUploading","file","ImageMultiChoices","ImageStarRating","setStarValue","uploading","VideoStarRating","setValue","TextABTest","sum","ImageABTest","VideoABTest","Association","ImageAssociation","setLink","VideoMultiChoices","dullGreenButtonStyle","greyButtonStyle","addItem","setItems","setCompany","toggleOpen","close","setOpen","suffixIcon","dropdownStyle","onSelect","dropdownRender","menu","company","isDesktop","videoType","onMouseEnter","setIsChoiceNumberShown","isChoiceNumberShown","Vmodal","modal","closeButton","center","videoModal","setVideoModal","verticalAlign","borderStyle","handleCombineVideos","bucketName","clippings","bucket","setCombining","combining","setView","view","qNo","extraSpace","likert","slider","netPromotorScore","checkBoxes","imageCheckBoxes","videoCheckBoxes","ranking","imageRanking","videoRanking","dropDown","questionInstruction","videoInstruction","imageInstruction","videoComment","imageComment","textABTest","imageABTest","videoABTest","imageAssociation","videoAssociation","adAnalysis","QuestionBox","hasLink","debouncedSetQuestion","debounce","_setQuestion","mountedRef","addQuestion","onConfirm","deleteVisible","visibility","setHideTryFormButton","setQuestionModal","questionModal","getBranchingErrors","ruleNumber","ques","condNumber","isNumber","CONDITION_TYPE_ONE","CONDITION_TYPE_TWO","CONDITION_TYPE_THREE","rank","CONDITION_TYPE_FOUR","CONDITION_TYPE_FIVE","actionNumber","DEFAULT_VAULES","RULE","QUESTION","ACTION","QUESTION_TYPE_ONE","QUESTION_TYPE_TWO","QUESTION_TYPE_THREE","QUESTION_TYPE_FOUR","QUESTION_TYPE_FIVE","questionTypeRange","onSaveRules","allowedQuestions","addRule","setRules","prevRules","getQuestionAttribute","ruleIndex","dotProp","questionIndex","setQuestionAttribute","getActionAttribute","actionIndex","setActionAttribute","getQuestionChoices","associations","getSelectMode","filterActionQuestions","actionName","maxIndex","getMaxQuestionIndex","getQuestionNumber","getQuestionType","saveBranchingLogic","minHeight","Modal","maskClosable","removeRule","lg","xl","ruleObject","renderConditionsAndOptions","deleteQuestion","handleChangeLogicalOperator","isLogicalOrOperator","showSelectQuestion","deleteAction","addAction","actionsCleanUpOnMove","handleRemoveQuestion","newBranchingRules","branchingRules","setBranchingRules","clearAction","handleMoveQuestion","handleAddQuestion","removeQuestion","setBranchingLogicModal","createdAt","branchingLogicModal","oldBranchingRules","minimumDate","utils","isTimeSelected","res","setModeratedSlots","colorPrimary","shouldHighlightWeekends","objectToDate","dateToObject","calendarClassName","setSelectedDate","isSelectedDate","isTimeSlotSelected","timeExists","setNumberOfParticipants","surveyPrice","getAgeRange","getQuestion","getOptionsLength","oxford","l","join","CustomButton","setCriteria","filterAdminQuestions","criteria","checkQuestionInCriteria","showAllFilters","cr","ratios","selectedValues","setShowAllFilters","it","borderTop","setScreeningQuestions","setIncompleteQues","checkAdditionalQuestion","incompleteQues","antIcon","spin","setGroup","groupParticipants","groupName","syncCriteriaObjwCriteria","validateRatios","setDisableForm","criterion","criteriaObject","newCriteriaObject","sv","setCriteriaObj","handleOptionChange","handleAdd","handleRatioChange","checkSelectedOption","j","disableForm","newCriteria","hideModal","remember","autoComplete","group","updateGroupName","groupNameChangeHandler","updateGroupParticipants","groupParticipantsChangeHandler","o","every","getAgeGroupAnswerLength","indicator","RatioDescription","option_ratio_object","selectedValue","clientField","GroupCard","editHandler","deleteHandler","GroupContainer","groups","setGroups","isRatioModalVisible","setIsRatioModalVisible","activeGroup","setActiveGroup","criteriaListClient","setCriteriaListClient","syncSelectedValuesAndRatios","newCriteriaListClient","newGroups","groupCriterion","removedCriteria","addedCriteria","raitos","addedCriterion","editGroup","showRatioModal","deleteGroup","groupIndex","findNextAvailableGroupIndex","newGroup","isModalVisible","RatioContainer","hasRatios","setHasRatios","criteriaHasRatios","Criteria","innerContainerStyle","setUseUserqualUsers","useUserqualUsers","setClientProvidedUsers","beforeUpload","fileType","validFileTypes","Upload","reader","bstr","wb","wsname","ws","clientProvidedUsers","Set","setUseImportedUsers","useImportedUsers","download","setUserEmail","onKeyPress","setCustomPanels","isSurvey","customPanels","customPanel","surveyObj","PastSurveyParticipants","usePanel","setUsePanel","panelUsers","setPanelUsers","deletePanelUserConfirmModal","setDeletePanelUserConfirmModal","copyPanelModal","setCopyPanelModal","copySurveyPanel","surveyUsers","isArray","userResponse","emailId","isPublished","Participants","useErrors","setupErrors","criteriaErrors","participantsErrors","publishErrors","branchingErrors","setErrors","getSetupErrors","getAdminQuestionText","getCriteriaErrors","getQuestionsErrors","getParticipantsErrors","totalSelectedSlots","getPublishErrors","defaultAdminQuestion","userTypes","true","false","modes","timings","CostCounter","tier","price","usersType","pricingSegment","pricing","questionTypesPricing","additionalCost","criteriaPricing","additionalCriteria","influencerAudiencePricing","influencerAudience","modeType","audienceType","influencerCategories","PublishButton","CancelButton","DoneButton","isOpenModerated","surveyToken","setSurveyLink","generateOpenModLink","setOpenToken","isPublish","overflowWrap","qrCodeURL","aEl","downloadQRCode","saveSurvey","sanitizeSurvey","newClientProvidedUsers","newPanelUsers","getTotalGroupParticipants","groupsParticipants","formId","setTotalGroupParticipants","setCreatorOnly","sharedObj","setViewOnly","publishSurveyHandler","setShowPublishSurveyModal","setSurvey","creatorOnly","setOpenModToken","newSurveyCleanUp","updateSurvey","setAdminQuestions","setInfluencers","setTierInfo","setSurveyPrice","noTop","loading","setup","participants","formQuestions","totalGroupParticipants","showPublishSurveyModal","surveyMode","confirm","isBookedTime","hideTitle","overrideStyle","surveyCost","preBookedSlots","setAddParticipantBox","addParticipantBox","onlyUnique","inputProps","tagProps","classNameRemove","validationRegex","onValidationReject","handleAddParticipants","surveyState","convertMinuteSecondsString","totalSeconds","minutes","convertIntoSeconds","minute","updateReel","setStartMinutes","setStartSeconds","setEndMinutes","setEndSeconds","setText","isReel","editMode","startMinutes","setEditMode","handleNoteChange","endMinutes","getQuestionErrors","QuestionBuilder","publishQuestion","setQuestionError","setMouseOver","questionError","handleModeChange","setSearchMode","handleEnterOnInput","newNotes","identifier","updateNotes","setInputText","drawerVisible","setDrawerVisible","getContainer","mask","paddinBottom","note1","note2","note","searchMode","inputText","noteText","updatedNotes","onPressEnter","prefix","setCreatedBy","accountUsersInfo","getStatus","numberOfResponses","hasScheduledCalls","now","hasResults","setShareSurveyModal","setSurveyStateModal","isAdminVerified","onScheduledCallsClick","shareSurveyModal","surveyStateModal","openLink","setAccountUsersInfo","setShowOpenModal","setAvailableSlots","answerData","showOpenModal","setShowOpenMeet","showOpenMeet","openToken","FlexRow","darkBlueButtonStyle","chartCheckboxStyle","greyLabelStyle","QUESTION_INSTRUCTION","SURVEY_BRIEF","NET_PROMOTOR_SCORE","IMAGE_MULTI_CHOICE","VIDEO_MULTI_CHOICE","CHECK_BOX","IMAGE_CHECK_BOX","VIDEO_CHECK_BOX","STAR_RATING","IMAGE_RATING","VIDEO_RATING","TEXT_AB_TEST","IMAGE_AB_TEST","VIDEO_AB_TEST","questionNotation","ImageModal","imageModal","setImageModal","closeBtnTitle","imgs","WordCloud","memo","wordCloud","words","colors","fontFamily","fontSizes","rotations","rotationAngles","scale","spiral","keyInfo","myChart","chartInstance","Chart","chartInstanceTemp","plugins","setChartInstance","participantIndex","sentimentAnalysis","avgSentiment","point","sentimentData","pointRadius","sentimentWeight","sentimentCost","suggestedMin","suggestedMax","WordCloudAndSentimentReport","sentimentReport","wordReport","setWordCloud","setSentimentAnalysis","TranscriptModal","handleChange","setTranscript","cols","Note","updateNote","updateNoteTime","splitIndex","subKey","tempValue","tempNote","newStart","setTempNote","editing","setEditing","setEditReelStartTime","setEditReelEndTime","setReelTimeEdited","setRecordingEditReel","videoPlayer","editVideoPlayer","setUserInitials","onCloseVideoModal","tempReels","setUnsavedReelsModal","deleteReel","reelToDelete","setTempReels","reel","isEqual","setReelToDelete","createNewReel","reelToCreate","setReelToCreate","addNote","tempNotes","noteObj","reelUrl","userInitial","userInitials","n1","n2","tempTranscript","updateTranscript","t1","t2","setNewNote","setAddToTranscript","Blob","setSubtitleUrl","URL","recordingReel","setTimer","setInterval","videoTime","setReelEndTime","clearInterval","reelEndTime","setReelStartTime","reelStartTime","recordingEditReel","setEditTimer","editReelEndTime","editReelStartTime","notesVisible","setNotesVisible","transcriptVisible","setTranscriptVisible","autoPlay","srcLang","default","setRecordingReel","r1","r2","overflow","setReelName","setCreateReelModal","playReel","setVideoPlayerSourceUrl","setReelToEdit","setEditReelModal","setDeleteReelModal","editTranscript","setEditTranscript","transition","setDraftTranscript","draftTranscript","updateDraftTranscript","newNoteObject","reelToEdit","reelTimeEdited","newTempReels","reelIndex","newReel","editReel","setVideoUrl","reels","currentReel","setCurrentReel","emotionColor","CONFUSED","SAD","CALM","ANGRY","FEAR","DISGUSTED","SURPRISED","HAPPY","getTimelineData","emotionData","emotion","timestamp","getRoundOffNumber","getLineChartData","VerticalBar","percent","emotions","xlBreakpoint","onParticipantChange","setEmotionData","setUrl","order","figures","getFeatures","onProgress","playedSeconds","playedMilliSeconds","setFigures","setSeconds","low","high","lowAverage","highAverage","getAverageAgeRange","chartType","loader","timeline","showRowLabels","avoidOverlappingGridLines","hAxis","series","0","theme","offset","moderatedCallIndex","userIdKey","ClientLink","redirectURL","setTranscriptText","setResponses","questionResponses","setQualitativeData","saveVideoURL","setSubtitles","fetchVideoUrl","setUserVideoURL","setReels","onViewEmotionalAnalysis","setEmotionalAnalysisObject","setEmotionalAnalysis","addReelToResultSection","startTime","endTime","updatedData","resp","reelId","participantResponse","generateResponse","option","star","participantCriteriaDetails","participantDetails","detail","setUserVideoRecording","userVideoRecording","subtitles","setViewReels","viewReels","setViewScript","viewScript","saveTranscriptToTxt","emotionalAnalysis","transcriptReport","intersection","s1","s2","has","filteredUsers","criteriaFilter","isMatch","setPanels","panelName","setCreatePanelBox","createPanelBox","setNewPanelName","panels","panel","responseBoxRef","surveyData","qArray","setIsFilterActive","storeComments","getFilteredUsers","setActiveKeys","setFilterAnswers","generateWordCloudData","commentData","word","setParticipant","participant","sentimentValues","sentimentArray","sentimentReports","sentiment","setTranscriptReport","isQualModeratedIndividualWithNoResponses","isQualModeratedIndividual","setParticipantResponses","userDetails","q","questionInfo","imageUrl","middle","setParticipantDetails","userIds","filterUsers","finalUsers","refinedSurvey","setFilter","headerStyle","destroyOnClose","filterAnswers","isAge","age","applyCriteria","ghost","activeKey","destroyInactivePanel","openKeys","addedKeys","removedKeys","activeKeys","tempAnswers","isFilterActive","participantResponses","setParticipantCriteriaDetails","Select","labelStyle","Dropdown","customStyle","CaretDownOutlined","TabPane","tabBarStyle","tabs","tab","groupedFilter","quantitative","qualitative","unmoderated","moderated","desktop","mobile","individual","filterOptions","filterContainerRef","fetchSurveyData","surveyResponse","fetchQualitativeSurveySummary","qualityResponse","isValid","appliedFilter","setFilteredSurvey","outsideFilterClickHandler","setSelectedFilters","filterBtns","setFilterButtons","dropdownClassName","filteredSurvey","surv","multiple","expandTrigger","setAppliedFilters","filterButtons","dataColumns","sliderDataColumns","averageNumber","totalNumber","npsDataColumns","npsStatsColumns","basicStatisticsColumns","median","mean","sd","calculatePercentage","totalAnswered","TableCell","percentageValue","decimalPlaces","FilterCheckbox","ColorPicker","colorAttr","setColor","colorNumber","displayColorPicker","setDisplayColorPicker","swatch","popover","cover","rgb","activeClass","ratingLabel","rating","starRatedColor","numberOfStars","widgetRatedColors","widgetDimensions","widgetSpacings","svg","getCoordsOnArc","angle","cos","PI","sin","GaugeMeter","units","backgroundArc","arc","innerRadius","outerRadius","startAngle","endAngle","cornerRadius","scaleLinear","domain","percentScale","clamp","angleScale","filledArc","colorScale","gradientSteps","markerLocation","viewBox","gradientUnits","x1","x2","y2","stopColor","y1","stroke","strokeWidth","cy","fontFeatureSettings","format","wordCloudTestData","analysedComments","Index","Sentiment","SentimentScore","Positive","Negative","Neutral","Mixed","npsValues","detractors","passives","promotors","npsValue","lower","upper","tableTypes","type1","type2","type3","type4","graphTypes","type5","type6","type7","type8","type9","setChartTypeInit","show","chartDepth","axisScale","absolute","weightedAverage","initChartAttr","barIcons","graphTitle","questionComponentRef","configurationType","chartSettings","totalResponse","answered","setGraphConfig","setGraphTab","setTableData","setStatsData","countWeightedAverage","setChartTitle","setTextAnalysis","setDisabledCustomize","setGraphInit","setShowStatisticsTable","setShowDataTable","prepareWordCloud","wordCloudReport","setSentimentValues","alert","cloneConfiguration","setSelectedChart","stats","prepareStatistics","setWeightedAverage","chartTypeParam","graphConfigTemp","propChartType","chartAttributes","getChartType","chartTitle","datalabels","formatter","font","weight","rotation","anchor","prepareDataSet","isNested","columnMax","findColumnMax","updateMax","setTableColumns","answerChoices","setStatsColumns","std","totalStar","starTableColumns","column","weightedTotal","innerIndex","starTableData","dataSets","Responses","nps","colorIndex","setTotalColors","graphConfig","outerIndex","context","setChartVisibility","tableData","statsData","configOptions","setAxisScaleArr","maxNumber","typeOf","pageBreakInside","questionNumber","onSaveOptions","print","disabledCustomize","setCustomize","bodyClass","in","enter","exit","graphTab","depth","fieldType","setChartAttributes","ind","checkChart","setAxisScale","setDepth","setChartDepth","colorArr","setColors","changeColor","compareMode","direction","compareChartTitle","setCompareChartTitle","graph1","graph2","graph3","criteriaData","textAnalysis","totalStars","chartVisibility","showDataTable","showStatisticsTable","initFilterAttributes","gender","income","initChartAttributes","showFilter","compareTabs","CollapseFilter","setCloneConfiguration","questionBox","tempChartType","setChartType","resetFilterAndCompare","setCompareActiveKeys","prevValue","compareFilter","cf","setCompareFilterAnswers","compare","initiateCompare","setAnswered","setQuestionResponses","getQuestionResponses","questionData","userAnswer","isComplex","totalSum","responseArr","promoters","isRanking","m","setCriteriaData","prepareFilterCriteriaData","survey1","getRefinedSurvey","survey2","survey3","setCompareSurvey1","setCompareSurvey2","setCompareSurvey3","setCriteriaData1","setCriteriaData2","setCriteriaData3","setCompareResponse1","setCompareResponse2","setCompareResponse3","filterData","ageArray","fieldName","setCompareMode","setCompareFilter","setCompare","qstn","bodyStyle","newFilter","compareActiveKeys","compareFilterAnswers","applyCompareFilter","newActiveKeys","newFilterAnswers","setDecimalPlaces","customize","compareResponse1","compareSurvey1","compareResponse2","compareSurvey2","compareResponse3","compareSurvey3","selectedTab","onTabChange","setSurveyData","flexBasis","setSelectedTab","selectedGroup","Account","setBalance","loadScript","script","createElement","onload","onerror","body","appendChild","currency","logo","handler","razorpay_payment_id","razorpayPaymentId","razorpayOrderId","razorpay_order_id","razorpaySignature","razorpay_signature","prefill","contact","Razorpay","AccountModal","onSave","setAccountName","keyboard","dateSort","d1","getTime","updateSurveysAction","setSurveysAction","sort","editSurveyAction","getSurveyAction","createProjectAction","getProjectAction","setSurveyAction","activeSurvey","setActiveSurveyReferToken","setActiveSurveyId","getName","refetchData","setTotalSurveyCount","setPublishedSurveyCount","setPendingSurveys","record","setActiveSurvey","showShareSurveyModal","fetching","pendingSurveys","Client","generateNewSurveyAction","updateSurveyAction","deleteSurveyAction","copyName","copySurveyAction","remainingSurveys","updateAccountNameAction","account","Sidenav","removeItem","onSelectChange","isOptionSelected","selectOptions","isButtonActive","isSumHundred","signIn","password","setItem","newTierInfo","localStorageId","newData","influencers","questionTypeOptions","QuestionTypeCheckbox","onClientCriteriaChange","setClientCriteria","setIsQuestionNumberShown","criteriaType","abTextType","imageMultiChoice","videoMultiChoice","onValuesChange","changedValues","layout","isQuestionNumberShown","setQuestionType","buttonText","onButtonClick","clientCriteria","fields","colon","labelCol","wrapperCol","setRatingSymbolType","setSymbolCount","sliderStart","sliderEnd","setSliderType","setSliderStart","setSliderEnd","setIsAddNewQuestionIconShown","isAddNewQuestionIconShown","ObjectID","require","getAllQuestions","activeQuestions","SampleQuestions","useForm","setFieldsValue","List","Item","AdditionalQuestions","calculatePercent","clientRate","calculateNumber","surveysDataSource","accountTier","setData","onPublish","setQuestions","surveyTypeBool","setSurveyBrandName","setSurveyBrandLogo","openSurveyView","defaultChecked","changePaymentType","newNumber","onNumberChange","Categories","addCategory","removeCategory","showMinusIcon","isNumberShown","setIsNumberShown","MenuOutlined","PlusCircleOutlined","MinusCircleOutlined","EditInfluencerModal","clientInfo","smField","categories","editInfluencerModal","setEditInfluencerModal","ConfigClientInfoModal","onSubmit","validateFields","Password","loadClients","clients","city","setConfigClientInfoModal","setSelectedClientInfo","configClientInfoModal","PlansFeesModal","plansFees","handleEditPlansFees","newSubscriptionValues","basic","elite","platinum","ConditionalFormBlock","dependency","prev","EditPricingModal","selectedPricing","handleEditPricing","basicUserType","eliteUserType","platinumUserType","newPricing","getFieldValue","QuestionPricingModal","selectedQuestionPricing","handleEditQuestionPricing","questionName","OtherPricingModal","selectedOtherPricing","handleEditOtherPricing","15","30","45","TIER_INFO","OTHER_INFO","questionPricingData","setQuestionPricingData","defineOtherData","DEFAULT_TIME","tableDataSource","otherData","setOtherData","subscriptions","otherColumns","setOtherFeesModal","setSelectedOtherPricing","questionColumns","setQuestionFeesModal","setSelectedQuestionPricing","onTimingChange","surveyTimings","onChangeUserType","setConfigPricingModal","setSelectedPricing","setPlansFeesModal","plansFeesModal","subscription","configPricingModal","unModerated","questionFeesModal","questionValues","handleEditQuestionPlansFees","otherFeesModal","otherValues","ConfigFeaturesModal","valuePropName","Features","addFeature","setAddFeature","advancedCriteria","advancedCriteriaQuestions","individualResponsesCompare","questionSummariesCompare","imageAB","videoAB","handleValueChange","plan","featureName","Admin","tiers","RegQuestions","UserSurvey","Influencer","ClientInfo","Pricing","Title","FormContent","roleColor","authClient","authUser","authAdmin","Center","MobileForm","parsedMobile","parsedOtp","setToken","registeredVia","validator","setMobile","setOtp","setP1","setP2","EmailForm","verify","Verification","emailVerified","setEmailVerified","jwtDecode","editUserProfile","isEmailVerified","editClientProfile","toLowerCase","LockOutlined","feature_content","item_1","heading","desc_1","desc_2","item_2","desc_3","item_3","Card","Description","showState","setShowState","listStyleType","line","boxes","styled","footer_wave","data-toggle","data-target","aria-controls","aria-expanded","aria-label","questionAnswers","accordion","feedbackPoints","menuItems","setIsMobileMenuOpen","isMobileMenuOpen","footerLinks","BecomeTester","PrivacyAndTermsAndConditions","AddSurvey","referSurveyToken","addSurveyAPI","useGetSurvey","useGetOpenSurvey","useIsOpenSurvey","getOpenSurveyAPI","isOpenSurveyAPI","getSurveyAPI","URLSearchParams","params","setSurveyObject","setShowError","setShowSurvey","setIsOpen","showSurvey","showError","Signin","Signup","AttemptSurvey","Boolean","hostname","match","ReactDOM","StrictMode","getElementById","serviceWorker","ready","unregister"],"mappings":"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BAET,CACEnS,KAAM,SACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,kBAET,CACEnS,KAAM,UACNmS,MAAO,mBAET,CACEnS,KAAM,SACNmS,MAAO,mBAET,CACEnS,KAAM,UACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,WACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,kBACVC,SAAU,oBACVC,QAAS,mBACTC,MAAO,qBAGXxY,UAAW,CACT,CACEntD,KAAM,oBACNmS,MAAO,mBAET,CACEnS,KAAM,kBACNmS,MAAO,mBAET,CACEnS,KAAM,gBACNmS,MAAO,mBAET,CACEnS,KAAM,oBACNmS,MAAO,mBAET,CACEnS,KAAM,wBACNmS,MAAO,mBAET,CACEnS,KAAM,qBACNmS,MAAO,GAET,CACEnS,KAAM,iCACNmS,MAAO,mBAET,CACEnS,KAAM,OACNmS,MAAO,GAET,CACEnS,KAAM,cACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,GAET,CACEnS,KAAM,oBACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,GAET,CACEnS,KAAM,qBACNmS,MAAO,kBAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,WACNmS,MAAO,GAET,CACEnS,KAAM,UACNmS,MAAO,mBAET,CACEnS,KAAM,oBACNmS,MAAO,mBAET,CACEnS,KAAM,iBACNmS,MAAO,mBAET,CACEnS,KAAM,cACNmS,MAAO,GAET,CACEnS,KAAM,iBACNmS,MAAO,mBAET,CACEnS,KAAM,2BACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,kBACVC,SAAU,mBACVC,QAAS,mBACTC,MAAO,sBAGXxY,UAAW,CACT,CACEntD,KAAM,yBACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,0BACNmS,MAAO,mBAET,CACEnS,KAAM,UACNmS,MAAO,mBAET,CACEnS,KAAM,qBACNmS,MAAO,GAET,CACEnS,KAAM,gBACNmS,MAAO,GAET,CACEnS,KAAM,uBACNmS,MAAO,kBAET,CACEnS,KAAM,cACNmS,MAAO,mBAET,CACEnS,KAAM,cACNmS,MAAO,GAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,mBACNmS,MAAO,mBAET,CACEnS,KAAM,QACNmS,MAAO,mBAET,CACEnS,KAAM,gBACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,kBACVC,SAAU,mBACVC,QAAS,qBACTC,MAAO,wBAGXxY,UAAW,CACT,CACEntD,KAAM,eACNmS,MAAO,mBAET,CACEnS,KAAM,wBACNmS,MAAO,GAET,CACEnS,KAAM,eACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,GAET,CACEnS,KAAM,SACNmS,MAAO,mBAET,CACEnS,KAAM,OACNmS,MAAO,GAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,cACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,mBACNmS,MAAO,GAET,CACEnS,KAAM,WACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,qBACVC,SAAU,kBACVC,QAAS,oBACTC,MAAO,uBAGXxY,UAAW,CACT,CACEntD,KAAM,iBACNmS,MAAO,mBAET,CACEnS,KAAM,gBACNmS,MAAO,GAET,CACEnS,KAAM,SACNmS,MAAO,kBAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,iBACNmS,MAAO,GAET,CACEnS,KAAM,YACNmS,MAAO,kBAET,CACEnS,KAAM,iBACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,GAET,CACEnS,KAAM,WACNmS,MAAO,GAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,iBACNmS,MAAO,mBAET,CACEnS,KAAM,WACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,QACXC,eAAgB,CACdC,SAAU,oBACVC,SAAU,mBACVC,QAAS,kBACTC,MAAO,oBAGXxY,UAAW,CACT,CACEntD,KAAM,sBACNmS,MAAO,mBAET,CACEnS,KAAM,WACNmS,MAAO,mBAET,CACEnS,KAAM,YACNmS,MAAO,mBAET,CACEnS,KAAM,eACNmS,MAAO,mBAET,CACEnS,KAAM,eACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,kBACVC,SAAU,oBACVC,QAAS,mBACTC,MAAO,qBAGXxY,UAAW,CACT,CACEntD,KAAM,OACNmS,MAAO,mBAET,CACEnS,KAAM,MACNmS,MAAO,mBAET,CACEnS,KAAM,mBACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,WACNmS,MAAO,mBAET,CACEnS,KAAM,UACNmS,MAAO,qBAIb,CACEoqD,UAAW,CACT8I,MAAO,EACPC,UAAW,UACXC,eAAgB,CACdC,SAAU,mBACVC,SAAU,kBACVC,QAAS,kBACTC,MAAO,sBAGXxY,UAAW,CACT,CACEntD,KAAM,UACNmS,MAAO,GAET,CACEnS,KAAM,aACNmS,MAAO,GAET,CACEnS,KAAM,iBACNmS,MAAO,GAET,CACEnS,KAAM,SACNmS,MAAO,GAET,CACEnS,KAAM,YACNmS,MAAO,GAET,CACEnS,KAAM,UACNmS,MAAO,GAET,CACEnS,KAAM,WACNmS,MAAO,GAET,CACEnS,KAAM,WACNmS,MAAO,GAET,CACEnS,KAAM,SACNmS,MAAO,GAET,CACEnS,KAAM,WACNmS,MAAO,KAIb,CACEoqD,UAAW,CACT8I,MAAO,GACPC,UAAW,WACXC,eAAgB,CACdC,SAAU,kBACVC,SAAU,mBACVC,QAAS,mBACTC,MAAO,oBAGXxY,UAAW,CACT,CACEntD,KAAM,aACNmS,MAAO,mBAET,CACEnS,KAAM,aACNmS,MAAO,GAET,CACEnS,KAAM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","file":"static/js/main.077d1a1e.chunk.js","sourcesContent":["import { increment, decrement } from \"automate-redux\";\nimport { notification } from \"antd\";\nimport store from \"./store\";\nimport jwt_decode from \"jwt-decode\";\nimport axios, { Routes } from \"./services/API\";\n\nexport function incrementPendingRequests() {\n store.dispatch(increment(\"pendingRequests\"));\n}\n\nexport function decrementPendingRequests() {\n store.dispatch(decrement(\"pendingRequests\"));\n}\n\nexport const notify = (type, title, msg, duration) => {\n notification[type]({\n message: title,\n description: String(msg),\n duration: duration,\n });\n};\n\nexport function capitalizeFirstCharacter(str) {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport const reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const getRoleByToken = (token) => {\n try {\n const decoded = jwt_decode(token);\n return decoded.role;\n } catch (err) {\n return null;\n }\n};\n\nexport const getEmailByToken = (token) => {\n try {\n const decoded = jwt_decode(token);\n return decoded.email;\n } catch (err) {\n return null;\n }\n};\n\nexport const getSurveyIdByToken = (token) => {\n try {\n const decoded = jwt_decode(token);\n return decoded.surveyId;\n } catch (err) {\n return null;\n }\n};\n\nexport const getVideoUrl = (surveyId, userId) => {\n // return `https://userqual-video-recording.s3.ap-south-1.amazonaws.com/${surveyId}_${userId}.mp4`;\n return `?filePath=${surveyId}_${userId}.mp4`;\n};\n\nexport const getModeratedVideoUrl = (surveyId, qualitativeId, surveyAccess) => {\n qualitativeId = qualitativeId?.replace(/\\//g, \"|\");\n if (surveyAccess) return `?filePath=${qualitativeId}.mp4`\n else return `?filePath=${surveyId}_${qualitativeId}.mp4`;\n};\n\nexport const getTranscriptUrl = (surveyId, userId) => {\n return `?filePath=${surveyId}_${userId}.json`;\n};\n\nexport const getModeratedSubtitlesUrl = (surveyId, qualitativeId) => {\n qualitativeId = qualitativeId?.replace(/\\||:|\\//gi, \".\");\n return `?filePath=${surveyId}_${qualitativeId}.json&format=vtt`;\n};\n\nexport const getSubtitlesUrl = (surveyId, userId) => {\n return `?filePath=${surveyId}_${userId}.json&format=vtt`;\n};\n\nexport const generateId = (len = 32) => {\n return \"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx\"\n .slice(0, len)\n .replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n\nexport const Sum = (array) => {\n return array.reduce((element, total) => Number(total) + Number(element), 0);\n};\n\nexport const getDateObject = (date, time) => {\n let [day, month, year] = date.split(\"/\");\n month = month.length === 2 ? month : \"0\" + month;\n day = day.length === 2 ? day : \"0\" + day;\n const dateString = `${year}-${month}-${day}T${time}`;\n return new Date(dateString);\n};\n\nexport const getClientInformation = async (targetId) => {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.getClientInformation(clientId, targetId),\n });\n\n return data;\n};\n\nexport const isLoggedIn = () => {\n return !!getRoleByToken(localStorage.getItem(\"token\"));\n};\n\nexport const getClientId = () => {\n return getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n};\n\nexport const isUserRole = () => {\n return getRoleByToken(localStorage.getItem(\"token\")) === \"user\";\n};\n\nexport const getUserId = () => {\n return isUserRole() ? localStorage.getItem(\"user\") : \"\";\n};\n\nexport const fetchUsers = async (accountId) => {\n if (!accountId) return;\n const clientId = getClientId();\n const { data } = await axios({\n ...Routes.client.getAccountUsers(clientId, accountId, true),\n });\n\n return data.allUsers;\n};\n","export const userPages = {\n FORMS: \"forms\",\n PROFILE: \"profile\",\n SETTINGS: \"settings\",\n HISTORY: \"history\",\n};\n\nexport const adminPages = {\n REGQUESTIONS: \"registration-questions\",\n SAMPLEQUESTIONS: \"sample-questions\",\n ADDITIONALQUESTIONS: \"additional-questions\",\n SURVEYS: \"surveys\",\n INFLUENCERS: \"influencers\",\n CLIENTS: \"clients\",\n PRICING: \"pricing\",\n FEATURES: \"features\",\n};\n\nexport const COLOR = {\n darkBlue: \"#00233f\",\n dullLightGreen: \"#00c194\",\n ultraLightGrey: \"#f2f2f2\",\n grey: \"#7f7f7f\",\n teal: \"rgb(192, 225, 250)\",\n};\n\nexport const urlPattern = new RegExp(\n \"^(https?:\\\\/\\\\/)?\" + // protocol\n \"((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|\" + // domain name\n \"((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\" + // OR ip (v4) address\n \"(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\" + // port and path\n \"(\\\\?[;&a-z\\\\d%_.~+=-]*)?\" + // query string\n \"(\\\\#[-a-z\\\\d_]*)?$\",\n \"i\"\n);\n\nexport const EMAIL_VALIDATION_REGEX = /^[-a-z0-9~!$%^&*_=+}{'?]+(\\.[-a-z0-9~!$%^&*_=+}{'?]+)*@([a-z0-9_][-a-z0-9_]*(\\.[-a-z0-9_]+)*\\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;\n\nexport const months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const graphConfigTemplate = {\n type: \"\",\n options: {\n title: {\n display: true,\n text: \"\",\n fontSize: 20,\n },\n legend: {\n display: true,\n position: \"bottom\",\n },\n scales: {\n xAxes: [\n {\n stacked: false,\n ticks: {\n beginAtZero: true,\n },\n },\n ],\n yAxes: [\n {\n stacked: false,\n ticks: {\n beginAtZero: true,\n },\n },\n ],\n },\n tooltips: {\n enabled: false,\n },\n aspectRatio: 1,\n },\n data: {\n labels: [],\n datasets: [\n {\n barPercentage: 0.5,\n minBarLength: 2,\n label: \"\",\n backgroundColor: [],\n borderColor: \"\",\n borderWidth: 2,\n barPecentage: 0.5,\n data: \"\",\n },\n ],\n },\n};\n\nexport const colorConstant = [\n {\n r: \"0\",\n g: \"193\",\n b: \"148\",\n a: \"1\",\n },\n {\n r: \"0\",\n g: \"68\",\n b: \"121\",\n a: \"1\",\n },\n {\n r: \"55\",\n g: \"132\",\n b: \"165\",\n a: \"1\",\n },\n {\n r: \"246\",\n g: \"200\",\n b: \"95\",\n a: \"1\",\n },\n {\n r: \"111\",\n g: \"78\",\n b: \"124\",\n a: \"1\",\n },\n {\n r: \"157\",\n g: \"216\",\n b: \"102\",\n a: \"1\",\n },\n {\n r: \"202\",\n g: \"71\",\n b: \"47\",\n a: \"1\",\n },\n {\n r: \"243\",\n g: \"159\",\n b: \"86\",\n a: \"1\",\n },\n {\n r: \"141\",\n g: \"221\",\n b: \"208\",\n a: \"1\",\n },\n {\n r: \"150\",\n g: \"150\",\n b: \"150\",\n a: \"1\",\n },\n {\n r: \"150\",\n g: \"150\",\n b: \"0\",\n a: \"1\",\n },\n];\n\nexport const branchingConditions = {\n CONTAINS: \"Contains\",\n DOES_NOT_CONTAIN: \"Does not contain\",\n CONTAINS_ONE_OF: \"Contains one of\",\n DOES_NOT_CONTAIN_ANY_OF: \"Does not contain any of\",\n CONTAINS_ALL_OF: \"Contains all of\",\n DOES_NOT_CONTAIN_ALL_OF: \"Does not contain all of\",\n IS_EXACTLY: \"Is exactly\",\n IS_NOT: \"Is not\",\n IS_FROM_TO: \"Is from / to\",\n RANKING: \"Ranking\",\n ASSOCIATION: \"Association\",\n IMAGE_VIDEO_RATINGS: \"Image video ratings\",\n};\n\nexport const branchingActions = {\n SKIP_TO_QUESTION: \"Skip to question\",\n END_SURVEY: \"End survey\",\n DISQUALIFY_RESPONDENT: \"Disqualify respondent\",\n HIDE_QUESTION: \"Hide question\",\n INVALIDATE_QUESTION: \"Invalidate question\",\n};\n\nexport const surveyStates = {\n IN_PROGRESS: \"inProgress\",\n PAUSE: \"paused\",\n END: \"ended\",\n};\n\nexport const questionTemplate = {\n text: \"\",\n type: \"default\",\n clientLink: \"\",\n options: {\n // Star Rating\n stars: 5,\n starType: \"star\",\n // Likert Rating\n likertRange: 5,\n likertStartLabel: \"\",\n likertMiddleLabel: \"\",\n likertEndLabel: \"\",\n // Slider\n sliderType: \"number\",\n sliderValue: 1,\n sliderMin: 1,\n sliderMax: 100,\n sliderStartLabel: \"\",\n sliderMiddleLabel: \"\",\n sliderEndLabel: \"\",\n // Net Promotor Score\n npsOption: \"This Company\",\n // MultiChoice\n multiChoices: [\n {\n label: \"\",\n },\n {\n label: \"\",\n },\n ],\n // ImageMultiChoice\n imageMultiChoices: [\n {\n imageLabel: \"\",\n imageData: \"\",\n },\n {\n imageLabel: \"\",\n imageData: \"\",\n },\n ],\n // VideoMultiChoice\n videoMultiChoices: [\n {\n videoLabel: \"\",\n videoData: \"\",\n },\n {\n videoLabel: \"\",\n videoData: \"\",\n },\n ],\n // ImageStarRating\n imageStarRatingChoices: [\n {\n imageLabel: \"\",\n imageData: \"\",\n },\n ],\n imageStar: 5,\n imageStarType: \"star\",\n // Dropdown\n range: 5,\n // Question Instruction\n questionInstuction: \"\",\n // Video Instruction\n videoLabel: \"\",\n videoData: \"\",\n // Image Instruction\n imageLabel: \"\",\n imageData: \"\",\n // VideoStarRating\n videoStarRatingChoices: [\n {\n videoLabel: \"\",\n videoData: \"\",\n },\n ],\n videoStar: 5,\n videoStarType: \"star\",\n // Text A/B Test\n textABTestChoices: [\n {\n inputWord: \"\",\n percentage: \"\",\n },\n {\n inputWord: \"\",\n percentage: \"\",\n },\n ],\n // Image A/B Test\n imageABTestChoices: [\n {\n imageLabel: \"\",\n imageData: \"\",\n percentage: \"\",\n },\n {\n imageLabel: \"\",\n imageData: \"\",\n percentage: \"\",\n },\n ],\n // Video A/B Test\n videoABTestChoices: [\n {\n videoLabel: \"\",\n videoData: \"\",\n percentage: \"\",\n },\n {\n videoLabel: \"\",\n videoData: \"\",\n percentage: \"\",\n },\n ],\n // Association\n associationChoices: [\n {\n label: \"\",\n association: \"\",\n },\n {\n label: \"\",\n association: \"\",\n },\n ],\n imageAssociationChoices: [\n {\n imageData: \"\",\n association: \"\",\n },\n {\n imageData: \"\",\n association: \"\",\n },\n ],\n videoAssociationChoices: [\n {\n videoData: \"\",\n association: \"\",\n },\n {\n videoData: \"\",\n association: \"\",\n },\n ],\n surveyBrief: \"\",\n adAnalysisChoices: [\n {\n videoData: \"\",\n },\n ],\n adAnalysisData: {\n url: \"\",\n },\n },\n};\n\nexport const BASEURL =\n process.env.NODE_ENV === \"development\"\n ? `https://test.api.userqual.com`\n : `https://api.userqual.com`;\n\nexport const convertSecondsIntoStandardFormat = (seconds) => {\n return (\n new Date(seconds * 1000).toISOString().substring(11, 19) +\n `:${Math.floor((seconds % 1) * 100)}`\n );\n};\n\nexport function GetFilename(url, stripRandomChars = 0) {\n let fileName = url.replace(/^.*[\\\\\\/]/, \"\");\n if (stripRandomChars > 0) {\n const replaceRegex = new RegExp(`(.{${stripRandomChars}})(\\\\..+?)$`, \"g\");\n fileName = fileName.replace(replaceRegex, (...val) => {\n return val[2];\n });\n }\n return fileName;\n}\n\nexport const convertSecondsToReadable = (seconds) => {\n const secondsString = Math.floor(seconds % 60)\n .toString()\n .padStart(2, \"0\");\n const minutesString = Math.floor(seconds / 60)\n .toString()\n .padStart(2, \"0\");\n\n return `${minutesString}:${secondsString}`;\n};\n\nexport const convertReadableToSecond = (timeString) => {\n const seconds = parseInt(timeString.split(\":\")[1]);\n const minutes = parseInt(timeString.split(\":\")[0]);\n\n return minutes * 60 + seconds;\n};\n\nconst convertSecondsToStdString = (secs) => {\n const secondsString = (secs % 60).toFixed(3).padStart(6, \"0\");\n const mins = Math.floor(secs / 60);\n const minutesString = (mins % 60).toString().padStart(2, \"0\");\n const hourString = Math.floor(mins / 60)\n .toString()\n .padStart(2, \"0\");\n\n return `${hourString}:${minutesString}:${secondsString}`;\n};\n\nexport const convertTranscriptToWebVtt = (transcript = []) => {\n return `WEBVTT\\n\\n${transcript.reduce((acc, t, index) => {\n if (t.isNote) {\n return acc;\n }\n return `${acc}${index + 1}\\n${convertSecondsToStdString(\n t.start\n )} --> ${convertSecondsToStdString(t.end)}\\n${t.text}\\n\\n`;\n }, \"\")}\\n`;\n};\n\nexport const getClientInitials = (client) => {\n let initials = \"\";\n if (client) {\n if (client.firstName) {\n initials += client.firstName[0].toUpperCase();\n if (client.lastName) {\n initials += client.lastName[0].toUpperCase();\n }\n } else if (client.email) {\n initials += client.email[0].toUpperCase();\n } else {\n initials = \"??\";\n }\n }\n return initials;\n};\n\nexport const getClientDisplayName = (client) => {\n let name = \"\";\n if (client) {\n if (client.firstName) {\n name += client.firstName;\n if (client.lastName) {\n name += \" \" + client.lastName;\n }\n } else if (client.email) {\n name += client.email;\n }\n }\n\n return name;\n};\n\nexport const ACCESS_LEVEL = {\n create: \"create\",\n publish: \"publish\",\n admin: \"admin\",\n};\n\nexport const PERMISSION = {\n VIEW: \"view\",\n EDIT: \"edit\",\n};\n","export default {\n signin: () => {\n return {\n url: `user/signin`,\n method: `post`,\n };\n },\n signup: () => {\n return {\n url: `user/signup`,\n method: `post`,\n };\n },\n forgotPassword: () => {\n return {\n url: `user/forgotPassword`,\n method: `post`,\n };\n },\n getProfile: (id) => {\n return {\n url: `user/${id}/profile`,\n method: `get`,\n };\n },\n editProfile: (id) => {\n return {\n url: `user/${id}/profile`,\n method: `put`,\n };\n },\n getSurveys: (id) => {\n return {\n url: `user/${id}/survey`,\n method: `get`,\n };\n },\n getSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}`,\n method: `get`,\n };\n },\n getOpenSurvey: (surveyId) => {\n return {\n url: `openSurvey/${surveyId}`,\n method: `get`,\n };\n },\n isOpenSurvey: (surveyId) => {\n return {\n url: `/openSurvey/${surveyId}/isOpenSurvey`,\n method: 'get',\n }\n },\n completeSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}`,\n method: `post`,\n };\n },\n completeOpenSurvey: (surveyId) => {\nreturn {\n url: `openSurvey/${surveyId}`,\n method: `post`,\n}\n },\n startSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}`,\n method: `put`,\n };\n },\n startOpenSurvey: (surveyId) => {\n return {\n url: `openSurvey/${surveyId}`,\n method: `put`,\n };\n },\n addSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/addSurvey`,\n method: `delete`,\n };\n },\n removeSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}`,\n method: `delete`,\n };\n },\n getWordCloudReport: (id) => {\n return {\n url: `user/${id}/getAnalysis`,\n method: `post`,\n };\n },\n confirmTimeSlot: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/confirmTimeSlot`,\n method: `post`,\n };\n },\n freeSlot: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/freeSlot`,\n method: `post`,\n };\n },\n addSurvey: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/addSurvey`,\n method: `post`,\n };\n },\n fetchModeratedSurveyQuestions: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/moderatedSurvey`,\n method: `get`,\n };\n },\n fetchOpenModeratedSurveyQuestions: (id, surveyId) => {\n return {\n url: `openSurvey/${surveyId}/moderatedSurvey/${id}`,\n method: `get`,\n };\n },\n answerModeratedSurveyQuestions: (id, surveyId) => {\n return {\n url: `user/${id}/survey/${surveyId}/moderatedSurvey`,\n method: `post`,\n };\n },\n answerOpenModeratedSurveyQuestions: (id, surveyId) => {\n return {\n url: `openSurvey/${surveyId}/moderatedSurvey/${id}`,\n method: `post`,\n };\n }\n};\n","export default {\n signin: () => {\n return {\n url: `client/signin`,\n method: `post`,\n };\n },\n signup: () => {\n return {\n url: `client/signup`,\n method: `post`,\n };\n },\n forgotPassword: () => {\n return {\n url: `client/forgotPassword`,\n method: `post`,\n };\n },\n getProfile: (id) => {\n return {\n url: `client/${id}/profile`,\n method: `get`,\n };\n },\n editProfile: (id) => {\n return {\n url: `client/${id}/profile`,\n method: `put`,\n };\n },\n createAccount: (id) => {\n return {\n url: `client/${id}/account`,\n method: \"post\",\n };\n },\n updateAccountName: (id) => {\n return {\n url: `client/${id}/account/name`,\n method: \"put\",\n };\n },\n getAccountUsers: (clientId, accountId, invitedUsers = false) => {\n return {\n url: `client/${clientId}/account/users?accountId=${accountId}&invitedUsers=${invitedUsers}`,\n method: \"get\",\n };\n },\n inviteClient: (clientId) => {\n return {\n url: `client/${clientId}/account/invite`,\n method: \"post\",\n };\n },\n editAccess: (clientId) => {\n return {\n url: `client/${clientId}/account/edit-access`,\n method: \"put\",\n };\n },\n removeClient: (clientId) => {\n return {\n url: `client/${clientId}/account/user`,\n method: \"delete\",\n };\n },\n addBalance: (id) => {\n return {\n url: `client/${id}/profile/addBalance`,\n method: `post`,\n };\n },\n upgradeTier: (id) => {\n return {\n url: `client/${id}/profile/upgradeTier`,\n method: `post`,\n };\n },\n uploadFile: (id) => {\n return {\n url: `client/${id}/fileUpload`,\n method: `post`,\n };\n },\n mergeVideos: (id) => {\n return {\n url: `client/${id}/mergeVideos`,\n method: `post`,\n };\n },\n getSurveys: (id) => {\n return {\n url: `client/${id}/survey`,\n method: `get`,\n };\n },\n createSurvey: (id, projectId) => {\n return {\n url: `client/${id}/survey?projectId=${projectId}`,\n method: `post`,\n };\n },\n getSurvey: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}`,\n method: `get`,\n };\n },\n editSurvey: (id, surveyId, sharedCopy = false) => {\n return {\n url: `client/${id}/survey/${surveyId}?sharedCopy=${sharedCopy}`,\n method: `put`,\n };\n },\n editSurveyShared: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/shared`,\n method: \"put\",\n };\n },\n deleteSurvey: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}`,\n method: `delete`,\n };\n },\n copySurvey: (id, surveyId, projectId) => {\n return {\n url: `client/${id}/survey/${surveyId}/copySurvey?projectId=${projectId}`,\n method: `get`,\n };\n },\n publishSurvey: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/publishSurvey`,\n method: `post`,\n };\n },\n sendForApproval: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/sendForApproval`,\n method: \"post\",\n };\n },\n rejectSurvey: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/rejectSurvey`,\n method: \"post\",\n };\n },\n upsertQualitativeData: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/upsertQualitativeData`,\n method: `post`,\n };\n },\n fetchQualitativeData: (id, surveyId, slotKey) => {\n return {\n url: `client/${id}/survey/${surveyId}/fetchQualitativeData?slotKey=${slotKey}`,\n method: `get`,\n };\n },\n generateOpenModeratedLink: (id, surveyId) => {\n return {\n url: `client/${id}/openSurvey/${surveyId}/generateModeratedLink`,\n method: `get`,\n };\n },\n removeReel: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/removeReel`,\n method: `delete`,\n };\n },\n createReel: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/createReel`,\n method: `post`,\n data: {\n inputs: null,\n output: {\n resolution: {\n height: 720,\n width: 1280,\n },\n nameModifier: \"newClip\",\n },\n },\n };\n },\n addReel: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/addReel`,\n method: `post`,\n };\n },\n numberOfUsersMatchingCriteria: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/numberOfUsersMatchingCriteria`,\n method: `get`,\n };\n },\n getVideo: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/video`,\n method: `get`,\n };\n },\n getVideoAnalysis: (id, surveyId, jobId, nextToken) => {\n return {\n url: `client/${id}/survey/${surveyId}/getVideoAnalysis/${jobId}?nextToken=${nextToken}`,\n method: `get`,\n };\n },\n qualitativeSummaries: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/qualitativeSummaries`,\n method: `get`,\n };\n },\n getTranscript: (id, surveyId) => {\n return {\n url: `client/${id}/survey/${surveyId}/transcript`,\n method: `get`,\n };\n },\n getWordCloudReport: (cliendId) => {\n return {\n url: `client/${cliendId}/getAnalysis`,\n method: `post`,\n };\n },\n getPanels: (id) => {\n return {\n url: `client/${id}/panel`,\n method: `get`,\n };\n },\n updatePanels: (id) => {\n return {\n url: `client/${id}/panel`,\n method: `put`,\n };\n },\n createPanel: (id) => {\n return {\n url: `client/${id}/panel`,\n method: `post`,\n };\n },\n getPanel: (id, panelId) => {\n return {\n url: `client/${id}/panel/${panelId}`,\n method: `get`,\n };\n },\n getPanelUsers: (id, panelId) => {\n return {\n url: `client/${id}/panel/${panelId}/users`,\n method: `get`,\n };\n },\n editPanel: (id, panelId) => {\n return {\n url: `client/${id}/panel/${panelId}`,\n method: `put`,\n };\n },\n addUserToPanel: (id, panelId) => {\n return {\n url: `client/${id}/panel/${panelId}`,\n method: `post`,\n };\n },\n deletePanel: (id, panelId) => {\n return {\n url: `client/${id}/panel/${panelId}`,\n method: `delete`,\n };\n },\n getProjects: (id) => {\n return {\n url: `client/${id}/project`,\n method: \"get\",\n };\n },\n createProject: (id) => {\n return {\n url: `client/${id}/project`,\n method: \"post\",\n };\n },\n getProject: (clientId, projectId) => {\n return {\n url: `client/${clientId}/project/${projectId}`,\n method: \"get\",\n };\n },\n editProjectName: (clientId, projectId) => {\n return {\n url: `client/${clientId}/project/${projectId}/name`,\n method: \"put\",\n };\n },\n editProjectShare: (clientId, projectId) => {\n return {\n url: `client/${clientId}/project/${projectId}/shared`,\n method: \"put\",\n };\n },\n deleteProject: (clientId, projectId) => {\n return {\n url: `client/${clientId}/project/${projectId}`,\n method: \"delete\",\n };\n },\n fetchSurveyInfo: (clientId) => {\n return {\n url: `client/${clientId}/account/surveyInfo`,\n method: \"get\",\n };\n },\n getClientInformation: (clientId, targetClientId) => {\n return {\n url: `client/${clientId}/information/${targetClientId}`,\n method: `get`,\n };\n },\n employOpenModeratedLink: (clientId, surveyId, token) => {\n return {\n url: `client/${clientId}/openSurvey/${surveyId}/employModeratedLink/${token}`,\n method: 'get'\n } \n }\n};\n","import axios from \"axios\";\nimport user from \"./user.js\";\nimport client from \"./client.js\";\nimport admin from \"./admin.js\";\nimport verification from \"./verification.js\";\nimport others from \"./others.js\";\nimport { BASEURL } from \"../../constants.js\";\n\naxios.defaults.baseURL = `${BASEURL}/api`;\n\naxios.interceptors.request.use(\n function (config) {\n const headers = {\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\n \"Content-Type\": \"application/json\",\n };\n return { ...config, headers };\n },\n function (error) {\n return Promise.reject(error);\n }\n);\n\nexport const Routes = {\n user,\n client,\n admin,\n verification,\n others,\n};\n\nexport default axios;\n","export default {\n sendOTP: (mobileNumber) => {\n return {\n url: `/verification/OTP?mobileNumber=${mobileNumber}`,\n method: `get`,\n };\n },\n verifyOTP: () => {\n return {\n url: `/verification/OTP`,\n method: `post`,\n };\n },\n sendEmail: (email, role) => {\n return {\n url: `/verification/EMAIL?email=${email}&role=${role}`,\n method: `get`,\n };\n },\n verifyEmail: () => {\n return {\n url: `/verification/EMAIL`,\n method: `post`,\n };\n },\n};\n","export default {\n tierInfo: () => {\n return {\n url: `/tierInfo`,\n method: `get`,\n };\n },\n adminQuestions: () => {\n return {\n url: `/adminQuestions`,\n method: `get`,\n };\n },\n getInfluencerCategories: () => {\n return {\n url: `/influencerCategories`,\n method: `get`,\n };\n },\n checkAvailable: (queryString) => {\n return {\n url: `/checkAvailable?${queryString}`,\n method: `get`,\n };\n },\n};\n","export const questionTypes = {\n TEXT: \"text\",\n MULTI_CHOICE: \"multiChoices\",\n CHECKBOX: \"checkBoxes\",\n STARS: \"stars\",\n SLIDER: \"slider\",\n LIKERT: \"likert\",\n NPS: \"netPromotorScore\",\n RANKING: \"ranking\",\n DROPDOWN: \"dropDown\",\n ASSOCIATION: \"association\",\n IMAGE_INSTRUCTION: \"imageInstruction\",\n IMAGE_COMMENT: \"imageComment\",\n IMAGE_ABTEST: \"imageABTest\",\n IMAGE_MULTICHOICE: \"imageMultiChoices\",\n IMAGE_CHECKBOX: \"imageCheckBoxes\",\n IMAGE_STARRATINGCHOICE: \"imageStarRatingChoices\",\n IMAGE_RANKING: \"imageRanking\",\n IMAGE_ASSOCIATION: \"imageAssociation\",\n VIDEO_INSTRUCTION: \"videoInstruction\",\n VIDEO_COMMENT: \"videoComment\",\n VIDEO_MULTICHOICE: \"videoMultiChoices\",\n VIDEO_CHECKBOX: \"videoCheckBoxes\",\n VIDEO_STARRATINGCHOICE: \"videoStarRatingChoices\",\n VIDEO_RANKING: \"videoRanking\",\n VIDEO_ASSOCIATION: \"videoAssociation\",\n AGE: \"age\",\n CHECKBOXESSPECIAL: \"checkboxesSpecial\",\n AD_ANALYSIS: \"adAnalysis\",\n};\n\nexport const specialTypes = [\n questionTypes.IMAGE_STARRATINGCHOICE,\n questionTypes.VIDEO_STARRATINGCHOICE,\n questionTypes.TEXT,\n questionTypes.IMAGE_COMMENT,\n questionTypes.VIDEO_COMMENT,\n];\n\nexport const typeRequired = [\n questionTypes.TEXT,\n questionTypes.MULTI_CHOICE,\n questionTypes.CHECKBOX,\n questionTypes.STARS,\n questionTypes.LIKERT,\n questionTypes.IMAGE_MULTICHOICE,\n questionTypes.IMAGE_CHECKBOX,\n questionTypes.NPS,\n questionTypes.VIDEO_COMMENT,\n questionTypes.IMAGE_COMMENT,\n questionTypes.VIDEO_MULTICHOICE,\n questionTypes.VIDEO_CHECKBOX,\n questionTypes.IMAGE_STARRATINGCHOICE,\n questionTypes.VIDEO_STARRATINGCHOICE,\n];\n","import { surveyTypes, surveyAccess } from \"../constants/constants\";\n\nexport const isQuantSurvey = (survey) => {\n return !survey.surveyType;\n};\n\nexport const isUnmoderatedQualSurvey = (survey) => {\n return survey.surveyType && !survey.mode;\n};\n\nexport const isModeratedSurvey = (survey) => {\n return survey.surveyType && survey.mode;\n};\n\nexport const isGroupSurvey = (survey) => {\n return isModeratedSurvey(survey) && survey.setting;\n};\n\nexport const getSurveyType = (survey) => {\n if (isQuantSurvey(survey)) return surveyTypes.QUANTITATIVE;\n if (isUnmoderatedQualSurvey(survey))\n return surveyTypes.QUALITATIVE_UNMODERATED;\n if (isModeratedSurvey(survey)) return surveyTypes.QUALITATIVE_MODERATED;\n};\nexport const isOpenSurvey = (survey) => {\n return survey.surveyAccess\n}\nexport const getSurveyAccess = (survey) => {\n if(isOpenSurvey(survey)) return surveyAccess.OPEN\n}\n//Returns the time it takes to complete a survey\nexport const getSurveyTime = (survey) => {\n if (!survey.timingType) {\n return Math.round((survey.questions.length * 10) / 60) + \" mins\";\n }\n switch (survey.timingType) {\n case 1:\n return \"15 mins\";\n case 2:\n return \"30 mins\";\n case 3:\n return \"45 mins\";\n default:\n return;\n }\n};\n\nexport const getRange = (start, end) => {\n return Array(end - start + 1)\n .fill()\n .map((_, idx) => start + idx);\n};\n","export const GROUP_SLOTS = 5;\nexport const SLOT_TIME_HRS = 1;\n\nexport const surveyStates = {\n IN_PROGRESS: \"inProgress\",\n PAUSE: \"paused\",\n END: \"ended\",\n};\n\nexport const times = [\n { label: \"8am\", value: \"08:00\" },\n { label: \"9am\", value: \"09:00\" },\n { label: \"10am\", value: \"10:00\" },\n { label: \"11am\", value: \"11:00\" },\n { label: \"12pm\", value: \"12:00\" },\n { label: \"1pm\", value: \"13:00\" },\n { label: \"2pm\", value: \"14:00\" },\n { label: \"3pm\", value: \"15:00\" },\n { label: \"4pm\", value: \"16:00\" },\n { label: \"5pm\", value: \"17:00\" },\n { label: \"6pm\", value: \"18:00\" },\n { label: \"7pm\", value: \"19:00\" },\n];\n\nexport const surveyTypes = {\n QUANTITATIVE: \"quantitative\",\n QUALITATIVE_UNMODERATED: \"qualitative/unModerated\",\n QUALITATIVE_MODERATED: \"qualitative/moderated\",\n};\n\nexport const surveyAccess = {\n OPEN: 'open',\n CLOSED: 'closed'\n}\n","export const branchingConditions = {\n CONTAINS: \"Contains\",\n DOES_NOT_CONTAIN: \"Does not contain\",\n CONTAINS_ONE_OF: \"Contains one of\",\n DOES_NOT_CONTAIN_ANY_OF: \"Does not contain any of\",\n CONTAINS_ALL_OF: \"Contains all of\",\n DOES_NOT_CONTAIN_ALL_OF: \"Does not contain all of\",\n IS_EXACTLY: \"Is exactly\",\n IS_NOT: \"Is not\",\n IS_FROM_TO: \"Is from / to\",\n RANKING: \"Ranking\",\n ASSOCIATION: \"Association\",\n IMAGE_VIDEO_RATINGS: \"Image video ratings\",\n};\n\nexport const branchingActions = {\n SKIP_TO_QUESTION: \"Skip to question\",\n END_SURVEY: \"End survey\",\n DISQUALIFY_RESPONDENT: \"Disqualify respondent\",\n HIDE_QUESTION: \"Hide question\",\n INVALIDATE_QUESTION: \"Invalidate question\",\n};\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./survey.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CloseCircleOutlined,\n LeftCircleOutlined,\n LeftOutlined,\n LogoutOutlined,\n RightCircleOutlined,\n RightOutlined,\n CheckCircleFilled,\n LinkOutlined,\n} from \"@ant-design/icons\";\nimport {\n Button,\n message,\n Badge,\n InputNumber,\n Card,\n Modal as AntdModal,\n} from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport RobotLarge from \"../../../assets/robot-large.png\";\nimport logo from \"../../../assets/logo.png\";\nimport Text from \"../../../components/user/survey-questions/text/Text\";\nimport MultipleChoice from \"../../../components/user/survey-questions/multiple-choice/MultipleChoice\";\nimport Checkboxes from \"../../../components/user/survey-questions/checkboxes/Checkboxes\";\nimport StarRating from \"../../../components/user/survey-questions/star-rating/StarRating\";\nimport SliderType from \"../../../components/user/survey-questions/slider/Slider\";\nimport Likert from \"../../../components/user/survey-questions/likert/Likert\";\nimport NPS from \"../../../components/user/survey-questions/nps/NPS\";\nimport Ranking from \"../../../components/user/survey-questions/ranking/Ranking\";\nimport Dropdown from \"../../../components/user/survey-questions/dropdown/Dropdown\";\nimport Association from \"../../../components/user/survey-questions/association/Association\";\nimport ImageInstructions from \"../../../components/user/survey-questions/image/instructions/ImageInstructions\";\nimport ImageComment from \"../../../components/user/survey-questions/image/comment/ImageComment\";\nimport ImageMultipleChoice from \"../../../components/user/survey-questions/image/multiple-choice/ImageMultipleChoice\";\nimport ImageCheckboxes from \"../../../components/user/survey-questions/image/checkboxes/ImageCheckboxes\";\nimport ImageRating from \"../../../components/user/survey-questions/image/rating/ImageRating\";\nimport ImageRanking from \"../../../components/user/survey-questions/image/ranking/ImageRanking\";\nimport ImageAssociation from \"../../../components/user/survey-questions/image/association/ImageAssociation\";\nimport Modal from \"react-modal\";\nimport VideoInstruction from \"../../../components/user/survey-questions/video/instruction/VideoInstruction\";\nimport VideoRating from \"../../../components/user/survey-questions/video/rating/VideoRating\";\nimport VideoAssociation from \"../../../components/user/survey-questions/video/association/VideoAssociation\";\nimport VideoRanking from \"../../../components/user/survey-questions/video/ranking/VideoRanking\";\nimport VideoMultipleChoice from \"../../../components/user/survey-questions/video/multiple-choice/VideoMultipleChoice\";\nimport VideoCheckboxes from \"../../../components/user/survey-questions/video/checkboxes/VideoCheckboxes\";\nimport VideoComment from \"../../../components/user/survey-questions/video/comment/VideoComment\";\nimport CheckboxesSpecial from \"../../../components/user/profile-questions/checkboxes-special/CheckboxesSpecial\";\nimport AdAnalysis from \"../../../components/user/survey-questions/ad-analysis/AdAnalysis\";\nimport { getWordCloudAnalysis } from \"../constants/getWordCloudReport\";\nimport { branchingActions, branchingConditions } from \"../../../constants\";\nimport { notify } from \"../../../utils\";\nimport { useRef } from \"react\";\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\n// Testing data\nconst questions = [\n {\n text: \"What is your opinion on the US elections?\",\n type: \"text\",\n options: {},\n },\n {\n text: \"What is your gender?\",\n type: \"multiChoices\",\n options: {\n multiChoices: [\n {\n label: \"female\",\n },\n {\n label: \"male\",\n },\n {\n label: \"other\",\n },\n ],\n },\n },\n {\n text: \"Which languages are you fluent in?\",\n type: \"checkBoxes\",\n options: {\n multiChoices: [\n {\n label: \"english\",\n },\n {\n label: \"hindi\",\n },\n {\n label: \"marathi\",\n },\n {\n label: \"gujarati\",\n },\n ],\n },\n },\n {\n text: \"Choose the image you don’t like\",\n type: \"imageMultiChoices\",\n options: {\n imageMultiChoices: [\n {\n imageLabel: \"Image 1\",\n imageData: RobotLarge,\n },\n {\n imageLabel: \"Image 2\",\n imageData: RobotLarge,\n },\n ],\n },\n },\n {\n text: \"Choose the image you don’t like\",\n type: \"imageCheckBoxes\",\n options: {\n imageMultiChoices: [\n {\n imageLabel: \"Image 1\",\n imageData: RobotLarge,\n },\n {\n imageLabel: \"Image 2\",\n imageData: RobotLarge,\n },\n ],\n },\n },\n {\n text: \"Choose the video you don’t like\",\n type: \"videoMultiChoices\",\n options: {\n videoMultiChoices: [\n {\n videoLabel: \"Video 1\",\n videoData: \"https://www.youtube.com/watch?v=9xwazD5SyVg\",\n },\n {\n videoLabel: \"Video 2\",\n videoData: \"https://www.youtube.com/watch?v=9xwazD5SyVg\",\n },\n ],\n },\n },\n {\n text: \"Choose the video you don’t like\",\n type: \"videoCheckBoxes\",\n options: {\n videoMultiChoices: [\n {\n videoLabel: \"Video 1\",\n videoData: \"https://www.youtube.com/watch?v=9xwazD5SyVg\",\n },\n {\n videoLabel: \"Video 2\",\n videoData: \"https://www.youtube.com/watch?v=9xwazD5SyVg\",\n },\n ],\n },\n },\n];\n\nconst rules = [\n {\n questions: [\n {\n index: 1, // index of question\n condition: branchingConditions.IS_NOT,\n choices: [0], // index of choices\n logicalOr: true,\n },\n /* {\n index: 2,\n condition: branchingConditions.DOES_NOT_CONTAIN_ALL_OF,\n choices: [0, 1, 2],\n logicalOr: false\n } */\n ],\n actions: [\n {\n name: branchingActions.HIDE_QUESTION,\n question: 3, // index of question\n },\n {\n name: branchingActions.HIDE_QUESTION,\n question: 4, // index of question\n },\n ],\n },\n];\n\nconst isTypeRequired = (type) => {\n return [\n \"text\",\n \"multiChoices\",\n \"checkBoxes\",\n \"stars\",\n \"likert\",\n \"likert\",\n \"imageMultiChoices\",\n \"imageCheckBoxes\",\n \"netPromotorScore\",\n \"videoComment\",\n \"imageComment\",\n \"videoMultiChoices\",\n \"videoCheckBoxes\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n ].includes(type);\n};\n\nconst emptyCheck = (type, answer) => {\n const specialTypes = [\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"text\",\n \"imageComment\",\n \"videoComment\",\n ];\n if (answer && !specialTypes.includes(type)) {\n return answer.length === 0;\n }\n let isEmpty = false;\n switch (type) {\n case \"text\":\n return answer.length === 0 || answer[0] === \"\";\n case \"imageComment\":\n return answer.length === 0 || answer[0] === \"\";\n case \"videoComment\":\n return answer.length === 0 || answer[0] === \"\";\n case \"imageStarRatingChoices\":\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n case \"videoStarRatingChoices\":\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n default:\n return false;\n }\n};\n\nfunction getRange(start, end) {\n return Array(end - start + 1)\n .fill()\n .map((_, idx) => start + idx);\n}\n\nlet answers = [];\nlet hiddenQuestions = [];\nconst Survey = ({\n isScreeningQuestion = false,\n questions = [],\n rules = [],\n isOpen,\n forceClose = () => {},\n onClose,\n onEndSurvey = () => {},\n onDisqualification = () => {},\n surveyType,\n video,\n userId = null,\n tryOwnForm = false,\n brandName = \"\",\n brandLogo = \"\",\n surveyInstructions = \"\",\n}) => {\n // Hooks\n const TopBarResponsive = useMediaQuery({ query: \"(max-width: 960px)\" });\n const isTablet = useMediaQuery({ query: \"(max-width: 800px)\" });\n const [step, setStep] = useState(0);\n const [isDisqualified, setIsDisqualified] = useState(false);\n const videoRef = useRef(null);\n console.log(\"Running\");\n useEffect(() => {\n // Populate answers with empty array\n [...Array(questions.length).keys()].map((i) => (answers[i] = []));\n console.log(\"population done\");\n }, []);\n\n useEffect(() => {\n if (isOpen && !tryOwnForm && surveyType) {\n getVideo();\n }\n }, [videoRef, isOpen, tryOwnForm]);\n\n const getVideo = () => {\n navigator.mediaDevices\n .getUserMedia({ video: { width: 300 } })\n .then((stream) => {\n let videoObject = videoRef.current;\n videoObject.srcObject = stream;\n videoObject.play();\n })\n .catch((err) => {\n console.error(\"error:\", err);\n });\n };\n\n // Derived state\n const index = step - 1;\n const totalQuestions = questions.length;\n const endSurveySlideNumber = questions.length + 1;\n const isQuestionHidden = hiddenQuestions.includes(index);\n\n const getQuestionText = () => {\n const { type, text, options } = questions[index];\n\n switch (type) {\n case \"netPromotorScore\":\n const { npsOption } = options;\n return `How likely is it that you would recommend ${npsOption} to a friend or collegue?`;\n default:\n return text;\n }\n };\n\n const getComponentByQuestionType = () => {\n const { type, options } = questions[index];\n\n const onChange = (values) => {\n answers[index] = Array.isArray(values) ? values : [values];\n };\n\n if (answers.length === 0) {\n [...Array(questions.length)].map(() => answers.push([]));\n }\n\n if (answers[index]) {\n switch (type) {\n case \"text\":\n return (\n \n );\n case \"multiChoices\":\n return (\n \n );\n case \"checkBoxes\":\n return (\n \n );\n case \"stars\":\n console.log(options);\n const { stars, starType } = options;\n return (\n \n );\n case \"slider\":\n answers[index][0] = answers[index][0] || 0;\n const {\n sliderType,\n sliderValue,\n sliderMin,\n sliderMax,\n sliderStartLabel,\n sliderMiddleLabel,\n sliderEndLabel,\n } = options;\n return (\n \n );\n case \"likert\":\n const {\n likertRange,\n likertStartLabel,\n likertMiddleLabel,\n likertEndLabel,\n } = options;\n return (\n \n );\n case \"netPromotorScore\":\n return (\n \n );\n case \"ranking\":\n answers[index] =\n answers[index].length > 0 ? answers[index] : options.multiChoices;\n return (\n \n );\n case \"dropDown\":\n answers[index][0] = answers[index][0] || 1;\n const range = options.range;\n return (\n \n );\n case \"association\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.associationChoices;\n return (\n \n );\n case \"imageInstruction\":\n return ;\n case \"imageComment\":\n return (\n \n );\n /* case \"imageABTest\":\n const { imageABTestChoices } = options\n return ; */\n case \"imageMultiChoices\":\n const { imageMultiChoices } = options;\n return (\n \n );\n case \"imageCheckBoxes\":\n return (\n \n );\n case \"imageStarRatingChoices\":\n if (answers[index].length === 0) {\n answers[index][0] = {};\n options.imageStarRatingChoices.forEach((val) => {\n answers[index][0][val.imageLabel] = 0;\n });\n }\n const { imageStarRatingChoices, imageStar, imageStarType } = options;\n return (\n \n );\n case \"imageRanking\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.imageMultiChoices;\n return (\n \n );\n case \"imageAssociation\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.imageAssociationChoices;\n return (\n \n );\n case \"videoInstruction\":\n return ;\n case \"videoComment\":\n return (\n \n );\n case \"videoMultiChoices\":\n const { videoMultiChoices } = options;\n return (\n \n );\n case \"videoCheckBoxes\":\n return (\n \n );\n case \"videoStarRatingChoices\":\n if (answers[index].length === 0) {\n answers[index][0] = {};\n options.videoStarRatingChoices.forEach((val) => {\n answers[index][0][val.videoLabel] = 0;\n });\n }\n const { videoStarRatingChoices, videoStar, videoStarType } = options;\n return (\n \n );\n case \"videoRanking\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.videoMultiChoices;\n return (\n \n );\n case \"videoAssociation\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.videoAssociationChoices;\n return (\n \n );\n case \"age\":\n return (\n \n );\n case \"checkboxesSpecial\":\n const { specialField, multiChoices } = options;\n return (\n \n );\n case \"adAnalysis\":\n const { adAnalysisData } = options;\n return ;\n default:\n return;\n }\n }\n };\n\n const verifyRuleConditions = (conditions) => {\n let result = \"true&&\";\n\n for (const [key, item] of Object.entries(conditions)) {\n const lastElement = key == conditions.length - 1;\n const op = lastElement ? \"\" : item.logicalOr ? \"||\" : \"&&\";\n\n switch (item.condition) {\n case branchingConditions.CONTAINS: {\n const cond = answers[item.index].includes(item.choices[0]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN: {\n const cond = !answers[item.index].includes(item.choices[0]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.CONTAINS_ONE_OF: {\n const cond = answers[item.index].some((x) =>\n item.choices.includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN_ANY_OF: {\n const cond = !item.choices.every((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.CONTAINS_ALL_OF: {\n const cond = item.choices.every((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN_ALL_OF: {\n const cond = !item.choices.some((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_EXACTLY: {\n const cond =\n JSON.stringify(item.choices) ===\n JSON.stringify(answers[item.index]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_NOT: {\n const cond =\n JSON.stringify(item.choices) !==\n JSON.stringify(answers[item.index]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_FROM_TO: {\n const cond =\n item.from <= answers[item.index][0] &&\n answers[item.index][0] <= item.to;\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.RANKING: {\n const { type } = questions[item.index];\n let cond = false;\n if (answers[item.index].length !== 0) {\n if (type === \"ranking\") {\n cond = answers[item.index][item.rank - 1].label === item.label;\n } else if (type === \"imageRanking\") {\n cond =\n answers[item.index][item.rank - 1].imageLabel === item.label;\n } else if (type === \"videoRanking\") {\n cond =\n answers[item.index][item.rank - 1].videoLabel === item.label;\n }\n }\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.ASSOCIATION: {\n const { type } = questions[item.index];\n let cond = false;\n answers[item.index].length !== 0 &&\n answers[item.index].forEach((x, idx) => {\n if (\n type === \"association\" &&\n x.label === item.label &&\n x.association === item.association\n ) {\n cond = true;\n return;\n }\n\n if (type === \"imageAssociation\" || type === \"videoAssociation\") {\n const num = parseInt(item.label.substring(6)) - 1;\n if (num == idx && x.association === item.association) {\n cond = true;\n return;\n }\n }\n });\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IMAGE_VIDEO_RATINGS: {\n const ans =\n answers[item.index].length !== 0 &&\n answers[item.index][0][item.label];\n const cond = item.from <= ans && ans <= item.to;\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n default:\n break;\n }\n }\n\n return result === \"true\";\n };\n\n const executeRuleActions = (actions) => {\n // Set step always one less than the expected step.\n for (const item of actions) {\n switch (item.name) {\n // skip -> 9\n // current -> 2\n // hide -> 3, 4, 5, 6, 7, 8\n case branchingActions.SKIP_TO_QUESTION: {\n const range = getRange(index + 1, item.question - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.END_SURVEY: {\n setStep(questions.length);\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.DISQUALIFY_RESPONDENT: {\n setStep(questions.length);\n setIsDisqualified(true);\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.HIDE_QUESTION: {\n hiddenQuestions = hiddenQuestions.concat([item.question]);\n break;\n }\n\n case branchingActions.INVALIDATE_QUESTION: {\n answers[item.question] = [];\n if (item.question > index) {\n hiddenQuestions = hiddenQuestions.concat([item.question]);\n }\n break;\n }\n\n default:\n break;\n }\n }\n };\n\n const performBranchingLogic = () => {\n let results = [];\n for (const rl of rules) {\n const maxIndex = rl.questions.reduce(\n (prev, curr) => Math.max(prev, curr.index),\n 0\n );\n if (maxIndex === index) {\n results.push({\n verified: verifyRuleConditions(rl.questions),\n actions: rl.actions,\n });\n }\n }\n\n // false conditions must be executed first\n results.sort((a, b) => {\n if (Number(a.verified) < Number(b.verified)) {\n return -1;\n }\n if (Number(a.verified) > Number(b.verified)) {\n return 1;\n }\n return 0;\n });\n\n // execute actions\n for (let x of results) {\n if (x.verified) {\n executeRuleActions(x.actions);\n break;\n } else {\n x.actions.forEach((el) => {\n if (\n el.name === branchingActions.HIDE_QUESTION ||\n branchingActions.INVALIDATE_QUESTION\n ) {\n hiddenQuestions = hiddenQuestions.filter(\n (val) => el.question !== val\n );\n }\n\n if (el.name === branchingActions.SKIP_TO_QUESTION) {\n const range = getRange(index + 1, el.question - 1);\n hiddenQuestions = hiddenQuestions.filter(\n (val) => !range.includes(val)\n );\n }\n\n if (\n el.name === branchingActions.END_SURVEY ||\n el.name === branchingActions.DISQUALIFY_RESPONDENT\n ) {\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.filter(\n (val) => !range.includes(val)\n );\n }\n });\n }\n }\n };\n\n // Handlers\n const incrementStep = () => {\n if (\n step !== 0 &&\n !isQuestionHidden &&\n isTypeRequired(questions[index].type) &&\n emptyCheck(questions[index].type, answers[index])\n ) {\n message.error(\"Please answer this question first!\");\n return;\n }\n\n if (rules?.length !== 0) {\n performBranchingLogic();\n }\n\n setStep((prevStep) => {\n while (true) {\n if (hiddenQuestions.includes(prevStep++)) {\n continue;\n }\n return prevStep;\n }\n });\n };\n\n const decrementStep = () => {\n setStep((prevStep) => {\n while (true) {\n if (hiddenQuestions.includes(--prevStep - 1)) {\n continue;\n }\n return prevStep;\n }\n });\n };\n\n const endSurvey = async () => {\n if (isDisqualified) {\n notify(\n \"info\",\n \"Info\",\n \"You have been disqualifed. Survey is now removed.\"\n );\n onDisqualification();\n } else {\n if (userId !== null) {\n answers = await Promise.all(\n answers.map(async (answer, index) => {\n if (\n [\"text\", \"imageComment\", \"videoComment\"].indexOf(\n questions[index].type\n ) > -1 &&\n !!answer?.length\n ) {\n const report = await getWordCloudAnalysis(answer, userId);\n answer.push(report);\n }\n return answer;\n })\n );\n }\n console.log(\"final answers array:\", answers);\n onEndSurvey([...answers]);\n }\n if (isScreeningQuestion) {\n resetModal();\n } else {\n onCloseModal();\n }\n };\n\n const resetModal = () => {\n answers = [];\n hiddenQuestions = [];\n setStep(0);\n };\n\n const onCloseModal = () => {\n resetModal();\n onClose();\n };\n\n const shouldRenderOptions = () => {\n if (step === 0 || step === endSurveySlideNumber) {\n return false;\n }\n\n if (\n step > 0 &&\n questions[index] &&\n questions[index].type === \"questionInstruction\"\n ) {\n return false;\n }\n\n return true;\n };\n\n console.log(\"questions12345\", answers);\n\n return (\n {\n onCloseModal();\n forceClose();\n }}\n style={modalStyles}\n >\n \n
\n {TopBarResponsive ? (\n
\n
\n \n
\n {isTablet ? (\n {\n onCloseModal();\n forceClose();\n }}\n />\n ) : (\n {\n onCloseModal();\n forceClose();\n }}\n className={cx(\"mobile_quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n
\n )}\n
\n ) : (\n <>\n
\n \n
\n {\n onCloseModal();\n forceClose();\n }}\n className={cx(\"quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n \n \n )}\n \n {/* QUESTION */}\n
\n {step !== 0 && step !== endSurveySlideNumber && (\n \n {step}\n
\n )}\n \n {step == 0 && (\n <>\n \n Welcome to {brandName ? brandName : \"UserQual\"}!\n

\n {!!surveyInstructions && (\n

\n {surveyInstructions}\n

\n )}\n

\n You can start the survey by clicking the NEXT Button.\n

\n \n )}\n {step !== 0 && step !== endSurveySlideNumber && questions[index] && (\n
\n
{getQuestionText()}
\n {questions[index].hasLink ? (\n \n \n \n \n\n {questions[index].clientLink}\n
\n \n window.open(\n \"https://\" + questions[index].clientLink,\n \"_blank\"\n )\n }\n className={cx(\"linkButton\")}\n >\n OPEN\n \n \n \n ) : null}\n \n )}\n {step === endSurveySlideNumber && (\n
\n {/*

*/}\n Please click on End Survey to store your results.{\" \"}\n
\n
\n \n End Survey\n \n
\n )}\n \n \n {/* OPTIONS */}\n {shouldRenderOptions() && (\n
\n {questions[index] && getComponentByQuestionType()}\n
\n )}\n \n {/*
\n\n {surveyType && (\n \n Read the Question aloud\n

\n )}\n \n

\n {questions[index] && questions[index].description ? (\n \n {questions[index].description}\n \n ) : null}\n {surveyType &&\n questions[index - 1] &&\n questions[index - 1].clientLink &&\n questions[index - 1].clientLink.length > 0 ? (\n

\n (The previous link was{\" \"}\n \n {questions[index - 1].clientLink}\n \n )\n

\n ) : null}\n

\n
\n {questions[index] &&\n questions[index].clientLink &&\n questions[index].clientLink.length > 0 ? (\n \n Open link:{\" \"}\n \n {questions[index].clientLink}\n {\" \"}\n (Click here)\n \n ) : null}\n {surveyType && (\n \n Take your time. Think aloud. Move on to the next step when\n you've completed this question.\n

\n )}\n */}\n {/* @devansh update csss */}\n
\n
\n
\n \n {step !== 0 && (\n \n \n {\" \"} PREVIOUS\n
\n )}\n {step !== endSurveySlideNumber && (\n \n NEXT{\" \"} \n \n )}\n \n \n \n \n );\n};\n\nexport default Survey;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lblue-container\":\"setup-style_lblue-container__2eqXe\",\"bold-text\":\"setup-style_bold-text__5XZcx\",\"input-box\":\"setup-style_input-box__n-9ek\",\"brand-name\":\"setup-style_brand-name__OZ348\",\"add-question-button\":\"setup-style_add-question-button__3KaqW\",\"grey-question-button\":\"setup-style_grey-question-button__20IWG\",\"add-question-icon\":\"setup-style_add-question-icon__CYn7f\",\"upload-logo-container\":\"setup-style_upload-logo-container__X4vfw\",\"logo-container\":\"setup-style_logo-container__1kBM9\",\"guide-upload-container\":\"setup-style_guide-upload-container__3QjYH\",\"guide-container\":\"setup-style_guide-container__1vAWn\",\"survey-time-select\":\"setup-style_survey-time-select__78RAA\",\"dblue-text\":\"setup-style_dblue-text__O39lb\",\"radio-button\":\"setup-style_radio-button__VM2MV\",\"radio-button-mobile\":\"setup-style_radio-button-mobile__msKMu\",\"selected-radio-button\":\"setup-style_selected-radio-button__1ZY0k\",\"radio-button-circle\":\"setup-style_radio-button-circle__1aGEj\",\"grid-container\":\"setup-style_grid-container__j5Y35\",\"span-col-2-4\":\"setup-style_span-col-2-4__1m4ne\",\"span-col-2-3\":\"setup-style_span-col-2-3__2-bT_\",\"last-button\":\"setup-style_last-button__1QUmr\"};","import { notification } from \"antd\";\n\nconst handleNetworkErrors = (err) => {\n if (err.response) {\n console.log(err.response);\n const messageExists =\n err.response.data && err.response.data.message ? true : false;\n const errorExists =\n err.response.data &&\n err.response.data.error &&\n err.response.data.error.message\n ? true\n : false;\n let desc = \"Unknown Error\";\n if (messageExists && !errorExists) {\n desc = err.response.data.message;\n } else if (!messageExists && errorExists) {\n desc = err.response.data.error.message;\n }\n notification.error({\n message: desc,\n description: `${err.response.status} ${err.response.statusText}`,\n });\n } else if (err.request) {\n notification.info({\n message: \"Can't connect with the server\",\n description: \"Seems like there is no internet connectivity.\",\n });\n } else {\n notification.error({\n message: \"Unknown error occurred\",\n description: \"Please try again\",\n });\n }\n};\n\nexport default handleNetworkErrors;\n","import React, { useState } from \"react\";\nimport \"./video-thumbnail.css\";\nimport { findDOMNode } from \"react-dom\";\nimport ReactPlayer from \"react-player/lazy\";\n// import screenfull from \"screenfull\";\nimport { PlayCircleTwoTone, CloseCircleOutlined } from \"@ant-design/icons\";\nimport { Modal } from \"antd\";\n\nconst VideoModal = ({ onCancel, url }) => {\n return (\n \n \n \n \n );\n};\n\nconst Thumbnail = ({ url, label, style = {}, noBorder }) => {\n // const ref = React.createRef();\n const [play, setPlay] = useState(false);\n\n const handleFullscreen = () => {\n // screenfull.request(findDOMNode(ref.current));\n setPlay(true);\n };\n\n return (\n \n
\n
\n \n \n {/* */}\n
\n {label && (\n \n {label}\n
\n )}\n {play && setPlay(false)} url={url} />}\n \n
\n );\n};\n\nexport default Thumbnail;\n","import React, { useState } from \"react\";\nimport \"./video-thumbnail.css\";\nimport { findDOMNode } from \"react-dom\";\nimport ReactPlayer from \"react-player/lazy\";\n// import screenfull from \"screenfull\";\nimport { PlayCircleTwoTone, CloseCircleOutlined } from \"@ant-design/icons\";\nimport { Modal } from \"antd\";\n\nconst VideoModal = ({ onCancel, url }) => {\n return (\n \n \n \n \n );\n};\n\nconst Thumbnail = ({ url, label, style = {}, noBorder }) => {\n // const ref = React.createRef();\n const [play, setPlay] = useState(false);\n\n const handleFullscreen = () => {\n // screenfull.request(findDOMNode(ref.current));\n setPlay(true);\n };\n\n return (\n \n
\n
\n \n \n {/* */}\n
\n {label && (\n \n {label}\n
\n )}\n {play && setPlay(false)} url={url} />}\n \n
\n );\n};\n\nexport default Thumbnail;\n","import { Checkbox } from \"antd\";\nimport React, { useState } from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\n\nconst CheckboxesSpecial = ({\n key,\n choices,\n specialField,\n onChange = () => {},\n value,\n color,\n}) => {\n const [checkedList, setCheckedList] = useState(value ? value : []);\n\n const onValuesChange = (checkedValue) => {\n if (checkedValue[checkedValue.length - 1] === specialField) {\n const newCheckedList = checkedValue.filter((val) => val === specialField);\n setCheckedList(newCheckedList);\n onChange(newCheckedList);\n } else {\n const newCheckedList = checkedValue.filter((val) => val !== specialField);\n setCheckedList(newCheckedList);\n onChange(newCheckedList);\n }\n };\n return (\n \n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val)}\n \n ))}\n \n );\n};\n\nexport default CheckboxesSpecial;\n","module.exports = __webpack_public_path__ + \"static/media/logo.d53322b8.png\";","import React, { useState } from \"react\";\nimport { Modal } from \"antd\";\nimport \"./image-thumbnail.css\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport \"react-awesome-lightbox/build/style.css\";\n\nexport const ImageModal = ({ onCancel, imgUrl }) => {\n return (\n \n \n \n \n );\n};\n\nconst Thumbnail = ({ imgUrl, label, style = {} }) => {\n const [zoom, setZoom] = useState(false);\n\n return (\n
\n setZoom(true)}\n />\n {label &&
{label}
}\n {\n zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )\n /* setZoom(false)} /> */\n }\n
\n );\n};\n\nexport default Thumbnail;\n","import React, { useState } from \"react\";\nimport { Modal } from \"antd\";\nimport \"./image-thumbnail.css\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport \"react-awesome-lightbox/build/style.css\";\n\nexport const ImageModal = ({ onCancel, imgUrl }) => {\n return (\n \n \n \n \n );\n};\n\nconst Thumbnail = ({ imgUrl, label, style = {} }) => {\n const [zoom, setZoom] = useState(false);\n\n return (\n
\n setZoom(true)}\n />\n {label &&
{label}
}\n {\n zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )\n /* setZoom(false)} /> */\n }\n
\n );\n};\n\nexport default Thumbnail;\n","import {\n questionTypes,\n specialTypes,\n typeRequired,\n} from \"../constants/questions\";\n\nexport const isTypeRequired = (type) => {\n return typeRequired.includes(type);\n};\n\nexport const isAnswerEmpty = (type, answer) => {\n if (answer && !specialTypes.includes(type)) {\n return answer.length === 0;\n }\n let isEmpty = false;\n switch (type) {\n case questionTypes.TEXT:\n return answer.length === 0 || answer[0] === \"\";\n case questionTypes.IMAGE_COMMENT:\n return answer.length === 0 || answer[0] === \"\";\n case questionTypes.VIDEO_COMMENT:\n return answer.length === 0 || answer[0] === \"\";\n case questionTypes.IMAGE_STARRATINGCHOICE:\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n case questionTypes.VIDEO_STARRATINGCHOICE:\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n default:\n return false;\n }\n};\n\nexport const getQuestionText = ({ type, text, options }) => {\n switch (type) {\n case questionTypes.NPS:\n const { npsOption } = options;\n return `How likely is it that you would recommend ${npsOption} to a friend or collegue?`;\n default:\n return text;\n }\n};\n\nexport const reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n","import { createStore, applyMiddleware, compose } from \"redux\";\nimport { generateReducers } from \"automate-redux\";\nimport thunk from \"redux-thunk\";\n\n// Initial state of redux\nconst initialState = {\n pendingRequests: 0,\n user: {\n profileQuestions: [],\n },\n admin: {},\n client: {\n surveys: [],\n openModToken: ''\n },\n};\n\n// Generate reducers with the initial state and pass it to the redux store\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nexport default createStore(\n generateReducers(initialState),\n composeEnhancers(applyMiddleware(thunk))\n);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-container\":\"survey_survey-container__mHARr\",\"user-video-screen\":\"survey_user-video-screen__3m9XQ\",\"linkCard\":\"survey_linkCard__xYp8S\",\"linkButton\":\"survey_linkButton__36IjN\",\"title\":\"survey_title__1TinF\",\"flex-end\":\"survey_flex-end__3pMUT\",\"nav-button\":\"survey_nav-button__3cUnA\",\"center\":\"survey_center__14bQ-\",\"end_center\":\"survey_end_center__1iIlV\",\"numberCircle\":\"survey_numberCircle__2Bp_h\",\"answerBox\":\"survey_answerBox__10gbg\",\"quit-button\":\"survey_quit-button__3oA2u\",\"logo\":\"survey_logo__1EJNA\",\"mobile_topbar\":\"survey_mobile_topbar__3Hveq\",\"mobile_quit-button\":\"survey_mobile_quit-button__1HDar\",\"bottom-buttons\":\"survey_bottom-buttons__1bZM4\",\"bottom-bar\":\"survey_bottom-bar__3zayl\",\"bottom-wrapper\":\"survey_bottom-wrapper__2ULDB\",\"question-box\":\"survey_question-box__3bobq\",\"question-box-1\":\"survey_question-box-1__2gWKZ\",\"options-box\":\"survey_options-box__1oFpT\",\"mobile_logo\":\"survey_mobile_logo__1Pcat\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-container\":\"survey_survey-container__2vovA\",\"user-video-screen\":\"survey_user-video-screen__3vgIv\",\"linkCard\":\"survey_linkCard__2Ymws\",\"linkButton\":\"survey_linkButton__2dO6W\",\"title\":\"survey_title__37Kpg\",\"flex-end\":\"survey_flex-end__31k9h\",\"nav-button\":\"survey_nav-button__1AeNl\",\"center\":\"survey_center__3FBiY\",\"end_center\":\"survey_end_center__1DS5d\",\"numberCircle\":\"survey_numberCircle__LLqB5\",\"answerBox\":\"survey_answerBox__1WskY\",\"quit-button\":\"survey_quit-button__2V8s9\",\"logo\":\"survey_logo__fjwbj\",\"mobile_topbar\":\"survey_mobile_topbar__1QP-8\",\"mobile_quit-button\":\"survey_mobile_quit-button__jwHjB\",\"bottom-buttons\":\"survey_bottom-buttons__14sIy\",\"bottom-bar\":\"survey_bottom-bar__3zwv0\",\"bottom-wrapper\":\"survey_bottom-wrapper__3qDHL\",\"question-box\":\"survey_question-box__2VBht\",\"question-box-1\":\"survey_question-box-1__2UVqk\",\"options-box\":\"survey_options-box__3TNBs\",\"mobile_logo\":\"survey_mobile_logo__aPS5H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"criteria_button__2_SHv\",\"selected\":\"criteria_selected__27HmW\",\"option-button\":\"criteria_option-button__3ubW8\",\"button-icon\":\"criteria_button-icon__SoZE3\",\"option-button-icon\":\"criteria_option-button-icon__2oMeG\",\"container\":\"criteria_container__3MUfd\",\"question-box\":\"criteria_question-box__552ah\",\"lb-container\":\"criteria_lb-container__3V5Rb\",\"db-text\":\"criteria_db-text__VkXyz\",\"grid-container\":\"criteria_grid-container__3Ne7L\",\"email-tag\":\"criteria_email-tag__2oCxW\",\"bold-text\":\"criteria_bold-text__nQwqD\",\"add-question-button\":\"criteria_add-question-button__1p-51\",\"emails\":\"criteria_emails__3AcFN\",\"add-question-icon\":\"criteria_add-question-icon__25t3q\",\"grey-question-button\":\"criteria_grey-question-button__2eVm7\",\"modal-container\":\"criteria_modal-container__cOC8k\",\"customModal\":\"criteria_customModal__2sQGh\",\"typography\":\"criteria_typography__1ozjv\",\"additional-screening-question-button\":\"criteria_additional-screening-question-button__3ut9X\",\"import-type-button\":\"criteria_import-type-button__3Pl1G\",\"user-email-input\":\"criteria_user-email-input__-oLWB\"};","module.exports = __webpack_public_path__ + \"static/media/robot-large.3164977a.png\";","module.exports = __webpack_public_path__ + \"static/media/footer_wave.365d9ebc.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"h5\":\"new-survey-styles_h5__28sDF\",\"next-button\":\"new-survey-styles_next-button__1kxDt\"};","module.exports = __webpack_public_path__ + \"static/media/user-login-bg.6080ee9a.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import React, { useEffect, useState } from \"react\";\nimport styles from \"./survey.module.css\";\nimport c from \"classnames/bind\";\nimport {\n LeftOutlined,\n LogoutOutlined,\n RightOutlined,\n LinkOutlined,\n} from \"@ant-design/icons\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport logo from \"../../../../assets/logo.png\";\nimport { Button, message, Card, Modal as AntdModal } from \"antd\";\nimport Modal from \"react-modal\";\nimport { useMediaQuery } from \"react-responsive\";\nimport {\n isTypeRequired,\n isAnswerEmpty,\n getQuestionText,\n} from \"../../utils/questionUtils\";\nimport { useVideoRef } from \"../../hooks/qualSurvey/useVideoRef\";\nimport { surveyTypes } from \"../../constants/constants\";\nimport { notify } from \"../../../../utils\";\nimport { getComponentByQuestionType } from \"./questions/Index\";\nimport { getRange } from \"../../utils/utils\";\nimport {\n branchingActions,\n branchingConditions,\n} from \"../../constants/branching\";\nimport { getRoleByToken } from \"../../../../utils\";\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\nlet answers = [];\nlet hiddenQuestions = [];\n\nconst Survey = ({\n surveyType,\n surveyAccess,\n questions = [],\n rules = [],\n isOpen,\n onClose,\n onEndSurvey = () => {},\n onDisqualification = () => {},\n tryOwnForm = false,\n brandName = \"\",\n brandLogo = \"\",\n surveyInstructions = \"\",\n showPermDeniedPage = false\n}) => {\n // Hooks\n const TopBarResponsive = useMediaQuery({ query: \"(max-width: 960px)\" });\n const isTablet = useMediaQuery({ query: \"(max-width: 800px)\" });\n const [step, setStep] = useState(0);\n const [isDisqualified, setIsDisqualified] = useState(false);\n const [videoRef, getVideo, stopVideo] = useVideoRef();\n const [tempAnswers, setTempAnswers] = useState([]);\n const [showThanksPage, setShowThanksPage] = useState(false);\n const [role, setRole] = useState(\n getRoleByToken(localStorage.getItem(\"token\"))\n );\n // eslint-disable-next-line\n useEffect(() => {\n if (role !== getRoleByToken(localStorage.getItem(\"token\"))) {\n setRole(getRoleByToken(localStorage.getItem(\"token\")));\n }\n });\n\n useEffect(() => {\n setTempAnswers(answers);\n console.log(\"updatedAnswerS\", answers);\n }, [answers]);\n\n useEffect(() => {\n if (!(surveyType === surveyTypes.QUANTITATIVE) && !tryOwnForm && isOpen) {\n getVideo();\n }\n }, [videoRef]);\n\n useEffect(() => {\n // Populate answers with empty array\n [...Array(questions.length).keys()].map((i) => (answers[i] = []));\n }, []);\n\n // Derived state\n const index = step - 1;\n const totalQuestions = questions.length;\n const endSurveySlideNumber = questions.length + 1;\n const isQuestionHidden = hiddenQuestions.includes(index);\n const verifyRuleConditions = (conditions) => {\n let result = \"true&&\";\n\n for (const [key, item] of Object.entries(conditions)) {\n const lastElement = key == conditions.length - 1;\n const op = lastElement ? \"\" : item.logicalOr ? \"||\" : \"&&\";\n\n switch (item.condition) {\n case branchingConditions.CONTAINS: {\n const cond = answers[item.index].includes(item.choices[0]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN: {\n const cond = !answers[item.index].includes(item.choices[0]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.CONTAINS_ONE_OF: {\n const cond = answers[item.index].some((x) =>\n item.choices.includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN_ANY_OF: {\n const cond = !item.choices.every((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.CONTAINS_ALL_OF: {\n const cond = item.choices.every((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.DOES_NOT_CONTAIN_ALL_OF: {\n const cond = !item.choices.some((x) =>\n answers[item.index].includes(x)\n );\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_EXACTLY: {\n const cond =\n JSON.stringify(item.choices) ===\n JSON.stringify(answers[item.index]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_NOT: {\n const cond =\n JSON.stringify(item.choices) !==\n JSON.stringify(answers[item.index]);\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IS_FROM_TO: {\n const cond =\n item.from <= answers[item.index][0] &&\n answers[item.index][0] <= item.to;\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.RANKING: {\n const { type } = questions[item.index];\n let cond = false;\n if (answers[item.index].length !== 0) {\n if (type === \"ranking\") {\n cond = answers[item.index][item.rank - 1].label === item.label;\n } else if (type === \"imageRanking\") {\n cond =\n answers[item.index][item.rank - 1].imageLabel === item.label;\n } else if (type === \"videoRanking\") {\n cond =\n answers[item.index][item.rank - 1].videoLabel === item.label;\n }\n }\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.ASSOCIATION: {\n const { type } = questions[item.index];\n let cond = false;\n answers[item.index].length !== 0 &&\n answers[item.index].forEach((x, idx) => {\n if (\n type === \"association\" &&\n x.label === item.label &&\n x.association === item.association\n ) {\n cond = true;\n return;\n }\n\n if (type === \"imageAssociation\" || type === \"videoAssociation\") {\n const num = parseInt(item.label.substring(6)) - 1;\n if (num == idx && x.association === item.association) {\n cond = true;\n return;\n }\n }\n });\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n case branchingConditions.IMAGE_VIDEO_RATINGS: {\n const ans =\n answers[item.index].length !== 0 &&\n answers[item.index][0][item.label];\n const cond = item.from <= ans && ans <= item.to;\n result += cond.toString();\n result = eval(result).toString() + op;\n break;\n }\n\n default:\n break;\n }\n }\n\n return result === \"true\";\n };\n\n const executeRuleActions = (actions) => {\n // Set step always one less than the expected step.\n for (const item of actions) {\n switch (item.name) {\n // skip -> 9\n // current -> 2\n // hide -> 3, 4, 5, 6, 7, 8\n case branchingActions.SKIP_TO_QUESTION: {\n const range = getRange(index + 1, item.question - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.END_SURVEY: {\n setStep(questions.length);\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.DISQUALIFY_RESPONDENT: {\n setStep(questions.length);\n setIsDisqualified(true);\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.concat(range);\n break;\n }\n\n case branchingActions.HIDE_QUESTION: {\n hiddenQuestions = hiddenQuestions.concat([item.question]);\n break;\n }\n\n case branchingActions.INVALIDATE_QUESTION: {\n answers[item.question] = [];\n if (item.question > index) {\n hiddenQuestions = hiddenQuestions.concat([item.question]);\n }\n break;\n }\n\n default:\n break;\n }\n }\n };\n\n const performBranchingLogic = () => {\n let results = [];\n for (const rl of rules) {\n const maxIndex = rl.questions.reduce(\n (prev, curr) => Math.max(prev, curr.index),\n 0\n );\n if (maxIndex === index) {\n results.push({\n verified: verifyRuleConditions(rl.questions),\n actions: rl.actions,\n });\n }\n }\n\n // false conditions must be executed first\n results.sort((a, b) => {\n if (Number(a.verified) < Number(b.verified)) {\n return -1;\n }\n if (Number(a.verified) > Number(b.verified)) {\n return 1;\n }\n return 0;\n });\n\n // execute actions\n for (let x of results) {\n if (x.verified) {\n executeRuleActions(x.actions);\n break;\n } else {\n x.actions.forEach((el) => {\n if (\n el.name === branchingActions.HIDE_QUESTION ||\n branchingActions.INVALIDATE_QUESTION\n ) {\n hiddenQuestions = hiddenQuestions.filter(\n (val) => el.question !== val\n );\n }\n\n if (el.name === branchingActions.SKIP_TO_QUESTION) {\n const range = getRange(index + 1, el.question - 1);\n hiddenQuestions = hiddenQuestions.filter(\n (val) => !range.includes(val)\n );\n }\n\n if (\n el.name === branchingActions.END_SURVEY ||\n el.name === branchingActions.DISQUALIFY_RESPONDENT\n ) {\n const range = getRange(index + 1, questions.length - 1);\n hiddenQuestions = hiddenQuestions.filter(\n (val) => !range.includes(val)\n );\n }\n });\n }\n }\n };\n\n // Handlers\n const incrementStep = () => {\n if (\n step !== 0 &&\n !isQuestionHidden &&\n isTypeRequired(questions[index].type) &&\n isAnswerEmpty(questions[index].type, answers[index])\n ) {\n message.error(\"Please answer this question first!\");\n return;\n }\n\n if (rules?.length !== 0) {\n performBranchingLogic();\n }\n\n setStep((prevStep) => {\n while (true) {\n if (hiddenQuestions.includes(prevStep++)) {\n continue;\n }\n return prevStep;\n }\n });\n };\n\n const decrementStep = () => {\n setStep((prevStep) => {\n while (true) {\n if (hiddenQuestions.includes(--prevStep - 1)) {\n continue;\n }\n return prevStep;\n }\n });\n };\n\n const onChangeAnswer = (values) => {\n answers[index] = Array.isArray(values) ? values : [values];\n console.log(\"newAnswers\", answers);\n };\n\n const updateAnswer = (answer) => {\n answers[index] = answer;\n console.log(\"updatedAnswer\", answer);\n };\n\n const endSurvey = async () => {\n if (!(surveyType === surveyTypes.QUANTITATIVE) && !tryOwnForm && isOpen) {\n stopVideo()\n }\n if (isDisqualified) {\n notify(\n \"info\",\n \"Info\",\n \"You have been disqualifed. Survey is now removed.\"\n );\n onDisqualification();\n } else {\n console.log(\"final answers array:\", answers);\n onEndSurvey([...answers]);\n }\n if (!surveyAccess) resetModal();\n else showThankYouPage();\n };\n\n const resetModal = () => {\n answers = [];\n hiddenQuestions = [];\n setStep(0);\n };\n\n const showThankYouPage = () => {\n setStep(endSurveySlideNumber);\n setShowThanksPage(true);\n };\n\n const onCloseModal = () => {\n resetModal();\n onClose();\n };\n\n const shouldRenderOptions = () => {\n if (step === 0 || step === endSurveySlideNumber) {\n return false;\n }\n\n if (\n step > 0 &&\n questions[index] &&\n questions[index].type === \"questionInstruction\"\n ) {\n return false;\n }\n\n return true;\n };\n\n console.log(\"questions12345\", answers);\n\n return (\n {\n onCloseModal();\n }}\n style={modalStyles}\n >\n \n
\n {TopBarResponsive ? (\n
\n
\n \n
\n {(!surveyAccess || role === \"user\") &&\n window.location.pathname.includes(\"/user\") && (\n
\n {isTablet ? (\n {\n onCloseModal();\n }}\n />\n ) : (\n {\n onCloseModal();\n }}\n className={cx(\"mobile_quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n
\n )}\n
\n )}\n
\n ) : (\n <>\n
\n \n
\n {(!surveyAccess || role === \"user\") &&\n window.location.pathname.includes(\"/user\") && (\n
\n {\n onCloseModal();\n }}\n className={cx(\"quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n
\n \n )}\n \n )}\n \n {/* QUESTION */}\n
\n {step !== 0 && step !== endSurveySlideNumber && (\n \n {step}\n
\n )}\n \n {step == 0 && (\n <>\n \n Welcome to {brandName ? brandName : \"UserQual\"}!\n

\n {!!surveyInstructions && (\n

\n {surveyInstructions}\n

\n )}\n

\n You can start the survey by clicking the NEXT Button.\n

\n \n )}\n {step !== 0 && step !== endSurveySlideNumber && questions[index] && (\n
\n
{getQuestionText(questions[index])}
\n {questions[index].hasLink ? (\n \n \n \n \n\n {questions[index].clientLink}\n
\n \n window.open(\n \"https://\" + questions[index].clientLink,\n \"_blank\"\n )\n }\n className={cx(\"linkButton\")}\n >\n OPEN\n \n \n \n ) : null}\n \n )}\n {/* {(step === endSurveySlideNumber && !showThanksPage) ? :} */}\n
\n {(() => {\n switch (true) {\n case step === endSurveySlideNumber && !showThanksPage:\n {\n return (\n
\n {/*

*/}\n \n Please click on End Survey to store your results.\n {\" \"}\n
\n
\n \n End Survey\n \n
\n );\n }\n break;\n\n case step === endSurveySlideNumber && showThanksPage && window.location.pathname.includes('attemptSurvey'):\n {\n return (\n
\n {/*

*/}\n Thank you for filling the survey
\n
\n
\n );\n }\n break;\n }\n })()}\n
\n \n \n {/* OPTIONS */}\n {shouldRenderOptions() && (\n
\n {questions[index] &&\n getComponentByQuestionType(\n questions[index],\n answers[index],\n index,\n onChangeAnswer,\n updateAnswer\n )}\n
\n )}\n \n
\n
\n
\n \n {step !== 0 && !showThanksPage && (\n \n \n {\" \"} PREVIOUS\n
\n )}\n {step !== endSurveySlideNumber && (\n \n NEXT{\" \"} \n \n )}\n \n \n \n \n );\n};\n\nexport default Survey;\n","import { Input } from \"antd\";\nimport React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst Text = ({ key, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n return (\n onChange(e.target.value)}\n />\n );\n};\n\nexport default Text;\n","import { Radio, Space } from \"antd\";\nimport React from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../../../../utils\";\nimport \"./multiple-choice.css\";\n\nconst MultipleChoice = ({ key, choices, onChange = () => {}, value }) => {\n return (\n onChange(e.target.value)}\n defaultValue={value}\n >\n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val.label)}\n \n ))}\n \n );\n};\n\nexport default MultipleChoice;\n","import { Checkbox } from \"antd\";\nimport React, { useState } from \"react\";\nimport { difference } from \"lodash\";\nimport { capitalizeFirstCharacter } from \"../../../../../../utils\";\nimport \"./checkboxes.css\";\n\nconst Checkboxes = ({ key, choices, onChange = () => {}, value }) => {\n const [localValue, setLocalValue] = useState(value);\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (choices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter((val) => !choices[val].isMcq);\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n\n return (\n \n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val.label)}\n \n ))}\n \n );\n};\n\nexport default Checkboxes;\n","import { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport { Rate } from \"antd\";\nimport React from \"react\";\nimport \"./star-rating.css\";\n\nconst StarRating = ({ key, options, onChange = () => {}, value }) => {\n const getCharacter = () => {\n switch (options.starType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n return (\n
\n onChange(val)}\n className=\"\"\n />\n
\n );\n};\n\nexport default StarRating;\n","import React, { useEffect } from \"react\";\nimport { Slider } from \"antd\";\nimport \"./slider.css\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst SliderType = ({ key, options, onChange = () => {}, value }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 900px)\" });\n console.log(options.sliderEndLabel, value);\n const marks = {\n [options.sliderMin]: {\n style: {\n marginTop: 5,\n fontSize: isTabletOrMobile ? 14 : 18,\n },\n label:\n options.sliderType === \"percentage\"\n ? options.sliderMin + \"%\"\n : options.sliderMin,\n },\n [options.sliderMax]: {\n style: {\n marginTop: 5,\n fontSize: isTabletOrMobile ? 14 : 18,\n },\n label:\n options.sliderType === \"percentage\"\n ? options.sliderMax + \"%\"\n : options.sliderMax,\n },\n };\n return (\n
\n \n options.sliderType === \"percentage\" ? value + \"%\" : value\n }\n max={options.sliderMax}\n defaultValue={value}\n onAfterChange={(val) => onChange(val)}\n />\n
\n
{options.sliderStartLabel}
\n
{options.sliderMiddleLabel}
\n
{options.sliderEndLabel}
\n
\n
\n );\n};\n\nexport default SliderType;\n","import { Rate } from \"antd\";\nimport React from \"react\";\nimport styles from \"./likert.module.css\";\nimport { useMediaQuery } from \"react-responsive\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst likertStyles = {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-evenly\",\n};\n\nconst Likert = ({ key, options, onChange = () => {}, value }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 395px)\" });\n\n return (\n
\n \n circle\n \n }\n count={options.likertRange}\n defaultValue={value}\n onChange={(val) => onChange(val)}\n style={likertStyles}\n />\n
\n
\n {options.likertStartLabel}\n
\n \n {options.likertMiddleLabel}\n
\n \n {options.likertEndLabel}\n
\n \n \n );\n};\n\nexport default Likert;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport \"./nps.css\";\n\nconst NPS = ({ key, onChange, value }) => {\n const numbers = [...Array(11).keys()];\n\n return (\n
\n
\n onChange(e.target.value)}\n >\n {numbers.map((val) => (\n {val}\n ))}\n \n
\n Extremely Unlikely\n Extremely Likely\n
\n
\n
\n );\n};\n\nexport default NPS;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport \"./ranking.css\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, title, number }) => {\n return (\n \n \n
\n {number}\n
\n {title}\n \n );\n};\n\nconst Ranking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.label));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items.map((val) => ({ label: val })));\n };\n\n return (\n \n \n {(provided) => (\n \n {list.map((field, index) => (\n \n {(provided) => (\n \n \n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default Ranking;\n","import { Select } from \"antd\";\nimport React from \"react\";\nimport \"./dropdown.css\";\n\nconst Dropdown = ({ key, options, value, onChange = () => {} }) => {\n const numbers = [...Array(options.range + 1).keys()].filter(\n (val) => val !== 0 && val >= 0\n );\n return (\n
\n onChange(val)}\n >\n {numbers.map((val) => (\n {val}\n ))}\n \n
\n );\n};\n\nexport default Dropdown;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport \"./association.css\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { reorder } from \"../../../../utils/questionUtils\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n \n {title}\n \n \n );\n};\n\nconst Association = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n label: key.label,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n \n {val.label}\n
\n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default Association;\n","import React, { useState } from \"react\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport \"./image-instructions.css\";\n\nconst ImageInstructions = ({ key, options }) => {\n const [zoom, setZoom] = useState(false);\n\n return (\n \n
\n setZoom(true)}\n />\n
\n
\n {options.imageLabel}\n {zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )}\n
\n
\n );\n};\n\nexport default ImageInstructions;\n","import React, { useState } from \"react\";\nimport { Input } from \"antd\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst ImageComment = ({ key, options, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n const [zoom, setZoom] = useState(false);\n\n return (\n
\n setZoom(true)}\n />\n
\n
\n {options.imageLabel}\n {zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )}\n onChange(e.target.value)}\n />\n
\n );\n};\n\nexport default ImageComment;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport \"./multiple-choice.css\";\n\nconst ImageMultipleChoice = ({ key, options, value, onChange = () => {} }) => {\n return (\n onChange(e.target.value)}\n >\n {options.imageMultiChoices.map((val, index) => (\n
\n \n \n
{val.imageLabel}
\n
\n ))}\n \n );\n};\n\nexport default ImageMultipleChoice;\n","import React, { useState } from \"react\";\nimport { Checkbox } from \"antd\";\nimport { difference } from \"lodash\";\nimport \"./image-checkboxes.css\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\n\nconst ImageCheckboxes = ({ key, options, value, onChange = () => {} }) => {\n const [localValue, setLocalValue] = useState(value);\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (options.imageMultiChoices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter(\n (val) => !options.imageMultiChoices[val].isMcq\n );\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n return (\n \n \n {options.imageMultiChoices.map((val, index) => (\n
\n \n \n
{val.imageLabel}
\n
\n ))}\n \n
\n );\n};\n\nexport default ImageCheckboxes;\n","import { Rate } from \"antd\";\nimport { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport React, { useState } from \"react\";\nimport \"./image-rating.css\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\n\nconst ImageRating = ({ key, options, value, onChange }) => {\n const [ratings, setRatings] = useState(value);\n\n const getCharacter = () => {\n switch (options.imageStarType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n\n const onRatingsChange = (rate, id) => {\n setRatings({ ...ratings, [id]: rate });\n onChange({ ...ratings, [id]: rate });\n };\n\n return (\n
\n {options.imageStarRatingChoices.map((opt) => (\n
\n \n \n
{opt.imageLabel}
\n
\n
\n onRatingsChange(rate, opt.imageLabel)}\n />\n
\n
\n ))}\n \n );\n};\n\nexport default ImageRating;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport \"./image-ranking.css\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, imgUrl, label, number }) => {\n return (\n
\n
\n \n
\n
{number}
\n \n
{label}
\n
\n );\n};\n\nconst ImageRanking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value);\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items);\n };\n\n return (\n \n \n {(provided) => (\n
\n {list.map((field, index) => (\n \n {(provided) => (\n \n \n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
\n
\n );\n};\n\nexport default ImageRanking;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport \"./image-association.css\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport { reorder } from \"../../../../../utils/questionUtils\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n
{title}
\n \n );\n};\n\nconst ImageAssociation = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n imageData: key.imageData,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n \n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n
\n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default ImageAssociation;\n","import React from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoInstruction = ({ key, options }) => {\n return (\n
\n \n
\n );\n};\n\nexport default VideoInstruction;\n","import { Rate } from \"antd\";\nimport { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport React, { useState } from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoRating = ({ key, options, value, onChange }) => {\n const [ratings, setRatings] = useState(value);\n\n const getCharacter = () => {\n switch (options.videoStarType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n\n const onRatingsChange = (rate, id) => {\n setRatings({ ...ratings, [id]: rate });\n onChange({ ...ratings, [id]: rate });\n };\n\n return (\n
\n {options.videoStarRatingChoices.map((opt) => (\n
\n \n
\n \n
\n
{opt.videoLabel}
\n
\n
\n onRatingsChange(rate, opt.videoLabel)}\n />\n
\n
\n ))}\n \n );\n};\n\nexport default VideoRating;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { reorder } from \"../../../../../utils/questionUtils\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n
{title}
\n \n );\n};\n\nconst VideoAssociation = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n videoData: key.videoData,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n
\n \n
\n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n
\n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default VideoAssociation;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, videoUrl, label, number }) => {\n return (\n
\n
\n \n
\n
{number}
\n
\n \n
\n
{label}
\n
\n );\n};\n\nconst VideoRanking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value);\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items);\n };\n\n return (\n \n \n {(provided) => (\n
\n {list.map((field, index) => (\n \n {(provided) => (\n \n \n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
\n
\n );\n};\n\nexport default VideoRanking;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst VideoMultipleChoice = ({ key, options, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n return (\n onChange(e.target.value)}\n >\n {options.videoMultiChoices.map((val, index) => (\n
\n \n \n \n
\n
{val.videoLabel}
\n \n ))}\n \n );\n};\n\nexport default VideoMultipleChoice;\n","import React, { useState } from \"react\";\nimport { Checkbox } from \"antd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\nimport { difference } from \"lodash\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst VideoCheckboxes = ({ key, options, value, onChange = () => {} }) => {\n const [localValue, setLocalValue] = useState(value);\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (options.videoMultiChoices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter(\n (val) => !options.videoMultiChoices[val].isMcq\n );\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n\n return (\n \n {options.videoMultiChoices.map((val, index) => (\n
\n \n
\n \n
\n
{val.videoLabel}
\n
\n ))}\n \n );\n};\n\nexport default VideoCheckboxes;\n","import React from \"react\";\nimport { Input } from \"antd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoComment = ({ key, options, value, onChange = () => {} }) => {\n return (\n
\n \n onChange(e.target.value)}\n />\n
\n );\n};\n\nexport default VideoComment;\n","import React from \"react\";\nimport ReactPlayer from \"react-player/lazy\";\n\nconst AdAnalysis = ({ options }) => {\n return (\n \n );\n};\n\nexport default AdAnalysis;\n","import axios, { Routes } from \"../../../services/API\";\nimport handleNetworkErrors from \"./handleNetworkErrors\";\n\nexport const getWordCloudAnalysis = async (comments, userId) => {\n const clientId = localStorage.getItem(\"user\");\n if (userId) {\n const { url, method } = Routes[\"user\"].getWordCloudReport(userId);\n try {\n const { data } = await axios[method](url, {\n data: {\n comments,\n },\n });\n return data;\n } catch (err) {\n handleNetworkErrors(err);\n }\n } else {\n console.log(\"no user found\");\n }\n};\n","import React from \"react\";\nimport { merge } from \"lodash\";\nimport AgoraRTC from \"agora-rtc-sdk\";\nimport io from \"socket.io-client\";\nimport \"./canvas.css\";\nimport \"../../assets/fonts/css/icons.css\";\nimport VideoStreamMerger from \"video-stream-merger\";\nimport { useHistory } from \"react-router-dom\";\nimport { BASEURL } from \"../../constants.js\";\n\nconst tile_canvas = {\n 1: [\"span 12/span 24\"],\n 2: [\"1 / 1 / span 12 / span 12\", \"1 / 13 / span 12 / span 12\"],\n 3: [\n \"1 / 13 / span 6 / span 12\",\n \"7 / 1 / span 6 / span 12\",\n \"1 / 1 / span 6 / span 12\",\n ],\n 4: [\n \"1 / 13 / span 6 / span 12\",\n \"7 / 1 / span 6 / span 12\",\n \"7 / 13 / span 6 / span 12\",\n \"1 / 1 / span 6 / span 12\",\n ],\n 5: [\n \"1 / 9 / span 6 / span 8\",\n \"1 / 17 / span 6 / span 8\",\n \"7 / 1 / span 6 / span 8\",\n \"7 / 9 / span 6 / span 8\",\n \"1 / 1 / span 6 / span 8\",\n ],\n 6: [\n \"1 / 9 / span 6 / span 8\",\n \"1 / 17 / span 6 / span 8\",\n \"7 / 1 / span 6 / span 8\",\n \"7 / 9 / span 6 / span 8\",\n \"7 / 17 / span 6 / span 8\",\n \"1 / 1 / span 6 / span 8\",\n ],\n 7: [\n \"1 / 7 / span 6 / span 6\",\n \"1 / 13 / span 6 / span 6\",\n \"1 / 19 / span 6 / span 6\",\n \"7 / 1 / span 6 / span 6\",\n \"7 / 7 / span 6 / span 6\",\n \"7 / 13 / span 6 / span 6\",\n \"1 / 1 / span 6 / span 6\",\n ],\n 8: [\n \"1 / 7 / span 6 / span 6\",\n \"1 / 13 / span 6 / span 6\",\n \"1 / 19 / span 6 / span 6\",\n \"7 / 1 / span 6 / span 6\",\n \"7 / 7 / span 6 / span 6\",\n \"7 / 13 / span 6 / span 6\",\n \"7 / 19 / span 6 / span 6\",\n \"1 / 1 / span 6 / span 6\",\n ],\n 9: [\n \"1 / 7 / span 4 / span 6\",\n \"1 / 13 / span 4 / span 6\",\n \"1 / 19 / span 4 / span 6\",\n \"5 / 1 / span 4 / span 6\",\n \"5 / 7 / span 4 / span 6\",\n \"5 / 13 / span 4 / span 6\",\n \"5 / 19 / span 4 / span 6\",\n \"9 / 1 / span 4 / span 6\",\n \"1 / 1 / span 4 / span 6\",\n ],\n 10: [\n \"1 / 7 / span 4 / span 6\",\n \"1 / 13 / span 4 / span 6\",\n \"1 / 19 / span 4 / span 6\",\n \"5 / 1 / span 4 / span 6\",\n \"5 / 7 / span 4 / span 6\",\n \"5 / 13 / span 4 / span 6\",\n \"5 / 19 / span 4 / span 6\",\n \"9 / 1 / span 4 / span 6\",\n \"9 / 7 / span 4 / span 6\",\n \"1 / 1 / span 4 / span 6\",\n ],\n 11: [\n \"1 / 7 / span 4 / span 6\",\n \"1 / 13 / span 4 / span 6\",\n \"1 / 19 / span 4 / span 6\",\n \"5 / 1 / span 4 / span 6\",\n \"5 / 7 / span 4 / span 6\",\n \"5 / 13 / span 4 / span 6\",\n \"5 / 19 / span 4 / span 6\",\n \"9 / 1 / span 4 / span 6\",\n \"9 / 7 / span 4 / span 6\",\n \"9 / 13 / span 4 / span 6\",\n \"1 / 1 / span 4 / span 6\",\n ],\n 12: [\n \"1 / 7 / span 4 / span 6\",\n \"1 / 13 / span 4 / span 6\",\n \"1 / 19 / span 4 / span 6\",\n \"5 / 1 / span 4 / span 6\",\n \"5 / 7 / span 4 / span 6\",\n \"5 / 13 / span 4 / span 6\",\n \"5 / 19 / span 4 / span 6\",\n \"9 / 1 / span 4 / span 6\",\n \"9 / 7 / span 4 / span 6\",\n \"9 / 13 / span 4 / span 6\",\n \"9 / 19 / span 4 / span 6\",\n \"1 / 1 / span 4 / span 6\",\n ],\n};\nconst WIDTH = [0, 400, 800, 0, 400, 800];\nconst HEIGHT = [0, 0, 0, 300, 300, 300];\nconst uploader = (url, uploadURL, props) => {\n return {\n init: function (data) {\n this.socket = io(this.url);\n let ss = this.socket;\n ss.on(\"connect\", () => {\n ss.emit(\"subscribe\", {\n ...this.data,\n ...data,\n });\n ss.on(\"host-leave\", () => {\n this.onHostLeave();\n });\n });\n ss.on(\"recieve-question\", (qData) => {\n if (props.showQuestionPopup) {\n props.showQuestionPopup(qData.question);\n }\n });\n ss.on(\"recieve-answer\", (aData) => {\n if (props.showAnswer && props.isClient) {\n props.showAnswer(aData);\n }\n });\n },\n onHostLeave: () => {\n //do something\n },\n startUpload: function () {\n let ss = this.socket;\n ss.emit(\"subscribe-upload\", {\n ...this.data,\n });\n },\n upload: function (chunk) {\n let ss = this.socket;\n ss.emit(\"data_available\", {\n ...this.data,\n chunk,\n });\n },\n endUpload: function () {\n let ss = this.socket;\n ss.emit(\"leave-upload\", {\n ...this.data,\n });\n console.log(\"upload complete\");\n },\n hostLeave: function () {\n let ss = this.socket;\n ss.emit(\"host-leave\", {\n ...this.data,\n });\n console.log(\"host left\");\n },\n onPublishQuestion: function (question) {\n console.log(\"on update\", this);\n let ss = this.socket;\n ss.emit(\"send-question\", {\n ...this.data,\n question: question,\n });\n },\n onSendAnswer: function (data) {\n let ss = this.socket;\n ss.emit(\"send-answer\", {\n ...this.data,\n answer: data,\n });\n },\n url: url,\n data: {\n uploadURL: uploadURL,\n },\n };\n};\n\n/**\n * @prop appId uid\n * @prop transcode attendeeMode videoProfile channel baseMode\n */\nclass AgoraCanvas extends React.Component {\n constructor(props) {\n super(props);\n this.client = {};\n this.localStream = {};\n this.shareClient = {};\n this.shareStream = {};\n this.mediaRecorder = {};\n this.merger = {};\n this.curStream = 0;\n this.state = {\n displayMode: \"pip\",\n streamList: [],\n readyState: false,\n isRecordingStarted: false,\n isRecordingEnded: false,\n };\n this.isClient = props.isClient;\n this.isOneToOne = props.isOneToOne;\n this.notes = props.notes;\n this.setNotes = props.setNotes;\n this.uploader = uploader(`${BASEURL}/stream`, props.uploadURL, props);\n }\n\n componentWillMount() {\n let $ = this.props;\n let ex = this;\n this.uploader.onHostLeave = () => {\n const response = {\n userId: localStorage.getItem(\"user\"),\n answers: [],\n filePath: $.channel + \".json\",\n };\n $.handleEndSurvey($.surveyId, response).then(() => {\n ex.handleExit();\n });\n };\n // init AgoraRTC local client\n this.client = AgoraRTC.createClient({ mode: $.transcode });\n this.client.init($.appId, () => {\n console.log(\"AgoraRTC client initialized\");\n this.subscribeStreamEvents();\n this.client.join($.appId, $.channel, $.uid, (uid) => {\n if(this.props.setOpenUID) { \n this.props.setOpenUID(uid)\n }\n console.log(\"User \" + uid + \" join channel successfully\");\n console.log(\"At \" + new Date().toLocaleTimeString());\n // create local stream\n // It is not recommended to setState in function addStream\n this.localStream = this.streamInit(uid, $.attendeeMode, $.videoProfile);\n this.localStream.init(\n () => {\n if ($.attendeeMode !== \"audience\") {\n this.addStream(this.localStream, true);\n this.client.publish(this.localStream, (err) => {\n console.log(\"Publish local stream error: \" + err);\n });\n }\n this.setState({ readyState: true });\n },\n (err) => {\n console.log(\"getUserMedia failed\", err);\n this.setState({ readyState: true });\n }\n );\n });\n });\n }\n\n componentDidMount() {\n // add listener to control btn group\n let canvas = document.querySelector(\"#ag-canvas\");\n let btnGroup = document.querySelector(\".ag-btn-group\");\n canvas.addEventListener(\"mousemove\", () => {\n if (global._toolbarToggle) {\n clearTimeout(global._toolbarToggle);\n }\n btnGroup.classList.add(\"active\");\n global._toolbarToggle = setTimeout(function () {\n btnGroup.classList.remove(\"active\");\n }, 2000);\n });\n this.uploader.init();\n }\n\n // componentWillUnmount () {\n // // remove listener\n // let canvas = document.querySelector('#ag-canvas')\n // canvas.removeEventListener('mousemove')\n // }\n\n componentDidUpdate() {\n // rerendering\n let canvas = document.querySelector(\"#ag-canvas\");\n // pip mode (can only use when less than 4 people in channel)\n if (this.state.displayMode === \"pip\") {\n let no = this.state.streamList.length;\n if (no > 4) {\n this.setState({ displayMode: \"tile\" });\n return;\n }\n this.state.streamList.map((item, index) => {\n let id = item.getId();\n let dom = document.querySelector(\"#ag-item-\" + id);\n if (!dom) {\n dom = document.createElement(\"section\");\n dom.setAttribute(\"id\", \"ag-item-\" + id);\n dom.setAttribute(\"class\", \"ag-item\");\n canvas.appendChild(dom);\n item.play(\"ag-item-\" + id);\n }\n if (index === no - 1) {\n dom.setAttribute(\"style\", `grid-area: span 12/span 24/13/25`);\n } else {\n dom.setAttribute(\n \"style\",\n `grid-area: span 3/span 4/${4 + 3 * index}/25;\n z-index:1;width:calc(100% - 20px);height:calc(100% - 20px)`\n );\n }\n\n item.player.resize && item.player.resize();\n });\n }\n // tile mode\n else if (this.state.displayMode === \"tile\") {\n let no = this.state.streamList.length;\n this.state.streamList.map((item, index) => {\n let id = item.getId();\n let dom = document.querySelector(\"#ag-item-\" + id);\n if (!dom) {\n dom = document.createElement(\"section\");\n dom.setAttribute(\"id\", \"ag-item-\" + id);\n dom.setAttribute(\"class\", \"ag-item\");\n canvas.appendChild(dom);\n item.play(\"ag-item-\" + id);\n }\n dom.setAttribute(\"style\", `grid-area: ${tile_canvas[no][index]}`);\n item.player.resize && item.player.resize();\n });\n }\n // screen share mode (tbd)\n else if (this.state.displayMode === \"share\") {\n }\n\n //Publish Question\n let $ = this;\n if (\n this.props.triggerQuestionPublished &&\n this.props.triggerQuestionPublished.trigger\n ) {\n // console.log(\n // \"on update question is here\",\n // this.props.triggerQuestionPublished.question\n // );\n $.uploader.onPublishQuestion(\n this.props.triggerQuestionPublished.question\n );\n this.props.setTriggerQuestionPublished({\n trigger: false,\n question: null,\n });\n }\n\n //Answer Question - User Side\n if (\n !this.isClient &&\n this.props.triggerSubmitAnswer &&\n this.props.triggerSubmitAnswer.trigger\n ) {\n // console.log(\"on submit answer\", this.props.triggerSubmitAnswer);\n $.uploader.onSendAnswer(this.props.triggerSubmitAnswer.data);\n this.props.setTriggerSubmitAnswer({\n trigger: false,\n data: {},\n });\n }\n }\n\n componentWillUnmount() {\n this.client && this.client.unpublish(this.localStream);\n this.localStream && this.localStream.close();\n this.client &&\n this.client.leave(\n () => {\n console.log(\"Client succeed to leave.\");\n },\n () => {\n console.log(\"Client failed to leave.\");\n }\n );\n }\n\n addStreamToMerger(stream) {\n let merger = this.merger;\n console.log(\"merger,\", merger, stream);\n let numStreams = this.state.streamList.length;\n let $ = this;\n merger.addStream(stream, {\n mute: false,\n draw: function (ctx, frame, done) {\n if ($.curStream >= numStreams) $.curStream = 0;\n ctx.drawImage(frame, WIDTH[$.curStream], HEIGHT[$.curStream], 400, 300);\n $.curStream = $.curStream + 1;\n done();\n },\n });\n }\n\n streamInit = (uid, attendeeMode, videoProfile, config) => {\n let defaultConfig = {\n streamID: uid,\n audio: true,\n video: true,\n screen: false,\n };\n\n switch (attendeeMode) {\n case \"audio-only\":\n defaultConfig.video = false;\n break;\n case \"audience\":\n defaultConfig.video = false;\n defaultConfig.audio = false;\n break;\n default:\n case \"video\":\n break;\n }\n\n let stream = AgoraRTC.createStream(merge(defaultConfig, config));\n stream.setVideoProfile(videoProfile);\n return stream;\n };\n\n subscribeStreamEvents = () => {\n let rt = this;\n rt.client.on(\"stream-added\", function (evt) {\n let stream = evt.stream;\n console.log(\"New stream added: \" + stream.getId());\n console.log(\"At \" + new Date().toLocaleTimeString());\n console.log(\"Subscribe \", stream);\n rt.client.subscribe(stream, function (err) {\n console.log(\"Subscribe stream failed\", err);\n });\n });\n\n rt.client.on(\"peer-leave\", function (evt) {\n let stream = evt.stream;\n console.log(\"Peer has left: \" + evt.uid);\n console.log(new Date().toLocaleTimeString());\n console.log(evt);\n if (\n rt.isClient &&\n rt.state.isRecordingStarted &&\n !rt.state.isRecordingEnded\n )\n rt.merger.removeStream(stream.stream);\n rt.removeStream(evt.uid);\n });\n\n rt.client.on(\"stream-subscribed\", function (evt) {\n let stream = evt.stream;\n console.log(\"Got stream-subscribed event\");\n console.log(new Date().toLocaleTimeString());\n console.log(\"Subscribe remote stream successfully: \" + stream.getId());\n console.log(evt);\n rt.addStream(stream);\n if (\n rt.isClient &&\n rt.state.isRecordingStarted &&\n !rt.state.isRecordingEnded\n )\n setTimeout(() => rt.addStreamToMerger(stream.stream), 1000);\n });\n\n rt.client.on(\"stream-removed\", function (evt) {\n let stream = evt.stream;\n console.log(\"Stream removed: \" + stream.getId());\n console.log(new Date().toLocaleTimeString());\n console.log(evt);\n if (\n rt.isClient &&\n rt.state.isRecordingStarted &&\n !rt.state.isRecordingEnded\n )\n rt.merger.removeStream(stream.stream);\n rt.removeStream(evt.uid);\n });\n };\n\n removeStream = (uid) => {\n this.state.streamList.map((item, index) => {\n if (item.getId() === uid) {\n item.close();\n let element = document.querySelector(\"#ag-item-\" + uid);\n if (element) {\n element.parentNode.removeChild(element);\n }\n let tempList = [...this.state.streamList];\n tempList.splice(index, 1);\n this.setState({\n streamList: tempList,\n });\n }\n });\n };\n\n addStream = (stream, push = false) => {\n let repeatition = this.state.streamList.some((item) => {\n return item.getId() === stream.getId();\n });\n if (repeatition) {\n return;\n }\n if (push) {\n this.setState({\n streamList: this.state.streamList.concat([stream]),\n });\n } else {\n this.setState({\n streamList: [stream].concat(this.state.streamList),\n });\n }\n };\n\n handleCamera = (e) => {\n e.currentTarget.classList.toggle(\"off\");\n this.localStream.isVideoOn()\n ? this.localStream.disableVideo()\n : this.localStream.enableVideo();\n };\n\n handleMic = (e) => {\n e.currentTarget.classList.toggle(\"off\");\n this.localStream.isAudioOn()\n ? this.localStream.disableAudio()\n : this.localStream.enableAudio();\n };\n\n switchDisplay = (e) => {\n if (\n e.currentTarget.classList.contains(\"disabled\") ||\n this.state.streamList.length <= 1\n ) {\n return;\n }\n if (this.state.displayMode === \"pip\") {\n this.setState({ displayMode: \"tile\" });\n } else if (this.state.displayMode === \"tile\") {\n this.setState({ displayMode: \"pip\" });\n } else if (this.state.displayMode === \"share\") {\n // do nothing or alert, tbd\n } else {\n console.error(\"Display Mode can only be tile/pip/share\");\n }\n };\n\n hideRemote = (e) => {\n if (\n e.currentTarget.classList.contains(\"disabled\") ||\n this.state.streamList.length <= 1\n ) {\n return;\n }\n let list;\n let id = this.state.streamList[this.state.streamList.length - 1].getId();\n list = Array.from(\n document.querySelectorAll(`.ag-item:not(#ag-item-${id})`)\n );\n list.map((item) => {\n if (item.style.display !== \"none\") {\n item.style.display = \"none\";\n } else {\n item.style.display = \"block\";\n }\n });\n };\n\n handleExit = (e) => {\n if (!this.state.readyState) {\n return;\n }\n try {\n this.client && this.client.unpublish(this.localStream);\n this.localStream && this.localStream.close();\n this.client &&\n this.client.leave(\n () => {\n console.log(\"Client succeed to leave.\");\n },\n () => {\n console.log(\"Client failed to leave.\");\n }\n );\n this.isClient && this.uploader.hostLeave();\n } finally {\n this.setState({ readyState: false });\n this.client = null;\n this.localStream = null;\n // redirect to index\n window.location.href = \"/\";\n }\n };\n\n startRecording = () => {\n if (this.isClient) {\n this.uploader.startUpload();\n this.merger = new VideoStreamMerger({\n width: 400 * 3,\n height: 300 * 2,\n fps: 25,\n clearRect: true,\n audioContext: null,\n });\n let $ = this;\n this.state.streamList.forEach((item) => $.addStreamToMerger(item.stream));\n this.merger.start();\n let mediaRecorder = new MediaRecorder(this.merger.result, {\n mimeType: \"video/webm;codecs=vp8,opus\",\n });\n mediaRecorder.ondataavailable = function (event) {\n // console.log(\"data-available\");\n if (event.data.size > 0) {\n $.uploader.upload(event.data);\n }\n };\n mediaRecorder.start(1000);\n this.mediaRecorder = mediaRecorder;\n this.props.setRecordingStartTime(new Date());\n if (typeof this.props.stopRecordingHandler === \"function\") {\n this.props.stopRecordingHandler();\n }\n this.setState({ isRecordingStarted: true });\n }\n };\n\n stopRecording = () => {\n if (this.isClient) {\n this.mediaRecorder.stop();\n this.merger.destroy();\n this.uploader.endUpload();\n this.props.setRecordingStartTime(null);\n this.setState({ isRecordingEnded: true });\n }\n };\n\n render() {\n const style = {\n display: \"grid\",\n gridGap: \"10px\",\n alignItems: \"center\",\n justifyItems: \"center\",\n gridTemplateRows: \"repeat(12, auto)\",\n gridTemplateColumns: \"repeat(24, auto)\",\n };\n const videoControlBtn =\n this.props.attendeeMode === \"video\" ? (\n \n \n \n \n ) : (\n \"\"\n );\n\n const audioControlBtn =\n this.props.attendeeMode !== \"audience\" ? (\n \n \n \n \n ) : (\n \"\"\n );\n\n const switchDisplayBtn = (\n 4\n ? \"ag-btn displayModeBtn disabled\"\n : \"ag-btn displayModeBtn\"\n }\n title=\"Switch Display Mode\"\n >\n \n \n );\n const hideRemoteBtn = (\n 4 || this.state.displayMode !== \"pip\"\n ? \"ag-btn disableRemoteBtn disabled\"\n : \"ag-btn disableRemoteBtn\"\n }\n onClick={this.hideRemote}\n title=\"Hide Remote Stream\"\n >\n \n \n );\n const exitBtn = (\n \n \n \n );\n\n const startRecordingBtn = (\n \n Start Recording\n \n );\n\n const stopRecordingBtn = (\n \n Stop Recording\n \n );\n\n return (\n
\n
\n {exitBtn}\n {videoControlBtn}\n {audioControlBtn}\n {this.isClient && startRecordingBtn}\n {this.isClient && stopRecordingBtn}\n {switchDisplayBtn}\n {hideRemoteBtn}\n
\n
\n );\n }\n}\n\nexport default AgoraCanvas;\n","import { Input } from \"antd\";\nimport React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst Text = ({ key, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n return (\n onChange(e.target.value)}\n />\n );\n};\n\nexport default Text;\n","import { Radio, Space } from \"antd\";\nimport React from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\nimport \"./multiple-choice.css\";\n\nconst MultipleChoice = ({ key, choices, onChange = () => {}, value }) => {\n return (\n onChange(e.target.value)}\n defaultValue={value}\n >\n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val.label)}\n \n ))}\n \n );\n};\n\nexport default MultipleChoice;\n","import { Checkbox } from \"antd\";\nimport React, { useState } from \"react\";\nimport { difference } from \"lodash\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\nimport \"./checkboxes.css\";\n\nconst Checkboxes = ({ key, choices, onChange = () => {}, value }) => {\n const [localValue, setLocalValue] = useState(value);\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (choices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter((val) => !choices[val].isMcq);\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n\n return (\n \n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val.label)}\n \n ))}\n \n );\n};\n\nexport default Checkboxes;\n","import { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport { Rate } from \"antd\";\nimport React from \"react\";\nimport \"./star-rating.css\";\n\nconst StarRating = ({ key, options, onChange = () => {}, value }) => {\n const getCharacter = () => {\n switch (options.starType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n return (\n
\n onChange(val)}\n className=\"\"\n />\n
\n );\n};\n\nexport default StarRating;\n","import React, { useEffect } from \"react\";\nimport { Slider } from \"antd\";\nimport \"./slider.css\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst SliderType = ({ key, options, onChange = () => {}, value }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 900px)\" });\n console.log(options.sliderEndLabel, value);\n const marks = {\n [options.sliderMin]: {\n style: {\n marginTop: 5,\n fontSize: isTabletOrMobile ? 14 : 18,\n },\n label:\n options.sliderType === \"percentage\"\n ? options.sliderMin + \"%\"\n : options.sliderMin,\n },\n [options.sliderMax]: {\n style: {\n marginTop: 5,\n fontSize: isTabletOrMobile ? 14 : 18,\n },\n label:\n options.sliderType === \"percentage\"\n ? options.sliderMax + \"%\"\n : options.sliderMax,\n },\n };\n return (\n
\n \n options.sliderType === \"percentage\" ? value + \"%\" : value\n }\n max={options.sliderMax}\n defaultValue={value}\n onAfterChange={(val) => onChange(val)}\n />\n \n
{options.sliderStartLabel}
\n
{options.sliderMiddleLabel}
\n
{options.sliderEndLabel}
\n
\n \n );\n};\n\nexport default SliderType;\n","import { Rate } from \"antd\";\nimport React from \"react\";\nimport styles from \"./likert.module.css\";\nimport { useMediaQuery } from \"react-responsive\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst likertStyles = {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-evenly\",\n};\n\nconst Likert = ({ key, options, onChange = () => {}, value }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 395px)\" });\n\n return (\n
\n \n circle\n \n }\n count={options.likertRange}\n defaultValue={value}\n onChange={(val) => onChange(val)}\n style={likertStyles}\n />\n
\n
\n {options.likertStartLabel}\n
\n \n {options.likertMiddleLabel}\n
\n \n {options.likertEndLabel}\n
\n \n \n );\n};\n\nexport default Likert;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport \"./nps.css\";\n\nconst NPS = ({ key, onChange, value }) => {\n const numbers = [...Array(11).keys()];\n\n return (\n
\n
\n onChange(e.target.value)}\n >\n {numbers.map((val) => (\n {val}\n ))}\n \n
\n Extremely Unlikely\n Extremely Likely\n
\n
\n
\n );\n};\n\nexport default NPS;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport \"./ranking.css\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, title, number }) => {\n return (\n \n \n
\n {number}\n
\n {title}\n \n );\n};\n\nconst Ranking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.label));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items.map((val) => ({ label: val })));\n };\n\n return (\n \n \n {(provided) => (\n \n {list.map((field, index) => (\n \n {(provided) => (\n \n \n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default Ranking;\n","import { Select } from \"antd\";\nimport React from \"react\";\nimport \"./dropdown.css\";\n\nconst Dropdown = ({ key, options, value, onChange = () => {} }) => {\n const numbers = [...Array(options.range + 1).keys()].filter(\n (val) => val !== 0 && val >= 0\n );\n return (\n
\n onChange(val)}\n >\n {numbers.map((val) => (\n {val}\n ))}\n \n
\n );\n};\n\nexport default Dropdown;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport \"./association.css\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { reorder } from \"../../../../utils\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n \n {title}\n \n \n );\n};\n\nconst Association = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n label: key.label,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n \n {val.label}\n
\n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default Association;\n","import React, { useState } from \"react\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport \"./image-instructions.css\";\n\nconst ImageInstructions = ({ key, options }) => {\n const [zoom, setZoom] = useState(false);\n\n return (\n \n
\n setZoom(true)}\n />\n
\n
\n {options.imageLabel}\n {zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )}\n
\n
\n );\n};\n\nexport default ImageInstructions;\n","import React, { useState } from \"react\";\nimport { Input } from \"antd\";\nimport Lightbox from \"react-awesome-lightbox\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst ImageComment = ({ key, options, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n const [zoom, setZoom] = useState(false);\n\n return (\n
\n setZoom(true)}\n />\n
\n
\n {options.imageLabel}\n {zoom && (\n setZoom(false)}\n allowRotate={false}\n showTitle={false}\n doubleClickZoom={2}\n />\n )}\n onChange(e.target.value)}\n />\n
\n );\n};\n\nexport default ImageComment;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport \"./multiple-choice.css\";\n\nconst ImageMultipleChoice = ({ key, options, value, onChange = () => {} }) => {\n return (\n onChange(e.target.value)}\n >\n {options.imageMultiChoices.map((val, index) => (\n
\n \n \n
{val.imageLabel}
\n
\n ))}\n \n );\n};\n\nexport default ImageMultipleChoice;\n","import React, { useState } from \"react\";\nimport { Checkbox } from \"antd\";\nimport { difference } from \"lodash\";\nimport \"./image-checkboxes.css\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\n\nconst ImageCheckboxes = ({ key, options, value, onChange = () => {} }) => {\n const [localValue, setLocalValue] = useState(value);\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (options.imageMultiChoices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter(\n (val) => !options.imageMultiChoices[val].isMcq\n );\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n return (\n \n \n {options.imageMultiChoices.map((val, index) => (\n
\n \n \n
{val.imageLabel}
\n
\n ))}\n \n
\n );\n};\n\nexport default ImageCheckboxes;\n","import { Rate } from \"antd\";\nimport { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport React, { useState } from \"react\";\nimport \"./image-rating.css\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\n\nconst ImageRating = ({ key, options, value, onChange }) => {\n const [ratings, setRatings] = useState(value);\n\n const getCharacter = () => {\n switch (options.imageStarType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n\n const onRatingsChange = (rate, id) => {\n setRatings({ ...ratings, [id]: rate });\n onChange({ ...ratings, [id]: rate });\n };\n\n return (\n
\n {options.imageStarRatingChoices.map((opt) => (\n
\n \n \n
{opt.imageLabel}
\n
\n
\n onRatingsChange(rate, opt.imageLabel)}\n />\n
\n
\n ))}\n \n );\n};\n\nexport default ImageRating;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport \"./image-ranking.css\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, imgUrl, label, number }) => {\n return (\n
\n
\n \n
\n
{number}
\n \n
{label}
\n
\n );\n};\n\nconst ImageRanking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value);\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items);\n };\n\n return (\n \n \n {(provided) => (\n
\n {list.map((field, index) => (\n \n {(provided) => (\n \n \n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
\n
\n );\n};\n\nexport default ImageRanking;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport \"./image-association.css\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../image-thumbnail/ImageThumbnail\";\nimport { reorder } from \"../../../../../utils\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n
{title}
\n \n );\n};\n\nconst ImageAssociation = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n imageData: key.imageData,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n \n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n
\n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default ImageAssociation;\n","import React from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoInstruction = ({ key, options }) => {\n return (\n
\n \n
\n );\n};\n\nexport default VideoInstruction;\n","import { Rate } from \"antd\";\nimport { HeartFilled, SmileFilled, StarFilled } from \"@ant-design/icons\";\nimport React, { useState } from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoRating = ({ key, options, value, onChange }) => {\n const [ratings, setRatings] = useState(value);\n\n const getCharacter = () => {\n switch (options.videoStarType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n\n const onRatingsChange = (rate, id) => {\n setRatings({ ...ratings, [id]: rate });\n onChange({ ...ratings, [id]: rate });\n };\n\n return (\n
\n {options.videoStarRatingChoices.map((opt) => (\n
\n \n
\n \n
\n
{opt.videoLabel}
\n
\n
\n onRatingsChange(rate, opt.videoLabel)}\n />\n
\n
\n ))}\n \n );\n};\n\nexport default VideoRating;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\nimport { reorder } from \"../../../../../utils\";\n\nconst ListItem = ({ dragHandleProps, title }) => {\n return (\n \n
\n \n
\n
{title}
\n \n );\n};\n\nconst VideoAssociation = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value.map((val) => val.association));\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n let arr = [];\n value.forEach((key, index) => {\n arr.push({\n videoData: key.videoData,\n association: items[index],\n });\n });\n\n setList(items);\n onChange(arr);\n };\n\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n height: \"100%\",\n // styles we need to apply on draggables\n ...draggableStyle,\n });\n\n return (\n
\n \n \n {(provided) => (\n \n {value.map((val, index) => (\n
\n
\n \n
\n
\n \n {(provided, snapshot) => (\n \n \n
\n )}\n \n
\n
\n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default VideoAssociation;\n","import { MenuOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nconst ListItem = ({ dragHandleProps, videoUrl, label, number }) => {\n return (\n
\n
\n \n
\n
{number}
\n
\n \n
\n
{label}
\n
\n );\n};\n\nconst VideoRanking = ({ key, onChange = () => {}, value }) => {\n const [list, setList] = useState(value);\n\n const onDragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const items = reorder(list, result.source.index, result.destination.index);\n\n setList(items);\n onChange(items);\n };\n\n return (\n \n \n {(provided) => (\n
\n {list.map((field, index) => (\n \n {(provided) => (\n \n \n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
\n
\n );\n};\n\nexport default VideoRanking;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst VideoMultipleChoice = ({ key, options, value, onChange = () => {} }) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n return (\n onChange(e.target.value)}\n >\n {options.videoMultiChoices.map((val, index) => (\n
\n \n \n \n
\n
{val.videoLabel}
\n \n ))}\n \n );\n};\n\nexport default VideoMultipleChoice;\n","import React, { useState } from \"react\";\nimport { Checkbox } from \"antd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\nimport { difference } from \"lodash\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst VideoCheckboxes = ({ key, options, value, onChange = () => {} }) => {\n const [localValue, setLocalValue] = useState(value);\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n\n const valueChanged = (checkedValue) => {\n let newValues = [...checkedValue];\n const addedValues = difference(checkedValue, localValue);\n if (addedValues.length === 1) {\n const addedValue = addedValues[0];\n if (options.videoMultiChoices[addedValue].isMcq) {\n newValues = [addedValue];\n } else {\n newValues = newValues.filter(\n (val) => !options.videoMultiChoices[val].isMcq\n );\n }\n }\n\n setLocalValue(newValues);\n onChange(newValues);\n };\n\n return (\n \n {options.videoMultiChoices.map((val, index) => (\n
\n \n
\n \n
\n
{val.videoLabel}
\n
\n ))}\n \n );\n};\n\nexport default VideoCheckboxes;\n","import React from \"react\";\nimport { Input } from \"antd\";\nimport Thumbnail from \"../video-thumbnail/VideoThumbnail\";\n\nconst VideoComment = ({ key, options, value, onChange = () => {} }) => {\n return (\n
\n \n onChange(e.target.value)}\n />\n
\n );\n};\n\nexport default VideoComment;\n","import React from \"react\";\nimport ReactPlayer from \"react-player/lazy\";\n\nconst AdAnalysis = ({ options }) => {\n return (\n \n );\n};\n\nexport default AdAnalysis;\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"ad-analysis-choices_grid-container__aAR_x\",\"action-icon\":\"ad-analysis-choices_action-icon__1NKGi\",\"inputFields\":\"ad-analysis-choices_inputFields__34NL9\",\"fields\":\"ad-analysis-choices_fields__1kTk1\",\"controlFields\":\"ad-analysis-choices_controlFields__3MQgf\",\"controlFieldsSpecial\":\"ad-analysis-choices_controlFieldsSpecial__3sahp\",\"gridInput\":\"ad-analysis-choices_gridInput__1Ldic\",\"choiceNumber\":\"ad-analysis-choices_choiceNumber__3dc79\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"QuestionSummary_button__15M0H\",\"selected\":\"QuestionSummary_selected__2xoOb\",\"option-button\":\"QuestionSummary_option-button__2h4v5\",\"button-icon\":\"QuestionSummary_button-icon__2x7t1\",\"option-button-icon\":\"QuestionSummary_option-button-icon__3atzw\",\"container\":\"QuestionSummary_container__1NJzW\",\"question-box\":\"QuestionSummary_question-box__24GhG\",\"lb-container\":\"QuestionSummary_lb-container__2tVCx\",\"db-text\":\"QuestionSummary_db-text__2DtoN\",\"grid-container\":\"QuestionSummary_grid-container__2r2xp\",\"bold-text\":\"QuestionSummary_bold-text__1CyIG\",\"add-question-button\":\"QuestionSummary_add-question-button__2CIlg\",\"emails\":\"QuestionSummary_emails__149fR\",\"add-question-icon\":\"QuestionSummary_add-question-icon__seorp\",\"grey-container\":\"QuestionSummary_grey-container__1bD7E\",\"grey-question-button\":\"QuestionSummary_grey-question-button__4Wkjo\",\"modal-container\":\"QuestionSummary_modal-container__AVD8l\",\"question-container\":\"QuestionSummary_question-container__2EY7K\",\"question-container-selected\":\"QuestionSummary_question-container-selected__39oKl\",\"typography\":\"QuestionSummary_typography__-wPDy\",\"panel-container\":\"QuestionSummary_panel-container__6DaW1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"question-box-styles_textarea__1_HEw\",\"textarea-invalid\":\"question-box-styles_textarea-invalid__1fkJC\",\"question-number-icon\":\"question-box-styles_question-number-icon__3dc50\",\"question-icon\":\"question-box-styles_question-icon__3vV3W\",\"question-box\":\"question-box-styles_question-box__3EKtI\",\"question-common-component\":\"question-box-styles_question-common-component__3UnC0\",\"question-text-type\":\"question-box-styles_question-text-type__2h0k9\",\"question-buttons\":\"question-box-styles_question-buttons__2fNWQ\",\"question-grid\":\"question-box-styles_question-grid__Yr2EC\",\"question-grid-extra\":\"question-box-styles_question-grid-extra__9JQ3Q\",\"question-box-close\":\"question-box-styles_question-box-close__2AFie\",\"visible\":\"question-box-styles_visible__3KntJ\",\"question-button\":\"question-box-styles_question-button__1V8fw\",\"select-arrow\":\"question-box-styles_select-arrow__2Uqcr\",\"select-arrow-active\":\"question-box-styles_select-arrow-active__nAbN-\",\"question-button-active\":\"question-box-styles_question-button-active__1NnUX\",\"action-icon\":\"question-box-styles_action-icon__2y8QG\",\"add-action-icon\":\"question-box-styles_add-action-icon__1Wcy5\",\"hr\":\"question-box-styles_hr__1wUWk\",\"question-box-container\":\"question-box-styles_question-box-container__3gv2H\"};","export default {\n signin: () => {\n return {\n url: `admin/signin`,\n method: `post`,\n };\n },\n editAdmin: (id) => {\n return {\n url: `admin/${id}`,\n method: `put`,\n };\n },\n getAdminQuestions: (id) => {\n return {\n url: `admin/${id}/adminQuestion`,\n method: `get`,\n };\n },\n addAdminQuestion: (id) => {\n return {\n url: `admin/${id}/adminQuestion`,\n method: `post`,\n };\n },\n updateAdminQuestions: (id) => {\n return {\n url: `admin/${id}/adminQuestion`,\n method: `put`,\n };\n },\n getAdminQuestion: (id) => {\n return {\n url: `admin/${id}/adminQuestion/:adminQuestionId`,\n method: `get`,\n };\n },\n updateAdminQuestion: (id, questionId) => {\n return {\n url: `admin/${id}/adminQuestion/${questionId}`,\n method: `put`,\n };\n },\n getClients: (id) => {\n return {\n url: `admin/${id}/client`,\n method: `get`,\n };\n },\n getClient: (id, clientId) => {\n return {\n url: `admin/${id}/client/${clientId}`,\n method: `get`,\n };\n },\n addClient: (id) => {\n return {\n url: `admin/${id}/client`,\n method: `post`,\n };\n },\n editClient: (id, clientId) => {\n return {\n url: `admin/${id}/client/${clientId}`,\n method: `put`,\n };\n },\n getSurveys: (id) => {\n return {\n url: `admin/${id}/survey`,\n method: `get`,\n };\n },\n getSurvey: (id, surveyId) => {\n return {\n url: `admin/${id}/survey/${surveyId}`,\n method: `get`,\n };\n },\n editSurvey: (id, surveyId) => {\n return {\n url: `admin/${id}/survey/${surveyId}`,\n method: `put`,\n };\n },\n verifySurvey: (id, surveyId) => {\n return {\n url: `admin/${id}/survey/${surveyId}/verifySurvey`,\n method: `post`,\n };\n },\n getInfluencers: (id) => {\n return {\n url: `admin/${id}/influencer`,\n method: `get`,\n };\n },\n updateInfluencers: (id) => {\n return {\n url: `admin/${id}/influencer`,\n method: `put`,\n };\n },\n createInfluencer: (id) => {\n return {\n url: `admin/${id}/influencer`,\n method: `post`,\n };\n },\n getInfluencer: (id, influencerId) => {\n return {\n url: `admin/${id}/influencer/${influencerId}`,\n method: `get`,\n };\n },\n editInfluencer: (id, influencerId) => {\n return {\n url: `admin/${id}/influencer/${influencerId}`,\n method: `put`,\n };\n },\n deleteInfluencer: (id, influencerId) => {\n return {\n url: `admin/${id}/influencer/${influencerId}`,\n method: `delete`,\n };\n },\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"published-survey-popup\":\"CopyPanelModal_published-survey-popup__SBLza\",\"radioGroup\":\"CopyPanelModal_radioGroup__IQAB8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"additional-criteria_textarea__rOr2E\",\"textarea-invalid\":\"additional-criteria_textarea-invalid__34LKF\",\"question-box\":\"additional-criteria_question-box__3rGz-\",\"question-buttons\":\"additional-criteria_question-buttons__1BqRG\",\"question-grid\":\"additional-criteria_question-grid__QCuwe\",\"question-button\":\"additional-criteria_question-button__2T4rd\",\"select-arrow\":\"additional-criteria_select-arrow__3UIBS\",\"select-arrow-active\":\"additional-criteria_select-arrow-active__zlDi8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"QuestionBuilder_textarea__5XLsa\",\"textarea-invalid\":\"QuestionBuilder_textarea-invalid__1uCti\",\"question-number-icon\":\"QuestionBuilder_question-number-icon__3DiaY\",\"question-icon\":\"QuestionBuilder_question-icon__31X-G\",\"question-box\":\"QuestionBuilder_question-box__3ceXm\",\"question-common-component\":\"QuestionBuilder_question-common-component__3DS_N\",\"question-text-type\":\"QuestionBuilder_question-text-type__YVXOe\",\"question-buttons\":\"QuestionBuilder_question-buttons__1FfdN\",\"question-grid\":\"QuestionBuilder_question-grid__25Nlh\",\"question-grid-extra\":\"QuestionBuilder_question-grid-extra__cx7I1\",\"question-box-close\":\"QuestionBuilder_question-box-close__3Fg2H\",\"visible\":\"QuestionBuilder_visible__1_iHT\",\"question-button\":\"QuestionBuilder_question-button__a9ffy\",\"select-arrow\":\"QuestionBuilder_select-arrow__swOZN\",\"select-arrow-active\":\"QuestionBuilder_select-arrow-active__3Kyeg\",\"question-button-active\":\"QuestionBuilder_question-button-active__3f3mJ\",\"hr\":\"QuestionBuilder_hr__19WFT\",\"publish-button\":\"QuestionBuilder_publish-button__3st1G\"};","module.exports = __webpack_public_path__ + \"static/media/logo.5d5d9eef.svg\";","module.exports = __webpack_public_path__ + \"static/media/barchart.66109fa1.svg\";","module.exports = __webpack_public_path__ + \"static/media/barcharth.1ad12551.svg\";","module.exports = __webpack_public_path__ + \"static/media/barh.0d5ed041.svg\";","module.exports = __webpack_public_path__ + \"static/media/barhh.844d331e.svg\";","module.exports = __webpack_public_path__ + \"static/media/pie.456cd72b.svg\";","module.exports = __webpack_public_path__ + \"static/media/pieh.1d2aac2e.svg\";","module.exports = __webpack_public_path__ + \"static/media/line.eb9ee041.svg\";","module.exports = __webpack_public_path__ + \"static/media/lineh.f822e26a.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABCUExURQAAAOlVR+xbOO1bN+pXROhYN+taPOxcNulWSO1aOuxZOu5bNutZO+tbO+1aO+xbO/BgLe5dM+tZQO5cNedcRexbPCO4Aw4AAAAWdFJOUwD01KLnF8Zj/1ez9I54STj/6P//Cyo3EFLWAAAACXBIWXMAAA85AAAPOQE6gPqvAAAEd0lEQVRIS9WX66KjKgyFqVZF64WCvv+rnhUSEJBeZs/+cebbl1KLMSErgaqEzciAMM45a7WmoZroys0PT+Lnr3BKWRmqh1L5VHOamvGsxFS4x2HkH584UgOP4VsxaPygSvVmmo/b5EY2YwzHDrTWh782rvhHE+/4C47WLLbhXq1pvZjB+WdYTXcLuILfaSyW5QPwbZRhSs0TH8UZh/fGz2Nf8Dd3NHrSP3/tjG3nJaCbcat4SDfTPB9Eco3EQeZWWiPAD5bH8iXV7jJI6eU1JVl6ufICzMP/xibTlsMHA1/Oi0fjfbZq9RpmWuezapN0fGbA2oNaIFdMLbYrxjwT7iWDTDvMIiMXBT5b8aTT4UOYk8HD55OwoZru55osZt08ixt5sNlJBnqWScA8VsY9+XWy/LomxpDG8qnxmTpZc5iTdyOvvrKtf1F9numXa5J4BrZqIVxBykiOwMuKBf1JXO/YpyYuuNr6fpNhjnMdyt7XlhotstbokM2E2VESe143Xraqa0/n8CtPSmvyfwyXy6c6ePI0efeW5qtZg2F1vWc3DxEYIxKLyDR2ziWdNOjHE2fJYIpld/aWW5g1hdYR9A9CCai4WaxGumjngsoOK5f2szhDLZ0NIfaDRfu2ThgjVQ3tMHcbBqeAfIgSYwgyRilzaGMbuPZ7x6+rvckgKfPDiMpjkCHEUSeFYsTrznFEWwgx6wVxXSXIGGKm/mecxavfxO6Tam/hTFKEcYNh0jaCfU8EwYgagExgDNf1B75TdeyebxlCEwPee/a/bCnnLJnkZ33XKH/M0ExRcWru8zYd8PqSjzqr4VelTBszq506J2Htpo5anzOU5915Xe2WbCaSj3COnJdmZ2mhxsojH9SAJ8fq8w041mtC59wDv/xmtvau020y0mFSLIURa1/p+P8k6xAZpQR/SuvrMHBN25/RCcfDQDq/BFyUVP89G4L8NRX0vGie0K89OKjzT4QKrOD8OkKMsDHNGThhNDI8mWBLhoGbzs91ascmHjYyYcaB5aIU2CqOAyv8Ks5PMxzLZXEgwrKFdTdrz1OYp9dZwyc6yKKY1SQlKlCl5p1hg1uyIZ1AFkXbR5Dnhs9cQ5y0jmf2CMki4DN4Ign0VLJY6eWNGMosYZfLBEG2Cmu1bz/0JSdPCIJ8ZPm4hHhAEMUqe66yKDN5zeIMt6odBrLI3SgziSzaLIvdC7fokFLKopDrJUS4dXvRqybIYkkhVbQyxrub1b2MGbj1qlWtPo2FJLIsCpJB4mULhSz6/Y+QGyuQLCr79Y+govy1Xg1ZPEc5hn6k/k0tQrKgpS86a46setkCrxzf8zKF/wIrtg3iWdZahyryPSc5Hb5l9WamyRtMN829h6Vb3/YoHd1/cwDZkENpPUtuDKbu7E+HU9y1M1+Zzdkb+rTnHPAqdDPayL4okAHiEhUeOCwmZfCwNlhuYeubIFsE2azdvk0IMV2WjZZr6faOes11I6uySRrR7fMb9hbWACy133jFdOOyDLUF2bdhWdbCkFL/AaPLYYFVbBJQAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA5UExURQAAAMAbkL8bjb0djrUkj8oUjLYkkbsak78cjcAbjL8bjbwdjr0cjsQYjb0bjb0djrofjr8djr4bjrYXkUwAAAATdFJOUwAlXIz//wcTdd840O7/SqP//7qS5tcaAAAACXBIWXMAAA85AAAPOQE6gPqvAAAEvElEQVRIS+WX2xarKAyGQS1nEHj/h50/Aeuhau3eFzNrzXdRLU0TCDmA2BOFyPQclInKVCsqj4Y2eqCIub+N/W9Ekf0Fr6q/nDJAcMJzhNUippRosJTMJoWnMX4T0fj2IlLpL8K61aDtL3fo+fUyIlohsxHTNLExDNNHU+r4kyBrNNbNN+AZjNXQvzailjazjjeOJv7hLmnKXgy48l7Nb0TMBSqngb/BK69XFAZ+t1mYaZphqSaRbKwYVSJPRqiRF9zWyGY306mxiBLCcbkst3ieOBsL2K2P9c7FSnlwgcZk8mGMfZoQPBt4zK+bwWCL83GXtQgf/rP6xKelHLT9PXLjAr/G+wbnsSk+xv6jzNkj6tZ1mRczIkNSjLEwOeRMkalGyIJlgwV0xe6mZYHY6Gm3YwsG2hSJKWh7azggkdICtkkbHmE6XYQIHGmr0Wkf/gsSeUV0MX+hjSKX9sJCzGGlffCUsXnE9K/nxIjfKf0RWdelpvIi2tx6cTklRAu/ZaHsR6ztQeKWEvS3qPJF2iTzNlvOkLzQTdW8RD6Q+W8yr7uj9un+RtVIMdlB6NaPHVUj0iDauHjUZ5+RBOYtqKSxlFVWC4VQww8KkYHQ0JR8kzcSopx3L8pENsmplynzyKBjQSRWnQ28rYcaYROyrpZKjwkW5wHFU5p5iSWH9LRtb1KvNZL07ANEkfHGIgU2oyvKUrqT1Ii6cSJAaKoaUUFKYY1XCUCTxy9sUSHrzpOu5+8yL38qpSnbwCJlpo+WRjzShXnxn7uUvpiXbGJNSud8kQBDRKtDWkKqXtc80lbKnBSVi7tUcpZjwp8ub6GGQag0I3RuSsocgxYJxnTIy1npE+7nbY3HDrmB/dqk/I0UOYyl4K4+9gk8gQMCpNKtJxz8hQ4150xWr6nkL2pltxgh4a5v5TAGN9NB5p7osds3bmgE3sfznrXBQ+rbtIh7J/wf+bblT3Fz4V7+ATI1zE/9rtwYqFwTaAF7pOcqibIcRnc3bz3M3ERIEYqFRC2OYe0xaCnoFdlKJD+3CmDHtDU3eG8Dq2jYbjCh31AJAtZXjyrDU8oTdRaevu0KieC9T8s58RX8YoPESE8ss9Yjlyoi21FrZCrpWwwKncYaur5DWUTTIkhRM88kaFq/uZn81bjbBG6A1RzcutdFKIcr5RddkOpPkh8M3RI3uiRGNnb2Fi/R7HnyPYKs66KTAUP3peeMUIMIkqOt+GPTpccK7yP64PuL480ZpGqzKwd/DfD9Y2UqIFj7O3H0PS4U6ETP0A90PfR7W2O/axMHXemXNVI7RbC+Te90KYT+dN1iT0goOdH2uW10JZunHDZzfgRu20Q7YmqnhTZccKbFwm+gVGBGTEZmScr6P1IEVOK/11YqMh12N+XsFzQutLGEEatzGipQiWiN9welcxw0hebx1feOEmgTHg9BcuPmxmxjApeDm6PZBRSvSyCsuui2+kOcduh+ESs7561L44B6crV5gENallJxfJW0oYkU5e7C39EzZkSEitsMjlLY1L8B9bDp+6No2GKwyEHhzjZQcJ0dCp6DA+DM13W+SX07Lt4zk/cH6BrI8z+Vmk8SH02J30vNCUMNtJF/ltX/PkL8AzwtPXZhTjTmAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA5UExURQAAANUnfNgmf9Mjf9QnfNIggcwzZtYreNYseNUoe9Qqf9Qme9EhgNcnf9IletctedMme9Upe9cnfJz+zOwAAAATdFJOUwBiFP+0/wVq7asM0u0aS/+M/yf3UMCUAAAACXBIWXMAAA85AAAPOQE6gPqvAAAB8ElEQVRIS+2Xi3KkIBBFdRRHEUfk/z82t6FbQJnRym62KlucJNhC50LztgE9oGfTaErU3zLXbeuC2ZC5BBOVtd7gd/An1rpKJdECKz91xwbM0WOM2b0avQv927zmhb/NIUnyWhoIwK/E6vsTJG4SWrNIIfIkNJPk8TPz4+d/mYcJgGnWdSr3cxsS6m9m8Y7kxxmCRkEQ8cWdUmrgopQ10Qq8jkpAhyEhjB8YY9KGCXrdZ4ewVLec3+fWTwf6j2r7ki+pYV6zsdFEJk4z1zP0+eztS5MXdUy8zQSmU0jEFFeCF+vUxCUJbrVsCVbRlpYz72t1R81sRMaCl2EjMsZFxWvKXHixW9GLjUj1EqqXUL2EH/fivTJS9DrtTJ9qdKNsSJ+8IMVWwesl5/1zewajVacbAG1zebtUYZMDLQUQvUy4Cr/HcsAg/JcH8nQ7ocTY8jZ/wkJitu177AzF445eBFLzRa3DALUbYgPiK55AGQ5xXoepoeUeV5BW4ZQ9QFoR7vYAjRsII3BXy+kr7rfrur+WqsVULaFqCVVLqFpC1RJ+v1YCH9lEdmrf1nqCNv0hkMbf5zdj1DMadbhG3YuRvs7zz/HHCK3xwW+BSZW+2c/QxdW6tB3ulX7FD86+u8yeceEaTPhOZ0LfE1BKxQNN8wXO9jF94PxzXAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA5UExURQAAAN9FYeVPVN9CZONLWt9FY99FYtw+at9FYd5DY+BGXt1EXd5FYOFIXuBGYOJFXN9FYuFLWuBIX+mBKRgAAAATdFJOUwCA/9P//7v/SfVsHl//6CyZEabv5c6jAAAACXBIWXMAAA85AAAPOQE6gPqvAAAEWUlEQVRIS+2X2XakIBCGS1nUVlB8/4edvxZsbW3TmcyZq3znJK1Q1AaUQNe09BCoo7alSCVQJ4+eErrx2LNY6LhVnmhGqxAm6u2RQuhE8B6zRdRTUfVMoIafWhpihiFpA8V+h0JOn2Bk631DCzxIKQjmN7ueJDoxym3c5KnAj8Kei5y2UWLfahutqi8NEzzqXUf9WhEjMLH3ik3MkPzK0+9jscGVGpr4p0lVIPWMt1B8xosplXgDlYgwOmlDU18gWMTrra0hGtFwaKOFEjcAaSvtKLmKD/Ukog12LfXrDBWN+qfwbBYMwVhLHlg0DOR0ozzHbuzGPqlj7fW/M1vKb5ktefdwnkRslbUrOayzrKw7sTm3yBBIHolZFs6ZzszcZfSo2GbX81hWhx9ZDwxkjmINppLFHKeZAlYAcxLrWYy3TOA5Mam9mLmWWW5MQbRVNjHQij2afeLNhwjdMs3zOM/9Iw6ysEWs2EJRAs85wwuOlw2LGc+8oX9YJ96CcKFvIHW5FaUW8O88iij7dkG5MHrFyejtwtyM/nLAts09ddJtyo+bRWcJoESZ0veUKjWZ6lemg9SVxY4t7qV6Loxg9YlHTyFgh4JRPpAqVR62/huPYkwZf9H23NA90M9SpW25A3heS01iAWerNsOoSWkD7OFfA79YTAuGmDtKeVaJWiAVI9ctcJJil9c0iEvLrRTExPP3UmIxqMWiQZ6lInsPi0mTpTylWttNUszWZNEpVYrm1RIWPWc+0RhtjoTciBSmRGeTcnJ4iCnk9dHPzLRItdD+usDqbLuml5kt87SiRJlUY7VJCCHvDHbdWqUOWLUuo5YL8d64t2hW9lxYvODC4gUXFi+oFqvJn1h0H1mk/mhxv0RObBZ/+eWCbDttw7acIhuP0QVXkSL/iuNda9vwZ0AZ6/oX67a86nq8hvguxi1IvkQIJ12ubaO5LGTRlR0e3RACFA7aocTdIehFF86wLX/5KnzHcnqBVIkepaF+xARWpmfLva5Fp1M+08qcvF9VR0GI8oArD1yz0czEcXYDCslTFz4yrWu2WEGPXJlPkdOVovkG17RdKXbGPOqyTqVk721ITmkZcaa0bzuU5b1R1XKna/JyaGCGlDBba6jvCHOXig90Nd7bF5lGOAYsRrlf1S7hS12Pp19Lbmhe8GG19+a7fpXBJ5svifGRwqCvJ650rfvp4YQNeiaTGJFwfTvzqosifrB/duqgTM51YFtfBbeWZY3OZcO5uC7QAm+eupjewzl9ZEYsC55BZqayYBMdONednS6pZYsdVJlFDqZZmjA4RdztLyk9dtOLrgZh7gqFnXEV7Ox9sRhy5ivagYOu9xQowie6b5boskar47OLC58Ear4aiegWLKq0vAuRb2FSV4/1fh8iYtzVwmOI1zF+Bm7jH8T4GcgXYny3XGuMn8G5P8TYZdwiXjDZrzjNY12pfxUjrkj/KMbtyF85xxjfWrriLsZfvgvRH9wAT7sKmJ8MAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURQAAAGM+mGQ9l2Y8mHQ6mHs4loE3lnk3m2o8l3Y6lW48l3Q4l3NFonU6lnk5lmw9mH03lW87lnJFUdAAAAASdFJOUwD/3GE5//8X8emIUQv/w//ysDd/Kt8AAAAJcEhZcwAADzkAAA85ATqA+q8AAAOuSURBVEhL3ZfpkqwqEIRxwRVF3v9lb2ZRKi4dOKE/TtxvortpukyLWsAxxvR4rdhJB4210+R9UZimWZal64zhUH/dh24b1tG273uxdU2zKkANst6L2U6rn4kh7rR0u513OjB+NTZ+xhvv0tMO11pc63kTy19xb+L45UI7bTJgXcwOFpDOetOV17m6vc6B81wdCpk7Q0+NqcRbuVQ9hs/6mWLvJ92app3pMNUAZpCBZWgZ3KsvJX1mzJlgjTvnFhmRwQzw7zxHznOuvrFDuC9zWNF5rqi661xdyhz8Y7JRVXBErz2DOVnwcb0ApnALIJXyCRAXnZOq2bG3wb7iouFNDk60dmqnQ8mlhLgsslhdIyg3GOfQZH1qiwHLN2aWlMekC4zE2g+gYJSw/D3IO8PeczmzIWp+pFbGTH2ohnhlzAbcscQrpxYOvs2xT1bQL2TfO2E2P0sWlKkgObcx6azuDoHFW0HZEK1JU+FNK1aQfZTNcCCqJPcfRDP26s6YKP8mWG6yWeY/mYWzLyfELEw5SZjljRAP+9O5OsZKmCYdlCXeOu08RDvIjiINtbeUdBTg/gLQd3lHUGlNkr0fVGKFM/PujqMaqVWtW3aE5UL8ltnV6m7jeW4FSbidtfL+gZVxLMxv/GprRjNnJdnJWrmWv3zjVzy+M1Zt4QvYZqx8MZZFm7XiMse8Vj1jT8xYOfiVxIt1FdtCWesrWaOT6luREiSnWs1Bq0c9pP2o7bH2h7RH0o9m7OkNt1a7ba2AO2snOyt7OzLzCaxPD3E2WssDJOGZVbDimH4j0a+j1Si+bBUFEFhsPfrlzGyb+SjwggD3PlNz85dqbaLmArL6ShhqE9VEab6r9z/g2hKlhlNi+mS1bfl3n9ygla/ESgOQ2vDx7wLaWuHhO+LyvhrfMfAhqzZL02yt/oKhkMeruFNgO36OXH6gSrRqhoposI7hAod4pS0ZOWkttd41Ax6O81oP879pibKW30st5k6L4bWWZkvmXq8x5R/SQnkCPgiBl1oVj5/1/PmfxstxdyirWKzvtMK6d0mxvtIafFHCpbor8Lz0jVYLLV7/0Rr5P95Vyz1ijb2pQlkGXszxUUuw29Fx2gz/sBfqbvSMmyNTtL48O3imzWP9jiqeaXhmkEBFkmhd4nU8apHF5KRFxW4L1xThSa6KIzyWjnF0AjLxB1RWt2ZeVQ5QK456O2m2T1BLBtS6FVHmxg7xVF+s/akVTaqMVmC41pD91CISrIOWMf8BkMBIJZ7J33AAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAF4l7pOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURQAAAI00k6EskZsqjZcxkpkukJovkZotkZMyk5sxlJgvkZgxkqEskKQskZYwkZovkpIykpwwkic5QXgAAAARdFJOUwD/9BLqPLtU/yRmpNL/l4HU6nUPKQAAAAlwSFlzAAAPOQAADzkBOoD6rwAAA3dJREFUSEvtl217qyAMhkFAQUTl///Z8ySEF1u79dr27fTe2iJNIyFvqN4gqqw8DZa0bfk89alU4m+Apu9DjFZFDFXKuKbBj9jkU23gBBFjU6ZUSirGiBctBNfelvnfEDJx0cSWwQrcgN4GUxtaTUpNs2Mp5Y8VBrPNEN3LnFJ/sLq/xyYy1zu5JMi8Ba9dzAVsMc2pWMyBP+D6bbPsFI9XuNmX2fEcvirwQNNcChOrU95ouBNzG3ZQZfgz0m115Jghb7edr0GUJrmR9z+Oq/+ELaVtBlum99PfZohLs4yWEr9KrR4ZfWVOzY1NTKlTFzcyaYDTCHhBC7gV0vZbtK1iMCHn4Sbkdmgri9FaHQmxu6SVLqe+sNlzlYBAfYciUWmyLA+aip1rWRwrAYli0eW+WY7lDi3BXzFzng4ZF8Lp7ZhLHz68Zh8TJdcsvBJSmih558w5bK+1WjApSVOsQXsnVutml4JYbaaVo6QS0RPgqdByhhS6lPG9Y1DDnrhFFHLmTkFYr/mT7kM5yeSWk/QaKwb6A6X41xik+PdSyPMmZVo5q7QZU6UcraxXAXBgXb44iqSoLsFBS4i5lx40TusCH4qKFO1VKT0u93JRSs9O7Y+k1pRilL3P3AcJKWNKn3QFLyy0pGKCLfuFDav7LhtWLqSq53aECp7LqGlljtjYBpt7GHiPfaD9HJkQhWlYPImRhx42cbFpuwbU7j018Q8fPvxfGLced6zused8jYlU89AiWq8E1Cbwxp0ivqsv0BnQHkPRWvJwyjMrTshvnt8OaHo4DV50EQtpe2ozT2BR9tGCJ13ceqTzvCSgTD+L3OhSBpZe+sAjaEf9INC504X7oqWPDwIVLOcOduCAuFHQ+OvNnzhod/C7Y/0lO2mD16DrLSd/jTm1jn+kSwWs7FHXOttpmjY2/wVhx3HK2nhZApr3VddSHZHxf31gqZhYtx/Qw7zAuhChNdYxlCd35XAAmW7W5qBlFg0Hft7ShHVRjFrWgLRuZxMcFHBClGEnQFWPK2P7IxrrKmkoDFtgJoksBuElATbmBq2sI0Htjn3fscAh8h00RMxemJHYg+URWybf7PvFFXRca8oclnWz+1B2NmUUoq/87ciN8xKCi2TgbfrivOXt4UJYEZ26633GwZVEFnfcQTWH0dWhrzFAhi95R+bDB6X+AXx7LahMWbU0AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/laptop.d826c70c.png\";","module.exports = __webpack_public_path__ + \"static/media/laptopvideo.b8b4ea75.gif\";","module.exports = __webpack_public_path__ + \"static/media/Kelloggs_logo.71e71342.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/Macys_logo.2679049b.png\";","module.exports = __webpack_public_path__ + \"static/media/Philips_logo.6137851f.png\";","module.exports = \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-container\":\"timeslot_survey-container__19K21\",\"title\":\"timeslot_title__3cyVY\",\"center\":\"timeslot_center__3F_ms\",\"box\":\"timeslot_box__3raPV\",\"date-box\":\"timeslot_date-box__1Vwrt\",\"time-selector\":\"timeslot_time-selector__2gUD6\"};","import { useRef } from \"react\";\n\nexport const useVideoRef = () => {\n const videoRef = useRef(null);\n\n const getVideo = () => {\n navigator.mediaDevices\n .getUserMedia({ video: { width: 300 } })\n .then((stream) => {\n let videoObject = videoRef.current;\n videoObject.srcObject = stream;\n videoObject.play();\n })\n .catch((err) => {\n console.error(\"error:\", err);\n });\n };\n const stopVideo = () => {\n let videoObject = videoRef.current;\n videoObject.srcObject.getTracks().forEach(function(track) {\n if (track.readyState == 'live' && track.kind === 'video') {\n track.stop();\n }\n })\n }\n \n return [videoRef, getVideo, stopVideo];\n};\n","import React from \"react\";\nimport { questionTypes } from \"../../../constants/questions\";\nimport Text from \"./text/Text\";\nimport MultipleChoice from \"./multiple-choice/MultipleChoice\";\nimport Checkboxes from \"./checkboxes/Checkboxes\";\nimport StarRating from \"./star-rating/StarRating\";\nimport SliderType from \"./slider/Slider\";\nimport Likert from \"./likert/Likert\";\nimport NPS from \"./nps/NPS\";\nimport Ranking from \"./ranking/Ranking\";\nimport Dropdown from \"./dropdown/Dropdown\";\nimport Association from \"./association/Association\";\nimport ImageInstructions from \"./image/instructions/ImageInstructions\";\nimport ImageComment from \"./image/comment/ImageComment\";\nimport ImageMultipleChoice from \"./image/multiple-choice/ImageMultipleChoice\";\nimport ImageCheckboxes from \"./image/checkboxes/ImageCheckboxes\";\nimport ImageRating from \"./image/rating/ImageRating\";\nimport ImageRanking from \"./image/ranking/ImageRanking\";\nimport ImageAssociation from \"./image/association/ImageAssociation\";\nimport VideoInstruction from \"./video/instruction/VideoInstruction\";\nimport VideoRating from \"./video/rating/VideoRating\";\nimport VideoAssociation from \"./video/association/VideoAssociation\";\nimport VideoRanking from \"./video/ranking/VideoRanking\";\nimport VideoMultipleChoice from \"./video/multiple-choice/VideoMultipleChoice\";\nimport VideoCheckboxes from \"./video/checkboxes/VideoCheckboxes\";\nimport VideoComment from \"./video/comment/VideoComment\";\nimport CheckboxesSpecial from \"../../../../../components/user/profile-questions/checkboxes-special/CheckboxesSpecial\";\nimport AdAnalysis from \"./ad-analysis/AdAnalysis\";\nimport { InputNumber } from \"antd\";\n\nexport const getComponentByQuestionType = (\n question,\n answer,\n index,\n onChange,\n updateAnswer\n) => {\n const { type, options } = question;\n\n if (answer) {\n switch (type) {\n case questionTypes.TEXT:\n return ;\n case questionTypes.MULTI_CHOICE:\n return (\n \n );\n case questionTypes.CHECKBOX:\n return (\n \n );\n case questionTypes.STARS:\n console.log(options);\n const { stars, starType } = options;\n return (\n \n );\n case questionTypes.SLIDER:\n answer[0] = answer[0] || 0;\n updateAnswer(answer);\n const {\n sliderType,\n sliderValue,\n sliderMin,\n sliderMax,\n sliderStartLabel,\n sliderMiddleLabel,\n sliderEndLabel,\n } = options;\n return (\n \n );\n case questionTypes.LIKERT:\n const {\n likertRange,\n likertStartLabel,\n likertMiddleLabel,\n likertEndLabel,\n } = options;\n return (\n \n );\n case questionTypes.NPS:\n return (\n \n );\n case questionTypes.RANKING:\n answer = answer.length > 0 ? answer : options.multiChoices;\n updateAnswer(answer);\n return ;\n case questionTypes.DROPDOWN:\n answer[0] = answer[0] || 1;\n updateAnswer(answer);\n const range = options.range;\n return (\n \n );\n case questionTypes.ASSOCIATION:\n answer = answer.length > 0 ? answer : options.associationChoices;\n updateAnswer(answer);\n return ;\n case questionTypes.IMAGE_INSTRUCTION:\n return ;\n case questionTypes.IMAGE_COMMENT:\n return (\n \n );\n // case questionTypes.IMAGE_ABTEST:\n // const { imageABTestChoices } = options\n // return ;\n case questionTypes.IMAGE_MULTICHOICE:\n const { imageMultiChoices } = options;\n return (\n \n );\n case questionTypes.IMAGE_CHECKBOX:\n return (\n \n );\n case questionTypes.IMAGE_STARRATINGCHOICE:\n if (answer.length === 0) {\n answer[0] = {};\n options.imageStarRatingChoices.forEach((val) => {\n answer[0][val.imageLabel] = 0;\n });\n updateAnswer(answer);\n }\n const { imageStarRatingChoices, imageStar, imageStarType } = options;\n return (\n \n );\n case questionTypes.IMAGE_RANKING:\n answer = answer.length > 0 ? answer : options.imageMultiChoices;\n updateAnswer(answer);\n return ;\n case questionTypes.IMAGE_ASSOCIATION:\n answer = answer.length > 0 ? answer : options.imageAssociationChoices;\n updateAnswer(answer);\n return (\n \n );\n case questionTypes.VIDEO_INSTRUCTION:\n return ;\n case questionTypes.VIDEO_COMMENT:\n return (\n \n );\n case questionTypes.VIDEO_MULTICHOICE:\n const { videoMultiChoices } = options;\n return (\n \n );\n case questionTypes.VIDEO_CHECKBOX:\n return (\n \n );\n case questionTypes.VIDEO_STARRATINGCHOICE:\n if (answer.length === 0) {\n answer[0] = {};\n options.videoStarRatingChoices.forEach((val) => {\n answer[0][val.videoLabel] = 0;\n });\n updateAnswer(answer);\n }\n const { videoStarRatingChoices, videoStar, videoStarType } = options;\n return (\n \n );\n case questionTypes.VIDEO_RANKING:\n answer = answer.length > 0 ? answer : options.videoMultiChoices;\n updateAnswer(answer);\n return ;\n case questionTypes.VIDEO_ASSOCIATION:\n answer = answer.length > 0 ? answer : options.videoAssociationChoices;\n updateAnswer(answer);\n return (\n \n );\n case questionTypes.AGE:\n return (\n \n );\n case questionTypes.CHECKBOXESSPECIAL:\n const { specialField, multiChoices } = options;\n return (\n \n );\n case questionTypes.AD_ANALYSIS:\n const { adAnalysisData } = options;\n return ;\n default:\n return;\n }\n }\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"likert-bottom-marks\":\"likert_likert-bottom-marks__1kG27\",\"likert-labels\":\"likert_likert-labels__3iGTL\",\"likert-label\":\"likert_likert-label__244sK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-container\":\"QuestionPopup_survey-container__D9b9Y\",\"title\":\"QuestionPopup_title__1ocI8\",\"bottom-elements\":\"QuestionPopup_bottom-elements__3BTlz\",\"flex-end\":\"QuestionPopup_flex-end__3Mib9\",\"nav-button\":\"QuestionPopup_nav-button__PKp_u\",\"center\":\"QuestionPopup_center__37sUc\",\"numberCircle\":\"QuestionPopup_numberCircle__3R42N\",\"answerBox\":\"QuestionPopup_answerBox__msTzk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profile\":\"profile_profile__3iINK\",\"ant-input\":\"profile_ant-input__WIWlT\",\"verify-button\":\"profile_verify-button__33-N3\",\"verified-button\":\"profile_verified-button__LabJU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"form-item-label_label__LEe1g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"profile-question-box_box__W_dKB\",\"edit-mode\":\"profile-question-box_edit-mode__2Avt9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"multipleChoice\":\"multiple-choice_multipleChoice__2tqqa\",\"ant-radio-inner\":\"multiple-choice_ant-radio-inner__3HKfx\",\"ant-radio-checked\":\"multiple-choice_ant-radio-checked__2yNk2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"settings\":\"settings_settings__1xtrN\",\"payment-method\":\"settings_payment-method__pruIO\",\"ant-radio-wrapper\":\"settings_ant-radio-wrapper__2yhAD\",\"option\":\"settings_option__2-bbR\",\"input-box\":\"settings_input-box__1Zrpe\",\"access-selector\":\"settings_access-selector__1tYFp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"likert-bottom-marks\":\"likert_likert-bottom-marks__5vGNw\",\"likert-labels\":\"likert_likert-labels__3cqz-\",\"likert-label\":\"likert_likert-label__1bPBM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-container\":\"reg-questions_survey-container__2ZjKI\",\"center\":\"reg-questions_center__3U3ib\",\"answerBox\":\"reg-questions_answerBox__1GCRc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copy-survey-popup\":\"ConfirmationModal_copy-survey-popup__WniM_\",\"button\":\"ConfirmationModal_button__xxr4E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"published-survey-popup\":\"PublishedSurveyListModal_published-survey-popup__20Wu8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"draft-box\":\"DraftFormBoxCopy_draft-box__3x0Ue\",\"copy-img\":\"DraftFormBoxCopy_copy-img__2TbGA\",\"firstSection\":\"DraftFormBoxCopy_firstSection__1pnuS\",\"header\":\"DraftFormBoxCopy_header__1d19y\",\"survey-icons\":\"DraftFormBoxCopy_survey-icons__2GafE\",\"draft-button\":\"DraftFormBoxCopy_draft-button__1iSMo\",\"secondSection\":\"DraftFormBoxCopy_secondSection__19fRc\",\"action-buttons\":\"DraftFormBoxCopy_action-buttons__18ZX2\",\"edit-button\":\"DraftFormBoxCopy_edit-button__2eS8o\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input-box\":\"share-modal_input-box__ewRhk\",\"access-selector\":\"share-modal_access-selector__2L9my\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input-box\":\"draft-forms_input-box__3qOo8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input-box\":\"project_input-box__2tnPy\",\"project-container\":\"project_project-container__2O3Sx\",\"add-project-container\":\"project_add-project-container__3Ckcx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"form-star_grid-container__3RHfl\",\"starButtons\":\"form-star_starButtons__1QiBW\",\"select\":\"form-star_select__3V6Ak\",\"stars-div\":\"form-star_stars-div__3gdov\",\"star\":\"form-star_star__2d4eG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"likert_grid-container__31Lql\",\"inputFields\":\"likert_inputFields__1LSym\",\"likert\":\"likert_likert__1JJjU\",\"likert-labels\":\"likert_likert-labels__1PxNC\",\"likert-label\":\"likert_likert-label__34gUt\",\"circle\":\"likert_circle__3YiAh\",\"text\":\"likert_text__12C5q\",\"text-visible\":\"likert_text-visible__2zB5t\",\"input\":\"likert_input__1mOZk\",\"bar\":\"likert_bar__2QMPB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"slider_grid-container__D_cQc\",\"inputFields\":\"slider_inputFields__3G7CU\",\"slider\":\"slider_slider__3plcz\",\"text\":\"slider_text__2RBp_\",\"input\":\"slider_input__3qWV6\",\"span-all-cols\":\"slider_span-all-cols__tLXtx\",\"likert-labels\":\"slider_likert-labels__1pHej\",\"likert-label\":\"slider_likert-label__1dqR0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"MultiChoiceOptions_grid-container__2Azq_\",\"gridInput\":\"MultiChoiceOptions_gridInput__a1RYp\",\"fields\":\"MultiChoiceOptions_fields__O8TFi\",\"controls\":\"MultiChoiceOptions_controls__2qp_n\",\"choiceNumber\":\"MultiChoiceOptions_choiceNumber__2Y5Qf\",\"row\":\"MultiChoiceOptions_row__1XTsu\",\"menu-outlined\":\"MultiChoiceOptions_menu-outlined__nVAyA\",\"mcq-checkbox\":\"MultiChoiceOptions_mcq-checkbox__3kKM2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"imageMultiChoicesOptions_grid-container__1VRwT\",\"action-icon\":\"imageMultiChoicesOptions_action-icon__3V6fd\",\"inputFields\":\"imageMultiChoicesOptions_inputFields__1Pxtw\",\"fields\":\"imageMultiChoicesOptions_fields__2TLNB\",\"firstField\":\"imageMultiChoicesOptions_firstField__34GYF\",\"secondField\":\"imageMultiChoicesOptions_secondField__2VeI-\",\"controlFields\":\"imageMultiChoicesOptions_controlFields__3BGhm\",\"controlFieldsSpecial\":\"imageMultiChoicesOptions_controlFieldsSpecial__3MvxU\",\"gridInput\":\"imageMultiChoicesOptions_gridInput__PHxNT\",\"choiceNumber\":\"imageMultiChoicesOptions_choiceNumber__2mIR1\",\"controls\":\"imageMultiChoicesOptions_controls__G7J7f\",\"uploadButton\":\"imageMultiChoicesOptions_uploadButton__G3BVT\",\"menu-outlined\":\"imageMultiChoicesOptions_menu-outlined__3xWN-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"imageMultiChoicesOptions_grid-container__3VS3o\",\"action-icon\":\"imageMultiChoicesOptions_action-icon__1bYQU\",\"inputFields\":\"imageMultiChoicesOptions_inputFields__1z-Xf\",\"fields\":\"imageMultiChoicesOptions_fields__2alLD\",\"controlFields\":\"imageMultiChoicesOptions_controlFields__32sEz\",\"uploadButton\":\"imageMultiChoicesOptions_uploadButton__ikvM7\",\"controlFieldsSpecial\":\"imageMultiChoicesOptions_controlFieldsSpecial__1YQ5T\",\"gridInput\":\"imageMultiChoicesOptions_gridInput__2h2b8\",\"choiceNumber\":\"imageMultiChoicesOptions_choiceNumber__10xYA\",\"menu-outlined\":\"imageMultiChoicesOptions_menu-outlined__j3-vv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"VideoInstruction_grid-container__PgYK4\",\"action-icon\":\"VideoInstruction_action-icon__3RsMi\",\"gridInputs\":\"VideoInstruction_gridInputs__3eAMu\",\"secondField\":\"VideoInstruction_secondField__2Aqly\",\"uploadButton\":\"VideoInstruction_uploadButton__2ydsc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"videoStarRatingChoices_grid-container__2uXHb\",\"fields\":\"videoStarRatingChoices_fields__3Gg3o\",\"inputFields\":\"videoStarRatingChoices_inputFields__34c7l\",\"controlFields\":\"videoStarRatingChoices_controlFields__3FaUH\",\"uploadButton\":\"videoStarRatingChoices_uploadButton__10Y1q\",\"action-icon\":\"videoStarRatingChoices_action-icon__3a5g6\",\"gridInput\":\"videoStarRatingChoices_gridInput__BbflL\",\"choiceNumber\":\"videoStarRatingChoices_choiceNumber__1faLj\",\"menu-outlined\":\"videoStarRatingChoices_menu-outlined__9q-c_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"TextABTestChoices_grid-container__o91iu\",\"fields\":\"TextABTestChoices_fields__1x4Lt\",\"controlFields\":\"TextABTestChoices_controlFields__xU0vb\",\"controls\":\"TextABTestChoices_controls__3wmRI\",\"gridInput\":\"TextABTestChoices_gridInput__11eyR\",\"percentageField\":\"TextABTestChoices_percentageField__2H3jH\",\"choiceNumber\":\"TextABTestChoices_choiceNumber__1gDiT\",\"menu-outlined\":\"TextABTestChoices_menu-outlined__1qQTS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"ImageABTestChoices_grid-container__2r2nN\",\"fields\":\"ImageABTestChoices_fields__1k4Vm\",\"inputFields\":\"ImageABTestChoices_inputFields__1YgK7\",\"secondField\":\"ImageABTestChoices_secondField__9VCsJ\",\"controlFields\":\"ImageABTestChoices_controlFields__txpQz\",\"controls\":\"ImageABTestChoices_controls__1CZsh\",\"gridInput\":\"ImageABTestChoices_gridInput__2RZm-\",\"choiceNumber\":\"ImageABTestChoices_choiceNumber__XEYPn\",\"percentageField\":\"ImageABTestChoices_percentageField__2NeaJ\",\"uploadButton\":\"ImageABTestChoices_uploadButton__28hfG\",\"menu-outlined\":\"ImageABTestChoices_menu-outlined__295IR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"VideoABTestChoices_grid-container__3JjHr\",\"fields\":\"VideoABTestChoices_fields__r1KIW\",\"inputFields\":\"VideoABTestChoices_inputFields__2pJC3\",\"secondField\":\"VideoABTestChoices_secondField__vTLbS\",\"controlFields\":\"VideoABTestChoices_controlFields__3KM0-\",\"controls\":\"VideoABTestChoices_controls__29hwJ\",\"gridInput\":\"VideoABTestChoices_gridInput__2IjYn\",\"choiceNumber\":\"VideoABTestChoices_choiceNumber__9FA3y\",\"percentageField\":\"VideoABTestChoices_percentageField__OD3dT\",\"uploadButton\":\"VideoABTestChoices_uploadButton__dvbTf\",\"menu-outlined\":\"VideoABTestChoices_menu-outlined__g-T9d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"AssociationChoices_grid-container__277G0\",\"fields\":\"AssociationChoices_fields__G-gPy\",\"inputFields\":\"AssociationChoices_inputFields__WT9Ep\",\"controlFields\":\"AssociationChoices_controlFields__1Jkyx\",\"controls\":\"AssociationChoices_controls__Cgqn9\",\"choiceNumber\":\"AssociationChoices_choiceNumber__2q_rz\",\"menu-outlined\":\"AssociationChoices_menu-outlined__19sln\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"ImageAssociationChoices_grid-container__2CgEV\",\"fields\":\"ImageAssociationChoices_fields__gng0u\",\"inputFields\":\"ImageAssociationChoices_inputFields__1V5Tg\",\"firstField\":\"ImageAssociationChoices_firstField__2AjyE\",\"secondField\":\"ImageAssociationChoices_secondField__1AU4K\",\"uploadButton\":\"ImageAssociationChoices_uploadButton__1OOly\",\"controlFields\":\"ImageAssociationChoices_controlFields__3vEwr\",\"controls\":\"ImageAssociationChoices_controls__-593X\",\"gridInput\":\"ImageAssociationChoices_gridInput__40hzZ\",\"choiceNumber\":\"ImageAssociationChoices_choiceNumber__39UgZ\",\"menu-outlined\":\"ImageAssociationChoices_menu-outlined__3syBE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"VideoAssociationChoices_grid-container__2zY5P\",\"fields\":\"VideoAssociationChoices_fields__2MvUh\",\"inputFields\":\"VideoAssociationChoices_inputFields__1aZHo\",\"firstField\":\"VideoAssociationChoices_firstField__3jaD8\",\"secondField\":\"VideoAssociationChoices_secondField__ILn2L\",\"uploadButton\":\"VideoAssociationChoices_uploadButton__TV34x\",\"controlFields\":\"VideoAssociationChoices_controlFields__fg1Oj\",\"controls\":\"VideoAssociationChoices_controls__2rEqE\",\"gridInput\":\"VideoAssociationChoices_gridInput__3FSG5\",\"choiceNumber\":\"VideoAssociationChoices_choiceNumber__BJiCO\",\"menu-outlined\":\"VideoAssociationChoices_menu-outlined__3e2Ek\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"QuestionInstruction_grid-container__3r6aI\",\"fields\":\"QuestionInstruction_fields__1y8yA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"AddLink_grid-container__47LyM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"imageInstruction_grid-container__2W2zS\",\"action-icon\":\"imageInstruction_action-icon__1H4ei\",\"gridInputs\":\"imageInstruction_gridInputs__3Vtky\",\"secondField\":\"imageInstruction_secondField__1XCn2\",\"uploadButton\":\"imageInstruction_uploadButton__2ccEx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"VideoMultiChoicesOptions_grid-container__2-4P8\",\"action-icon\":\"VideoMultiChoicesOptions_action-icon__2cVHr\",\"inputFields\":\"VideoMultiChoicesOptions_inputFields__T37VC\",\"fields\":\"VideoMultiChoicesOptions_fields__2_XaI\",\"firstField\":\"VideoMultiChoicesOptions_firstField__3U6L3\",\"secondField\":\"VideoMultiChoicesOptions_secondField__1J5wh\",\"controlFields\":\"VideoMultiChoicesOptions_controlFields__19con\",\"controlFieldsSpecial\":\"VideoMultiChoicesOptions_controlFieldsSpecial__2NByk\",\"gridInput\":\"VideoMultiChoicesOptions_gridInput__3dS_2\",\"choiceNumber\":\"VideoMultiChoicesOptions_choiceNumber__1EpU2\",\"controls\":\"VideoMultiChoicesOptions_controls__23pZM\",\"uploadButton\":\"VideoMultiChoicesOptions_uploadButton__3I1SF\",\"menu-outlined\":\"VideoMultiChoicesOptions_menu-outlined__1gd2g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"select-arrow\":\"NetPromotorScore_select-arrow__3Fj2p\",\"dropdown-button\":\"NetPromotorScore_dropdown-button__1r6d-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid-container\":\"SurveyBrief_grid-container__1xdHo\",\"fields\":\"SurveyBrief_fields__iQF8l\",\"button-text\":\"SurveyBrief_button-text__1ReVo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"h5\":\"questions-styles_h5__1Crxc\",\"add-question-button\":\"questions-styles_add-question-button__ugw_X\",\"add-question-icon\":\"questions-styles_add-question-icon__259rb\",\"grey-question-button\":\"questions-styles_grey-question-button__k_RD_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"h3\":\"publish_h3__1cuzL\",\"calendar\":\"publish_calendar__3oCHW\",\"lb-container\":\"publish_lb-container__1xsnO\",\"lb-grid-container\":\"publish_lb-grid-container__2UIW0\",\"lb-container-col\":\"publish_lb-container-col__aWjMz\",\"date-div-container\":\"publish_date-div-container__1T9zN\",\"date-div\":\"publish_date-div__2BIcG\",\"input-container\":\"publish_input-container__3RGWU\",\"db-text\":\"publish_db-text__3K9Vp\",\"input-box\":\"publish_input-box__3C62K\",\"input-icon\":\"publish_input-icon__yLvbO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"upload-csv\":\"UploadCSV_upload-csv__iTZT3\",\"upload-button\":\"UploadCSV_upload-button__3PIlt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"criteria_button__2ViII\",\"selected\":\"criteria_selected__3DblG\",\"option-button\":\"criteria_option-button__L_SCw\",\"button-icon\":\"criteria_button-icon__2WcaX\",\"option-button-icon\":\"criteria_option-button-icon__3Fjjs\",\"container\":\"criteria_container__Uu4s4\",\"question-box\":\"criteria_question-box__2kECx\",\"lb-container\":\"criteria_lb-container__35p1M\",\"db-text\":\"criteria_db-text__2aaLq\",\"grid-container\":\"criteria_grid-container__DcL74\",\"email-tag\":\"criteria_email-tag__3OLY0\",\"bold-text\":\"criteria_bold-text__3rJkF\",\"add-question-button\":\"criteria_add-question-button__1_0Aq\",\"emails\":\"criteria_emails__2bwpK\",\"add-question-icon\":\"criteria_add-question-icon__3hs59\",\"grey-question-button\":\"criteria_grey-question-button__dsJGv\",\"modal-container\":\"criteria_modal-container__2HUA2\",\"typography\":\"criteria_typography__bBTP2\",\"additional-screening-question-button\":\"criteria_additional-screening-question-button__pX4NH\",\"import-type-button\":\"criteria_import-type-button__3VNHB\",\"user-email-input\":\"criteria_user-email-input__3SXlL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"delete-panel-confirm-modal\":\"DeletePanelUserConfirmModal_delete-panel-confirm-modal__20Yqr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-state-modal\":\"ShareSurveyModal_survey-state-modal__1SjEq\",\"buttons\":\"ShareSurveyModal_buttons__1TqL3\",\"button\":\"ShareSurveyModal_button__2vZVy\",\"participant-box\":\"ShareSurveyModal_participant-box__1__4T\",\"input-container\":\"ShareSurveyModal_input-container__3ZAG8\",\"input-box\":\"ShareSurveyModal_input-box__upurV\",\"input-icon\":\"ShareSurveyModal_input-icon__3gbvh\",\"price-box\":\"ShareSurveyModal_price-box__2ycOU\",\"action-title\":\"ShareSurveyModal_action-title__3yf6v\",\"action-container\":\"ShareSurveyModal_action-container__GPEtU\",\"action-info-text\":\"ShareSurveyModal_action-info-text__2Wb-0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"survey-state-modal\":\"SurveyStateModal_survey-state-modal___vQuM\",\"buttons\":\"SurveyStateModal_buttons__3RyFL\",\"button\":\"SurveyStateModal_button__3tft5\",\"participant-box\":\"SurveyStateModal_participant-box__1GM-2\",\"input-container\":\"SurveyStateModal_input-container__3eOr9\",\"input-box\":\"SurveyStateModal_input-box__2OFZp\",\"input-icon\":\"SurveyStateModal_input-icon__3OvT9\",\"price-box\":\"SurveyStateModal_price-box__296YT\",\"action-title\":\"SurveyStateModal_action-title__1Im_d\",\"action-container\":\"SurveyStateModal_action-container__3yyDY\",\"action-info-text\":\"SurveyStateModal_action-info-text__m9fEv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"date-div\":\"CalendarComponent_date-div__WRCgr\",\"lb-grid-container\":\"CalendarComponent_lb-grid-container__18wRE\",\"calendar\":\"CalendarComponent_calendar__25WAU\",\"date-div-container\":\"CalendarComponent_date-div-container__3b_aB\",\"time-div-container\":\"CalendarComponent_time-div-container__s2Qhe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"slots-container\":\"published-forms_slots-container__2RX2c\",\"calls-box\":\"published-forms_calls-box__1AIac\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"published-form-box\":\"PublishedFormBoxNew_published-form-box__3IMvD\",\"scheduled-call-button\":\"PublishedFormBoxNew_scheduled-call-button__1r6pD\",\"flex-box\":\"PublishedFormBoxNew_flex-box__1kUYG\",\"survey-info\":\"PublishedFormBoxNew_survey-info__2OznX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chat-component\":\"ChatComponent_chat-component__XFON4\",\"modal-body\":\"ChatComponent_modal-body__6oeRR\",\"drawer-button\":\"ChatComponent_drawer-button__2BqFR\",\"bottom-bar\":\"ChatComponent_bottom-bar__1IqKi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"note-box\":\"NoteBox_note-box__2IcNN\",\"note-box-header\":\"NoteBox_note-box-header__wgAw1\",\"number\":\"NoteBox_number__x1ust\",\"edit-buttons\":\"NoteBox_edit-buttons__2AYJq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"published-box\":\"PublishedFormBoxNewCopy_published-box__ib_2a\",\"copy-img\":\"PublishedFormBoxNewCopy_copy-img__2okOK\",\"firstSection\":\"PublishedFormBoxNewCopy_firstSection__2OLdT\",\"header\":\"PublishedFormBoxNewCopy_header__37Te1\",\"survey-icons\":\"PublishedFormBoxNewCopy_survey-icons__29ZDe\",\"survey-progress\":\"PublishedFormBoxNewCopy_survey-progress__1AWQB\",\"secondSection\":\"PublishedFormBoxNewCopy_secondSection__26_gC\",\"action-buttons\":\"PublishedFormBoxNewCopy_action-buttons__20TsV\",\"button\":\"PublishedFormBoxNewCopy_button__31ftF\",\"disabled-button\":\"PublishedFormBoxNewCopy_disabled-button__3dxvZ\",\"schedule-call-button\":\"PublishedFormBoxNewCopy_schedule-call-button__2To6J\",\"view-result-button\":\"PublishedFormBoxNewCopy_view-result-button__3xOnf\",\"surveyDetails\":\"PublishedFormBoxNewCopy_surveyDetails__1MToz\"};","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/fi-rr-caret-right.291ec3fc.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"question-summary-box\":\"ResponseBox_question-summary-box__N7cbc\",\"question\":\"ResponseBox_question__2fsRI\",\"question-number\":\"ResponseBox_question-number__22JHV\",\"response-box\":\"ResponseBox_response-box__2YkAW\",\"label-groups\":\"ResponseBox_label-groups__3HZPR\",\"labels\":\"ResponseBox_labels__-bYpv\",\"square-groups\":\"ResponseBox_square-groups__3fHI4\",\"options\":\"ResponseBox_options__3eFpb\",\"radio-groups\":\"ResponseBox_radio-groups__2x8SO\",\"radio-buttons\":\"ResponseBox_radio-buttons__2IIvu\",\"check-boxes\":\"ResponseBox_check-boxes__1ITWD\",\"comment-box\":\"ResponseBox_comment-box__1_hQx\",\"image-video-block\":\"ResponseBox_image-video-block__1_xNC\",\"star-rating-options\":\"ResponseBox_star-rating-options__ljjHJ\",\"overall-report\":\"ResponseBox_overall-report__3pafg\",\"client-link\":\"ResponseBox_client-link__wYxQu\",\"miscButtons\":\"ResponseBox_miscButtons__yGQ0P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chartAreaWrapper\":\"SentimentGraph_chartAreaWrapper__3udI1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"transcript-video-modal\":\"TranscriptVideoModal_transcript-video-modal__2GFNy\",\"video-modal-header\":\"TranscriptVideoModal_video-modal-header__rjGpl\",\"participant-title\":\"TranscriptVideoModal_participant-title__3E7W5\",\"video-modal-body\":\"TranscriptVideoModal_video-modal-body__3vKKk\",\"video-reel-container\":\"TranscriptVideoModal_video-reel-container__Ty54j\",\"video-container\":\"TranscriptVideoModal_video-container__Onw-J\",\"reels-container\":\"TranscriptVideoModal_reels-container___Iw5d\",\"record-reel-container\":\"TranscriptVideoModal_record-reel-container__35z8t\",\"reel-container\":\"TranscriptVideoModal_reel-container__1qHKg\",\"reel-wrapper\":\"TranscriptVideoModal_reel-wrapper__1sYB8\",\"reel-overlay\":\"TranscriptVideoModal_reel-overlay__2zcbv\",\"notes-transcript-container\":\"TranscriptVideoModal_notes-transcript-container__27RPt\",\"transcript-container\":\"TranscriptVideoModal_transcript-container__1Frwb\",\"notes-container\":\"TranscriptVideoModal_notes-container__3RbRr\",\"notes\":\"TranscriptVideoModal_notes__HWiKB\",\"notes-list\":\"TranscriptVideoModal_notes-list__3RJcS\",\"edit-time-input\":\"TranscriptVideoModal_edit-time-input__3prvS\",\"edit-text-input\":\"TranscriptVideoModal_edit-text-input__2VHgH\",\"add-transcript-check\":\"TranscriptVideoModal_add-transcript-check__aN6jd\",\"confirmation-modal\":\"TranscriptVideoModal_confirmation-modal__3coxs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"transcript-video-modal\":\"ReelsModal_transcript-video-modal__1dpuv\",\"video-modal-header\":\"ReelsModal_video-modal-header__3xLoh\",\"participant-title\":\"ReelsModal_participant-title__i8mHQ\",\"video-modal-body\":\"ReelsModal_video-modal-body__3uhgH\",\"video-reel-container\":\"ReelsModal_video-reel-container__1xXj2\",\"video-container\":\"ReelsModal_video-container__28GvI\",\"reels-container\":\"ReelsModal_reels-container__2YJ80\",\"record-reel-container\":\"ReelsModal_record-reel-container__hF4PQ\",\"reel-container\":\"ReelsModal_reel-container__coUk_\",\"reel-wrapper\":\"ReelsModal_reel-wrapper__1p6Uj\",\"reel-overlay\":\"ReelsModal_reel-overlay__vTV8P\",\"edit-time-input\":\"ReelsModal_edit-time-input__ClZl-\",\"edit-text-input\":\"ReelsModal_edit-text-input__1PSWa\",\"add-transcript-check\":\"ReelsModal_add-transcript-check__247mQ\",\"confirmation-modal\":\"ReelsModal_confirmation-modal__1zu8b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"new-panel-option\":\"AddParticipantToPanel_new-panel-option__3WbXz\",\"new-panel-box\":\"AddParticipantToPanel_new-panel-box__ZMwxX\",\"button\":\"AddParticipantToPanel_button__qjh1f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grey-container\":\"navbar_grey-container__WDW1u\",\"survey-select\":\"navbar_survey-select__1QR-o\",\"green-button\":\"navbar_green-button__2U0LO\",\"filter-dropdown\":\"navbar_filter-dropdown__2xSb0\",\"print-body\":\"navbar_print-body__3vBzu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"QuestionBox_table__1YUSj\",\"question-text\":\"QuestionBox_question-text__8_xFy\",\"number\":\"QuestionBox_number__2VYsF\",\"questionInfo\":\"QuestionBox_questionInfo__2gIoi\",\"print-body\":\"QuestionBox_print-body__2-eUE\",\"question-type\":\"QuestionBox_question-type__bCJP2\",\"chartAreaWrapper\":\"QuestionBox_chartAreaWrapper__28rgP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"star-rating-container\":\"StarRating_star-rating-container__2QwOh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grey-container\":\"result_grey-container__1pBlK\",\"survey-select\":\"result_survey-select__DI3-l\",\"select-call\":\"result_select-call__2YCko\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"user-survey\":\"user-survey_user-survey__FUtWz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"client-info-actions\":\"client-info_client-info-actions__1Ypae\"};","module.exports = __webpack_public_path__ + \"static/media/client-login-1.6407ce69.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-component\":\"Signin_form-component__16z29\",\"form-section-1\":\"Signin_form-section-1__20DTG\",\"form-section-2\":\"Signin_form-section-2__Y2jbO\",\"site-title\":\"Signin_site-title__285ho\",\"login-title\":\"Signin_login-title__39LJ-\",\"bg-image\":\"Signin_bg-image__2mUpn\",\"go-to-login-button\":\"Signin_go-to-login-button__2SJ2b\",\"button\":\"Signin_button__tA_ZM\",\"forget-password\":\"Signin_forget-password__28UBC\",\"main-page\":\"Signin_main-page__1AuAJ\"};","module.exports = __webpack_public_path__ + \"static/media/Picture5.de3dc7fc.png\";","module.exports = __webpack_public_path__ + \"static/media/Picture6.ae3d2cb2.png\";","module.exports = __webpack_public_path__ + \"static/media/Picture7.a7c59397.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"Card_card__1eE8R\",\"heading\":\"Card_heading__1HoQ3\"};","module.exports = __webpack_public_path__ + \"static/media/trial_illustration.2250c5cf.png\";","module.exports = __webpack_public_path__ + \"static/media/woman-giving-survey.d05c987d.png\";","module.exports = __webpack_public_path__ + \"static/media/accordion-plus.38ee92ad.png\";","module.exports = __webpack_public_path__ + \"static/media/accordion-minus.6a808b23.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/woman-chilling.29a3209c.png\";","import createSurveyIcon from \"../../../assets/create-survey.png\";\nimport historyIcon from \"../../../assets/history.png\";\nimport logOutIcon from \"../../../assets/logout.png\";\nimport profileIcon from \"../../../assets/profile-icon.png\";\nimport publishedSurveyIcon from \"../../../assets/published-survey.png\";\nimport settingIcon from \"../../../assets/settings.png\";\nimport surveyResultIcon from \"../../../assets/survey-result.png\";\n\nexport default {\n createSurveyIcon,\n historyIcon,\n logOutIcon,\n profileIcon,\n publishedSurveyIcon,\n settingIcon,\n surveyResultIcon,\n};\n","import React from \"react\";\nimport \"./sidenav.css\";\nimport { userPages } from \"../../../constants\";\nimport { styled } from \"@linaria/react\";\nimport icons from \"./iconImages\";\nimport { Link, useHistory } from \"react-router-dom\";\n\nexport const SidenavItem = (props) => {\n return (\n {\n if (props.onClick) props.onClick();\n }}\n className={props.active ? \"sidenav-item active\" : \"sidenav-item\"}\n >\n {props.children}\n \n );\n};\n\nconst StyledIcon = styled.img`\n width: 25px;\n margin-right: 10px;\n height: fit-content;\n`;\n\nconst Sidenav = ({ drawer, selectedItem }) => {\n const history = useHistory();\n const className = drawer ? \"sidenav-drawer\" : \"sidenav\";\n return (\n
\n \n \n \n Surveys\n \n \n \n \n \n Profile\n \n \n \n \n \n Settings\n \n \n \n \n \n History\n \n \n {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"user\");\n history.push(\"/signin/user\");\n }}\n >\n \n Logout\n \n
\n );\n};\n\nexport default Sidenav;\n","import React, { useState } from \"react\";\nimport \"./topbar.css\";\nimport { Drawer, Button } from \"antd\";\nimport { MenuOutlined } from \"@ant-design/icons\";\n\nconst Topbar = (props) => {\n // component states\n const [drawer, setDrawer] = useState(false);\n\n return (\n \n
\n setDrawer(true)}\n >\n MENU\n \n
\n {drawer && (\n setDrawer(false)}\n visible={drawer}\n width={135}\n >\n
\n {props.children}\n
\n \n )}\n
\n );\n};\n\nexport default Topbar;\n","import { set } from \"automate-redux\";\nimport axios, { Routes } from \"../services/API\";\nimport { getUserId } from \"../utils\";\n\n// Profile\nexport const getProfile = () => async (dispatch) => {\n const userId = getUserId();\n try {\n const { data } = await axios({\n ...Routes.user.getProfile(userId),\n });\n dispatch(setProfile(data.user));\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const editProfile = (values) => async (dispatch) => {\n const userId = getUserId();\n try {\n const { data } = await axios({\n ...Routes.user.editProfile(userId),\n data: { data: values },\n });\n dispatch(setProfile(data.user));\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Surveys\nexport const getSurveys = () => async (dispatch) => {\n const userId = getUserId();\n try {\n const { data } = await axios({ ...Routes.user.getSurveys(userId) });\n dispatch(\n setSurveys(\n data.surveys.filter(\n (item) => item.responses.length !== item.numberOfParticipants\n )\n )\n );\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const startSurvey = (surveyId, surveyAccess) => async () => {\n const userId = getUserId();\n if (!surveyAccess) {\n try {\n await axios({ ...Routes.user.startSurvey(userId, surveyId) });\n } catch (err) {\n throw err.toString();\n }\n } else {\n console.log(\"survey started\");\n try {\n await axios({ ...Routes.user.startOpenSurvey(surveyId) });\n } catch (err) {\n throw err.toString();\n }\n }\n};\n\nexport const removeSurvey = (surveyId) => async (dispatch, getState) => {\n const userId = getUserId();\n try {\n await axios({ ...Routes.user.removeSurvey(userId, surveyId) });\n dispatch(\n setSurveys(getState().user.surveys.filter((val) => val._id !== surveyId))\n );\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const completeSurvey = (surveyId, surveyAccess, response) => async (\n dispatch,\n getState\n) => {\n console.log(\"responses:\", response);\n const userId = getUserId();\n if (userId || !surveyAccess) {\n try {\n await axios({\n ...Routes.user.completeSurvey(userId, surveyId),\n data: { data: { response } },\n }).then((data) => console.log(data));\n if (!window.location.pathname.includes(\"attemptSurvey\")) {\n dispatch(\n setSurveys(\n getState().user.surveys.filter((val) => val._id !== surveyId)\n )\n );\n }\n } catch (err) {\n throw err.toString();\n }\n } else {\n console.log(\"survey completed\");\n try {\n await axios({\n ...Routes.user.completeOpenSurvey(surveyId),\n data: { data: { response } },\n }).then((data) => console.log(data));\n } catch (err) {\n throw err.toString();\n }\n }\n};\n\nexport const confirmTimeSlot = (surveyId, data) => async (dispatch) => {\n const userId = getUserId();\n try {\n await axios({\n ...Routes.user.confirmTimeSlot(userId, surveyId),\n data: { data: { ...data } },\n });\n dispatch(getSurveys());\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Email\nexport const sendEmail = (email) => async (dispatch) => {\n try {\n await axios({\n ...Routes.verification.sendEmail(email, \"user\"),\n });\n dispatch(editProfile({ email }));\n } catch (err) {\n throw err.toString();\n }\n};\n\n// OTP\nexport const sendOtp = (mobileNumber) => async () => {\n try {\n await axios({\n ...Routes.verification.sendOTP(mobileNumber),\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const verifyOtp = (mobileNumber, OTP) => async (dispatch) => {\n try {\n await axios({\n ...Routes.verification.verifyOTP(),\n data: {\n data: { mobileNumber, OTP, role: \"user\", isMobileNumberVerified: true },\n },\n });\n dispatch(editProfile({ mobileNumber, isMobileNumberVerified: true }));\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Profile adminQuestions\nexport const getProfileQuestions = (displayAt) => async (dispatch) => {\n try {\n const { data } = await axios({\n ...Routes.others.adminQuestions(),\n });\n const activeProfileQuestions = data.adminQuestions.filter(\n (val) => val.isActive && displayAt.includes(val.displayAt)\n );\n if (displayAt === \"sampleQuestions\") {\n if (activeProfileQuestions.length === 0) {\n dispatch(\n editProfile({\n areQuestionsAnswered: {\n registration: true,\n sample: true,\n additional: false,\n },\n })\n );\n return;\n }\n const sampleQuestionsArray = activeProfileQuestions.map(\n ({ questionObject, userField }) => {\n switch (questionObject.questionType) {\n case \"multipleChoice\":\n return {\n text: userField,\n type: \"multiChoices\",\n options: {\n multiChoices: questionObject.options.map((label) => ({\n label,\n })),\n },\n };\n case \"checkboxes\":\n return {\n text: userField,\n type: \"checkBoxes\",\n options: {\n multiChoices: questionObject.options.map((label) => ({\n label,\n })),\n },\n };\n case \"checkboxesSpecial\":\n return {\n text: userField,\n type: \"checkboxesSpecial\",\n options: {\n multiChoices: questionObject.options,\n specialField: questionObject.specialField,\n },\n };\n case \"location\":\n return {\n text: userField,\n type: \"multiChoices\",\n options: {\n multiChoices: questionObject.options.map((label) => ({\n label,\n })),\n },\n };\n case \"age\":\n return {\n text: userField,\n type: \"age\",\n options: {\n start: questionObject.start,\n end: questionObject.end,\n interval: questionObject.interval,\n },\n };\n default:\n return;\n }\n }\n );\n const sampleSurveyObject = {\n userType: false,\n questions: sampleQuestionsArray,\n paymentType: false,\n paymentValue: 0,\n screeningQuestions: [],\n mode: false,\n name: \"Sample Survey\",\n surveyType: false,\n };\n dispatch(setSurveys([sampleSurveyObject]));\n } else {\n dispatch(setProfileQuestions(activeProfileQuestions));\n }\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Setters\nconst setProfile = (data) => set(`user.profile`, data);\nconst setProfileQuestions = (data) => set(`user.profileQuestions`, data);\nconst setSurveys = (data) => set(`user.surveys`, data);\n","import { GROUP_SLOTS, SLOT_TIME_HRS } from \"../../constants/constants\";\nimport { isGroupSurvey, isModeratedSurvey } from \"../utils\";\n\n//Converts the moderated slot's date and time to a native date object\nexport const getDateObject = (date, time) => {\n let [day, month, year] = date.split(\"/\");\n month = month.length === 2 ? month : \"0\" + month;\n day = day.length === 2 ? day : \"0\" + day;\n const dateString = `${year}-${month}-${day}T${time}`;\n return new Date(dateString);\n};\n\n//gets the date and time of the moderated survey slot for the user\nexport const getScheduledSlotForUser = (moderatedSlots, userId) => {\n let surveyDate = null;\n let surveyTime = null;\n if (!moderatedSlots || !userId) {\n return { surveyDate, surveyTime };\n }\n for (let date in moderatedSlots) {\n for (let timeSlot in moderatedSlots[date]) {\n if (moderatedSlots[date][timeSlot].includes(userId)) {\n surveyDate = date;\n surveyTime = timeSlot;\n }\n }\n }\n return { surveyDate, surveyTime };\n};\n\n//gets the native date object of the moderated survey slot for the user\nexport const getScheduledSlotForUserTimeStamp = (moderatedSlots, userId) => {\n const { surveyDate, surveyTime } = getScheduledSlotForUser(\n moderatedSlots,\n userId\n );\n if (!surveyDate || !surveyTime) {\n return null;\n }\n return getDateObject(surveyDate, surveyTime);\n};\n\n//gets the total number of available slots in the survey\nexport const getAvailableSlots = (survey) => {\n if (!isModeratedSurvey(survey) || !survey.moderatedSlots) {\n return null;\n }\n\n let availableSlots = 0;\n let bookedSlots = 0;\n const currentDate = new Date().setHours(0, 0, 0, 0);\n\n //finds available and booked slots\n Object.keys(survey.moderatedSlots).forEach((d) => {\n const date = new Date(getDateObject(d, \"00:00\"));\n if (date >= currentDate) {\n const timeSlots = Object.keys(survey.moderatedSlots[d]);\n\n timeSlots.forEach((ts) => {\n if (isGroupSurvey(survey)) {\n availableSlots += GROUP_SLOTS - survey.moderatedSlots[d][ts].length;\n bookedSlots += survey.moderatedSlots[d][ts].length;\n } else {\n if (survey.moderatedSlots[d][ts].length === 0) {\n availableSlots += 1;\n } else {\n bookedSlots += 1;\n }\n }\n });\n }\n });\n\n if (survey.numberOfParticipants - bookedSlots <= availableSlots) {\n availableSlots = survey.numberOfParticipants - bookedSlots;\n }\n\n return availableSlots;\n};\n\n//returns true if the scheuled scheduled slot is over and false otherwise\nexport const isSlotExpiredForUser = (scheduledTimeStamp) => {\n if (!scheduledTimeStamp) {\n return false;\n }\n return (\n new Date() >=\n new Date(\n scheduledTimeStamp.setHours(scheduledTimeStamp.getHours() + SLOT_TIME_HRS)\n )\n );\n};\n\n//returns true if the user has passed the window where they can schedule or change a survey slot\nexport const isSlotChangeDisabled = (moderatedSlots, userId) => {\n if (!moderatedSlots || !userId) return false;\n\n const d = getScheduledSlotForUserTimeStamp(moderatedSlots, userId);\n if (!d) return false;\n d.setHours(d.getHours() - 1);\n return d < new Date();\n};\n","import { confirmTimeSlot } from \"../../../../../actions/users\";\nimport { useDispatch } from \"react-redux\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../../../utils\";\n\nexport const useCancelCall = () => {\n const dispatch = useDispatch();\n\n const cancelCall = async (surveyId) => {\n incrementPendingRequests();\n dispatch(\n confirmTimeSlot(surveyId, {\n date: null,\n time: null,\n })\n )\n .then(() => {\n notify(\"success\", \"Success\", \"Time slot Cancelled\");\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return cancelCall;\n};\n","import React from \"react\";\nimport { Card } from \"antd\";\nimport { FileTextFilled, VideoCameraFilled } from \"@ant-design/icons\";\nimport { getScheduledSlotForUser } from \"../utils/moderated/schedule\";\nimport { getSurveyTime } from \"../utils/utils\";\n\nfunction SurveyCard({ survey, userId, key, handleClick }) {\n const { surveyDate, surveyTime } = getScheduledSlotForUser(\n survey.moderatedSlots,\n userId\n );\n\n const surveyHeader =\n survey &&\n `${survey.name} - ${\n survey.surveyType\n ? \"Video /\" +\n (survey.mode ? \" Moderated /\" : \" UnModerated /\") +\n (survey.setting ? \" Group\" : \" Individual\")\n : \"Quantitative\"\n }`;\n\n const surveyTimeSlot =\n survey &&\n `${\n surveyDate && surveyTime\n ? survey.setting &&\n survey.moderatedSlots[surveyDate][surveyTime].length !== 5\n ? \"Scheduling...\"\n : \"Scheduled for \" + surveyTime + \" on \" + surveyDate\n : \"\"\n }`;\n\n return (\n handleClick(survey, key)}\n >\n
\n \n {!survey.surveyType ? (\n \n ) : (\n \n )}\n \n \n \n {`${surveyHeader} ${surveyTimeSlot}`}\n
\n \n {`${\n survey.surveyType ? \"Video Survey\" : \"Textual Survey\"\n } | ${getSurveyTime(survey)} ${\n survey.questions\n ? \"| \" + survey.questions.length + \" questions\"\n : \"\"\n } ${survey.paymentValue ? \"| Rs. \" + survey.paymentValue : \"\"}\n`}\n \n \n \n \n );\n}\n\nexport default SurveyCard;\n","export const getDateObject = (date, time) => {\n let [day, month, year] = date.split(\"/\");\n month = month.length === 2 ? month : \"0\" + month;\n day = day.length === 2 ? day : \"0\" + day;\n const dateString = `${year}-${month}-${day}T${time}`;\n return new Date(dateString);\n};\n\nexport const times = [\n { label: \"8am\", value: \"08:00\" },\n { label: \"9am\", value: \"09:00\" },\n { label: \"10am\", value: \"10:00\" },\n { label: \"11am\", value: \"11:00\" },\n { label: \"12pm\", value: \"12:00\" },\n { label: \"1pm\", value: \"13:00\" },\n { label: \"2pm\", value: \"14:00\" },\n { label: \"3pm\", value: \"15:00\" },\n { label: \"4pm\", value: \"16:00\" },\n { label: \"5pm\", value: \"17:00\" },\n { label: \"6pm\", value: \"18:00\" },\n { label: \"7pm\", value: \"19:00\" },\n];\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./timeslot.module.css\";\nimport c from \"classnames/bind\";\nimport Modal from \"react-modal\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport { Button, Col, Row } from \"antd\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { useDispatch } from \"react-redux\";\nimport { confirmTimeSlot } from \"../../../actions/users\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { getDateObject, times } from \"../constants/commonFunctions\";\nimport { Fragment } from \"react\";\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\nconst filterSlots = (moderatedSlots, setting) => {\n const userId = localStorage.getItem(\"user\");\n for (const date in moderatedSlots) {\n for (const time in moderatedSlots[date]) {\n if (\n moderatedSlots[date][time].length > 0 &&\n setting === false &&\n !moderatedSlots[date][time].includes(userId)\n ) {\n delete moderatedSlots[date][time];\n } else if (\n moderatedSlots[date][time].length === 5 &&\n setting === true &&\n !moderatedSlots[date][time].includes(userId)\n ) {\n delete moderatedSlots[date][time];\n } else if (\n new Date() > getDateObject(date, time) &&\n !moderatedSlots[date][time].includes(userId)\n ) {\n delete moderatedSlots[date][time];\n }\n }\n if (Object.entries(moderatedSlots[date]).length === 0) {\n delete moderatedSlots[date];\n }\n }\n return moderatedSlots;\n};\n\nconst TimeSlot = ({ isOpen, onClose, slots, surveyId, prevSlot, setting }) => {\n const dispatch = useDispatch();\n const [selectedDate, setSelecteDate] = useState(prevSlot.date);\n const [selectedTime, setSelectedTime] = useState(prevSlot.time);\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n const isMobile = useMediaQuery({ query: \"(max-width: 400px\" });\n const newSlots = filterSlots(JSON.parse(JSON.stringify(slots)), setting);\n console.log(newSlots, \"slots\");\n const date = newSlots && Object.keys(newSlots);\n console.log(\"dates\", date);\n // const time = !!selectedDate && Object.keys(newSlots[selectedDate]);\n\n // useEffect(() => {\n // if (!selectedDate) {\n // setSelectedTime(undefined);\n // }\n // }, [selectedDate]);\n\n // DATE\n const DateDiv = ({ children, value }) => {\n return (\n {\n // setSelecteDate(value);\n // setSelectedTime(undefined);\n }}\n >\n {children}\n \n );\n };\n\n // TIME\n const TimeDiv = ({ children, value }) => {\n const isActive = selectedDate === value.date && selectedTime === value.time;\n const currentDate = new Date();\n currentDate.setHours(currentDate.getHours() + 2);\n const isDisabled =\n getDateObject(value.date, value.time) <= currentDate && !isActive;\n return (\n !isDisabled && (\n {\n console.log(\"values\", value);\n if (value.date === selectedDate && value.time === selectedTime) {\n setSelecteDate(null);\n setSelectedTime(null);\n } else {\n setSelecteDate(value.date);\n setSelectedTime(value.time);\n }\n }}\n >\n {times.find((x) => x.value === children).label}\n \n )\n );\n };\n\n // Handlers\n const onConfirmSlot = () => {\n if (!selectedDate) {\n notify(\"error\", \"Error\", \"Please select Date and Time\");\n return;\n }\n if (!selectedTime) {\n notify(\"error\", \"Error\", \"Please select time\");\n return;\n }\n incrementPendingRequests();\n dispatch(\n confirmTimeSlot(surveyId, {\n date: selectedDate,\n time: selectedTime,\n prevDate: prevSlot.date,\n prevTime: prevSlot.time,\n })\n )\n .then(() => {\n notify(\"success\", \"Success\", \"Time slot confirmed\");\n onClose();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n
\n
\n \n onClose()}\n style={{\n fontSize: 32,\n display: \"flex\",\n alignItems: \"center\",\n cursor: \"pointer\",\n }}\n />\n
\n
\n

\n Please select a time for Moderated Video Survey\n

\n
\n
\n
Date
\n
Time
\n
\n {date &&\n date.map((d, index) => (\n
\n {d}\n
\n {Object.keys(newSlots[d])\n .sort()\n .map(\n (val, i) => (\n console.log(newSlots[d], \"val\"),\n (\n \n {val}\n \n )\n )\n )}\n
\n
\n ))}\n
\n {/* \n \n
Date
\n
\n {date &&\n date.map((val) => {val})}\n
\n \n \n
Time
\n {date &&\n time &&\n date.map((d, index) => (\n
\n {Object.keys(newSlots[d]).map((val, i) => (\n \n {val}\n \n ))}\n
\n ))}\n \n
*/}\n
\n \n Confirm availability\n \n
\n
\n
\n
\n );\n};\n\nexport default TimeSlot;\n","//returns if the survey has screening questions\nexport const hasScreeningQuestions = (survey) => {\n return survey.screeningQuestions.length > 0;\n};\n\n//returns the screening questions\nexport const getScreeningQuestions = (survey) => {\n if (!hasScreeningQuestions(survey)) return null;\n return survey.screeningQuestions.map((val) => val.questionObject);\n};\n\n//returs true if the user passed the screening test and false otherwise\nexport const passedScreeningTest = (survey, answers) => {\n let result = true;\n survey.screeningQuestions.forEach((val, index) => {\n if (!answers[index].some((el) => val.answer.includes(el))) {\n result = false\n }\n });\n return result;\n};\n\nexport const surveyScreeningTest = (survey, userId) => {\n if (!hasScreeningQuestions(survey)) return false;\n if (!userId) return false;\n if (survey?.usersPassedScreening.includes(userId)) {\n return false;\n }\n return true;\n};\n","import { Button } from \"antd\";\nimport React, { Fragment } from \"react\";\nimport { useState } from \"react\";\nimport TimeSlot from \"../../../../pages/user/time-slot/TimeSlot\";\nimport { getUserId } from \"../../../../utils\";\nimport { surveyTypes, times } from \"../../constants/constants\";\nimport { useCancelCall } from \"../../hooks/qualSurvey/moderatedSurvey/useCancelCall\";\nimport {\n getScheduledSlotForUser,\n getScheduledSlotForUserTimeStamp,\n isSlotChangeDisabled,\n} from \"../../utils/moderated/schedule\";\nimport { hasScreeningQuestions } from \"../../utils/screeningUtils\";\nimport { getSurveyType } from \"../../utils/utils\";\n\nconst buttonStyle = {\n backgroundColor: \"#71cfd7\",\n color: \"white\",\n borderRadius: 10,\n};\n\nconst getDateAndTimeString = (date, time) => {\n return \" at \" + times.find((x) => x.value === time).label + \" on \" + date;\n};\n\nfunction SurveyStartOptions({ survey, handleStartSurveyClick, handleCancel }) {\n const [showTimeSlot, setShowTimeSlot] = useState(false);\n const hasScreeningTest = hasScreeningQuestions(survey);\n const surveyType = getSurveyType(survey);\n const cancelCall = useCancelCall();\n const { surveyDate, surveyTime } = getScheduledSlotForUser(\n survey.moderatedSlots,\n getUserId()\n );\n const scheduledCallTimeStamp = getScheduledSlotForUserTimeStamp(\n survey.moderatedSlots,\n getUserId()\n );\n\n const handleCancelCall = () => {\n handleCancel();\n cancelCall(survey._id);\n };\n\n const handleAvailability = () => {\n handleCancel();\n setShowTimeSlot(true);\n };\n\n return (\n \n {hasScreeningTest && (\n
\n \n Start Screening\n \n
\n )}\n\n {!hasScreeningTest && surveyType !== surveyTypes.QUALITATIVE_MODERATED && (\n
\n \n Start Survey\n \n
\n )}\n\n {!hasScreeningTest && surveyType === surveyTypes.QUALITATIVE_MODERATED && (\n \n \n
\n \n {!!scheduledCallTimeStamp\n ? \"Change availability\"\n : \"Share availability\"}\n \n
\n
\n \n Cancel Call\n \n
\n {scheduledCallTimeStamp && (\n
\n new Date() ||\n !survey.surveyScheduledTimeStamp\n ? \"#BAE7EA\"\n : \"#71cfd7\",\n color: \"white\",\n borderRadius: 10,\n }}\n onClick={handleStartSurveyClick}\n // disabled={\n // getSelectedSlotDateObject() >\n // new Date().setMinutes(new Date().getMinutes() + 5) ||\n // !survey.surveyScheduledTimeStamp\n // }\n >\n Start Survey\n {surveyDate &&\n surveyTime &&\n getDateAndTimeString(surveyDate, surveyTime)}\n \n
\n )}\n \n {showTimeSlot && (\n setShowTimeSlot(false)}\n slots={survey.moderatedSlots}\n surveyId={survey._id}\n setting={survey.setting}\n prevSlot={{ date: surveyDate, time: surveyTime }}\n />\n )}\n
\n )}\n
\n );\n}\n\nexport default SurveyStartOptions;\n","import React, { Fragment } from \"react\";\nimport { surveyTypes } from \"../../constants/constants\";\nimport {\n getSurveyTime,\n getSurveyType,\n isGroupSurvey,\n isQuantSurvey,\n} from \"../../utils/utils\";\nimport SurveyStartOptions from \"./SurveyStartOptions\";\n\nconst getInstructions = (surveyType) => {\n if (surveyType === surveyTypes.QUANTITATIVE) {\n return (\n
    \n
  • You will be asked a set of questions on your background
  • \n
  • \n We will NOT share this information with clients\n
  • \n
  • \n Please be HONEST as this is used to qualify you for surveys\n
  • \n
  • On completion please click the End button to upload the results
  • \n
  • Click on Green button below to start
  • \n
\n );\n }\n if (surveyType === surveyTypes.QUALITATIVE_UNMODERATED) {\n return (\n
    \n
  • \n This survey requires you to test a website/product and record\n video/audio from your device\n
  • \n
  • Please be candid and honest with your feedback
  • \n
  • There are NO wrong answers – we need your real feedback!
  • \n
  • \n Once the survey is complete, please click on the End Survey button to\n upload the results\n
  • \n
  • You will get paid as per the terms
  • \n
  • \n Important: We DO NOT SHARE your details with clients\n
  • \n
\n );\n }\n if (surveyType === surveyTypes.QUALITATIVE_MODERATED) {\n return (\n
    \n
  • This survey requires you to test a website/product
  • \n
  • \n It will be conducted by a moderator and will happen via a video call\n
  • \n
  • \n In order to match the time/date with the moderator, please choose your\n availability from the calendar below\n
  • \n
  • \n After that, you will receive an email and text for the date/time for\n this survey\n
  • \n
  • Once you confirm, please come back and take the survey
  • \n
  • You will get paid once the survey is done
  • \n\n
  • \n Important: We DO NOT SHARE your details with clients\n
  • \n
\n );\n }\n};\n\nfunction InstructionModal({ survey, handleCancel, handleStartSurveyClick }) {\n const surveyType = getSurveyType(survey);\n\n let surveyTypeText = \"\";\n let surveyModeText = \"\";\n let surveySizeText = \"\";\n switch (surveyType) {\n case surveyTypes.QUANTITATIVE:\n surveyTypeText = \"Textual Survey\";\n surveyModeText = \"unmoderated\";\n\n break;\n case surveyTypes.QUALITATIVE_UNMODERATED:\n surveyTypeText = \"Video Survey\";\n surveyModeText = \"Unmoderated\";\n break;\n case surveyTypes.QUALITATIVE_MODERATED:\n surveyTypeText = \"Video Survey\";\n surveyModeText = \"Moderated\";\n break;\n default:\n surveyTypeText = \"Error\";\n surveyModeText = \"Error\";\n break;\n }\n\n if (isGroupSurvey(survey)) {\n surveySizeText = \"Group Survey\";\n } else {\n surveySizeText = \"Individual Survey\";\n }\n\n let renderPairs = [\n [\"Survey name\", survey.name],\n [\"Survey type\", surveyTypeText],\n [\"Survey mode\", surveyModeText],\n [\"Survey time\", getSurveyTime(survey)],\n [\n \"Survey amount\",\n survey.paymentValue ? \"Rs. \" + survey.paymentValue : \"N/A\",\n ],\n ];\n\n if (isQuantSurvey(survey)) {\n renderPairs = [\n ...renderPairs,\n [\"Survey questions\", survey.questions.length],\n ];\n } else {\n renderPairs = [...renderPairs, [\"Survey size\", surveySizeText]];\n }\n\n return (\n \n
\n Survey Details\n
\n\n
\n {renderPairs.map((pair, index) => (\n \n \n {pair[0]}\n
\n
{pair[1]}
\n \n ))}\n \n\n \n\n

\n

Instructions:

\n {survey && getInstructions(surveyType)}\n

\n
\n );\n}\n\nexport default InstructionModal;\n","import { useDispatch } from \"react-redux\";\nimport { removeSurvey } from \"../../../actions/users\";\nimport {\n decrementPendingRequests,\n getUserId,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { passedScreeningTest } from \"../utils/screeningUtils\";\n\nfunction useHandleScreeningQuestions() {\n const dispatch = useDispatch();\n\n const handleScreeningQuestions = async (survey, answers) => {\n try {\n const passed = passedScreeningTest(survey, answers);\n if (passed) {\n notify(\n \"success\",\n \"Success\",\n \"You passed the screening test. You can now begin with actual survey.\"\n );\n return true;\n } else {\n incrementPendingRequests();\n if (!!getUserId()) {\n await dispatch(removeSurvey(survey._id));\n }\n notify(\n \"info\",\n \"Info\",\n \"You failed the screening test. The survey is now removed.\"\n );\n decrementPendingRequests();\n return false;\n }\n } catch (error) {\n notify(\"error\", \"Error\", error);\n decrementPendingRequests();\n return false;\n }\n };\n return handleScreeningQuestions;\n}\n\nexport default useHandleScreeningQuestions;\n","import React, { Fragment, useState } from \"react\";\nimport Survey from \"../Survey\";\nimport useHandleScreeningQuestions from \"../../../hooks/useHandleScreeningQuestions\";\nimport { getScreeningQuestions } from \"../../../utils/screeningUtils\";\nimport { surveyTypes } from \"../../../constants/constants\";\nimport {\n LogoutOutlined\n} from \"@ant-design/icons\"\nimport c from \"classnames/bind\";\nimport styles from \"../survey.module.css\";\n\nconst cx = c.bind(styles);\n\nfunction ScreeningWrapper({ survey, onPass, onClose }) {\n const [showFailedScreeningPage, setShowFailedScreeningPage] = useState(false)\n const questions = getScreeningQuestions(survey);\n const handleScreeningQuestions = useHandleScreeningQuestions();\n\n const onEnd = async (answers) => {\n const result = await handleScreeningQuestions(survey, answers)\n console.log(result)\n \n if (result) {\n onPass();\n } else {\n \n setShowFailedScreeningPage(true)\n \n }\n };\n\n return (\n \n {showFailedScreeningPage ? \n
\n {!window.location.pathname.includes('/attemptSurvey') && {\n onClose();\n }}\n className={cx(\"quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n
\n }\n \n
\n \n

Sorry!

\n

\n You failed the screening test.\n

\n
\n \n \n \n : \n}\n
\n );\n}\n\nexport default ScreeningWrapper;\n","import VideoStreamMerger from \"video-stream-merger\";\nimport io from \"socket.io-client\";\n\nconst uploader = (url, uploadURL) => {\n return {\n init: function (data) {\n this.socket = io(this.url);\n let $ = this;\n let ss = this.socket;\n ss.on(\"connect\", () => {\n ss.emit(\"subscribe\", {\n ...this.data,\n ...data,\n });\n ss.on(\"host-leave\", () => {\n this.onHostLeave();\n });\n });\n return navigator.mediaDevices\n .getDisplayMedia({\n video: true,\n audio: false,\n })\n .then((screen) => {\n return navigator.mediaDevices\n .getUserMedia({\n audio: true,\n video: true,\n })\n .then((video) => {\n $.videoObject = video;\n return [screen, video];\n })\n .catch(() => {\n screen.getTracks().forEach((track) => track.stop());\n throw \"Permissions denied\";\n });\n })\n .then(([screen, video]) => {\n $.screen = screen;\n $.video = video;\n let merger = new VideoStreamMerger({\n width: 1280,\n height: 720,\n fps: 20,\n clearRect: true,\n audioContext: null,\n });\n merger.addStream(screen, {\n x: 0,\n y: 0,\n width: merger.width,\n height: merger.height,\n mute: true,\n });\n merger.addStream(video, {\n x: merger.width - merger.width / 4,\n y: 0,\n width: merger.width / 4,\n height: merger.height / 4,\n mute: false,\n });\n merger.start();\n $.merger = merger;\n let mediaRecorder = new MediaRecorder(merger.result, {\n mimeType: \"video/webm;codecs=vp8,opus\",\n });\n $.mediaRecorder = mediaRecorder;\n mediaRecorder.ondataavailable = function (event) {\n if (event.data.size > 0) {\n $.upload(event.data);\n }\n };\n mediaRecorder.start(1000);\n });\n },\n onHostLeave: () => {\n //do something\n },\n startUpload: function () {\n let ss = this.socket;\n ss.emit(\"subscribe-upload\", {\n ...this.data,\n });\n },\n upload: function (chunk) {\n let ss = this.socket;\n ss.emit(\"data_available\", {\n ...this.data,\n chunk,\n });\n },\n endUpload: function (ss, mediaRecorder, merger, video, screen) {\n if (ss)\n ss.emit(\"leave-upload\", {\n ...this.data,\n });\n if (mediaRecorder && merger && video && screen) {\n mediaRecorder.stop();\n merger.destroy();\n video.getTracks().forEach((track) => track.stop());\n screen.getTracks().forEach((track) => track.stop());\n }\n },\n url: url,\n data: {\n uploadURL: uploadURL,\n },\n };\n};\n\nexport default uploader;\n","import { useState } from \"react\";\nimport uploader from \"../../../../utils/qual_unmoderated/uploader\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../../../../utils\";\nimport { BASEURL } from \"../../../../../../constants\";\n\nfunction useUploadVideoHandler(surveyId, userId = \"\") {\n const [ss, setSS] = useState(null);\n const [mediaRecorder, setMediaRecorder] = useState(null);\n const [merger, setMerger] = useState(null);\n const [video, setVideo] = useState(null);\n const [screen, setScreen] = useState(null);\n const up = uploader(`${BASEURL}/stream`, `${surveyId}_${userId}`);\n\n const initUpload = async () => {\n incrementPendingRequests();\n return up\n .init()\n .then(() => {\n up.startUpload();\n setMediaRecorder(up.mediaRecorder);\n setMerger(up.merger);\n setVideo(up.videoObject);\n setScreen(up.screen);\n setSS(up.socket);\n return true;\n })\n .catch((err) => {\n notify(\n \"error\",\n \"Permission Denied\",\n \"Please give the required permissions to continue with the survey.\"\n );\n return false;\n })\n .finally(() => {\n decrementPendingRequests();\n });\n };\n\n const endUpload = (includeSS = true) => {\n if (!includeSS) {\n return up.endUpload(null, mediaRecorder, merger, video, screen);\n }\n up.endUpload(ss, mediaRecorder, merger, video, screen);\n };\n\n return [initUpload, endUpload];\n}\n\nexport default useUploadVideoHandler;\n","import { useDispatch } from \"react-redux\";\nimport { removeSurvey } from \"../../../actions/users\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\n\nfunction useHandleDisqualification() {\n const dispatch = useDispatch();\n\n const handleDisqualification = async (survey) => {\n incrementPendingRequests();\n dispatch(removeSurvey(survey._id))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return handleDisqualification;\n}\n\nexport default useHandleDisqualification;\n","import React from \"react\";\n\nimport \"./meeting.css\";\nimport AgoraVideoCall from \"../../../../../../components/AgoraVideoCall/index\";\nimport { AGORA_APP_ID } from \"../../../../../../agora.config\";\n\nclass Meeting extends React.Component {\n constructor(props) {\n super(props);\n this.videoProfile = \"480p_4\";\n this.channel = props.surveyAccess? `${props.token}` : `${props.surveyId}_${props.date}_${props.time}`;\n this.transcode = \"interop\";\n this.attendeeMode = \"video\";\n this.baseMode = \"avc\";\n this.appId = AGORA_APP_ID;\n this.uid = undefined;\n this.meeId = props.surveyId;\n this.date = props.date;\n this.time = props.time;\n this.isClient = props.isClient;\n this.isOneToOne = props.isOneToOne;\n this.token = props.token\n }\n\n render() {\n return (\n
\n
\n
\n USERQUAL{\" \"}\n \n {this.isOneToOne ? \"ONE TO ONE\" : \"ONE TO MANY\"} Survey{\" \"}\n {this.channel}\n \n
\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default Meeting;\n","export const AGORA_APP_ID = \"797e898a27174461a2e6ba2034fb0c31\"; // set your app id here\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./QuestionPopup.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CloseCircleOutlined,\n LeftCircleOutlined,\n RightCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Button, message, Badge, InputNumber, Modal as AntdModal } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport Text from \"../../questions/text/Text\";\nimport MultipleChoice from \"../../questions/multiple-choice/MultipleChoice\";\nimport Checkboxes from \"../../questions/checkboxes/Checkboxes\";\nimport StarRating from \"../../questions/star-rating/StarRating\";\nimport SliderType from \"../../questions/slider/Slider\";\nimport Likert from \"../../questions/likert/Likert\";\nimport NPS from \"../../questions/nps/NPS\";\nimport Ranking from \"../../questions/ranking/Ranking\";\nimport Dropdown from \"../../questions/dropdown/Dropdown\";\nimport Association from \"../../questions/association/Association\";\nimport ImageInstructions from \"../../questions/image/instructions/ImageInstructions\";\nimport ImageComment from \"../../questions/image/comment/ImageComment\";\nimport ImageMultipleChoice from \"../../questions/image/multiple-choice/ImageMultipleChoice\";\nimport ImageCheckboxes from \"../../questions/image/checkboxes/ImageCheckboxes\";\nimport ImageRating from \"../../questions/image/rating/ImageRating\";\nimport ImageRanking from \"../../questions/image/ranking/ImageRanking\";\nimport ImageAssociation from \"../../questions/image/association/ImageAssociation\";\nimport Modal from \"react-modal\";\nimport VideoInstruction from \"../../questions/video/instruction/VideoInstruction\";\nimport VideoRating from \"../../questions/video/rating/VideoRating\";\nimport VideoAssociation from \"../../questions/video/association/VideoAssociation\";\nimport VideoRanking from \"../../questions/video/ranking/VideoRanking\";\nimport VideoMultipleChoice from \"../../questions/video/multiple-choice/VideoMultipleChoice\";\nimport VideoCheckboxes from \"../../questions/video/checkboxes/VideoCheckboxes\";\nimport VideoComment from \"../../questions/video/comment/VideoComment\";\nimport CheckboxesSpecial from \"../../../../../../components/user/profile-questions/checkboxes-special/CheckboxesSpecial\";\nimport AdAnalysis from \"../../questions/ad-analysis/AdAnalysis\";\n// import { getWordCloudAnalysis } from \"../../constants/getWordCloudReport\";\nconst modalStyles = {\n content: {\n top: \"10%\",\n left: \"20%\",\n width: \"80vh\",\n height: \"80vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\nconst isTypeRequired = (type) => {\n return [\n \"text\",\n \"multiChoices\",\n \"checkBoxes\",\n \"stars\",\n \"likert\",\n \"likert\",\n \"imageMultiChoices\",\n \"imageCheckBoxes\",\n \"netPromotorScore\",\n \"videoComment\",\n \"imageComment\",\n \"videoMultiChoices\",\n \"videoCheckBoxes\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n ].includes(type);\n};\n\nconst emptyCheck = (type, answer) => {\n const specialTypes = [\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"text\",\n \"imageComment\",\n \"videoComment\",\n ];\n if (answer && !specialTypes.includes(type)) {\n return answer.length === 0;\n }\n let isEmpty = false;\n switch (type) {\n case \"text\":\n return answer.length === 0 || answer[0] === \"\";\n case \"imageComment\":\n return answer.length === 0 || answer[0] === \"\";\n case \"videoComment\":\n return answer.length === 0 || answer[0] === \"\";\n case \"imageStarRatingChoices\":\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n case \"videoStarRatingChoices\":\n Object.keys(answer[0]).forEach((el) => {\n if (answer[0][el] === 0) {\n isEmpty = true;\n return;\n }\n });\n return isEmpty;\n default:\n return false;\n }\n};\n\nlet answers = [];\nlet hiddenQuestions = [];\nconst QuestionPopup = ({\n questions = [],\n isOpen,\n onClose,\n onEndQuestion = () => {},\n onDisqualification = () => {},\n surveyType,\n video,\n userId = null,\n onSubmitLiveQuestion,\n}) => {\n // Hooks\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n const [isDisqualified, setIsDisqualified] = useState(false);\n\n useEffect(() => {\n // Populate answers with empty array\n [...Array(questions.length).keys()].map((i) => (answers[i] = []));\n console.log(\"population done\");\n }, []);\n\n console.log(\"question in popup\", questions);\n\n // Derived state\n const index = 0;\n const getQuestionText = () => {\n const { type, text, options } = questions[index];\n\n switch (type) {\n case \"netPromotorScore\":\n const { npsOption } = options;\n return `How likely is it that you would recommend ${npsOption} to a friend or collegue?`;\n default:\n return text;\n }\n };\n\n const getComponentByQuestionType = () => {\n const { type, options } = questions[index];\n\n const onChange = (values) => {\n answers[index] = Array.isArray(values) ? values : [values];\n };\n\n if (answers.length === 0) {\n [...Array(questions.length)].map(() => answers.push([]));\n }\n\n if (answers[index]) {\n switch (type) {\n case \"text\":\n return (\n \n );\n case \"multiChoices\":\n return (\n \n );\n case \"checkBoxes\":\n return (\n \n );\n case \"stars\":\n const { stars, starType } = options;\n return (\n \n );\n case \"slider\":\n answers[index][0] = answers[index][0] || 0;\n const {\n sliderType,\n sliderValue,\n sliderMin,\n sliderMax,\n sliderStartLabel,\n sliderMiddleLabel,\n sliderEndLabel,\n } = options;\n return (\n \n );\n case \"likert\":\n const {\n likertRange,\n likertStartLabel,\n likertMiddleLabel,\n likertEndLabel,\n } = options;\n return (\n \n );\n case \"netPromotorScore\":\n return (\n \n );\n case \"ranking\":\n answers[index] =\n answers[index].length > 0 ? answers[index] : options.multiChoices;\n return (\n \n );\n case \"dropDown\":\n answers[index][0] = answers[index][0] || 1;\n const range = options.range;\n return (\n \n );\n case \"association\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.associationChoices;\n return (\n \n );\n case \"imageInstruction\":\n return ;\n case \"imageComment\":\n return (\n \n );\n /* case \"imageABTest\":\n const { imageABTestChoices } = options\n return ; */\n case \"imageMultiChoices\":\n const { imageMultiChoices } = options;\n return (\n \n );\n case \"imageCheckBoxes\":\n return (\n \n );\n case \"imageStarRatingChoices\":\n if (answers[index].length === 0) {\n answers[index][0] = {};\n options.imageStarRatingChoices.forEach((val) => {\n answers[index][0][val.imageLabel] = 0;\n });\n }\n const { imageStarRatingChoices, imageStar, imageStarType } = options;\n return (\n \n );\n case \"imageRanking\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.imageMultiChoices;\n return (\n \n );\n case \"imageAssociation\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.imageAssociationChoices;\n return (\n \n );\n case \"videoInstruction\":\n return ;\n case \"videoComment\":\n return (\n \n );\n case \"videoMultiChoices\":\n const { videoMultiChoices } = options;\n return (\n \n );\n case \"videoCheckBoxes\":\n return (\n \n );\n case \"videoStarRatingChoices\":\n if (answers[index].length === 0) {\n answers[index][0] = {};\n options.videoStarRatingChoices.forEach((val) => {\n answers[index][0][val.videoLabel] = 0;\n });\n }\n const { videoStarRatingChoices, videoStar, videoStarType } = options;\n return (\n \n );\n case \"videoRanking\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.videoMultiChoices;\n return (\n \n );\n case \"videoAssociation\":\n answers[index] =\n answers[index].length > 0\n ? answers[index]\n : options.videoAssociationChoices;\n return (\n \n );\n case \"age\":\n return (\n \n );\n case \"checkboxesSpecial\":\n const { specialField, multiChoices } = options;\n return (\n \n );\n case \"adAnalysis\":\n const { adAnalysisData } = options;\n return ;\n default:\n return;\n }\n }\n };\n\n const onQuestionSubmit = async () => {\n if (userId !== null) {\n answers = await Promise.all(\n answers.map(async (answer, index) => {\n if (\n [\"text\", \"imageComment\", \"videoComment\"].indexOf(\n questions[index].type\n ) > -1\n ) {\n const report = [];\n // const report = await getWordCloudAnalysis(answer, userId);\n answer.push(report);\n }\n return answer;\n })\n );\n }\n // console.log(\"answers\", userId, answers[0] ? answers[0] : []);\n onSubmitLiveQuestion(userId, answers[0] ? answers[0] : []);\n onCloseModal();\n };\n\n const onQuestionSkip = () => {\n onCloseModal();\n };\n\n const onCloseModal = () => {\n answers = [];\n hiddenQuestions = [];\n onClose();\n };\n\n return (\n \n \n
\n
\n \n \n
\n
\n \n \n {surveyType && (\n \n Read the Question aloud\n

\n )}\n \n {/*
\n \n
*/}\n

\n {questions[index] && getQuestionText()}\n
\n {questions[index] && questions[index].description ? (\n \n {questions[index].description}\n \n ) : null}\n {surveyType &&\n questions[index - 1] &&\n questions[index - 1].clientLink &&\n questions[index - 1].clientLink.length > 0 ? (\n

\n (The previous link was{\" \"}\n \n {questions[index - 1].clientLink}\n \n )\n

\n ) : null}\n

\n
\n {questions[index] &&\n questions[index].clientLink &&\n questions[index].clientLink.length > 0 ? (\n \n Open link:{\" \"}\n \n {questions[index].clientLink}\n {\" \"}\n (Click here)\n
\n ) : null}\n
\n {questions[index] && getComponentByQuestionType()}\n
\n {surveyType && (\n \n Take your time. Think aloud. Move on to the next step when\n you've completed this question.\n

\n )}\n \n \n Submit\n \n \n Cancel\n \n \n \n \n
\n );\n};\n\nexport default QuestionPopup;\n","import { notification } from \"antd\";\nimport { set } from \"dot-prop-immutable\";\nimport React, { useEffect } from \"react\";\nimport { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { completeSurvey } from \"../../../../../actions/users\";\nimport handleNetworkErrors from \"../../../../../pages/user/constants/handleNetworkErrors\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../../../utils\";\nimport { getScheduledSlotForUser } from \"../../../utils/moderated/schedule\";\nimport { getSurveyType } from \"../../../utils/utils\";\nimport Meeting from \"./meeting/index\";\nimport QuestionPopup from \"./QuestionPopup/QuestionPopup\";\n\n//Need to refactor according to newer standards\nfunction ModeratedSurvey({ survey, userId, surveyAccess, token, clientId }) {\n const dispatch = useDispatch();\n const profile = useSelector((state) => state.user.profile);\n\n const [slot, setSlot] = useState({});\n const [questionPopup, setQuestionPopup] = useState(false);\n const [question, setQuestion] = useState(null);\n const [showModeratedSurvey, setShowModeratedSurvey] = useState(false);\n const [triggerSubmitAnswer, setTriggerSubmitAnswer] = useState({\n trigger: true,\n data: {},\n });\n const [UID, setUID] = useState();\n\n const surveyType = getSurveyType(survey);\n\n const showQuestionPopup = (question) => {\n setQuestionPopup(true);\n setQuestion(question);\n };\n\n const setOpenUID = (data) => {\n setUID([data])\n }\n //dupliacte code. Fix needed. Duplicate in useSurveyEventHandlersFile\n const handleEndSurvey = async (surveyId, response) => {\n incrementPendingRequests();\n dispatch(completeSurvey(surveyId, response))\n .then(() => notify(\"success\", \"Success\", \"Survey completed\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n \n const handleSubmitLiveQuestion = async (userId, answer, slot, survey) => {\n if(survey.surveyAccess){\n const { url, method } = Routes.user.answerOpenModeratedSurveyQuestions(\n UID,\n survey._id\n );\n \n const { data } = await axios[method](url, {\n data: {\n slotKey: survey.surveyAccess ? token : slot.surveyDate + \"_\" + slot.surveyTime,\n answer: answer,\n },\n });\n\n } else {\n\n const { url, method } = Routes.user.answerModeratedSurveyQuestions(\n userId,\n survey._id\n );\n \n const { data } = await axios[method](url, {\n data: {\n slotKey: survey.surveyAccess ? token : slot.surveyDate + \"_\" + slot.surveyTime,\n answer: answer,\n },\n });\n }\n };\n\n const onSubmitLiveQuestion = async (userId, answer, slot, survey) => {\n if (await handleSubmitLiveQuestion(userId, answer, slot, survey)) {\n try {\n await handleSubmitLiveQuestion(userId, answer, slot, survey);\n if(surveyAccess) {\n notification.success({ message: \"Response Submitted Successfully\" });\n } else {\n let userName = userId;\n if (profile.firstName && profile.lastName) {\n userName = profile.firstName + \" \" + profile.lastName;\n }\n\n notification.success({ message: \"Response Submitted Successfully\" });\n setTriggerSubmitAnswer({\n trigger: true,\n data: { message: userName + \" answered the question\" },\n });\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n }\n };\n\n useEffect(() => {\n const { surveyDate, surveyTime } = getScheduledSlotForUser(\n survey.moderatedSlots,\n userId\n );\n setSlot({ surveyDate, surveyTime });\n setShowModeratedSurvey(true);\n }, []);\n\n return (\n <>\n {showModeratedSurvey && (\n <>\n \n setQuestionPopup(false)}\n onDisqualification={() => {}}\n surveyType={surveyType}\n userId={userId}\n onSubmitLiveQuestion={(userId, answer) =>\n onSubmitLiveQuestion(userId, answer, slot, survey)\n }\n />\n \n )}\n \n );\n}\n\nexport default ModeratedSurvey;\n","import React, { useState, useEffect } from \"react\";\nimport c from \"classnames/bind\";\nimport styles from \"./survey.module.css\";\nimport {\n LogoutOutlined\n } from \"@ant-design/icons\"\n\n// {\n// data: {\n// referSurveyToken: Survey.referSurveyToken\n// }\n// }\n\n// frontend endpoint:\n// \n\n//Endpoint POST to user/:surveyId/addSurvey\n\nconst cx = c.bind(styles);\n\nconst PermDenied = ({onClose}) => {\n\n const modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n };\n\n return (\n \n {\n
\n {!window.location.pathname.includes('/attemptSurvey') && {\n onClose();\n }}\n className={cx(\"quit-button\")}\n title=\"Quit Survey\"\n >\n QUIT SURVEY \n
\n }\n
\n
\n \n \n Sorry!\n

\n

\n Please grant the necessary permissions to begin survey. To attempt again, please refresh.\n

\n
\n
\n \n \n }\n
\n );\n};\n\nexport default PermDenied;","import React, { Fragment } from \"react\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport ScreeningWrapper from \"./screening/ScreeningWrapper\";\nimport Survey from \"./Survey\";\nimport { getSurveyType, isModeratedSurvey } from \"../../utils/utils\";\nimport { useSurveyEventHandlers } from \"../../hooks/useSurveyEventHandlers\";\nimport { hasScreeningQuestions } from \"../../utils/screeningUtils\";\nimport useHandleDisqualification from \"../../hooks/useHandleDisqualification\";\nimport Meeting from \"./moderatedCall/meeting\";\nimport QuestionPopup from \"./moderatedCall/QuestionPopup/QuestionPopup\";\nimport ModeratedSurvey from \"./moderatedCall/ModeratedSurvey\";\nimport PermDenied from \"./permDenied\";\n\nfunction SurveyWrapper({ survey, userId, onExit, token }) {\n const [isScreeningQuestion, setIsScreeningQuestion] = useState(\n hasScreeningQuestions(survey)\n );\n const questions = survey.questions;\n const [onStartSurvey, onEndSurvey, closeSurvey] = useSurveyEventHandlers(\n survey,\n userId\n );\n const handleDisqualification = useHandleDisqualification();\n const onDisqualification = async () => {\n handleDisqualification(survey);\n };\n const [showPermDeniedPage, setShowPermDeniedPage] = useState(false)\n useEffect( () => {\n if (isScreeningQuestion) return; \n (async () => {\n const startSurveyResult = await onStartSurvey();\n if(startSurveyResult.showPermissionDeniedPage) {\n setShowPermDeniedPage(true)\n }\n })()\n }, [isScreeningQuestion]);\n\n return (\n \n {showPermDeniedPage ? () : \n isScreeningQuestion ? (\n setIsScreeningQuestion(false)}\n onClose={onExit}\n />\n ) : isModeratedSurvey(survey) ? (\n \n ) : (\n {\n closeSurvey();\n onExit();\n }}\n onEndSurvey={(answers) => {\n onEndSurvey(answers, questions, survey.surveyAccess);\n if (\n window.location.pathname.includes(\"user\")\n )\n onExit();\n }}\n onDisqualification={onDisqualification}\n brandLogo={survey.brandLogo}\n brandName={survey.brandName}\n surveyInstructions={survey.instructions}\n >\n )\n } \n \n );\n}\n\nexport default SurveyWrapper;\n","import { notification } from \"antd\";\nimport { useDispatch } from \"react-redux\";\nimport { completeSurvey, startSurvey } from \"../../../actions/users\";\nimport { surveyStates } from \"../constants/constants\";\nimport { questionTypes } from \"../constants/questions\";\nimport {\n isModeratedSurvey,\n isQuantSurvey,\n isUnmoderatedQualSurvey,\n} from \"../utils/utils\";\nimport useUploadVideoHandler from \"./qualSurvey/moderatedSurvey/qual_unmoderatd/useUploadVideoHandler\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { isMobile } from \"react-device-detect\";\nimport { getScheduledSlotForUser } from \"../utils/moderated/schedule\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { getWordCloudAnalysis } from \"../../../pages/user/constants/getWordCloudReport\";\nimport handleNetworkErrors from \"../../../pages/user/constants/handleNetworkErrors\";\nimport { useState } from \"react\";\n\nexport const useSurveyEventHandlers = (survey, userId) => {\n const [startedAt, setStartedAt] = useState(null);\n const [endsAt, setEndsAt] = useState(null);\n const [slot, setSlot] = useState({});\n const [initUpload, endUpload] = useUploadVideoHandler(survey._id, userId);\n const dispatch = useDispatch();\n //const [handleCompleteSurvey] = useSurveyAPIs()\n\n const onSubmitLiveQuestion = async (answers) => {\n try {\n const { url, method } = Routes.user.answerModeratedSurveyQuestions(\n userId,\n survey._id\n );\n\n await axios[method](url, {\n data: {\n slotKey: slot.date + \"_\" + slot.time,\n answer: answers,\n },\n });\n\n notification.success({ message: \"Response Submitted Successfully\" });\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const handleStartSurvey = async (surveyId, surveyAccess) => {\n incrementPendingRequests();\n dispatch(startSurvey(surveyId, surveyAccess))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleEndSurvey = async (surveyId, surveyAccess, response) => {\n incrementPendingRequests();\n dispatch(completeSurvey(surveyId, surveyAccess, response))\n .then(() => notify(\"success\", \"Success\", \"Survey completed\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n //returns true if the survey is started successfully else false\n const onStartSurvey = async () => {\n if (survey.status === surveyStates.PAUSE) {\n notification.info({\n message:\n \"Survey is temporarily paused, Please try again after sometime or contact administrator\",\n });\n return false;\n }\n setStartedAt(new Date());\n\n if (!isQuantSurvey(survey) && isMobile) {\n return false;\n }\n if (isUnmoderatedQualSurvey(survey)) {\n const upload_started = await initUpload();\n //test this part out\n if (!upload_started) {\n return {'upload_started': false, showPermissionDeniedPage: true};\n }\n }\n if (isModeratedSurvey(survey)) {\n const { surveyDate, surveyTime } = getScheduledSlotForUser(\n survey.moderatedSlots,\n userId\n );\n setSlot({ surveyDate, surveyTime });\n }\n\n handleStartSurvey(survey._id, survey.surveyAccess);\n return true;\n };\n\n const addWordCloudAnalysis = async (answers, questions) => {\n if (!questions?.length || !answers?.length) return;\n if (userId !== null) {\n answers = await Promise.all(\n answers.map(async (answer, index) => {\n if (\n [\n questionTypes.TEXT,\n questionTypes.IMAGE_COMMENT,\n questionTypes.VIDEO_COMMENT,\n ].indexOf(questions[index].type) > -1\n ) {\n const report = await getWordCloudAnalysis(answer, userId);\n answer.push(report);\n }\n return answer;\n })\n );\n }\n return answers;\n };\n\n const onEndSurvey = async (answers, questions, surveyAccess) => {\n await addWordCloudAnalysis(answers, questions);\n\n if (isModeratedSurvey(survey)) {\n onSubmitLiveQuestion(answers);\n return;\n }\n const endDate = new Date();\n setEndsAt(endDate);\n\n let response = {\n userId,\n answers,\n filePath: isUnmoderatedQualSurvey(survey)\n ? survey._id + \"_\" + userId + \".json\"\n : \"\",\n startedAt,\n endsAt: endDate,\n };\n if(surveyAccess) {\n response = {\n answers,\n filePath: isUnmoderatedQualSurvey(survey)\n ? survey._id + \"_\" + userId + \".json\"\n : \"\",\n startedAt,\n endsAt: endDate,\n }\n }\n if (isUnmoderatedQualSurvey(survey)) {\n endUpload();\n }\n handleEndSurvey(survey._id, survey.surveyAccess, response);\n };\n\n const closeSurvey = () => {\n if (isUnmoderatedQualSurvey(survey)) {\n endUpload(false);\n }\n };\n\n return [onStartSurvey, onEndSurvey, closeSurvey];\n};\n","import React, { useEffect, useState } from \"react\";\nimport \"./form.css\";\n// antd\nimport { Modal } from \"antd\";\nimport bgUser from \"../../../assets/user-login-bg.png\";\n\nimport Sidenav from \"../../../components/user/sidenav/Sidenav\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport { userPages } from \"../../../constants\";\nimport { surveyStates } from \"../../../features/survey/constants/constants\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n decrementPendingRequests,\n getUserId,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { getSurveys } from \"../../../actions/users\";\nimport {\n getAvailableSlots,\n getScheduledSlotForUserTimeStamp,\n isSlotExpiredForUser,\n} from \"../../../features/survey/utils/moderated/schedule\";\nimport { isModeratedSurvey } from \"../../../features/survey/utils/utils\";\n\nimport { useCancelCall } from \"../../../features/survey/hooks/qualSurvey/moderatedSurvey/useCancelCall\";\nimport SurveyCard from \"../../../features/survey/components/SurveyCard\";\nimport InstructionModal from \"../../../features/survey/components/InstructionModal/InstructionModal\";\nimport SurveyWrapper from \"../../../features/survey/components/survey/SurveyWrapper\";\n\nconst Form = ({ profile }) => {\n const dispatch = useDispatch();\n\n const cancelCall = useCancelCall();\n const allSurveys = useSelector((state) => state.user.surveys);\n const [userId, setUserId] = useState(\"\");\n const [refinedSurveyList, setRefinedSurveyList] = useState(null);\n const [instructionModalVisible, setInstructionModalVisible] = useState(false);\n const [showSurveyModal, setShowSurveyModal] = useState(false);\n const [selectedSurvey, setSelectedSurvey] = useState({});\n\n //modal to open survey box when user clicks on survey\n const showInstructionModal = (obj) => {\n console.log(obj);\n setSelectedSurvey(obj);\n setInstructionModalVisible(true);\n };\n\n const hideInstructionModal = () => {\n setInstructionModalVisible(false);\n };\n\n const handleSurveyClick = () => {\n hideInstructionModal();\n setShowSurveyModal(true);\n };\n\n //get all surveys from server\n useEffect(() => {\n if (allSurveys) {\n let surveyList = allSurveys.sort(\n (a, b) => new Date(b.createdAt) - new Date(a.createdAt)\n );\n\n // remove surveys which are ended\n surveyList = surveyList.filter((survey) => {\n return survey.status !== surveyStates.END;\n });\n\n //list of surveys scheduled for the user to take\n const unScheduledSurveys = [];\n const moderatedScheduledSurveys = [];\n\n surveyList.forEach((survey) => {\n //find if user is scheduled for the survey\n const scheduledTimeStamp = getScheduledSlotForUserTimeStamp(\n survey.moderatedSlots,\n userId\n );\n if (isModeratedSurvey(survey) && scheduledTimeStamp) {\n survey = {\n ...survey,\n surveyScheduledTimeStamp: scheduledTimeStamp,\n };\n moderatedScheduledSurveys.push(survey);\n } else {\n unScheduledSurveys.push(survey);\n }\n });\n\n moderatedScheduledSurveys.sort(\n (a, b) =>\n new Date(b.surveyScheduledTimeStamp) -\n new Date(a.surveyScheduledTimeStamp)\n );\n const filteredSurveys = [\n ...countAndStoreAvailableSlots(moderatedScheduledSurveys),\n ...countAndStoreAvailableSlots(unScheduledSurveys),\n ];\n setRefinedSurveyList(\n filteredSurveys.filter((survey) => !survey.isExpire)\n );\n }\n }, [allSurveys]);\n\n const countAndStoreAvailableSlots = (surveys) => {\n return surveys.map((survey) => {\n if (!isModeratedSurvey(survey)) return survey;\n const availableSlots = getAvailableSlots(survey);\n const isScheduledSurveyExpired = isSlotExpiredForUser(\n survey.surveyScheduledTimeStamp\n );\n\n // cancel call if scheduled survey is expired and survey slots are available\n if (isScheduledSurveyExpired && availableSlots !== 0) {\n cancelCall(survey._id);\n }\n return {\n ...survey,\n availableSlots,\n\n isExpire:\n availableSlots === 0 &&\n (isScheduledSurveyExpired || !survey.surveyScheduledTimeStamp),\n };\n });\n };\n\n const handleSurveyCardClick = (survey, key) => {\n showInstructionModal(survey);\n };\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getSurveys())\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n useEffect(() => {\n const uid = getUserId();\n setUserId(uid);\n });\n\n console.log(\"refined survey list\", refinedSurveyList);\n\n return (\n \n {/* Instruction Modal */}\n \n \n \n\n {showSurveyModal && (\n {\n setShowSurveyModal(false);\n }}\n />\n )}\n\n \n \n \n \n \n
\n
\n \n
\n
\n \n Live Surveys\n
\n \n Register for new upcoming surveys. The survey amount will be\n added to your wallet once the survey is completed.\n
\n
\n
\n \n
\n
\n \n \n
\n \n All surveys\n
\n {!!refinedSurveyList && refinedSurveyList.length > 0 ? (\n
\n {refinedSurveyList.map((survey, index) => {\n return (\n \n );\n })}\n
\n ) : (\n

No surveys left...

\n )}\n \n \n \n
\n );\n};\n\nexport default Form;\n","import React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Button } from \"antd\";\nimport { LeftOutlined } from \"@ant-design/icons\";\nimport \"./page-layout.css\";\n\nexport default function ProjectPageLayout({ children, noTop, style }) {\n let classes = \"project-page\";\n if (noTop) classes = \"project-page no-top\";\n return (\n
\n {children}\n
\n );\n}\n\nexport function Content({ children, style = {}, contentClass = \"\" }) {\n return (\n \n {children}\n \n );\n}\n\nexport function InnerContainer({ children, contentClass = \"\", style = {} }) {\n return (\n \n {children}\n \n );\n}\n\nexport function InnerTopBar({ title }) {\n const history = useHistory();\n return (\n
\n \n {title}\n
\n );\n}\n","import React from \"react\";\nimport styles from \"./form-item-label.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nexport default function FormItemLabel({ name, description, hint, extra }) {\n return (\n

\n {name}{\" \"}\n {hint && {hint}} {extra}\n {description && (\n \n
\n \n {description}\n \n
\n )}\n

\n );\n}\n","import { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Input, Tooltip } from \"antd\";\nimport React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst InputBox = (props) => {\n const {\n value,\n onChange,\n placeholder,\n style = {},\n rule = false,\n limit,\n options,\n } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n\n const isRulePassed = () => {\n if (!rule) return true;\n return value.length === limit;\n };\n\n return (\n onChange(e.target.value)}\n size={isTabletOrMobile ? \"middle\" : \"large\"}\n placeholder={placeholder}\n style={{ ...style }}\n suffix={\n value && isRulePassed() ? (\n \n ) : (\n \n \n \n )\n }\n {...options}\n />\n );\n};\n\nexport default InputBox;\n","import React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Button as AntdButton } from \"antd\";\n\nconst Button = (props) => {\n const { type, style, children, ...rest } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n\n return (\n \n {children}\n \n );\n};\n\nexport default Button;\n","import { Radio } from \"antd\";\nimport React from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\nimport styles from \"./multiple-choice.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst MultipleChoice = ({\n key,\n choices,\n onChange = () => {},\n value,\n color,\n}) => {\n return (\n onChange(e.target.value)}\n defaultValue={value}\n >\n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val)}\n \n ))}\n \n );\n};\n\nexport default MultipleChoice;\n","import { Checkbox } from \"antd\";\nimport React from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\n\nconst Checkboxes = ({ key, choices, onChange = () => {}, value, color }) => {\n return (\n onChange(checkedValue)}\n >\n {choices.map((val, index) => (\n \n {capitalizeFirstCharacter(val)}\n \n ))}\n \n );\n};\n\nexport default Checkboxes;\n","import { CheckCircleFilled, EditFilled } from \"@ant-design/icons\";\nimport React from \"react\";\nimport styles from \"./profile-question-box.module.css\";\nimport c from \"classnames/bind\";\nimport { useState } from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\nimport MultipleChoice from \"../profile-questions/multiple-choice/MultipleChoice\";\nimport Checkboxes from \"../profile-questions/checkboxes/Checkboxes\";\nimport { InputNumber } from \"antd\";\nimport CheckboxesSpecial from \"../profile-questions/checkboxes-special/CheckboxesSpecial\";\n\nconst cx = c.bind(styles);\n\nconst Age = ({ key, options, value, onChange }) => {\n return (\n \n );\n};\n\nconst ProfileQuestionBox = (props) => {\n const { key, question, questionObject, value, onChange } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 1000px)\" });\n const [editable, setEditable] = useState(false);\n\n const renderQuestion = () => {\n const { questionType, options } = questionObject;\n switch (questionType) {\n case \"multipleChoice\":\n return (\n \n );\n case \"checkboxes\":\n return (\n \n );\n case \"checkboxesSpecial\":\n return (\n \n );\n case \"location\":\n return (\n \n );\n case \"age\":\n return (\n \n );\n default:\n return;\n }\n };\n\n return (\n
\n
\n {question}\n {!editable ? (\n setEditable(!editable)}\n >\n Edit\n
\n ) : (\n setEditable(!editable)}\n />\n )}\n
\n
\n {editable\n ? renderQuestion()\n : value\n ? questionObject.questionType !== \"age\"\n ? value.map((val) => questionObject.options[val]).join(\", \")\n : value[0]\n : \"\"}\n
\n \n );\n};\n\nexport default ProfileQuestionBox;\n","import { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Input, Tooltip } from \"antd\";\nimport React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { EMAIL_VALIDATION_REGEX } from \"../../../constants\";\n\nconst EmailInputBox = (props) => {\n const { value, onChange, options } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n\n const isValidEmail = () => {\n return EMAIL_VALIDATION_REGEX.test(value);\n };\n\n return (\n onChange(e.target.value)}\n size={isTabletOrMobile ? \"middle\" : \"large\"}\n placeholder=\"Email\"\n style={{\n border: \"none\",\n backgroundColor: \"#EEE\",\n borderRadius: \"5px\",\n }}\n suffix={\n value && isValidEmail() ? (\n \n ) : (\n \n \n \n )\n }\n {...options}\n />\n );\n};\n\nexport default EmailInputBox;\n","import { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Input, Tooltip, Button } from \"antd\";\nimport React from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nfunction isNumeric(n) {\n if (n === \"\") return true;\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nconst MobileInputBox = (props) => {\n const {\n value,\n onChange,\n handleCancel,\n placeholder,\n style = {},\n rule = false,\n limit,\n options,\n } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n console.log(handleCancel);\n const isRulePassed = () => {\n if (!rule) return true;\n return value.length === limit;\n };\n\n return (\n isNumeric(e.target.value) && onChange(e.target.value)}\n maxLength={10}\n size={isTabletOrMobile ? \"middle\" : \"large\"}\n placeholder={placeholder}\n style={{\n paddingTop: 0,\n paddingBottom: 0,\n paddingRight: 0,\n border: \"none\",\n backgroundColor: \"#EEE\",\n height: \"100%\",\n }}\n suffix={\n <>\n
\n {value && isRulePassed() ? (\n \n ) : (\n \n \n \n )}\n
\n \n Cancel\n \n \n }\n {...options}\n />\n );\n};\n\nexport default MobileInputBox;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./profile.module.css\";\nimport c from \"classnames/bind\";\nimport ProjectPageLayout, {\n Content,\n InnerContainer,\n} from \"../../../components/page-layout/PageLayout\";\nimport { Col, Form, Input, Row, Card } from \"antd\";\nimport FormItemLabel from \"../../../components/form-item-label/FormItemLabel\";\nimport InputBox from \"../../../components/input-box/InputBox\";\nimport Button from \"../../../components/button/Button\";\nimport ProfileQuestionBox from \"../../../components/user/profile-question-box/ProfileQuestionBox\";\nimport { EMAIL_VALIDATION_REGEX, userPages } from \"../../../constants\";\nimport Sidenav from \"../../../components/user/sidenav/Sidenav\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport { useMediaQuery } from \"react-responsive\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { getProfileQuestions } from \"../../../actions/users\";\nimport EmailInputBox from \"../../../components/profile/email-input-box/EmailInputBox\";\nimport MobileInputBox from \"../../../components/profile/mobile-input-box/MobileInputBox\";\nimport \"./Profile.css\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\n\nconst cx = c.bind(styles);\n\nconst shouldDisableOTP = (number) => {\n if (!number) return true;\n else if (number.length !== 10) return true;\n return false;\n};\n\nconst Profile = ({\n usedForClient,\n profile,\n handleEditProfile,\n handleSendEmail,\n handleSendOtp,\n handleVerifyOtp,\n}) => {\n const dispatch = useDispatch();\n const smBreakpoint = useMediaQuery({ query: \"(max-width: 768px)\" });\n const mdBreakpoint = useMediaQuery({ query: \"(max-width: 1000px)\" });\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n const [form] = Form.useForm();\n\n const profileQuestions = useSelector((state) => state.user.profileQuestions);\n const [otpStatus, setOtpStatus] = useState(\n profile && profile.isMobileNumberVerified ? \"verified\" : undefined\n );\n const [emailStatus, setEmailStatus] = useState(\n profile && profile.isEmailVerified ? \"verified\" : undefined\n );\n const [profileAnswers, setProfileAnswers] = useState([]);\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(\n getProfileQuestions([\n \"additionalQuestions\",\n \"sampleQuestions\",\n \"regQuestions\",\n ])\n )\n .then(() => setProfileAnswers(profile && profile.adminQuestionsAnswers))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, profile]);\n\n // Handlers\n const onSubmit = (values) => {\n Object.keys(values).forEach(\n (key) => values[key] === undefined && delete values[key]\n );\n if (\n values.mobileNumber !== profile.mobileNumber &&\n otpStatus !== \"verified\"\n ) {\n notify(\"error\", \"Error\", \"Please verify mobile number first.\");\n return;\n }\n handleEditProfile(values, profileAnswers);\n };\n\n const handleCancel = () => {\n setOtpStatus(\"verified\");\n };\n\n const onSendEmail = () => {\n const email = form.getFieldValue(\"email\");\n handleSendEmail(email);\n };\n\n const onEditEmail = () => {\n setEmailStatus(undefined);\n };\n\n const onSendOtp = () => {\n const mobileNumber = form.getFieldValue(\"mobileNumber\");\n handleSendOtp(mobileNumber).then(() => setOtpStatus(\"verifying\"));\n };\n\n const onVerifyOtp = (value) => {\n const mobileNumber = form.getFieldValue(\"mobileNumber\");\n handleVerifyOtp(value, mobileNumber).then(() => setOtpStatus(\"verified\"));\n };\n\n const onEditMobileNumber = () => {\n setOtpStatus(undefined);\n };\n\n const updateProfileAnswers = (value, id) => {\n const obj = profileAnswers.find((val) => val.questionId === id);\n if (obj) {\n setProfileAnswers(\n profileAnswers.map((val) => {\n if (val.questionId !== id) return val;\n return {\n ...val,\n answer: Array.isArray(value) ? value : [value],\n };\n })\n );\n } else {\n setProfileAnswers([\n ...profileAnswers,\n {\n questionId: id,\n answer: Array.isArray(value) ? value : [value],\n },\n ]);\n }\n };\n\n const input_filed_styles = {\n border: \"none\",\n borderRadius: \"5px\",\n backgroundColor: \"#EEF1F2\",\n color: \"#404040\",\n };\n\n return (\n \n {!usedForClient && (\n <>\n \n \n \n \n \n )}\n \n \n \n
\n \n \n Profile Details\n \n \n This information will only be shared with us.\n
\n
\n \n \n \n {profile &&\n profile.registeredVia !== 0 &&\n emailStatus === \"verified\" ? (\n \n Edit\n \n }\n />\n ) : (\n \n \n \n )}\n \n \n {!emailStatus && (\n \n {() => (\n \n Send Verification Link\n \n )}\n \n )}\n {emailStatus === \"verified\" && (\n \n Verified\n \n )}\n \n \n \n \n \n {profile &&\n profile.registeredVia !== 1 &&\n otpStatus === \"verified\" ? (\n \n Edit\n \n }\n />\n ) : (\n \n \n \n )}\n \n \n {!otpStatus && (\n \n {() => (\n \n Send OTP\n \n )}\n \n )}\n {otpStatus === \"verifying\" && (\n
\n \n
\n )}\n {otpStatus === \"verified\" && (\n \n Verified\n \n )}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {!usedForClient && (\n <>\n \n {!usedForClient && (\n
\n This will be shared with the companies you work for.\n
\n )}\n\n \n \n \n \n \n \n )}\n
\n
\n \n Save\n \n \n
\n {/* \n Terms of use and privacy policy\n
\n Thanks for using UserQual as per the terms and privacy policy\n you accepted on sign up.\n
\n
*/}\n \n {!usedForClient && (\n
\n \n Profile Questions\n \n \n The more questions you answer, the more surveys you will\n get and get paid.\n
\n
\n {profileQuestions && profileQuestions.length > 0\n ? profileQuestions\n .filter((val) => val.questionType === \"profile\")\n .map((val, index) => (\n ans.questionId === val._id\n )\n ? profileAnswers.find(\n (ans) => ans.questionId === val._id\n ).answer\n : undefined\n }\n onChange={(values) =>\n updateProfileAnswers(values, val._id)\n }\n />\n ))\n : null}\n
\n \n )}\n
\n \n \n
\n
\n
\n );\n};\n\nexport default Profile;\n","import React from \"react\";\nimport { Modal, Checkbox, Radio } from \"antd\";\nimport { styled } from \"@linaria/react\";\n\nexport const GreenCheckbox = styled(Checkbox)`\n & .ant-checkbox-checked .ant-checkbox-inner {\n background-color: #71cfd7;\n border-color: #71cfd7;\n }\n`;\nexport const GreenRadio = styled(Radio)`\n & .ant-radio-checked .ant-radio-inner {\n border-color: #71cfd7 !important ;\n }\n & .ant-radio-checked .ant-radio-inner:after {\n background-color: #71cfd7;\n }\n & .ant-radio:hover .ant-radio-inner {\n border-color: #71cfd7;\n }\n & .ant-radio-checked .ant-radio-inner:focus {\n border-color: #71cfd7;\n }\n`;\nexport const CustomModal = styled(Modal)`\n & .ant-btn-primary {\n background-color: #71cfd7;\n border-color: #71cfd7;\n }\n & .ant-btn-primary:hover {\n background-color: #61afb7;\n border-color: #61afb7;\n }\n`;\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"./settings.module.css\";\nimport c from \"classnames/bind\";\nimport ProjectPageLayout, {\n Content,\n InnerContainer,\n} from \"../../../components/page-layout/PageLayout\";\nimport { Form, Radio, Checkbox, Button, Input, Select, Modal } from \"antd\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport {\n userPages,\n ACCESS_LEVEL,\n EMAIL_VALIDATION_REGEX,\n} from \"../../../constants\";\nimport Sidenav from \"../../../components/user/sidenav/Sidenav\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport \"./settings.css\";\nimport { GreenRadio, CustomModal } from \"../../client/Components\";\nimport { capitalizeFirstCharacter, notify, fetchUsers } from \"../../../utils\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst cx = c.bind(styles);\n\nconst accessOptions = [\n {\n value: ACCESS_LEVEL.create,\n text: \"Create Access\",\n },\n {\n value: ACCESS_LEVEL.publish,\n text: \"Publish Access\",\n },\n {\n value: ACCESS_LEVEL.admin,\n text: \"Admin Access\",\n },\n];\n\nconst plans = [\n {\n value: \"basic\",\n text: \"Basic (Free)\",\n },\n {\n value: \"premium\",\n text: \"Premium\",\n },\n {\n value: \"elite\",\n text: \"Elite\",\n },\n];\n\nconst InviteUser = ({ inviteUser }) => {\n const [email, setEmail] = useState(\"\");\n const [access, setAccess] = useState(ACCESS_LEVEL.create);\n\n async function onInviteClick() {\n if (!email || !EMAIL_VALIDATION_REGEX.test(email)) {\n notify(\"error\", \"Error\", \"Invalid email\");\n return;\n }\n await inviteUser(email.toLowerCase(), access);\n\n setEmail(\"\");\n setAccess(ACCESS_LEVEL.create);\n }\n\n return (\n \n
\n setEmail(e.target.value)}\n bordered={false}\n className={cx(\"input-box\")}\n placeholder=\"Enter user email here to invite\"\n style={{\n maxWidth: 380,\n }}\n />\n
\n
\n setAccess(value)}\n className={cx(\"access-selector\")}\n style={{ marginRight: 8 }}\n >\n {accessOptions.map(({ value, text }) => (\n \n {text}\n \n ))}\n \n \n Invite\n \n
\n \n );\n};\n\nconst Settings = ({\n usedForClient,\n profile,\n handleEditProfile,\n updateAccountName,\n}) => {\n console.log(usedForClient, profile, handleEditProfile, updateAccountName);\n const [modal, setModal] = useState(false);\n const [form] = Form.useForm();\n const [localAccountName, setLocalAccountName] = useState(null);\n const [selectedOption, setSelectedOption] = useState(profile?.paymentMethod);\n const [localPaymentId, setLocalPaymentId] = useState(profile?.paymentId);\n const [clientToDelete, setClientToDelete] = useState(\"\");\n const [clientToDeleteIsTemp, setClientToDeleteIsTemp] = useState(false);\n const [clientNameToDelete, setClientNameToDelete] = useState(\"\");\n const [removeUserModal, setRemoveUserModal] = useState(false);\n const [users, setUsers] = useState([]);\n const accessLevel = profile?.accessLevel;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n useEffect(() => {\n form.setFieldsValue({\n localAccountName: profile?.account?.accountName,\n });\n setLocalAccountName(profile?.account?.accountName);\n }, [profile?.account?.accountName]);\n\n useEffect(() => {\n if (profile?.paymentId) {\n form.setFieldsValue({\n paymentId: profile.paymentId,\n });\n setLocalPaymentId(profile.paymentId);\n }\n }, [profile?.paymentId]);\n\n useEffect(() => {\n if (usedForClient && profile?.account?._id) {\n (async () => {\n const fetchedUsers = await fetchUsers(profile.account._id);\n setUsers(fetchedUsers);\n })();\n }\n }, [usedForClient, accessLevel, profile?.account?._id]);\n\n const onSettingsChange = (newValues) => {\n // onChange({\n // ...value,\n // ...newValues,\n // });\n };\n\n const onRadioChange = (e) => {\n setSelectedOption(e.target.value);\n setLocalPaymentId(\"\");\n form.setFieldsValue({\n paymentId: \"\",\n });\n onSettingsChange({ method: e.target.value });\n };\n\n const onInputChange = (e) => {\n setLocalPaymentId(e.target.value);\n onSettingsChange({ email: e.target.value });\n };\n\n const radioOptionStyle = {\n fontSize: isTabletOrMobile ? 12 : 16,\n color: \"#004479\",\n };\n\n const onFinish = async (values) => {\n if (profile?.account?.accountName !== localAccountName) {\n if (!localAccountName) {\n notify(\"error\", \"Error\", \"Account name cannot be empty\");\n return;\n }\n await updateAccountName(localAccountName);\n }\n const dupValues = { ...values };\n if (dupValues.localAccountName) {\n delete dupValues.localAccountName;\n }\n\n handleEditProfile(dupValues, profile.adminQuestionsAnswers);\n };\n\n const sendInvitation = async (email, accessLevel) => {\n let inviter = \"\";\n if (profile.firstName) {\n inviter += profile.firstName;\n if (profile.lastName) {\n inviter += \" \" + profile.lastName;\n }\n } else if (profile.email) {\n inviter += profile.email;\n }\n\n const accountId = profile.account._id;\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.inviteClient(clientId),\n data: {\n data: {\n inviter,\n accountId,\n email,\n accessLevel,\n },\n },\n });\n if (data.success) {\n notify(\"success\", \"Success\", data.message);\n const fetchedUsers = await fetchUsers(profile.account._id);\n setUsers(fetchedUsers);\n } else {\n notify(\"error\", \"Error\", data.message);\n }\n };\n\n const editAccess = async (clientId, accessLevel, pending) => {\n const accountId = profile.account._id;\n const id = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.editAccess(id),\n data: { data: { accountId, clientId, accessLevel, pending } },\n });\n const fetchedUsers = await fetchUsers(accountId);\n setUsers(fetchedUsers);\n notify(\"success\", \"Success\", data.message);\n };\n\n const closeDeleteModal = () => {\n setClientNameToDelete(\"\");\n setClientToDelete(\"\");\n setRemoveUserModal(false);\n };\n\n const removeUser = async () => {\n const id = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.removeClient(id),\n data: {\n data: { clientId: clientToDelete, pending: clientToDeleteIsTemp },\n },\n });\n notify(\"success\", \"Success\", data.message);\n closeDeleteModal();\n const fetchedUsers = await fetchUsers(profile.account._id);\n setUsers(fetchedUsers);\n };\n\n return (\n \n {!usedForClient && (\n <>\n \n \n \n \n \n )}\n \n \n \n
\n
\n \n Account Details\n \n
\n This information will only be shared with us.\n
\n
\n {usedForClient && (\n <>\n
\n Account Name\n
\n
\n {accessLevel === ACCESS_LEVEL.admin ? (\n \n \n setLocalAccountName(e.target.value)\n }\n placeholder=\"Account name\"\n className={cx(\"input-box\")}\n />\n \n ) : (\n
\n {localAccountName}\n
\n )}\n
\n \n )}\n\n {usedForClient &&\n profile?.accessLevel === ACCESS_LEVEL.admin ? (\n
\n
\n
\n Plan\n
\n
\n (What monthly plan are you on?)\n
\n\n
\n {\n setModal(true);\n }}\n value={\n plans[\n profile?.account?.accountTier ??\n profile?.accountTier\n ]?.value\n }\n >\n {plans.map(({ value, text }) => (\n \n {text}\n \n ))}\n \n
\n
\n\n
\n {\n setModal(false);\n }}\n style={{\n height: 500,\n }}\n closeIcon={\n \n }\n footer={\n {\n setModal(false);\n }}\n >\n OK\n \n }\n >\n
\n Please contact hello@userqual.com to change plan\n type\n
\n \n
\n
\n ) : null}\n {!usedForClient && (\n <>\n
\n
\n Payment Settings\n
\n
\n How should we pay you?\n
\n
\n
\n \n \n \n \n \n Paypal\n
\n \n Paytm\n
\n \n GooglePay\n
\n
\n \n \n\n \n \n {selectedOption === \"paypal\" ? (\n \n ) : selectedOption === \"paytm\" ? (\n \n ) : selectedOption === \"googlePay\" ? (\n \n ) : null}\n
\n \n \n \n \n \n
\n
\n Devices\n
\n
\n What devices would you fill your form in?\n
\n
\n \n \n \n Desktop/Laptop\n \n \n iPhone/iPad\n \n \n Android Phone\n \n \n \n
\n
\n \n )}\n \n {((usedForClient && accessLevel === ACCESS_LEVEL.admin) ||\n !usedForClient) && (\n
\n \n Save\n \n
\n
\n )}\n \n
\n
\n {usedForClient && accessLevel === ACCESS_LEVEL.admin && (\n \n
\n

Manage Team

\n
\n Invite new user from your organization\n
\n \n
\n
\n Manage users\n
\n {users.map((user) => {\n let initial = \"\";\n let name = \"\";\n if (user.firstName) {\n initial += user.firstName[0].toUpperCase();\n name += user.firstName;\n if (user.lastName) {\n initial += user.lastName[0].toUpperCase();\n name += ` ${user.lastName}`;\n }\n } else if (user.email) {\n initial += user.email[0].toUpperCase();\n name += user.email;\n } else {\n initial = \"??\";\n name = user.mobileNumber;\n }\n return (\n \n \n \n {initial}\n \n {name}\n {user.pending && (\n \n Invited\n \n )}\n
\n \n {\n editAccess(user.clientId, value, user.pending);\n }}\n className={cx(\"access-selector\")}\n >\n {accessOptions.map(({ value, text }) => (\n \n {text}\n \n ))}\n \n\n {\n setClientToDeleteIsTemp(user.pending);\n setClientToDelete(user.clientId);\n setClientNameToDelete(name);\n setRemoveUserModal(true);\n }}\n >\n Remove\n \n
\n \n );\n })}\n \n \n
\n )}\n\n {usedForClient && accessLevel !== ACCESS_LEVEL.admin && (\n \n
\n

Team

\n
\n {users.map((user) => {\n let initial = \"\";\n let name = \"\";\n let access = `${capitalizeFirstCharacter(\n user.accessLevel\n )} Access`;\n if (user.firstName) {\n initial += user.firstName[0].toUpperCase();\n name += user.firstName;\n if (user.lastName) {\n initial += user.lastName[0].toUpperCase();\n name += ` ${user.lastName}`;\n }\n } else if (user.email) {\n initial += user.email[0].toUpperCase();\n name += user.email;\n } else {\n initial = \"??\";\n name = user.mobileNumber;\n }\n return (\n \n \n \n {initial}\n \n {name}\n {user.pending && (\n \n Invited\n \n )}\n
\n \n {access}\n
\n \n );\n })}\n \n \n
\n )}\n
\n
\n \n \n Remove team member\n \n

Are you sure you want to remove {clientNameToDelete}?

\n \n \n Cancel\n \n \n Remove\n \n \n \n
\n );\n};\n\nexport default Settings;\n","import { Table } from \"antd\";\nimport React from \"react\";\nimport \"./responsive-table.css\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst MobileViewTable = (props) => {\n const { columns, dataSource } = props;\n\n return (\n
\n {dataSource.map((data, index) => (\n
\n {columns.map((col) => (\n
\n
\n {col.title}\n
\n
\n {!!col.render\n ? col.render(data[col.dataIndex], data, index)\n : data[col.dataIndex]}\n
\n
\n ))}\n
\n ))}\n
\n );\n};\n\nconst ResponsiveTable = (props) => {\n const { columns, dataSource, className = \"\" } = props;\n\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 1000px)\" });\n\n return (\n
\n {isTabletOrMobile ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nexport default ResponsiveTable;\n","import React from \"react\";\nimport \"./confused.css\";\nimport { Button } from \"antd\";\nimport { PlayCircleOutlined } from \"@ant-design/icons\";\n\nconst Confused = ({ style }) => {\n return (\n \n // \n );\n};\n\nexport const ExplainerVideo = () => {\n return ;\n};\n\nexport default Confused;\n","import React, { useEffect } from \"react\";\nimport ResponsiveTable from \"../../../components/responsive-table/ResponsiveTable\";\nimport ProjectPageLayout, {\n Content,\n InnerContainer,\n} from \"../../../components/page-layout/PageLayout\";\nimport Confused, {\n ExplainerVideo,\n} from \"../../../components/user/confused/Confused\";\nimport { userPages } from \"../../../constants\";\nimport Sidenav from \"../../../components/user/sidenav/Sidenav\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport moment from \"moment\";\nimport \"./history.css\";\nimport { Button, Col, Row } from \"antd\";\n\nconst History = ({ usedForClient, profile }) => {\n const data = (profile && profile.transactions) || [];\n const columns = [\n {\n title: \"No.\",\n key: \"no\",\n align: \"center\",\n width: \"5%\",\n render: (text, record, index) => {index + 1},\n },\n {\n title: \"Survey Name\",\n key: \"survey_name\",\n align: \"left\",\n dataIndex: \"surveyName\",\n width: \"30%\",\n sorter: (a, b) => a.surveyName.localeCompare(b.surveyName),\n },\n {\n title: \"Date Completed\",\n key: \"date completed\",\n align: \"left\",\n dataIndex: \"timeStamp\",\n render: (text) => moment(text).format(\"DD/MM/YYYY\"),\n width: \"15%\",\n sorter: (a, b) =>\n moment(a[\"timeStamp\"]).unix() - moment(b[\"timeStamp\"]).unix(),\n },\n {\n title: \"Paid\",\n key: \"paid\",\n align: \"center\",\n dataIndex: \"paid\",\n width: \"10%\",\n },\n {\n title: \"Payment Date\",\n key: \"payment_date\",\n align: \"center\",\n dataIndex: \"payment_date\",\n width: \"15%\",\n },\n {\n title: \"Amount\",\n key: \"amount\",\n align: \"center\",\n dataIndex: \"amount\",\n width: \"10%\",\n sorter: (a, b) => a.amount - b.amount,\n },\n {\n title: \"Payment Method\",\n key: \"payment_method\",\n align: \"center\",\n dataIndex: \"payment_method\",\n width: \"15%\",\n },\n ];\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n return (\n \n {!usedForClient && (\n <>\n \n \n \n \n \n )}\n \n \n \n \n \n \n \n

Survey history

\n
\n {usedForClient\n ? \"Account of all the spends from the published survey\"\n : \"Account of all the earnings from the opted survey\"}\n
\n \n \n \n \n
\n \n \n \n \n \n
₹ 0
\n
\n Total amount credited\n
\n \n \n \n \n
₹ 0
\n
Amount pending
\n \n \n \n \n
0
\n
Survey completed
\n \n \n
\n \n \n \n \n
\n \n
\n
\n
\n );\n};\n\nexport default History;\n","import React, { useEffect, useState } from \"react\";\n// antd\nimport {\n MinusOutlined,\n PlusOutlined,\n PlayCircleFilled,\n} from \"@ant-design/icons\";\nimport { Collapse, Button } from \"antd\";\n// components\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Sidenav from \"../../../components/user/sidenav/Sidenav\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Confused from \"../../../components/user/confused/Confused\";\nimport { userPages } from \"../../../constants\";\nimport Survey from \"../survey/Survey\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { getProfileQuestions, editProfile } from \"../../../actions/users\";\nconst { Panel } = Collapse;\n\nconst getTiming = (type) => {\n switch (type) {\n case 0:\n return \"15 mins\";\n case 1:\n return \"30 mins\";\n case 2:\n return \"45 mins\";\n default:\n return;\n }\n};\n\nconst getInstructions = (surveyType) => {\n if (surveyType === \"quantitative\") {\n return (\n
    \n
  • You will be asked a set of questions on your background
  • \n
  • \n We will NOT share this information with clients\n
  • \n
  • \n Please be HONEST as this is used to qualify you for surveys\n
  • \n {/*
  • \n See Informational Video for this survey for more information\n
  • */}\n
  • On completion please click the End button to upload the results
  • \n
  • Click on Green button below to start
  • \n
\n );\n }\n};\n\nconst getSurveyType = (type, mode) => {\n if (!type) return \"quantitative\";\n if (type && !mode) return \"qualitative/unModerated\";\n if (type && mode) return \"qualitative/moderated\";\n};\n\nconst surveyIndex = 0;\nconst SampleSurvey = () => {\n const dispatch = useDispatch();\n const allSurveys = useSelector((state) => state.user.surveys);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getProfileQuestions(\"sampleQuestions\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n // Derived state\n const survey = allSurveys && allSurveys.length > 0 && allSurveys[surveyIndex];\n const surveyHeader =\n survey &&\n `${survey.name} \n ${survey.paymentValue ? \"/ Rs. \" + survey.paymentValue : \"\"}\n ${survey.timingType ? \"/ \" + getTiming(survey.timingType) : \"\"}\n ${survey.questions ? \"/ \" + survey.questions.length + \" questions\" : \"\"}\n `;\n const questions = !!allSurveys ? survey.questions : [];\n const surveyType = survey && getSurveyType(survey.surveyType, survey.mode);\n\n // Handlers\n const onStartSurvey = () => {\n setShowModal(true);\n };\n\n const onEndSurvey = (answers) => {\n console.log(answers);\n const values = {\n areQuestionsAnswered: {\n registration: true,\n sample: true,\n additional: false,\n },\n };\n incrementPendingRequests();\n dispatch(editProfile(values))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n \n \n \n \n \n \n \n {!!survey ? (\n \n isActive ? : \n }\n className=\"basic-questions-collapse\"\n >\n \n \n Survey Informational Video{\" \"}\n \n \n

\n

Instructions:

\n {survey && getInstructions(surveyType)}\n

\n {surveyType === \"quantitative\" && (\n \n {\"Start Survey\"}\n \n )}\n {showModal && (\n setShowModal(false)}\n brandName={survey.brandName}\n brandLogo={survey.brandLogo}\n surveyInstructions={survey.instructions}\n />\n )}\n \n \n ) : (\n

No surveys left...

\n )}\n
\n
\n
\n );\n};\n\nexport default SampleSurvey;\n","import React, { useState } from \"react\";\nimport styles from \"./reg-questions.module.css\";\nimport c from \"classnames/bind\";\nimport { Button, InputNumber, message } from \"antd\";\nimport MultipleChoice from \"../../../components/user/profile-questions/multiple-choice/MultipleChoice\";\nimport Checkboxes from \"../../../components/user/profile-questions/checkboxes/Checkboxes\";\nimport Modal from \"react-modal\";\nimport { PlayCircleFilled } from \"@ant-design/icons\";\nimport CheckboxesSpecial from \"../../../components/user/profile-questions/checkboxes-special/CheckboxesSpecial\";\n// import questions from \"./dummyQuestions\"\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\nlet answers = [{ answer: [] }];\nconst RegQuestions = ({\n isOpen,\n onClose,\n questions,\n onEndSurvey = () => {},\n}) => {\n const [step, setStep] = useState(0);\n\n // Derived state\n const endSurveySlideNumber = questions.length;\n\n const getComponentByQuestionType = () => {\n const {\n questionType,\n options,\n start,\n end,\n interval,\n specialField,\n } = questions[step].questionObject;\n\n const onChange = (values) => {\n answers[step] = {\n answer: Array.isArray(values) ? values : [values],\n questionId: questions[step]._id,\n };\n };\n\n switch (questionType) {\n case \"multipleChoice\":\n return (\n \n );\n case \"checkboxes\":\n return (\n \n );\n case \"checkboxesSpecial\":\n return (\n \n );\n case \"age\":\n return (\n \n );\n case \"location\":\n return (\n \n );\n default:\n return;\n }\n };\n\n // Handlers\n const incrementStep = () => {\n if (answers[step].answer.length === 0) {\n message.error(\"Please answer this question first!\");\n return;\n }\n\n if (step === endSurveySlideNumber - 1) {\n onEndSurvey(answers);\n return;\n }\n answers[step + 1] = { answer: [] };\n setStep(step + 1);\n };\n\n return (\n \n
\n
\n {endSurveySlideNumber === 0 && (\n \n

\n Thanks for becoming part of the UserQual team!.
\n
Please see this short video to learn how surveys are\n conducted and how EASY it is to make money by giving your honest\n feedback!.\n

\n onEndSurvey([])}\n >\n Survey Informational Video{\" \"}\n \n \n
\n )}\n {step !== endSurveySlideNumber && (\n \n \n

\n Thanks for becoming part of the UserQual team!.
\n
To qualify for surveys and get paid, we need to get\n some demographic information. This will NOT be shared with\n clients.\n

\n

{questions[step] && questions[step].userField}

\n
\n
\n {questions[step] && getComponentByQuestionType()}\n
\n \n Next\n \n
\n )}\n
\n
\n
\n );\n};\n\nexport default RegQuestions;\n","import React, { useEffect } from \"react\";\nimport { Switch, Route, useHistory } from \"react-router-dom\";\nimport Form from \"./form/Form\";\nimport Profile from \"./profile/Profile\";\nimport Settings from \"./settings/Settings\";\nimport History from \"./history/History\";\nimport Survey from \"./survey/Survey\";\nimport SampleSurvey from \"./sample-survey/SampleSurvey\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../utils\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n editProfile,\n getProfile,\n getProfileQuestions,\n sendEmail,\n sendOtp,\n verifyOtp,\n} from \"../../actions/users\";\nimport RegQuestions from \"./registration-questions/RegQuestions\";\n\nconst User = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const profile = useSelector((state) => state.user.profile);\n const profileQuestions = useSelector((state) => state.user.profileQuestions);\n const isRegQuestionsAnswered =\n profile && profile.areQuestionsAnswered.registration;\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getProfile())\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n\n if (!isRegQuestionsAnswered) {\n incrementPendingRequests();\n dispatch(getProfileQuestions(\"regQuestions\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }\n }, [dispatch]);\n\n const onEndSurvey = (adminQuestionsAnswers) => {\n const values = {\n adminQuestionsAnswers,\n areQuestionsAnswered: {\n registration: true,\n sample: false,\n additional: false,\n },\n };\n incrementPendingRequests();\n dispatch(editProfile(values))\n .then(() => history.push(\"/user/forms\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleEditProfile = (values, profileAnswers) => {\n incrementPendingRequests();\n dispatch(editProfile({ ...values, adminQuestionsAnswers: profileAnswers }))\n .then(() => notify(\"success\", \"Success\", \"Profile edited\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleSendEmail = async (email) => {\n incrementPendingRequests();\n dispatch(sendEmail(email))\n .then(() =>\n notify(\n \"success\",\n \"Email sent!\",\n \"Please click on the link sent to your email to verify it.\"\n )\n )\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleSendOtp = (mobileNumber) => {\n return new Promise((resolve, reject) => {\n incrementPendingRequests();\n dispatch(sendOtp(mobileNumber))\n .then(() => {\n notify(\n \"success\",\n \"OTP sent!\",\n \"Please verify the OTP sent on your mobile\"\n );\n resolve();\n })\n .catch((ex) => {\n notify(\"error\", \"Error\", ex);\n reject();\n })\n .finally(() => decrementPendingRequests());\n });\n };\n\n const handleVerifyOtp = (value, mobileNumber) => {\n return new Promise((resolve, reject) => {\n incrementPendingRequests();\n dispatch(verifyOtp(mobileNumber, value))\n .then(() => {\n notify(\"success\", \"Success\", \"OTP Verified\");\n resolve();\n })\n .catch((ex) => {\n notify(\"error\", \"Error\", \"Wrong OTP. Please enter the correct OTP.\");\n reject();\n })\n .finally(() => decrementPendingRequests());\n });\n };\n\n return (\n \n \n \n {profile && profile.areQuestionsAnswered.sample ? (\n
\n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n {!isRegQuestionsAnswered && (\n \n )}\n \n );\n};\n\nexport default User;\n","import createSurveyIcon from \"../../../assets/create-survey.png\";\nimport historyIcon from \"../../../assets/history.png\";\nimport logOutIcon from \"../../../assets/logout.png\";\nimport profileIcon from \"../../../assets/profile-icon.png\";\nimport publishedSurveyIcon from \"../../../assets/published-survey.png\";\nimport settingIcon from \"../../../assets/settings.png\";\nimport surveyResultIcon from \"../../../assets/survey-result.png\";\n\nexport default {\n createSurveyIcon,\n historyIcon,\n logOutIcon,\n profileIcon,\n publishedSurveyIcon,\n settingIcon,\n surveyResultIcon,\n};\n","import React from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useState } from \"react\";\nimport { styled } from \"@linaria/react\";\nimport logo from \"../../../assets/logo.png\";\nimport { useEffect } from \"react\";\nimport icons from \"./iconImages\";\nimport { BellFilled } from \"@ant-design/icons\";\n\nconst SidenavItem = styled.div`\n background-color: ${(props) => (props.selected ? \"#8EDAD0\" : \"#00233F\")};\n padding: 10px;\n cursor: pointer;\n margin: 15px 0;\n color: white;\n display: flex;\n font-weight: bold;\n border-radius: 5px;\n\n &:hover {\n background-color: #1b3a62;\n color: white;\n }\n`;\n\nconst StyledIcon = styled.img`\n width: 25px;\n margin-right: 10px;\n height: fit-content;\n`;\n\nconst CopyRight = styled.div`\n text-align: center;\n position: absolute;\n bottom: 15px;\n left: 10%;\n color: white;\n font-size: 10px;\n`;\n\nconst Sidenav = ({ drawer, isAdmin = false }) => {\n const history = useHistory();\n const location = useLocation();\n const [selected, setSelected] = useState(\"/client\");\n const className = drawer ? \"sidenav-drawer\" : \"sidenav\";\n\n useEffect(() => {\n const path = location.pathname.split(\"/\");\n if (path.length === 2 && selected !== \"/client\") {\n setSelected(\"/client\");\n } else if (\n path.length > 2 &&\n path[2] !== \"new-survey\" &&\n path[2] !== \"project\"\n ) {\n const pathString = `/${path[1]}/${path[2]}`;\n if (selected !== pathString) setSelected(pathString);\n } else if (\n path.length > 2 &&\n (path[2] === \"new-survey\" || path[2] === \"project\") &&\n selected !== \"/client\"\n ) {\n setSelected(\"/client\");\n }\n }, [location, selected]);\n\n const handleClick = (link) => {\n setSelected(link);\n history.push(link);\n };\n\n return (\n
\n
\n \n
\n handleClick(\"/client\")}\n selected={selected === \"/client\"}\n >\n \n Create Surveys\n \n handleClick(\"/client/published\")}\n selected={selected === \"/client/published\"}\n >\n \n Published Surveys\n \n {isAdmin && (\n handleClick(\"/client/requests\")}\n selected={selected === \"/client/requests\"}\n >\n \n Publish Requests\n \n )}\n handleClick(\"/client/results\")}\n selected={selected === \"/client/results\"}\n >\n \n Survey Results\n \n handleClick(\"/client/profile\")}\n selected={selected === \"/client/profile\"}\n >\n \n Profile\n \n handleClick(\"/client/settings\")}\n selected={selected === \"/client/settings\"}\n >\n \n Settings\n \n handleClick(\"/client/history\")}\n selected={selected === \"/client/history\"}\n >\n \n History\n \n {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"client\");\n localStorage.removeItem(\"survey\");\n handleClick(\"/signin/client\");\n }}\n >\n \n Logout\n \n © 2021 UserQual\n
\n );\n};\n\nexport default Sidenav;\n","import React from \"react\";\nimport \"./form-box-style.css\";\nimport { PlusCircleFilled } from \"@ant-design/icons\";\n\nconst NewFormBox = () => {\n return (\n
\n
\n \n
\n
CREATE NEW SURVEY
\n
\n );\n};\n\nexport default NewFormBox;\n","import React from \"react\";\nimport { Modal, Button } from \"antd\";\nimport { CloseSquareFilled } from \"@ant-design/icons\";\n\nimport styles from \"./ConfirmationModal.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst ConfirmationModal = ({\n handleOk,\n handleCancel,\n isVisible,\n handleCreateNewSurvey,\n}) => {\n return (\n \n }\n closable={true}\n footer={[\n handleCreateNewSurvey()}\n >\n Nope\n ,\n handleOk()}\n >\n Yes, Copy\n ,\n ]}\n >\n

Would you like to copy a previously published survey?

\n \n );\n};\n\nexport default ConfirmationModal;\n","import React, { useState } from \"react\";\nimport { Fragment } from \"react\";\nimport {\n Table,\n Modal,\n Dropdown,\n Menu,\n Button,\n Checkbox,\n Radio,\n List,\n Card,\n} from \"antd\";\nimport { FilterFilled, CloseSquareFilled } from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport styles from \"./PublishedSurveyListModal.module.css\";\nimport \"./PublishedSurveyListModal.css\";\nimport c from \"classnames/bind\";\nconst RadioGroup = Radio.Group;\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\nconst cx = c.bind(styles);\n\nconst filters = [\n {\n text: \"Qualitative\",\n value: \"Qualitative\",\n },\n {\n text: \"Quantitative\",\n value: \"Quantitative\",\n },\n {\n text: \"Moderated\",\n value: \"Moderated\",\n },\n {\n text: \"UnModerated\",\n value: \"UnModerated\",\n },\n /* {\n text: \"Mobile\",\n value: \"Mobile\",\n },\n {\n text: \"Desktop\",\n value: \"Desktop\",\n }, */\n {\n text: \"Group\",\n value: \"Group\",\n },\n {\n text: \"Individual\",\n value: \"Individual\",\n },\n {\n text: \"15 min\",\n value: \"15 min\",\n },\n {\n text: \"30 min\",\n value: \"30 min\",\n },\n {\n text: \"45 min\",\n value: \"45 min\",\n },\n];\n\nconst PublishedSurveyListModal = ({\n surveyList,\n surveyListModal,\n handleOk,\n handleCancel,\n}) => {\n const isMobile = useMediaQuery({ query: \"(max-width: 500px)\" });\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n const [filterVisible, setFilterVisible] = useState(false);\n const [appliedFilters, setAppliedFilters] = useState([]);\n\n const timing = {\n 1: \"15 min\",\n 2: \"30 min\",\n 3: \"45 min\",\n };\n\n const surveyListColumns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n width: \"150px\",\n },\n {\n title: \"Published Date\",\n dataIndex: \"date\",\n sorter: (a, b) => new Date(a.date) - new Date(b.date),\n render: (date) => moment(date).format(\"DD MMM YYYY\"),\n align: \"left\",\n width: \"100px\",\n },\n {\n title: \"Survey Type\",\n dataIndex: \"type\",\n width: \"150px\",\n className: \"survey-filter\",\n // onFilter: (value, record) => record.type.indexOf(value) > -1,\n },\n Table.SELECTION_COLUMN,\n ];\n\n const getSurveyType = (survey) => {\n let type = \"\";\n type += survey.surveyType ? \"Qualitative\" : \"Quantitative\";\n if (survey.surveyType) {\n type +=\n \"/\" +\n (isMobile ? \"\\n\" : \"\") +\n (survey.mode ? \"Moderated\" : \"UnModerated\");\n type += \"/\" + (survey.device ? \"Mobile\" : \"Desktop\");\n if (survey.mode) {\n type += \"/\" + (survey.setting ? \"Group\" : \"Individual\");\n }\n type += \"/\" + timing[survey.timingType];\n }\n return type;\n };\n\n const getSurveyTags = (survey) => {\n let tags = [];\n tags.push(survey.surveyType ? \"Qualitative\" : \"Quantitative\");\n if (survey.surveyType) {\n tags.push(survey.mode ? \"Moderated\" : \"UnModerated\");\n tags.push(survey.device ? \"Mobile\" : \"Desktop\");\n if (survey.mode) {\n tags.push(survey.setting ? \"Group\" : \"Individual\");\n }\n tags.push(timing[survey.timingType]);\n }\n return tags;\n };\n\n const surveyListData = surveyList\n .map((publishedSurvey, index) => {\n return {\n key: publishedSurvey._id,\n name: publishedSurvey.name,\n date: publishedSurvey.createdAt,\n type: getSurveyType(publishedSurvey),\n tags: getSurveyTags(publishedSurvey),\n survey: publishedSurvey,\n };\n })\n .filter(({ tags }) => {\n if (appliedFilters.length === 0) {\n return true;\n }\n return appliedFilters.some((f) => tags.includes(f));\n });\n\n const handleRadioSelection = (e) => {\n setSelectedSurvey(e.target.value.survey);\n };\n\n const rowSelection = {\n onChange: (selectedRowKeys, selectedRows) => {\n setSelectedSurvey({\n ...selectedRows[0].survey,\n isPublished: false,\n responses: [],\n });\n },\n };\n\n return (\n \n handleOk(selectedSurvey)}\n onCancel={handleCancel}\n width={750}\n centered={true}\n className={cx(\"published-survey-popup\")}\n okText=\"Copy Survey\"\n cancelText=\"Cancel\"\n okButtonProps={{\n size: \"large\",\n className: \"yesButton\",\n disabled: selectedSurvey ? false : true,\n }}\n cancelButtonProps={{ size: \"large\", className: \"noButton\" }}\n closeIcon={\n \n }\n >\n \n
Please Select Survey
\n \n \n {filters.map(({ text, value }) => {\n return (\n \n {text}\n \n );\n })}\n \n \n }\n trigger={[\"click\"]}\n visible={filterVisible}\n onVisibleChange={setFilterVisible}\n placement=\"bottomCenter\"\n >\n \n Filter\n \n \n \n \n (\n \n \n \n
\n \n \n {new Date(item.date).getUTCDate()}\n
\n
\n {months[new Date(item.date).getUTCMonth()]}\n
\n \n \n
\n {item.name}\n
\n \n {item.tags.map((it, index) => {\n return index === item.tags.length - 1 ? (\n
{it}
\n ) : (\n
{it}/
\n );\n })}\n \n \n \n
\n \n
\n \n \n
\n )}\n />\n \n {/* */}\n \n
\n );\n};\n\nexport default PublishedSurveyListModal;\n","import { notification } from \"antd\";\n\nconst handleNetworkErrors = (err) => {\n if (err.response) {\n console.log(err.response);\n const messageExists =\n err.response.data && err.response.data.message ? true : false;\n const errorExists =\n err.response.data &&\n err.response.data.error &&\n err.response.data.error.message\n ? true\n : false;\n let desc = \"Unknown Error\";\n if (messageExists && !errorExists) {\n desc = err.response.data.message;\n } else if (!messageExists && errorExists) {\n desc = err.response.data.error.message;\n }\n notification.error({\n message: desc,\n description: `${err.response.status} ${err.response.statusText}`,\n });\n } else if (err.request) {\n notification.info({\n message: \"Can't connect with the server\",\n description: \"Seems like there is no internet connectivity.\",\n });\n } else {\n notification.error({\n message: \"Unknown error occurred\",\n description: \"Please try again\",\n });\n }\n};\n\nexport default handleNetworkErrors;\n","import copy from \"../../../assets/copy.png\";\nimport trash from \"../../../assets/trash (1).png\";\nexport default { copy, trash };\n","import { Modal, Input, Button, Select, Switch } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport styles from \"./share-modal.module.css\";\nimport c from \"classnames/bind\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport {\n PERMISSION,\n getClientInitials,\n getClientDisplayName,\n ACCESS_LEVEL,\n} from \"../../constants\";\nimport { cloneDeep, isEqual } from \"lodash\";\nimport { getClientId } from \"../../utils\";\n\nconst cx = c.bind(styles);\n\nconst permissionOptions = [\n {\n text: \"View Access\",\n value: PERMISSION.VIEW,\n },\n {\n text: \"Edit Access\",\n value: PERMISSION.EDIT,\n },\n];\n\nconst ShareModal = ({\n open,\n onCancel,\n updateSharedList,\n projectName,\n surveyName,\n allUsers,\n sharedUsers = [],\n}) => {\n const ownersClientId = getClientId();\n const availableUsers = allUsers.filter(\n (user) => user.clientId !== ownersClientId\n );\n\n const updateSharedUser = async (clientId, sharedUserObj) => {\n const newSharedUsers = sharedUsers.filter(\n (sharedUser) => sharedUser.client !== clientId\n );\n if (sharedUserObj !== null) {\n newSharedUsers.push(sharedUserObj);\n }\n await updateSharedList(newSharedUsers);\n };\n\n return (\n \n \n Share with team members\n \n\n {allUsers.length < 2 ? (\n
\n You do not have any team members!\n
\n ) : (\n
\n
\n

Project: {projectName}

\n {!!surveyName &&

Survey: {surveyName}

}\n
\n {availableUsers.map((user) => {\n return (\n sharedUser.client === user.clientId\n )}\n />\n );\n })}\n
\n )}\n \n );\n};\n\nconst TeamMemberShareControl = ({ user, sharedUserObj, updateSharedUser }) => {\n const [isUserSelected, setIsUserSelected] = useState(!!sharedUserObj);\n\n const switchHandler = async (checked) => {\n if (!checked) {\n await updateSharedUser(user.clientId, null);\n } else {\n await updateUserPermission(PERMISSION.VIEW);\n }\n setIsUserSelected(checked);\n };\n\n const updateUserPermission = async (permission) => {\n await updateSharedUser(user.clientId, {\n client: user.clientId,\n permission,\n });\n };\n\n useEffect(() => {\n setIsUserSelected(!!sharedUserObj);\n }, [sharedUserObj]);\n\n let initial = \"\";\n let name = \"\";\n if (user.firstName) {\n initial += user.firstName[0].toUpperCase();\n name += user.firstName;\n if (user.lastName) {\n initial += user.lastName[0].toUpperCase();\n name += ` ${user.lastName}`;\n }\n } else if (user.email) {\n initial += user.email[0].toUpperCase();\n name += user.email;\n } else {\n initial = \"??\";\n name = user.mobileNumber;\n }\n\n return (\n \n \n \n {initial}\n \n {name}\n \n \n {\n updateUserPermission(value);\n }}\n className={cx(\"access-selector\")}\n >\n {permissionOptions.map(({ value, text }) => (\n \n {text}\n \n ))}\n \n\n switchHandler(checked)}\n />\n \n \n );\n};\n\nexport default ShareModal;\n","import React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport styles from \"./DraftFormBoxCopy.module.css\";\nimport {\n UserOutlined,\n VideoCameraOutlined,\n FileTextOutlined,\n UserAddOutlined,\n UserDeleteOutlined,\n UsergroupAddOutlined,\n} from \"@ant-design/icons\";\nimport { useState } from \"react\";\nimport { Modal, Button, notification } from \"antd\";\nimport moment from \"moment\";\nimport c from \"classnames/bind\";\nimport images from \"./imageIndex\";\nimport { Fragment } from \"react\";\nimport { ShareAltOutlined } from \"@ant-design/icons\";\nimport ShareModal from \"../ShareModal\";\nimport axios, { Routes } from \"../../../services/API\";\n\nconst cx = c.bind(styles);\n\n// const { confirm } = Modal;\n\nexport const Flex = styled.div`\n display: flex;\n flex-direction: ${(props) => (props.row ? \"row\" : \"column\")};\n justify-content: ${(props) => (props.justify ? props.justify : \"flex-start\")};\n align-items: ${(props) => (props.align ? props.align : \"\")};\n align-self: ${(props) => (props.alignSelf ? props.alignSelf : \"\")};\n`;\n\nconst DraftFormBoxCopy = ({\n name,\n edit,\n deleteSurvey,\n copySurvey,\n surveyType,\n mode,\n device,\n setting,\n timingType,\n createdBy,\n updatedAt,\n isOwner,\n projectName,\n allUsers,\n surveySharedUsers,\n surveyId,\n}) => {\n const [hover, setHover] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [shareModal, setShareModal] = useState(false);\n const [sharedUsers, setSharedUsers] = useState(surveySharedUsers);\n\n const updateSharedUsers = async (shared) => {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.editSurveyShared(clientId, surveyId),\n data: { data: { shared } },\n });\n setSharedUsers(shared);\n notification.success({\n message: \"Updated shared users list for the survey\",\n });\n };\n\n /* function showDeleteConfirm() {\n confirm({\n title: \"Are you sure you want to delete this Survey?\",\n icon: ,\n okText: \"Yes\",\n okType: \"danger\",\n cancelText: \"No\",\n onOk() {\n deleteSurvey();\n },\n onCancel() {\n console.log(\"Cancel\");\n },\n });\n } */\n return (\n setHover(true)}\n onMouseLeave={() => setHover(false)}\n className={cx(\"draft-box\")}\n >\n
\n
\n
DRAFT
\n {hover && (\n
\n
\n \n {surveyType ? (\n \n ) : (\n \n )}\n \n {/* */}\n
\n
\n \n {mode ? (\n \n ) : (\n \n )}\n \n {/* */}\n
\n
\n \n {mode ? (\n \n ) : (\n \n )}\n \n {/* */}\n
\n {surveyType === true && timingType !== undefined && (\n \n {timingType === 1 && 15}\n {timingType === 2 && 30}\n {timingType === 3 && 45} mins\n \n )}\n
\n )}\n
\n
\n \n {name}\n
\n
\n {moment(updatedAt).format(\"DD MMMM YYYY\")}\n
\n
\n \n
\n
\n {hover && isOwner && (\n \n
\n setShowModal(true)}\n title=\"Delete Survey\"\n />\n
\n
\n \n
\n setShareModal(true)}\n >\n \n
\n \n )}\n
\n
\n EDIT\n
\n \n \n setShowModal(false)}\n >\n Cancel\n \n \n Delete\n \n \n }\n >\n \n Are you sure you want to delete this Survey?\n \n \n {isOwner && (\n setShareModal(false)}\n projectName={projectName}\n surveyName={name}\n allUsers={allUsers}\n sharedUsers={sharedUsers}\n updateSharedList={updateSharedUsers}\n />\n )}\n \n );\n};\n\nexport default DraftFormBoxCopy;\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport ProjectLayout from \"../../../components/page-layout/PageLayout\";\nimport NewFormBox from \"./NewFormBox\";\nimport ConfirmationModal from \"./CopySurveyModals/ConfirmationModal\";\nimport PublishedSurveyListModal from \"./CopySurveyModals/PublishedSurveyListModal\";\nimport { getRoleByToken } from \"../../../utils\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { notification, Button, Modal, Input } from \"antd\";\nimport {\n LeftOutlined,\n ShareAltOutlined,\n EditFilled,\n DeleteFilled,\n} from \"@ant-design/icons\";\nimport DraftFormBoxCopy from \"./DraftFormBoxCopy\";\nimport c from \"classnames/bind\";\nimport styles from \"./draft-forms.module.css\";\nimport ShareModal from \"../ShareModal\";\n\nconst cx = c.bind(styles);\n\nconst DraftForms = ({\n surveys,\n copySurvey,\n updateSurveys,\n deleteSurvey,\n generateNewSurvey,\n profile,\n getProject,\n}) => {\n const history = useHistory();\n const { projectId } = useParams();\n const firstName = profile.firstName ? profile.firstName : \"\";\n const lastName = profile.lastName ? profile.lastName : \"\";\n const email = profile.email ? profile.email : \"\";\n const createdBy = firstName.length > 0 ? firstName + \" \" + lastName : email;\n\n const [copySurveyPopup, setCopySurveyPopup] = useState(false);\n const [publishedSurveyPopup, setPublishedSurveyPopup] = useState(false);\n const [publishedSurveysList, setPublishedSurveysList] = useState(\n surveys.filter((s) => s && s.isPublished === true)\n );\n const [draftSurveys, setDraftSurveys] = useState([]);\n const [projectName, setProjectName] = useState(\"\");\n const [isProjectOwner, setIsProjectOwner] = useState(false);\n const [editNameModal, setEditNameModal] = useState(false);\n const [tempProjectName, setTempProjectName] = useState(\"\");\n const [deleteProjectModal, setDeleteProjectModal] = useState(false);\n const [shareModal, setShareModal] = useState(false);\n const [allUsers, setAllUsers] = useState([]);\n const [sharedUsers, setSharedUsers] = useState([]);\n const [owner, setOwner] = useState(\"\");\n\n useEffect(() => {\n let fetchingSurvey = true;\n getProject(projectId).then(({ project, surveys }) => {\n if (fetchingSurvey) {\n if (!project) {\n history.push(\"/client\");\n return;\n }\n setDraftSurveys(surveys);\n setProjectName(project.name);\n setTempProjectName(project.name);\n const clientId = localStorage.getItem(\"client\");\n setOwner(project.owner);\n setIsProjectOwner(clientId === project.owner);\n setSharedUsers(project.shared);\n }\n });\n\n return () => {\n fetchingSurvey = false;\n };\n }, [projectId, getProject]);\n\n useEffect(() => {\n let fetchingUsers = true;\n if (profile?.account?._id) {\n (async () => {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.getAccountUsers(clientId, profile.account._id),\n });\n if (fetchingUsers) {\n setAllUsers(data.allUsers);\n }\n })();\n }\n\n return () => {\n fetchingUsers = false;\n };\n }, [profile?.account?._id]);\n\n const copyPublishedSurvey = async (survey) => {\n try {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = Routes.client.copySurvey(\n id,\n survey._id,\n projectId\n );\n const { data } = await axios[method](url);\n\n notification.success({\n message: \"Survey is copied successfully\",\n });\n updateSurveys();\n } catch (err) {\n handleNetworkErrors(err);\n } finally {\n setPublishedSurveyPopup(false);\n }\n };\n\n const closeEditModal = () => {\n setEditNameModal(false);\n setTempProjectName(projectName);\n };\n\n const updateProjectName = async () => {\n if (!tempProjectName) {\n notification.error({ message: \"Project name cannot be empty\" });\n return;\n }\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.editProjectName(clientId, projectId),\n data: { data: { projectName: tempProjectName } },\n });\n setProjectName(tempProjectName);\n closeEditModal();\n notification.success({\n message: \"Project name updated successfully\",\n });\n };\n\n const deleteProject = async () => {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.deleteProject(clientId, projectId),\n });\n notification.success({\n message: \"Project deleted successfully\",\n });\n history.push(\"/client\");\n };\n\n const updateProjectShare = async (sharedClients) => {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.editProjectShare(clientId, projectId),\n data: { data: { shared: sharedClients } },\n });\n setSharedUsers(sharedClients);\n notification.success({\n message: \"Updated shared users list for the project\",\n });\n };\n\n return (\n \n \n \n \n {\n history.push(`/client`);\n }}\n />\n {projectName}\n \n {isProjectOwner && (\n \n setShareModal(true)}\n >\n Share\n \n setEditNameModal(true)}\n >\n Edit\n \n {\n setDeleteProjectModal(true);\n }}\n >\n Delete\n \n \n )}\n \n
\n <>\n {surveys && (\n <>\n {isProjectOwner && (\n {\n if (publishedSurveysList.length > 0) {\n setCopySurveyPopup(true);\n } else {\n generateNewSurvey(projectId);\n }\n }}\n >\n \n
\n )}\n {\n setCopySurveyPopup(false);\n setPublishedSurveyPopup(true);\n }}\n handleCancel={() => {\n setCopySurveyPopup(false);\n }}\n handleCreateNewSurvey={() => {\n setCopySurveyPopup(false);\n generateNewSurvey(projectId);\n }}\n isVisible={copySurveyPopup}\n />\n copyPublishedSurvey(survey)}\n handleCancel={() => setPublishedSurveyPopup(false)}\n />\n {draftSurveys.length > 0 &&\n draftSurveys.map((item, idx) => (\n \n \n history.push(`/client/new-survey/${item[\"_id\"]}`)\n }\n deleteSurvey={() => deleteSurvey(item[\"_id\"])}\n surveyType={item.surveyType}\n mode={item.mode}\n device={item.device}\n copySurvey={() => copySurvey(item, projectId)}\n setting={item.setting}\n timingType={item.timingType}\n createdBy={createdBy}\n updatedAt={item.updatedAt}\n isOwner={isProjectOwner}\n allUsers={allUsers}\n surveySharedUsers={item.shared}\n projectName={projectName}\n surveyId={item._id}\n />\n \n ))}\n \n )}\n \n \n
\n \n \n Edit Project\n \n
\n setTempProjectName(e.target.value)}\n className={cx(\"input-box\")}\n />\n
\n \n \n Cancel\n \n \n Update\n \n \n \n setDeleteProjectModal(false)}\n >\n \n Delete Project\n \n

\n Are you sure you want to delete this project? All the surveys in the\n project will be deleted.\n

\n \n setDeleteProjectModal(false)}\n >\n Cancel\n \n \n Delete\n \n \n \n setShareModal(false)}\n updateSharedList={updateProjectShare}\n projectName={projectName}\n sharedUsers={sharedUsers}\n owner={owner}\n allUsers={allUsers}\n />\n
\n );\n};\n\nexport default DraftForms;\n","import React from \"react\";\nimport { FolderOpenFilled, UsergroupAddOutlined } from \"@ant-design/icons\";\n\nexport const FolderIcon = () => {\n return (\n
\n \n
\n );\n};\n\nexport const SharedFolderIcon = () => {\n return (\n \n \n \n \n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport {\n Button,\n Modal,\n Input,\n notification,\n Dropdown,\n Menu,\n Typography,\n Spin,\n} from \"antd\";\nimport ProjectLayout from \"../../../components/page-layout/PageLayout\";\nimport styles from \"./project.module.css\";\nimport c from \"classnames/bind\";\nimport { notify } from \"../../../utils\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { FolderIcon, SharedFolderIcon } from \"../../../components/folderIcon\";\nimport {\n ShareAltOutlined,\n MoreOutlined,\n EditOutlined,\n DeleteOutlined,\n} from \"@ant-design/icons\";\nimport ShareModal from \"../ShareModal\";\nimport { cloneDeep } from \"lodash\";\nimport { getClientDisplayName } from \"../../../constants\";\nimport { data } from \"jquery\";\n\nconst cx = c.bind(styles);\nconst { Text } = Typography;\n\nconst getProjects = async () => {\n try {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.getProjects(clientId),\n });\n return data;\n } catch (err) {\n console.log(\"failed to fetch projects\", err);\n }\n};\n\nconst Project = ({ createProject, profile }) => {\n const pendingRequests = useSelector((state) => state.pendingRequests);\n const history = useHistory();\n const [projectName, setProjectName] = useState(\"\");\n const [createProjectModal, setCreateProjectModal] = useState(false);\n const [selfProjects, setSelfProjects] = useState([]);\n const [sharedProjects, setSharedProjects] = useState([]);\n\n const [allUsers, setAllUsers] = useState([]);\n\n const [shareModal, setShareModal] = useState(false);\n const [projectToShare, setProjectToShare] = useState(null);\n const [projectToEdit, setProjectToEdit] = useState(null);\n const [projectToDelete, setProjectToDelete] = useState(null);\n const [deleteProjectModal, setDeleteProjectModal] = useState(false);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n let isFetching = false;\n (async () => {\n try {\n setLoading(true);\n isFetching = true;\n const data = await getProjects();\n\n if (isFetching) {\n setSelfProjects(data.selfProjects);\n setSharedProjects(data.sharedProjects);\n setLoading(false);\n }\n } catch (err) {\n console.log(\"failed to fetch projects\", err);\n }\n })();\n\n return () => {\n isFetching = false;\n };\n }, []);\n\n useEffect(() => {\n let fetchingUsers = true;\n if (profile?.account?._id) {\n (async () => {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.getAccountUsers(clientId, profile.account._id),\n });\n if (fetchingUsers) {\n setAllUsers(data.allUsers);\n }\n })();\n }\n return () => {\n fetchingUsers = false;\n };\n }, [profile?.account?._id]);\n\n const updateProjectShare = async (sharedClients) => {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.editProjectShare(clientId, projectToShare._id),\n data: { data: { shared: sharedClients } },\n });\n const newSelfProjects = cloneDeep(selfProjects);\n const projectToUpdateIndex = newSelfProjects.findIndex(\n (project) => project._id === projectToShare._id\n );\n newSelfProjects[projectToUpdateIndex].shared = sharedClients;\n setSelfProjects(newSelfProjects);\n // setSharedUsers(sharedClients);\n notification.success({\n message: \"Updated shared users list for the project\",\n });\n };\n\n const closeModal = () => {\n setProjectName(\"\");\n setProjectToEdit(null);\n setCreateProjectModal(false);\n };\n\n const closeDeleteModal = () => {\n setDeleteProjectModal(false);\n setProjectToDelete(null);\n };\n\n const deleteProject = async () => {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.deleteProject(clientId, projectToDelete._id),\n });\n const newSelfProjects = cloneDeep(selfProjects);\n setSelfProjects(\n newSelfProjects.filter((project) => project._id !== projectToDelete._id)\n );\n notification.success({\n message: \"Project deleted successfully\",\n });\n closeDeleteModal();\n };\n\n const createProjectHandler = async () => {\n if (!projectName) {\n notify(\"error\", \"Error\", \"Project name cannot be empty\");\n return;\n }\n if (projectToEdit === null) {\n await createProject(projectName);\n } else {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.editProjectName(clientId, projectToEdit._id),\n data: { data: { projectName: projectName } },\n });\n const newSelfProjects = cloneDeep(selfProjects);\n const projectToUpdateIndex = newSelfProjects.findIndex(\n (project) => project._id === projectToEdit._id\n );\n newSelfProjects[projectToUpdateIndex].name = projectName;\n setSelfProjects(newSelfProjects);\n notification.success({\n message: \"Project name updated successfully\",\n });\n }\n\n closeModal();\n };\n\n const routeToProject = (id) => {\n history.push(`/client/project/${id}`);\n };\n\n return (\n \n \n \n
Your projects
\n setCreateProjectModal(true)}\n >\n New Project\n \n \n \n
\n {selfProjects\n .sort((p1, p2) => {\n return (\n new Date(p2.createdAt).getTime() -\n new Date(p1.createdAt).getTime()\n );\n })\n .map((project) => (\n routeToProject(project._id)}\n >\n {project.shared.length > 0 ? (\n \n ) : (\n \n )}\n
\n
{project.name}
\n \n {project.surveyCount} Survey\n {project.surveyCount !== 1 && \"s\"} - Created by{\" \"}\n {getClientDisplayName(profile)}\n \n
\n
\n \n }\n onClick={(e) => {\n e.domEvent.stopPropagation();\n setProjectToEdit({ ...project });\n setProjectName(project.name);\n setCreateProjectModal(true);\n }}\n >\n Edit\n \n }\n onClick={(e) => {\n e.domEvent.stopPropagation();\n setProjectToShare({ ...project });\n setShareModal(true);\n }}\n >\n Share\n \n }\n onClick={(e) => {\n e.domEvent.stopPropagation();\n setProjectToDelete({ ...project });\n setDeleteProjectModal(true);\n }}\n >\n Delete\n \n \n }\n >\n {\n e.stopPropagation();\n }}\n />\n \n
\n
\n ))}\n setCreateProjectModal(true)}\n >\n \n
Add New Project
\n \n \n \n {sharedProjects.length > 0 && (\n <>\n \n
Projects shared with you
\n \n
\n {sharedProjects\n .sort((p1, p2) => {\n return (\n new Date(p2.createdAt).getTime() -\n new Date(p1.createdAt).getTime()\n );\n })\n .map((project) => (\n routeToProject(project._id)}\n >\n {/* */}\n \n
\n
{project.name}
\n \n {project.surveyCount} Survey\n {project.surveyCount !== 1 && \"s\"} - Created by{\" \"}\n {getClientDisplayName(\n allUsers?.find(\n (user) => user.clientId === project.owner\n )\n )}\n \n
\n
\n ))}\n \n \n )}\n
\n \n \n {projectToEdit === null ? \"Create new project\" : \"Edit project name\"}\n \n
\n setProjectName(e.target.value)}\n className={cx(\"input-box\")}\n />\n
\n \n \n Cancel\n \n \n {projectToEdit === null ? \"Create\" : \"Update\"}\n \n \n \n {projectToDelete !== null && (\n \n \n Delete Project\n \n

\n Are you sure you want to delete \"{projectToDelete.name}\" project?\n All the surveys in the project will be deleted.\n

\n \n \n Cancel\n \n \n Delete\n \n \n \n )}\n {projectToShare && (\n setShareModal(false)}\n updateSharedList={updateProjectShare}\n projectName={projectToShare.name}\n owner={projectToShare.owner}\n sharedUsers={projectToShare.shared || []}\n allUsers={allUsers}\n />\n )}\n
\n );\n};\n\nexport default Project;\n","import React from \"react\";\nimport { Button, Select, Badge } from \"antd\";\nimport { RightOutlined } from \"@ant-design/icons\";\nimport \"./header-buttons-style.css\";\n\nconst { Option } = Select;\n\nconst valueMap = [\"setup\", \"questions\", \"criteria\", \"participants\", \"publish\"];\n\nconst HeaderButtons = (props) => {\n const {\n step,\n setStep,\n setup,\n questions,\n criteria,\n participants,\n publish,\n disableQuestionsPage = false,\n } = props;\n\n const handleSelectChange = (value) => {\n switch (value) {\n case \"setup\":\n setStep(1);\n break;\n case \"questions\":\n setStep(2);\n break;\n case \"criteria\":\n setStep(3);\n break;\n case \"participants\":\n setStep(4);\n break;\n case \"publish\":\n setStep(5);\n break;\n default:\n break;\n }\n };\n\n const getCount = () => {\n if (step === 1) return setup;\n else if (step === 2) return questions;\n else if (step === 3) return criteria;\n else if (step === 4) return participants;\n else if (step === 5) return publish;\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n\n \n setStep(1)}\n >\n Setup\n \n \n\n = 2 ? { backgroundColor: \"#8EDAD0\" } : {}}\n />\n\n \n setStep(2)}\n disabled={disableQuestionsPage}\n >\n Questions\n \n \n\n = 3 ? { backgroundColor: \"#8EDAD0\" } : {}}\n />\n\n \n setStep(3)}\n >\n Criteria\n \n \n\n = 4 ? { backgroundColor: \"#8EDAD0\" } : {}}\n />\n\n \n setStep(4)}\n >\n Participants\n \n \n\n = 2 ? { backgroundColor: \"#8EDAD0\" } : {}}\n />\n\n \n setStep(5)}\n >\n Publish\n \n \n
\n );\n};\n\nexport default HeaderButtons;\n","import React from \"react\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Typography } from \"antd\";\n\nconst Errors = ({ errors }) => {\n return (\n \n {errors.length !== 0 && (\n \n Before you Publish the survey\n \n )}\n {errors.map((err, idx) => (\n \n \n \n \n
\n {/* \n {err.message}\n */}\n \n {err.description}\n \n
\n \n ))}\n \n );\n};\n\nexport default Errors;\n","import { useReducer, useCallback } from \"react\";\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case \"ADD\": {\n const index = action.payload.index;\n const item = action.payload.item;\n return [\n ...state.slice(0, index),\n item,\n ...state.slice(index, state.length),\n ];\n }\n case \"MOVE\": {\n const result = Array.from(state);\n const startIndex = action.payload.source;\n const endIndex = action.payload.dest;\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n return result;\n }\n case \"REMOVE\": {\n const index = action.payload.index;\n return [\n ...state.slice(0, index),\n ...state.slice(index + 1, state.length),\n ];\n }\n case \"SET\": {\n const index = action.payload.index;\n const result = Array.from(state);\n result[index] = action.payload.item;\n return result;\n }\n case \"SETALL\":\n return action.payload.questions;\n default:\n throw Error(\"Invalid action\");\n }\n};\n\nconst useArray = (initialState = []) => {\n const [array, dispatch] = useReducer(reducer, initialState);\n\n const add = useCallback(\n (item = {}, index = array.length) => {\n dispatch({\n type: \"ADD\",\n payload: {\n index,\n item,\n },\n });\n },\n [dispatch, array.length]\n );\n\n const move = useCallback(\n (source, dest) => {\n dispatch({\n type: \"MOVE\",\n payload: {\n source,\n dest,\n },\n });\n },\n [dispatch]\n );\n\n const remove = useCallback(\n (index) => {\n dispatch({\n type: \"REMOVE\",\n payload: {\n index,\n },\n });\n },\n [dispatch]\n );\n\n const set = useCallback(\n (item, index) => {\n dispatch({\n type: \"SET\",\n payload: {\n item,\n index,\n },\n });\n },\n [dispatch]\n );\n\n return [array, { add, remove, move, set }];\n};\n\nexport default useArray;\n","import React, { useState, useEffect } from \"react\";\nimport {\n Row,\n Col,\n Input,\n Tooltip,\n Select,\n Button,\n Upload,\n message,\n Modal as Modal2,\n} from \"antd\";\nimport Modal from \"react-modal\";\nimport { ExplainerVideo } from \"../../../components/user/confused/Confused\";\nimport styles from \"./setup-style.module.css\";\nimport Errors from \"../new-survey/Errors\";\nimport useArray from \"../useArray\";\nimport {\n ExclamationCircleOutlined,\n CheckCircleOutlined,\n DownOutlined,\n UpOutlined,\n CloudUploadOutlined,\n LoadingOutlined,\n DeleteOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { InnerContainer } from \"../../../components/page-layout/PageLayout\";\nimport axios, { Routes } from \"../../../services/API\";\nimport Survey from \"../../user/survey/Survey\";\nimport { GetFilename } from \"../../../constants\";\n\nexport const RadioButton = ({ isMobile, label, onClick, selected, last }) => {\n let classes;\n if (selected) {\n classes = styles[\"selected-radio-button\"];\n } else {\n classes = styles[\"radio-button\"];\n }\n if (isMobile) {\n classes = styles[\"radio-button-mobile\"];\n }\n const lastMargin = last ? styles[\"last-button\"] : \"\";\n classes = `${classes} ${styles[\"span-col-2-3\"]}`;\n classes = `${classes} ${lastMargin}`;\n\n return (\n onClick()}\n >\n \n {isMobile ? (\n
\n
\n (coming soon)\n
\n ) : (\n \"\"\n )}\n \n );\n};\n\nconst surveyTimingOptions = [\n {\n value: 1,\n label: \"15 mins\",\n },\n {\n value: 2,\n label: \"30 mins\",\n },\n {\n value: 3,\n label: \"45 mins\",\n },\n];\n\nconst Setup = ({\n formName,\n setFormName,\n surveyType,\n surveyAccess,\n formQuestions,\n branchingRules,\n setFormQuestions,\n setSurveyType,\n setSurveyAccess,\n device,\n setDevice,\n mode,\n setMode,\n setting,\n setSetting,\n timingType,\n setTimingType,\n errors,\n questionsErrors,\n surveyInstructions,\n setSurveyInstructions,\n brandName,\n setBrandName,\n brandLogo,\n setBrandLogo,\n guideFile,\n setGuideFile,\n hasQuestions,\n clearQuestions,\n viewOnly,\n}) => {\n const [advancedOptions, setAdvancedOptions] = useState(() => {\n return !!surveyInstructions || !!brandName || !!brandLogo || !!guideFile;\n });\n\n const [uploadingLogo, setUploadingLogo] = useState(false);\n const [uploadingGuide, setUploadingGuide] = useState(false);\n const [formModal, setFormModal] = useState(false);\n const [switchModeModal, setSwitchModeModal] = useState(false);\n const [questions, { add, remove, move, set }] = useArray(formQuestions);\n useEffect(() => {\n setFormQuestions(questions);\n }, [questions, setFormQuestions]);\n useEffect(() => {\n console.log(switchModeModal);\n }, [switchModeModal]);\n\n const modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n };\n\n const logoUploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG\",\n customRequest: async ({ file, onError }) => {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploadingLogo(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n setBrandLogo(data.url);\n message.success(`Logo uploaded successfully`);\n setUploadingLogo(false);\n } else {\n onError();\n message.error(`Logo upload failed`);\n setUploadingLogo(false);\n }\n }\n };\n xhr.send(file);\n },\n maxCount: 1,\n showUploadList: false,\n };\n\n const guideUploadProps = {\n // accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.pdf,.PDF,.doc,.DOC,.\",\n customRequest: async ({ file, onError }) => {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploadingGuide(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n setGuideFile(data.url);\n message.success(`Survey guide uploaded successfully`);\n setUploadingGuide(false);\n } else {\n onError();\n message.error(`Survey guide upload failed`);\n setUploadingGuide(false);\n }\n }\n };\n xhr.send(file);\n },\n maxCount: 1,\n showUploadList: false,\n };\n\n return (\n \n \n \n \n

Name your survey

\n

\n (The name will be only visible to you)\n

\n setFormName(e.target.value)}\n value={formName}\n suffix={\n \n {formName ? (\n \n ) : (\n \n )}\n \n }\n style={{\n marginTop: 12,\n }}\n />\n \n \n \n \n
\n \n \n

\n Select survey options\n

\n

\n (You can modify these settings later)\n

\n \n \n
\n
Survey Accessibility
\n
\n \n setSurveyAccess(true)}\n />\n {\n setSurveyAccess(false);\n }}\n />\n
\n
\n \n \n \n
\n
Survey Type
\n
\n \n setSurveyType(true)}\n />\n {\n setSurveyType(false);\n setMode(false);\n }}\n />\n
\n
\n \n \n {surveyType === true && (\n \n
\n
Survey Mode
\n
\n \n setMode(false)}\n />\n {\n hasQuestions ? setSwitchModeModal(true) : setMode(true);\n }}\n />\n
\n
\n \n \n )}\n {surveyType === true && mode !== undefined && (\n \n
\n
Device
\n
\n \n setDevice(false)}\n />\n {}}\n />\n
\n
\n \n \n )}\n {surveyType === true && mode === true && device !== undefined && (\n \n
\n
Setting
\n
\n \n setSetting(true)}\n />\n setSetting(false)}\n />\n
\n
\n \n \n )}\n {surveyType === true &&\n device !== undefined &&\n ((mode === true && setting !== undefined) || mode === false) && (\n \n \n
Survey Time
\n
\n
\n setTimingType(value)}\n // className={styles[\"survey-time-select\"]}\n style={{ width: \"400px\" }}\n >\n {surveyTimingOptions.map(({ value, label }) => (\n \n {label}\n \n ))}\n \n
\n
\n \n \n )}\n \n \n setAdvancedOptions(!advancedOptions)}\n style={{\n textDecoration: \"underline\",\n cursor: \"pointer\",\n }}\n >\n {advancedOptions ? \"Hide\" : \"View\"} advanced options{\" \"}\n {advancedOptions ? : }\n \n \n {advancedOptions && (\n \n \n

Survey Instructions

\n

You may add any specific instructions for the participants.

\n {\n setSurveyInstructions(e.target.value);\n }}\n className={styles[\"input-box\"]}\n autoSize={{ minRows: 3, maxRows: 5 }}\n />\n \n \n

Survey Branding

\n \n \n

Enter company/brand name

\n setBrandName(e.target.value)}\n placeholder=\"Enter survey brand name\"\n className={`${styles[\"input-box\"]} ${styles[\"brand-name\"]}`}\n />\n \n \n

{brandLogo ? \"Brand logo\" : \"Upload brand logo\"}

\n {brandLogo ? (\n
\n \n
\n {\n setBrandLogo(\"\");\n }}\n />\n
\n
\n ) : (\n \n
\n {uploadingLogo ? (\n \n ) : (\n \n )}\n
Upload
\n
\n
\n )}\n \n
\n \n {surveyType && mode && (\n \n

Survey Discussion Guide

\n

You may upload a discussion guide for the moderator.

\n {guideFile ? (\n
\n {GetFilename(guideFile, 10)}\n {\n setGuideFile(\"\");\n }}\n />\n
\n ) : (\n \n
\n
Upload file
\n {uploadingGuide ? (\n \n ) : (\n \n )}\n
\n
\n )}\n \n )}\n
\n )}\n
\n {\n // if (questionsErrors.length !== 0) {\n // message.error(\n // \"You have errors in your form. Please fix them first.\"\n // );\n // return;\n // }\n setFormModal(true);\n }}\n >\n \n Try your Survey\n \n setFormModal(false)}\n style={modalStyles}\n >\n {formModal && (\n 0 ? [] : questions}\n rules={branchingRules}\n surveyType={surveyType}\n isOpen={formModal}\n onClose={() => setFormModal(false)}\n tryOwnForm={true}\n brandLogo={brandLogo}\n brandName={brandName}\n surveyInstructions={surveyInstructions}\n />\n )}\n \n
\n \n \n \n setSwitchModeModal(false)}\n >\n Cancel\n \n {\n setMode(true);\n clearQuestions();\n setSwitchModeModal(false);\n }}\n >\n Switch\n \n \n }\n >\n \n All questions created will be deleted on switching to Moderated\n Survey. Are you sure you want to switch?\n \n \n
\n );\n};\n\nexport default Setup;\n","import React from \"react\";\nimport { StarOutlined, HeartOutlined, SmileOutlined } from \"@ant-design/icons\";\nimport styles from \"./form-star.module.css\";\nimport c from \"classnames/bind\";\nimport { Select } from \"antd\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst FormStar = ({ options, setOptions }) => {\n return (\n \n
\n
\n
\n {[...Array(options.stars)].map((_, i) => (\n \n {options.starType === \"star\" && (\n \n )}\n {options.starType === \"heart\" && (\n \n )}\n {options.starType === \"smiley\" && (\n \n )}\n \n ))}\n
\n
\n
\n setOptions({ ...options, starType: e })}\n >\n \n \n \n \n setOptions({ ...options, stars: parseInt(e) })}\n >\n {[...Array(8)].map((_, i) => (\n \n ))}\n \n
\n \n );\n};\n\nexport default FormStar;\n","import React from \"react\";\nimport styles from \"./likert.module.css\";\nimport c from \"classnames/bind\";\nimport { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Select, Input, Tooltip } from \"antd\";\n\nconst { Option } = Select;\nconst cx = c.bind(styles);\n\nconst Cirle = () => {\n return
;\n};\n\nconst Likert = ({ options, setOptions }) => {\n return (\n \n
\n
\n {[...Array(options.likertRange)].map((e, i) => (\n \n ))}\n
\n
\n \n {options.likertStartLabel}\n
\n
\n {options.likertMiddleLabel}\n
\n \n {options.likertEndLabel}\n
\n
\n \n\n
\n
\n
Range:
\n
\n
Range:
\n \n setOptions({ ...options, likertRange: value })\n }\n >\n {[...Array(8)].map((e, i) => (\n \n ))}\n \n
\n
\n\n
\n
Start Label:
\n
\n \n setOptions({ ...options, likertStartLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n options.likertStartLabel !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n />\n
\n
\n\n
\n
Middle Label:
\n
\n \n setOptions({ ...options, likertMiddleLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n \n }\n />\n
\n
\n\n
\n
End Label:
\n
\n \n setOptions({ ...options, likertEndLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n options.likertEndLabel !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n />\n
\n
\n
\n \n );\n};\n\nexport default Likert;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./slider.module.css\";\nimport c from \"classnames/bind\";\nimport { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Input, Select, Slider, Tooltip } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst FormSlider = ({ options, setOptions }) => {\n const {\n sliderMin,\n sliderMax,\n sliderStartLabel,\n sliderMiddleLabel,\n sliderEndLabel,\n sliderType,\n } = options;\n\n const [sliderValue, setSliderValue] = useState(\n Math.floor((sliderMin + sliderMax) / 2)\n );\n\n const marks = {\n [sliderMin]: {\n style: {\n color: \"#004791\",\n top: -35,\n },\n label: sliderType === \"percentage\" ? sliderMin + \"%\" : sliderMin,\n },\n [sliderMax]: {\n style: {\n color: \"#004791\",\n top: -35,\n },\n label: sliderType === \"percentage\" ? sliderMax + \"%\" : sliderMax,\n },\n };\n\n // React.useEffect(() => {\n // // console.log(marks);\n // setSliderValue((sliderMin + sliderMax) / 2);\n // });\n useEffect(() => {\n setSliderValue(Math.floor((parseInt(sliderMax) + parseInt(sliderMin)) / 2));\n }, [sliderMin, sliderMax]);\n\n const isMobile = useMediaQuery({ query: \"(max-width: 400px)\" });\n\n console.log(\"slider type=\", sliderValue);\n\n return (\n \n
\n \n sliderType === \"percentage\" ? value + \"%\" : value\n }\n className=\"slider-type\"\n min={sliderMin}\n max={sliderMax}\n value={sliderValue}\n marks={marks}\n />\n
\n \n {sliderStartLabel}\n
\n
\n {sliderMiddleLabel}\n
\n \n {sliderEndLabel}\n
\n \n \n
\n {\n if (value === \"percentage\") {\n setOptions({ ...options, sliderMax: 100, sliderType: value });\n } else {\n setOptions({ ...options, sliderType: value });\n }\n }}\n >\n \n \n \n
\n

Start Value:

\n setOptions({ ...options, sliderMin: value })}\n >\n \n {/* */}\n \n
\n
\n

End Value:

\n {\n console.log(value, typeof value);\n setOptions({ ...options, sliderMax: value });\n }}\n >\n {[...Array(98)].map((e, i) => (\n \n ))}\n \n
\n
\n\n
\n
\n Start Label:\n
\n \n setOptions({ ...options, sliderStartLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n sliderStartLabel !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n // placeholder={isMobile ? \"Start Label\" : \"\"}\n />\n
\n
\n
\n Middle Label:\n
\n \n setOptions({ ...options, sliderMiddleLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n \n }\n // placeholder={isMobile ? \"Middle Label\" : \"\"}\n />\n
\n
\n
\n End Label:\n
\n \n setOptions({ ...options, sliderEndLabel: e.target.value })\n }\n className=\"input-border\"\n suffix={\n sliderEndLabel !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n // placeholder={isMobile ? \"End Label\" : \"\"}\n />\n
\n
\n
\n \n );\n};\n\nexport default FormSlider;\n","import React from \"react\";\nimport styles from \"./MultiChoiceOptions.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Checkbox } from \"antd\";\n\nconst cx = c.bind(styles);\n\nconst MultiChoiceOptions = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox = false,\n setMcq,\n } = props;\n\n return (\n
\n
\n \n \n {choiceNumber}\n \n\n \n
\n
\n
\n setLabel(event.target.value)}\n suffix={\n isFilled ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n {\n \n addChoice(choiceNumber)}\n className={\n checkBox ? \"action-icon action-icon-checkbox\" : \"action-icon\"\n }\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {checkBox && (\n \n setMcq(e.target.checked)}\n >\n \n )}\n
\n }\n {/*
\n {checkBox && }\n
*/}\n
\n \n \n );\n};\n\nexport default MultiChoiceOptions;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport MultiChoiceOptions from \"./MultiChoiceOptions/MultiChoiceOptions\";\n\nconst MultiChoices = ({ options, setOptions, checkBox }) => {\n // const [choiceOptions, setChoiceOptions] = useState(options.multiChoices);\n\n // const [multiChoices, { add, remove, move, set, refresh }] = useArray(options.multiChoices);\n\n const multiChoices = options.multiChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n multiChoices: [\n ...multiChoices.slice(0, index),\n item,\n ...multiChoices.slice(index, multiChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(multiChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, multiChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n multiChoices: [\n ...multiChoices.slice(0, index),\n ...multiChoices.slice(index + 1, multiChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(multiChoices);\n result[index] = item;\n setOptions({ ...options, multiChoices: result });\n };\n\n const setOptionValue = (value, key, index) => {\n const result = { ...multiChoices[index], [key]: value };\n set(result, index);\n };\n\n // useEffect(() => {\n // setOptions({ ...options, multiChoices: multiChoices });\n // // eslint-disable-next-line\n // }, [multiChoices]);\n\n // useEffect(() => {\n // // if(options.multiChoices !== multiChoices){\n // // options.multiChoices.map((c,ind)=>{\n // // set(c, ind);\n // // })\n // // }/ useEffect(() => {\n // // if(options.multiChoices !== multiChoices){\n // // options.multiChoices.map((c,ind)=>{\n // // set(c, ind);\n // // })\n // // }\n // refresh(options.multiChoices)\n // }, [opt\n // refresh(options.multiChoices)\n // }, [options]);\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {multiChoices.map((choice, index) => (\n \n {(provided) => (\n \n \n setOptionValue(value, \"label\", index)\n }\n setMcq={(value) => setOptionValue(value, \"isMcq\", index)}\n isFilled={choice.label !== \"\"}\n totalChoices={multiChoices.length}\n addChoice={(newIndex) => add({ label: \"\" }, newIndex)}\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default MultiChoices;\n","import React, { useState } from \"react\";\nimport styles from \"./imageMultiChoicesOptions.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Checkbox, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst ImageMultiChoiceOptions = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox = false,\n setMcq,\n } = props;\n\n const [uploading, setUploading] = useState(false);\n\n const uploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jif,.JIF,.gif,.GIF\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.imageData = data.url;\n setLabel({\n imageLabel: choice.imageLabel,\n imageData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n // console.log(choice);\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setLabel({\n imageLabel: event.target.value,\n imageData: choice.imageData,\n })\n }\n suffix={\n isFilled.imageLabel ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setLabel({\n imageLabel: choice.imageLabel,\n imageData: event.target.value,\n })\n }\n suffix={\n isFilled.imageData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {checkBox && (\n \n setMcq(e.target.checked)}\n >\n \n )}\n
\n }\n
\n \n );\n};\n\nexport default ImageMultiChoiceOptions;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport ImageMultiChoicesOptions from \"./imageMultiChoicesOptions/imageMultiChoicesOptions\";\nimport useArray from \"../../useArray\";\n\nconst ImageMultiChoices = ({ options, setOptions, checkBox }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.imageMultiChoices\n // );\n\n const imageMultiChoices = options.imageMultiChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n imageMultiChoices: [\n ...imageMultiChoices.slice(0, index),\n item,\n ...imageMultiChoices.slice(index, imageMultiChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(imageMultiChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, imageMultiChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n imageMultiChoices: [\n ...imageMultiChoices.slice(0, index),\n ...imageMultiChoices.slice(index + 1, imageMultiChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(imageMultiChoices);\n result[index] = item;\n setOptions({ ...options, imageMultiChoices: result });\n };\n\n const setOptionValue = (value, key, index) => {\n if (key == \"imageLabel\") {\n const result = {\n ...imageMultiChoices[index],\n imageLabel: value.imageLabel,\n imageData: value.imageData,\n };\n set(result, index);\n } else {\n const result = { ...imageMultiChoices[index], [key]: value };\n set(result, index);\n }\n console.log(options);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {imageMultiChoices.map((choice, index) => (\n \n {(provided) => (\n \n {\n setOptionValue(item, \"imageLabel\", index);\n }}\n totalChoices={imageMultiChoices.length}\n isFilled={{\n imageLabel: choice.imageLabel !== \"\",\n imageData: choice.imageData !== \"\",\n }}\n setMcq={(value) => setOptionValue(value, \"isMcq\", index)}\n addChoice={(newIndex) =>\n add({ imageLabel: \"\", imageData: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default ImageMultiChoices;\n","import React, { useState } from \"react\";\nimport styles from \"./imageMultiChoicesOptions.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst ImageMultiChoiceOptions = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox,\n } = props;\n\n const [uploading, setUploading] = useState(false);\n\n const uploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jif,.JIF,.gif,.GIF\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.imageData = data.url;\n setLabel({\n imageLabel: choice.imageLabel,\n imageData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setLabel({\n imageLabel: event.target.value,\n imageData: choice.imageData,\n })\n }\n suffix={\n isFilled.imageLabel ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setLabel({\n imageLabel: choice.imageLabel,\n imageData: event.target.value,\n })\n }\n suffix={\n isFilled.imageData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n \n \n \n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 1 && (\n removeChoice(choiceNumber)}\n />\n )}\n {/* {checkBox && (\n
\n \n
\n )} */}\n
\n
\n \n \n );\n};\n\nexport default ImageMultiChoiceOptions;\n","import React, { Fragment, useEffect } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport ImageMultiChoicesOptions from \"./imageMultiChoicesOptions/imageMultiChoicesOptions\";\nimport FormStar from \"../form-star/FormStar\";\n\nconst ImageStarRating = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.imageStarRatingChoices\n // );\n\n const imageStarRatingChoices = options.imageStarRatingChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n imageStarRatingChoices: [\n ...imageStarRatingChoices.slice(0, index),\n item,\n ...imageStarRatingChoices.slice(index, imageStarRatingChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(imageStarRatingChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, imageStarRatingChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n imageStarRatingChoices: [\n ...imageStarRatingChoices.slice(0, index),\n ...imageStarRatingChoices.slice(\n index + 1,\n imageStarRatingChoices.length\n ),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(imageStarRatingChoices);\n result[index] = item;\n setOptions({ ...options, imageStarRatingChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n const setStarValue = (item) => {\n console.log(\"star\", item);\n setOptions({\n ...options,\n imageStar: item.stars,\n imageStarType: item.starType,\n });\n };\n\n return (\n \n setStarValue(item)}\n >\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {imageStarRatingChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n totalChoices={imageStarRatingChoices.length}\n isFilled={{\n imageLabel: choice.imageLabel !== \"\",\n imageData: choice.imageData !== \"\",\n }}\n addChoice={(newIndex) =>\n add({ imageLabel: \"\", imageData: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default ImageStarRating;\n","import React from \"react\";\nimport styles from \"./RangeDropDown.css\";\nimport c from \"classnames/bind\";\nimport { Select } from \"antd\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst RangeDropDown = ({ options, setOptions }) => {\n return (\n
\n \n Range:\n
\n setOptions({ ...options, range: value })}\n >\n {[...Array(10)].map((e, i) => (\n \n ))}\n \n \n );\n};\n\nexport default RangeDropDown;\n","import React, { useState } from \"react\";\nimport styles from \"./VideoInstruction.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { GetFilename } from \"../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst VideoInstruction = ({ options, setOptions }) => {\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n options.videoData = data.url;\n setOptions({ ...options, videoData: data.url });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n
\n \n \n \n \n setOptions({ ...options, videoData: event.target.value })\n }\n suffix={\n options.videoData !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setOptions({ ...options, videoLabel: event.target.value })\n }\n suffix={\n options.videoLabel !== \"\" ? (\n \n ) : (\n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n );\n};\n\nexport default VideoInstruction;\n","import React, { useState } from \"react\";\nimport styles from \"./videoStarRatingChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst VideoStarRatingChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox,\n } = props;\n\n const [uploading, setUploading] = useState(false);\n const isDesktop = useMediaQuery({ query: \"(min-width: 1000px)\" });\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.videoData = data.url;\n setLabel({\n videoLabel: choice.videoLabel,\n videoData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n \n
\n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setLabel({\n videoLabel: event.target.value,\n videoData: choice.videoData,\n })\n }\n suffix={\n isFilled.videoLabel ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setLabel({\n videoLabel: choice.videoLabel,\n videoData: event.target.value,\n })\n }\n suffix={\n isFilled.videoData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n \n \n \n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 1 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n
\n \n );\n};\n\nexport default VideoStarRatingChoices;\n","import React, { Fragment } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport FormStar from \"../form-star/FormStar\";\nimport VideoStarRatingChoices from \"./videoStarRatingChoices/videoStarRatingChoices\";\n\nconst VideoStarRating = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.videoStarRatingChoices\n // );\n\n const videoStarRatingChoices = options.videoStarRatingChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n videoStarRatingChoices: [\n ...videoStarRatingChoices.slice(0, index),\n item,\n ...videoStarRatingChoices.slice(index, videoStarRatingChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(videoStarRatingChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, videoStarRatingChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n videoStarRatingChoices: [\n ...videoStarRatingChoices.slice(0, index),\n ...videoStarRatingChoices.slice(\n index + 1,\n videoStarRatingChoices.length\n ),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(videoStarRatingChoices);\n result[index] = item;\n setOptions({ ...options, videoStarRatingChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n const setStarValue = (item) => {\n console.log(\"star\", item);\n setOptions({\n ...options,\n videoStar: item.stars,\n videoStarType: item.starType,\n });\n };\n\n return (\n \n setStarValue(item)}\n >\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {videoStarRatingChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n totalChoices={videoStarRatingChoices.length}\n isFilled={{\n videoLabel: choice.videoLabel !== \"\",\n videoData: choice.videoData !== \"\",\n }}\n addChoice={(newIndex) =>\n add({ videoLabel: \"\", videoData: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n );\n};\n\nexport default VideoStarRating;\n","import React, { Fragment, useState } from \"react\";\nimport styles from \"./TextABTestChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip } from \"antd\";\n\nconst cx = c.bind(styles);\n\nconst TextABTestChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, inputWord: event.target.value })\n }\n suffix={\n isFilled.inputWord ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n
\n \n setValue({ ...choice, percentage: event.target.value })\n }\n suffix={\n \n \n %\n \n {isFilled.percentage ? (\n \n ) : (\n \n \n \n )}\n \n }\n className=\"input-border\"\n />\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n
\n \n );\n};\n\nexport default TextABTestChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport TextABTestChoices from \"./textABTestChoices/TextABTestChoices\";\n\nconst TextABTest = ({ options, setOptions, checkBox }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.textABTestChoices\n // );\n\n const textABTestChoices = options.textABTestChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n textABTestChoices: [\n ...textABTestChoices.slice(0, index),\n item,\n ...textABTestChoices.slice(index, textABTestChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(textABTestChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, textABTestChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n textABTestChoices: [\n ...textABTestChoices.slice(0, index),\n ...textABTestChoices.slice(index + 1, textABTestChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(textABTestChoices);\n result[index] = item;\n setOptions({ ...options, textABTestChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {textABTestChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n inputWord: choice.inputWord !== \"\",\n percentage:\n textABTestChoices\n .filter((choice) => choice && choice !== \"\")\n .reduce(\n (sum, choice) =>\n parseInt(choice.percentage) + sum,\n 0\n ) === 100,\n }}\n totalChoices={textABTestChoices.length}\n addChoice={(newIndex) =>\n add({ inputWord: \"\", percentage: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default TextABTest;\n","import React, { Fragment, useState } from \"react\";\nimport styles from \"./ImageABTestChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { GetFilename } from \"../../../../../constants\";\nimport axios, { Routes } from \"../../../../../services/API\";\n\nconst cx = c.bind(styles);\n\nconst ImageABTestChoices = (props) => {\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jif,.JIF,.gif,.GIF\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n setValue({\n ...choice,\n imageData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, imageLabel: event.target.value })\n }\n // suffix={\n // isFilled.imageLabel ? (\n // \n // ) : (\n // \n // \n // \n // )\n // }\n className=\"input-border\"\n />\n
\n
\n \n setValue({ ...choice, imageData: event.target.value })\n }\n suffix={\n isFilled.imageData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n
\n
\n \n setValue({ ...choice, percentage: event.target.value })\n }\n suffix={\n \n \n %\n \n {isFilled.percentage ? (\n \n ) : (\n \n \n \n )}\n \n }\n className=\"input-border\"\n />\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n
\n \n );\n};\n\nexport default ImageABTestChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport ImageABTestChoices from \"./imageABTestChoices/ImageABTestChoices\";\n\nconst ImageABTest = ({ options, setOptions, checkBox }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.imageABTestChoices\n // );\n\n const imageABTestChoices = options.imageABTestChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n imageABTestChoices: [\n ...imageABTestChoices.slice(0, index),\n item,\n ...imageABTestChoices.slice(index, imageABTestChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(imageABTestChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, imageABTestChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n imageABTestChoices: [\n ...imageABTestChoices.slice(0, index),\n ...imageABTestChoices.slice(index + 1, imageABTestChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(imageABTestChoices);\n result[index] = item;\n setOptions({ ...options, imageABTestChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {imageABTestChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n imageData: choice.imageData !== \"\",\n percentage:\n imageABTestChoices\n .filter((choice) => choice && choice !== \"\")\n .reduce(\n (sum, choice) =>\n parseInt(choice.percentage) + sum,\n 0\n ) === 100,\n }}\n totalChoices={imageABTestChoices.length}\n addChoice={(newIndex) =>\n add(\n { imageLabel: \"\", imageData: \"\", percentage: \"\" },\n newIndex\n )\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default ImageABTest;\n","import React, { Fragment, useState } from \"react\";\nimport styles from \"./VideoABTestChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Spin } from \"antd\";\nimport { GetFilename } from \"../../../../../constants\";\nimport axios, { Routes } from \"../../../../../services/API\";\n\nconst cx = c.bind(styles);\n\nconst VideoABTestChoices = (props) => {\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n setValue({\n ...choice,\n videoData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, videoLabel: event.target.value })\n }\n // suffix={\n // isFilled.videoLabel ? (\n // \n // ) : (\n // \n // \n // \n // )\n // }\n className=\"input-border\"\n />\n
\n
\n \n setValue({ ...choice, videoData: event.target.value })\n }\n suffix={\n isFilled.videoData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n
\n
\n \n setValue({ ...choice, percentage: event.target.value })\n }\n suffix={\n \n \n %\n \n {isFilled.percentage ? (\n \n ) : (\n \n \n \n )}\n \n }\n className=\"input-border\"\n />\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n
\n \n );\n};\n\nexport default VideoABTestChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport VideoABTestChoices from \"./videoABTestChoices/VideoABTestChoices\";\n\nconst VideoABTest = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.videoABTestChoices\n // );\n\n const videoABTestChoices = options.videoABTestChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n videoABTestChoices: [\n ...videoABTestChoices.slice(0, index),\n item,\n ...videoABTestChoices.slice(index, videoABTestChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(videoABTestChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, videoABTestChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n videoABTestChoices: [\n ...videoABTestChoices.slice(0, index),\n ...videoABTestChoices.slice(index + 1, videoABTestChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(videoABTestChoices);\n result[index] = item;\n setOptions({ ...options, videoABTestChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {videoABTestChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n videoData: choice.videoData !== \"\",\n percentage:\n videoABTestChoices\n .filter((choice) => choice && choice !== \"\")\n .reduce(\n (sum, choice) =>\n parseInt(choice.percentage) + sum,\n 0\n ) === 100,\n }}\n totalChoices={videoABTestChoices.length}\n addChoice={(newIndex) =>\n add(\n { videoLabel: \"\", videoData: \"\", percentage: \"\" },\n newIndex\n )\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default VideoABTest;\n","import React, { useState } from \"react\";\nimport styles from \"./AssociationChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip } from \"antd\";\n\nconst cx = c.bind(styles);\n\nconst AssociationChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, label: event.target.value })\n }\n suffix={\n isFilled.label ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setValue({ ...choice, association: event.target.value })\n }\n suffix={\n isFilled.association ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n
\n \n );\n};\n\nexport default AssociationChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport AssociationChoices from \"./associationChoices/AssociationChoices\";\n\nconst Association = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.associationChoices\n // );\n\n const associationChoices = options.associationChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n associationChoices: [\n ...associationChoices.slice(0, index),\n item,\n ...associationChoices.slice(index, associationChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(associationChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, associationChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n associationChoices: [\n ...associationChoices.slice(0, index),\n ...associationChoices.slice(index + 1, associationChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(associationChoices);\n result[index] = item;\n setOptions({ ...options, associationChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {associationChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n label: choice.label !== \"\",\n association: choice.association !== \"\",\n }}\n totalChoices={associationChoices.length}\n addChoice={(newIndex) =>\n add({ label: \"\", association: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default Association;\n","import React, { useState } from \"react\";\nimport styles from \"./ImageAssociationChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst ImageAssociationChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n const [uploading, setUploading] = useState(false);\n\n const uploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jif,.JIF,.gif,.GIF\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.imageData = data.url;\n setValue({ ...choice, imageData: data.url });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, imageData: event.target.value })\n }\n suffix={\n isFilled.imageData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n \n setValue({ ...choice, association: event.target.value })\n }\n suffix={\n isFilled.association ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n \n \n );\n};\n\nexport default ImageAssociationChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport ImageAssociationChoices from \"./ImageAssociationChoices/ImageAssociationChoices\";\n\nconst ImageAssociation = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.imageAssociationChoices\n // );\n\n const imageAssociationChoices = options.imageAssociationChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n imageAssociationChoices: [\n ...imageAssociationChoices.slice(0, index),\n item,\n ...imageAssociationChoices.slice(index, imageAssociationChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(imageAssociationChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, imageAssociationChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n imageAssociationChoices: [\n ...imageAssociationChoices.slice(0, index),\n ...imageAssociationChoices.slice(\n index + 1,\n imageAssociationChoices.length\n ),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(imageAssociationChoices);\n result[index] = item;\n setOptions({ ...options, imageAssociationChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {imageAssociationChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n imageData: choice.imageData !== \"\",\n association: choice.association !== \"\",\n }}\n totalChoices={imageAssociationChoices.length}\n addChoice={(newIndex) =>\n add({ imageData: \"\", association: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default ImageAssociation;\n","import React, { useState } from \"react\";\nimport styles from \"./VideoAssociationChoices.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst VideoAssociationChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setValue,\n } = props;\n\n const [uploading, setUploading] = useState(false);\n\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.videoData = data.url;\n setValue({ ...choice, videoData: data.url });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setValue({ ...choice, videoData: event.target.value })\n }\n suffix={\n isFilled.videoData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n \n setValue({ ...choice, association: event.target.value })\n }\n suffix={\n isFilled.association ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n
\n }\n
\n \n \n );\n};\n\nexport default VideoAssociationChoices;\n","import React from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport VideoAssociationChoices from \"./VideoAssociationChoices/VideoAssociationChoices\";\n\nconst VideoAssociation = ({ options, setOptions }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.videoAssociationChoices\n // );\n\n const videoAssociationChoices = options.videoAssociationChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n videoAssociationChoices: [\n ...videoAssociationChoices.slice(0, index),\n item,\n ...videoAssociationChoices.slice(index, videoAssociationChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(videoAssociationChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, videoAssociationChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n videoAssociationChoices: [\n ...videoAssociationChoices.slice(0, index),\n ...videoAssociationChoices.slice(\n index + 1,\n videoAssociationChoices.length\n ),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(videoAssociationChoices);\n result[index] = item;\n setOptions({ ...options, videoAssociationChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {videoAssociationChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n isFilled={{\n videoData: choice.videoData !== \"\",\n association: choice.association !== \"\",\n }}\n totalChoices={videoAssociationChoices.length}\n addChoice={(newIndex) =>\n add({ videoData: \"\", association: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default VideoAssociation;\n","import React from \"react\";\n// import { message, Upload, Input, Tooltip } from \"antd\";\nimport styles from \"./QuestionInstruction.module.css\";\nimport c from \"classnames/bind\";\n// import {\n// CheckOutlined,\n// InfoCircleOutlined,\n// LoadingOutlined,\n// } from \"@ant-design/icons\";\n\nconst cx = c.bind(styles);\n\nconst QuestionInstruction = ({ options, setOptions }) => {\n /* const [uploading, setUploading] = useState(false);\n const uploadProps = {\n name: \"file\",\n action: \"https://www.mocky.io/v2/5cc8019d300000980a055e76\",\n headers: {\n authorization: \"authorization-text\",\n },\n onChange(info) {\n if (info.file.status === \"uploading\") {\n setUploading(true);\n }\n if (info.file.status !== \"uploading\") {\n console.log(info.file, info.fileList);\n setUploading(false);\n }\n if (info.file.status === \"done\") {\n message.success(`${info.file.name} file uploaded successfully`);\n setOptions({ ...options, questionInstruction: info.file.name });\n // options.questionInstruction = info.file.name;\n setUploading(false);\n } else if (info.file.status === \"error\") {\n message.error(`${info.file.name} file upload failed.`);\n // options.questionInstruction = info.file.name;\n setUploading(false);\n }\n },\n }; */\n return (\n
\n {/*
\n \n
\n Upload File{uploading ? : null}\n
\n \n
\n {options.questionInstruction ? (\n \n setOptions({\n ...options,\n questionInstruction: event.target.value,\n })\n }\n suffix={\n options.questionInstruction ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n ) : null}\n
\n
*/}\n
\n );\n};\n\nexport default QuestionInstruction;\n","import React from \"react\";\nimport styles from \"./AddLink.module.css\";\nimport c from \"classnames/bind\";\nimport { Input, Tooltip } from \"antd\";\nimport { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport { urlPattern } from \"../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst AddLink = ({ link, setLink }) => {\n return (\n
\n setLink(event.target.value)}\n suffix={\n urlPattern.test(link) ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n );\n};\n\nexport default AddLink;\n","import React, { useState } from \"react\";\nimport styles from \"./imageInstruction.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, message, Upload, Button, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { GetFilename } from \"../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst ImageInstruction = ({ options, setOptions }) => {\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n accept: \".png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jif,.JIF,.gif,.GIF\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n options.imageData = data.url;\n setOptions({\n ...options,\n imageData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n
\n \n \n \n \n setOptions({ ...options, imageData: event.target.value })\n }\n suffix={\n options.imageData !== \"\" ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setOptions({ ...options, imageLabel: event.target.value })\n }\n suffix={\n options.imageLabel !== \"\" ? (\n \n ) : (\n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n );\n};\n\nexport default ImageInstruction;\n","import React, { Fragment, useState } from \"react\";\nimport styles from \"./VideoMultiChoicesOptions.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Tooltip, Upload, message, Button, Checkbox, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { GetFilename } from \"../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst VideoMultiChoiceOptions = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox = false,\n setMcq,\n } = props;\n\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.videoData = data.url;\n setLabel({\n videoLabel: choice.videoLabel,\n videoData: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n
\n
\n \n {choiceNumber}\n \n
\n
\n
\n
\n
\n \n setLabel({\n videoLabel: event.target.value,\n videoData: choice.videoData,\n })\n }\n suffix={\n isFilled.videoLabel ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n \n setLabel({\n videoLabel: choice.videoLabel,\n videoData: event.target.value,\n })\n }\n suffix={\n isFilled.videoData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n
\n
\n {\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {/* {checkBox && (\n
\n \n
\n )} */}\n {checkBox && (\n \n setMcq(e.target.checked)}\n >\n \n )}\n
\n }\n
\n \n );\n};\n\nexport default VideoMultiChoiceOptions;\n","import React, { Fragment } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport useArray from \"../../useArray\";\nimport VideoMultiChoiceOptions from \"./videoMultiChoicesOptions/VideoMultiChoicesOptions\";\n\nconst VideoMultiChoices = ({ options, setOptions, checkBox }) => {\n // const [multiChoices, { add, remove, move, set }] = useArray(\n // options.videoMultiChoices\n // );\n\n const videoMultiChoices = options.videoMultiChoices;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n videoMultiChoices: [\n ...videoMultiChoices.slice(0, index),\n item,\n ...videoMultiChoices.slice(index, videoMultiChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(videoMultiChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, videoMultiChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n videoMultiChoices: [\n ...videoMultiChoices.slice(0, index),\n ...videoMultiChoices.slice(index + 1, videoMultiChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(videoMultiChoices);\n result[index] = item;\n setOptions({ ...options, videoMultiChoices: result });\n };\n\n const setOptionValue = (value, key, index) => {\n if (key == \"videoLabel\") {\n const result = {\n ...videoMultiChoices[index],\n videoLabel: value.videoLabel,\n videoData: value.videoData,\n };\n set(result, index);\n } else {\n const result = { ...videoMultiChoices[index], [key]: value };\n set(result, index);\n }\n console.log(options);\n };\n\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {videoMultiChoices.map((choice, index) => (\n \n {(provided) => (\n \n {\n setOptionValue(item, \"videoLabel\", index);\n }}\n totalChoices={videoMultiChoices.length}\n isFilled={{\n videoLabel: choice.videoLabel !== \"\",\n videoData: choice.videoData !== \"\",\n }}\n addChoice={(newIndex) =>\n add({ videoLabel: \"\", videoData: \"\" }, newIndex)\n }\n setMcq={(value) => setOptionValue(value, \"isMcq\", index)}\n removeChoice={(index) => remove(index - 1)}\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nexport default VideoMultiChoices;\n","import React, { Fragment } from \"react\";\nimport { Input, Select, Divider, Button } from \"antd\";\nimport { DownOutlined } from \"@ant-design/icons\";\nimport c from \"classnames/bind\";\nimport styles from \"./NetPromotorScore.module.css\";\nimport { useState, useRef } from \"react\";\n\nconst cx = c.bind(styles);\n\nconst { Option } = Select;\n\nconst NetPromotorScore = ({ options, setOptions }) => {\n const dullGreenButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: \"#00c194\",\n color: \"white\",\n borderRadius: 5,\n };\n\n const greyButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: \"grey\",\n color: \"white\",\n borderRadius: 5,\n };\n\n const [company, setCompany] = useState(\"\");\n const [items, setItems] = useState([\"This Product\", \"This Service\"]);\n const [open, setOpen] = useState(false);\n const ref = useRef(null);\n\n const addItem = () => {\n // items.push(company);\n setItems([...items, company]);\n setCompany(\"\");\n };\n\n const toggleOpen = (e, close) => {\n console.log(\"target\", e.target.innerText);\n if (close !== undefined) {\n setOpen(close);\n } else if (e.target.className === \"ant-select-selection-item\") {\n setOpen(!open);\n }\n };\n\n return (\n \n \n }\n dropdownStyle={{ width: \"auto\", color: \"#004479\" }}\n onClick={toggleOpen}\n onSelect={() => setOpen(false)}\n open={open}\n dropdownRender={(menu) => (\n
\n {/* {console.log(menu)} */}\n {menu}\n \n
\n Specific company, brand, product or service:\n
\n
\n setCompany(e.target.value)}\n />\n
\n
\n \n Save\n \n toggleOpen(e, false)}\n >\n CANCEL\n \n
\n
\n )}\n onChange={(value) => setOptions({ ...options, npsOption: value })}\n >\n {items.map((item, index) => (\n \n {item}\n \n ))}\n \n
\n );\n};\n\nexport default NetPromotorScore;\n","import React, { useState } from \"react\";\nimport { message, Upload, Input, Tooltip } from \"antd\";\nimport styles from \"./SurveyBrief.module.css\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { GetFilename } from \"../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst SurveyBrief = ({ options, setOptions }) => {\n const [uploading, setUploading] = useState(false);\n const uploadProps = {\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n options.surveyBrief = data.url;\n setOptions({\n ...options,\n surveyBrief: data.url,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n return (\n
\n
\n
\n \n \n Upload File{uploading ? : null}\n
\n \n
\n\n
\n {options.surveyBrief ? (\n \n setOptions({\n ...options,\n surveyBrief: event.target.value,\n })\n }\n suffix={\n options.surveyBrief ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n ) : null}\n
\n
\n \n );\n};\n\nexport default SurveyBrief;\n","import React, { Fragment, useState } from \"react\";\nimport styles from \"./ad-analysis-choices.module.css\";\nimport { useMediaQuery } from \"react-responsive\";\nimport c from \"classnames/bind\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n LoadingOutlined,\n} from \"@ant-design/icons\";\nimport { Input, Checkbox, Tooltip, Upload, message, Select, Spin } from \"antd\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { GetFilename } from \"../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst AdAnalysisChoices = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n choice,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n setLabel,\n checkBox,\n } = props;\n\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n const [uploading, setUploading] = useState(false);\n const isDesktop = useMediaQuery({ query: \"(max-width: 1000px)\" });\n const uploadProps = {\n accept: \".mp4,.webm,.ogg\",\n customRequest: async function ({ file, onError }) {\n const userId = localStorage.getItem(\"client\");\n const { name, type } = file;\n setUploading(true);\n const { data } = await axios({\n ...Routes.client.uploadFile(userId),\n data: { data: { name, type } },\n });\n const xhr = new XMLHttpRequest();\n xhr.open(\"PUT\", data.signedRequest);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n choice.videoData = data.url;\n setLabel({\n videoData: data.url,\n videoType: choice.videoType,\n });\n message.success(`${file.name} file uploaded successfully`);\n setUploading(false);\n } else {\n onError();\n message.error(`${file.name} file upload failed.`);\n setUploading(false);\n }\n }\n };\n xhr.send(file);\n },\n };\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n
\n
\n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n
\n
\n
\n
\n
\n \n setLabel({\n videoType: value,\n videoData: choice.videoData,\n })\n }\n >\n Filler\n Main Video\n \n
\n
\n \n setLabel({\n videoLabel: choice.videoLabel,\n videoData: event.target.value,\n })\n }\n suffix={\n isFilled.videoData ? (\n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n
\n
\n
\n \n
\n \n Upload Video\n \n
\n \n {isDesktop || !isChoiceNumberShown ? (\n
\n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {/* {checkBox && (\n
\n \n
\n )} */}\n
\n ) : null}\n
\n
\n \n );\n};\n\nexport default AdAnalysisChoices;\n","import React, { useState } from \"react\";\nimport { Fragment } from \"react\";\nimport ReactPlayer from \"react-player\";\nimport Modal from \"react-responsive-modal\";\n\nexport const Vmodal = ({ isOpen, onCancel, videoUrl }) => {\n console.log(\"video\", videoUrl);\n return (\n onCancel()}\n styles={{\n modal: {\n maxWidth: \"unset\",\n width: \"auto\",\n padding: 45,\n position: \"fixed\",\n top: \"10%\",\n left: \"25%\",\n },\n overlay: {\n background: \"rgba(0, 0, 0, 0.5)\",\n position: \"fixed\",\n height: \"100%\",\n width: \"100%\",\n top: 0,\n },\n closeButton: {\n background: \"#40E0D0\",\n position: \"absolute\",\n top: 0,\n right: 0,\n },\n }}\n center\n >\n \n \n );\n};\n\nconst VideoModal = (url) => {\n const [videoModal, setVideoModal] = useState(false);\n return (\n url.url && (\n \n setVideoModal(true)}\n style={{\n display: \"inline\",\n verticalAlign: \"middle\",\n borderStyle: \"none\",\n }}\n />\n {videoModal && (\n setVideoModal(false)}\n />\n )}\n \n )\n );\n};\n\nexport default VideoModal;\n","import { Select, Button, message } from \"antd\";\nimport React, { useState } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport AdAnalysisChoices from \"./AdAnalysisChoices\";\nimport styles from \"./ad-analysis-choices.module.css\";\nimport c from \"classnames/bind\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { notify } from \"../../../../utils\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Vmodal } from \"../../result/IndividualReponses/ResponseBox/VideoModal/VideoModal\";\n\nconst cx = c.bind(styles);\n\nconst AdAnalysis = ({ options, setOptions }) => {\n const [combining, setCombining] = useState(false);\n const [view, setView] = useState(false);\n const adAnalysisChoices = options.adAnalysisChoices;\n const adAnalysisData = options.adAnalysisData;\n\n const add = (item, index) => {\n setOptions({\n ...options,\n adAnalysisChoices: [\n ...adAnalysisChoices.slice(0, index),\n item,\n ...adAnalysisChoices.slice(index, adAnalysisChoices.length),\n ],\n });\n };\n\n const move = (source, dest) => {\n const result = Array.from(adAnalysisChoices);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n setOptions({ ...options, adAnalysisChoices: result });\n };\n\n const remove = (index) => {\n setOptions({\n ...options,\n adAnalysisChoices: [\n ...adAnalysisChoices.slice(0, index),\n ...adAnalysisChoices.slice(index + 1, adAnalysisChoices.length),\n ],\n });\n };\n\n const set = (item, index) => {\n const result = Array.from(adAnalysisChoices);\n result[index] = item;\n setOptions({ ...options, adAnalysisChoices: result });\n };\n\n const setOptionValue = (item, index) => {\n set(item, index);\n console.log(\"updated\", options);\n };\n\n const handleCombineVideos = async () => {\n const clientId = localStorage.getItem(\"client\");\n const data = {\n inputs: adAnalysisChoices.map((val) => ({\n bucketName: \"userqual-file-upload\",\n fileName: val.videoData.split(\"/\")[3],\n clippings: [],\n })),\n output: {\n resolution: {\n height: 720,\n width: 1280,\n },\n nameModifier: \"combinedVideo\",\n bucket: \"userqual-file-upload\",\n },\n };\n setCombining(true);\n try {\n const response = await axios({\n ...Routes.client.mergeVideos(clientId),\n data: { data },\n });\n setOptions({\n ...options,\n adAnalysisData: {\n url: response.data.url,\n },\n });\n message.success(\"Successfully combined video\");\n } catch (err) {\n notify(\"error\", \"Error\", err.toString());\n } finally {\n setCombining(false);\n }\n };\n\n return (\n
\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {adAnalysisChoices &&\n adAnalysisChoices.map((choice, index) => (\n \n {(provided) => (\n \n setOptionValue(item, index)}\n totalChoices={adAnalysisChoices.length}\n isFilled={{\n videoType: choice.Type !== \"\",\n videoData: choice.videoData !== \"\",\n }}\n addChoice={(newIndex) =>\n add({ videoData: \"\" }, newIndex)\n }\n removeChoice={(index) => remove(index - 1)}\n />\n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n
\n
\n
\n \n 16:9\n 1:1\n 9:16\n 5:4\n \n \n Fit with border\n \n \n Combine{combining ? : null}\n \n setView(true)}\n >\n View\n \n {view && (\n setView(false)}\n videoUrl={adAnalysisData.url}\n />\n )}\n
\n
\n \n );\n};\n\nexport default AdAnalysis;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./survey.module.css\";\nimport c from \"classnames/bind\";\nimport { LogoutOutlined, RightOutlined, LinkOutlined } from \"@ant-design/icons\";\nimport { InputNumber, Modal as AntdModal, Card, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport RobotLarge from \"../../../assets/robot-large.png\";\nimport logo from \"../../../assets/logo.png\";\nimport Text from \"../../../components/user/survey-questions/text/Text\";\nimport MultipleChoice from \"../../../components/user/survey-questions/multiple-choice/MultipleChoice\";\nimport Checkboxes from \"../../../components/user/survey-questions/checkboxes/Checkboxes\";\nimport StarRating from \"../../../components/user/survey-questions/star-rating/StarRating\";\nimport SliderType from \"../../../components/user/survey-questions/slider/Slider\";\nimport Likert from \"../../../components/user/survey-questions/likert/Likert\";\nimport NPS from \"../../../components/user/survey-questions/nps/NPS\";\nimport Ranking from \"../../../components/user/survey-questions/ranking/Ranking\";\nimport Dropdown from \"../../../components/user/survey-questions/dropdown/Dropdown\";\nimport Association from \"../../../components/user/survey-questions/association/Association\";\nimport ImageInstructions from \"../../../components/user/survey-questions/image/instructions/ImageInstructions\";\nimport ImageComment from \"../../../components/user/survey-questions/image/comment/ImageComment\";\nimport ImageMultipleChoice from \"../../../components/user/survey-questions/image/multiple-choice/ImageMultipleChoice\";\nimport ImageCheckboxes from \"../../../components/user/survey-questions/image/checkboxes/ImageCheckboxes\";\nimport ImageRating from \"../../../components/user/survey-questions/image/rating/ImageRating\";\nimport ImageRanking from \"../../../components/user/survey-questions/image/ranking/ImageRanking\";\nimport ImageAssociation from \"../../../components/user/survey-questions/image/association/ImageAssociation\";\nimport Modal from \"react-modal\";\nimport VideoInstruction from \"../../../components/user/survey-questions/video/instruction/VideoInstruction\";\nimport VideoRating from \"../../../components/user/survey-questions/video/rating/VideoRating\";\nimport VideoAssociation from \"../../../components/user/survey-questions/video/association/VideoAssociation\";\nimport VideoRanking from \"../../../components/user/survey-questions/video/ranking/VideoRanking\";\nimport VideoMultipleChoice from \"../../../components/user/survey-questions/video/multiple-choice/VideoMultipleChoice\";\nimport VideoCheckboxes from \"../../../components/user/survey-questions/video/checkboxes/VideoCheckboxes\";\nimport VideoComment from \"../../../components/user/survey-questions/video/comment/VideoComment\";\nimport CheckboxesSpecial from \"../../../components/user/profile-questions/checkboxes-special/CheckboxesSpecial\";\nimport AdAnalysis from \"../../../components/user/survey-questions/ad-analysis/AdAnalysis\";\nimport { useRef } from \"react\";\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst cx = c.bind(styles);\n\nlet answer = [];\n\nconst SurveyQuestion = ({\n question = [],\n isOpen,\n onClose,\n tryOwnForm = false,\n brandLogo = \"\",\n qNo,\n}) => {\n // Hooks\n const TopBarResponsive = useMediaQuery({ query: \"(max-width: 960px)\" });\n const isTablet = useMediaQuery({ query: \"(max-width: 800px)\" });\n const videoRef = useRef(null);\n console.log(\"Running\");\n useEffect(() => {\n // Populate answers with empty array\n answer = [];\n console.log(\"population done\");\n }, []);\n\n useEffect(() => {\n if (isOpen && !tryOwnForm) {\n getVideo();\n }\n }, [videoRef, isOpen, tryOwnForm]);\n\n const getVideo = () => {\n navigator.mediaDevices\n .getUserMedia({ video: { width: 300 } })\n .then((stream) => {\n let videoObject = videoRef.current;\n videoObject.srcObject = stream;\n videoObject.play();\n })\n .catch((err) => {\n console.error(\"error:\", err);\n });\n };\n\n // Derived state\n const getQuestionText = () => {\n const { type, text, options } = question;\n\n switch (type) {\n case \"netPromotorScore\":\n const { npsOption } = options;\n return `How likely is it that you would recommend ${npsOption} to a friend or collegue?`;\n default:\n return text;\n }\n };\n\n const getComponentByQuestionType = () => {\n const { type, options } = question;\n\n const onChange = (values) => {\n answer = Array.isArray(values) ? values : [values];\n };\n\n if (answer) {\n switch (type) {\n case \"text\":\n return ;\n case \"multiChoices\":\n return (\n \n );\n case \"checkBoxes\":\n return (\n \n );\n case \"stars\":\n const { stars, starType } = options;\n return (\n \n );\n case \"slider\":\n answer[0] = answer[0] || 0;\n const {\n sliderType,\n sliderValue,\n sliderMin,\n sliderMax,\n sliderStartLabel,\n sliderMiddleLabel,\n sliderEndLabel,\n } = options;\n return (\n \n );\n case \"likert\":\n const {\n likertRange,\n likertStartLabel,\n likertMiddleLabel,\n likertEndLabel,\n } = options;\n return (\n \n );\n case \"netPromotorScore\":\n return (\n \n );\n case \"ranking\":\n answer = answer.length > 0 ? answer : options.multiChoices;\n return ;\n case \"dropDown\":\n answer[0] = answer[0] || 1;\n const range = options.range;\n return (\n \n );\n case \"association\":\n answer = answer.length > 0 ? answer : options.associationChoices;\n return ;\n case \"imageInstruction\":\n return ;\n case \"imageComment\":\n return (\n \n );\n case \"imageMultiChoices\":\n const { imageMultiChoices } = options;\n return (\n \n );\n case \"imageCheckBoxes\":\n return (\n \n );\n case \"imageStarRatingChoices\":\n if (answer.length === 0) {\n answer[0] = {};\n options.imageStarRatingChoices.forEach((val) => {\n answer[0][val.imageLabel] = 0;\n });\n }\n const { imageStarRatingChoices, imageStar, imageStarType } = options;\n return (\n \n );\n case \"imageRanking\":\n answer = answer.length > 0 ? answer : options.imageMultiChoices;\n return ;\n case \"imageAssociation\":\n answer = answer.length > 0 ? answer : options.imageAssociationChoices;\n return (\n \n );\n case \"videoInstruction\":\n return ;\n case \"videoComment\":\n return (\n \n );\n case \"videoMultiChoices\":\n const { videoMultiChoices } = options;\n return (\n \n );\n case \"videoCheckBoxes\":\n return (\n \n );\n case \"videoStarRatingChoices\":\n if (answer.length === 0) {\n answer[0] = {};\n options.videoStarRatingChoices.forEach((val) => {\n answer[0][val.videoLabel] = 0;\n });\n }\n const { videoStarRatingChoices, videoStar, videoStarType } = options;\n return (\n \n );\n case \"videoRanking\":\n answer = answer.length > 0 ? answer : options.videoMultiChoices;\n return ;\n case \"videoAssociation\":\n answer = answer.length > 0 ? answer : options.videoAssociationChoices;\n return (\n \n );\n case \"age\":\n return (\n \n );\n case \"checkboxesSpecial\":\n const { specialField, multiChoices } = options;\n return (\n \n );\n case \"adAnalysis\":\n const { adAnalysisData } = options;\n return ;\n default:\n return;\n }\n }\n };\n\n const onCloseModal = () => {\n answer = [];\n onClose();\n };\n\n const shouldRenderOptions = () => {\n if (question && question.type === \"questionInstruction\") {\n return false;\n }\n\n return true;\n };\n\n return (\n \n \n
\n {TopBarResponsive ? (\n
\n
\n \n
\n {isTablet ? (\n \n ) : (\n \n QUIT SURVEY \n
\n )}\n
\n ) : (\n <>\n
\n \n
\n \n QUIT SURVEY \n \n \n )}\n
\n {/* QUESTION */}\n
\n
\n \n {qNo}\n
\n\n \n {question && getQuestionText()}\n
\n
\n\n {question.hasLink ? (\n \n \n \n \n\n {question.clientLink}\n \n \n window.open(\"https://\" + question.clientLink, \"_blank\")\n }\n className={cx(\"linkButton\")}\n >\n OPEN\n \n \n \n ) : null}\n \n {/* OPTIONS */}\n {shouldRenderOptions() && question && (\n
\n {question && getComponentByQuestionType()}\n
\n )}\n \n \n
\n );\n};\n\nexport default SurveyQuestion;\n","import React, { Fragment, useState, useRef, useEffect } from \"react\";\nimport styles from \"./question-box-styles.module.css\";\nimport { Button, Popconfirm, Select } from \"antd\";\nimport _, { debounce, isEqual } from \"lodash\";\nimport c from \"classnames/bind\";\nimport {\n DownOutlined,\n CheckSquareOutlined,\n UnorderedListOutlined,\n StarOutlined,\n PicCenterOutlined,\n MenuOutlined,\n CloseCircleOutlined,\n PlusCircleFilled,\n SmallDashOutlined,\n ControlOutlined,\n VideoCameraAddOutlined,\n PercentageOutlined,\n InfoCircleOutlined,\n} from \"@ant-design/icons\";\nimport FormStar from \"./form-star/FormStar\";\nimport Likert from \"./likert/Likert\";\nimport FormSlider from \"./slider/FormSlider\";\nimport MultiChoices from \"./multi-choices/MultiChoices\";\nimport ImageMultiChoices from \"./image-multi-choices/imageMultiChoices\";\nimport ImageStarRating from \"./image-star-rating/ImageStarRating\";\nimport RangeDropDown from \"./rangeDropDown/RangeDropDown\";\nimport VideoInstruction from \"./videoInstruction/VideoInstruction\";\nimport VideoStarRating from \"./video-star-rating/videoStarRating\";\nimport TextABTest from \"./textABTest/TextABTest\";\nimport ImageABTest from \"./imageABTest/ImageABTest\";\nimport VideoABTest from \"./videoABTest/VideoABTest\";\nimport Association from \"./association/Association\";\nimport ImageAssociation from \"./image-association/ImageAssociation\";\nimport VideoAssociation from \"./video-association/VideoAssociation\";\nimport QuestionInstruction from \"./question-instruction/QuestionInsturction\";\nimport AddLink from \"./add-link/AddLink\";\nimport ImageInstruction from \"./imageInstruction/imageInstruction\";\nimport VideoMultiChoices from \"./video-multi-choices/VideoMultiChoices\";\nimport NetPromotorScore from \"./net-promotor-score/NetPromotorScore\";\nimport SurveyBrief from \"./survey-brief/SurveyBrief\";\nimport AdAnalysis from \"./ad-analysis/AdAnalysis\";\nimport SurveyQuestion from \"../../user/survey/SurveyQuestion\";\nimport Modal from \"react-modal\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst extraSpace = [\n \"multiChoices\",\n \"checkBoxes\",\n \"imageMultiChoices\",\n \"videoMultiChoices\",\n \"imageCheckBoxes\",\n \"videoCheckBoxes\",\n \"ranking\",\n \"imageRanking\",\n \"videoRanking\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"textABTest\",\n \"imageABTest\",\n \"videoABTest\",\n \"association\",\n \"imageAssociation\",\n \"videoAssociation\",\n \"adAnalysis\",\n];\n\n// let NPS = null;\n\nconst NPS = ({ options, setOptions }) => {\n return (\n \n \n How likely is it that you would recommend{\" \"}\n to a\n friend or collegue?\n \n \n );\n};\n\nconst questionTypes = {\n stars: ({ options, setOptions }) => (\n \n ),\n likert: ({ options, setOptions }) => (\n \n ),\n slider: ({ options, setOptions }) => (\n \n ),\n netPromotorScore: ({ question, setQuestion, options, setOptions }) => {\n question.text = \"NPS\";\n // return \n },\n multiChoices: ({ options, setOptions }) => (\n \n ),\n imageMultiChoices: ({ options, setOptions }) => (\n \n ),\n videoMultiChoices: ({ options, setOptions }) => (\n \n ),\n checkBoxes: ({ options, setOptions }) => (\n \n ),\n imageCheckBoxes: ({ options, setOptions }) => (\n \n ),\n videoCheckBoxes: ({ options, setOptions }) => (\n \n ),\n ranking: ({ options, setOptions }) => (\n \n ),\n imageRanking: ({ options, setOptions }) => (\n \n ),\n videoRanking: ({ options, setOptions }) => (\n \n ),\n imageStarRatingChoices: ({ options, setOptions }) => (\n \n ),\n videoStarRatingChoices: ({ options, setOptions }) => (\n \n ),\n dropDown: ({ options, setOptions }) => (\n \n ),\n questionInstruction: ({ options, setOptions }) => null,\n videoInstruction: ({ options, setOptions }) => (\n \n ),\n imageInstruction: ({ options, setOptions }) => (\n \n ),\n videoComment: ({ options, setOptions }) => (\n \n ),\n imageComment: ({ options, setOptions }) => (\n \n ),\n textABTest: ({ options, setOptions }) => (\n \n ),\n imageABTest: ({ options, setOptions }) => (\n \n ),\n videoABTest: ({ options, setOptions }) => (\n \n ),\n association: ({ options, setOptions }) => (\n \n ),\n imageAssociation: ({ options, setOptions }) => (\n \n ),\n videoAssociation: ({ options, setOptions }) => (\n \n ),\n text: ({ options, setOptions }) => {\n return;\n },\n surveyBrief: ({ options, setOptions }) => (\n \n ),\n adAnalysis: ({ options, setOptions }) => (\n \n ),\n};\n\nconst QuestionBox = React.forwardRef(\n (\n {\n index,\n dragHandleProps,\n draggableProps,\n question: _question,\n isDragging,\n setQuestion: _setQuestion,\n removeQuestion,\n addQuestion,\n brandLogo,\n setHideTryFormButton,\n surveyType,\n },\n ref\n ) => {\n const [question, setQuestion] = useState(_question);\n const { hasLink } = question;\n const [questionModal, setQuestionModal] = useState(false);\n const debouncedSetQuestion = useRef(debounce(_setQuestion, 700));\n const mountedRef = useRef();\n\n useEffect(() => {\n if (_.isEqual(question, _question)) return;\n setQuestion(_question);\n }, [_question]);\n\n useEffect(() => {\n // console.log(\"question will be updated\", index);\n if (!mountedRef.current) {\n mountedRef.current = true;\n return;\n }\n debouncedSetQuestion.current(question);\n }, [question]);\n // const setQuestion = useCallback(debounce(_setQuestion, 500), []);\n const [deleteVisible, setDeleteVisible] = useState(false);\n const setOptions = (options) => setQuestion({ ...question, options });\n\n const tryQuestionHandler = () => {\n setHideTryFormButton(true);\n setQuestionModal(true);\n };\n\n const closeModalHandler = () => {\n setQuestionModal(false);\n setHideTryFormButton(false);\n };\n\n return (\n \n addQuestion(index)}\n />\n
\n \n \n \n
\n
\n
\n \n {index + 1}\n
\n \n \n
\n
\n
\n {question.type === \"netPromotorScore\" ? (\n \n \n
\n ) : (\n \n setQuestion({ ...question, text: e.target.value })\n }\n />\n )}\n
\n \n }\n onChange={(value) =>\n setQuestion({ ...question, type: value })\n }\n >\n \n \n {surveyType && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n {/* {surveyType && (\n \n )} */}\n \n tryQuestionHandler()}\n >\n Try Question\n \n\n {\n setQuestion({ ...question, hasLink: !hasLink });\n }}\n >\n Add Link\n \n
\n \n \n {typeof questionTypes[question.type] === \"function\" && (\n \n {(hasLink ||\n !(\n [\"questionInstruction\", \"netPromotorScore\", \"text\"].indexOf(\n question.type\n ) > -1\n )) &&
}\n {hasLink ? (\n \n \n setQuestion({ ...question, clientLink: value })\n }\n />\n {question.type &&\n !(\n [\n \"questionInstruction\",\n \"netPromotorScore\",\n \"text\",\n ].indexOf(question.type) > -1\n ) &&
}\n
\n ) : null}\n -1\n ? cx(\"question-grid-extra\")\n : cx(\"question-grid\")\n }\n style={{\n flexGrow: 1,\n width: \"inherit\",\n display:\n [\"questionInstruction\", \"netPromotorScore\", \"text\"].indexOf(\n question.type\n ) > -1\n ? \"none\"\n : \"block\",\n }}\n >\n {question.type === \"netPromotorScore\"\n ? questionTypes[question.type]({\n question: question,\n setQuestion: setQuestion,\n options: question.options,\n setOptions,\n })\n : questionTypes[question.type]({\n options: question.options,\n setOptions,\n })}\n \n
\n )}\n \n setQuestionModal(false)}\n style={modalStyles}\n >\n {console.log(question, \"checkQuestion\")}\n {questionModal && (\n {\n closeModalHandler();\n }}\n tryOwnForm={true}\n brandLogo={brandLogo}\n qNo={index + 1}\n />\n )}\n \n \n );\n }\n);\n\nexport default React.memo(QuestionBox, isEqual);\n","import { branchingActions } from \"../../../constants\";\nimport { isNumber } from \"lodash-es\";\nimport {\n CONDITION_TYPE_ONE,\n CONDITION_TYPE_TWO,\n CONDITION_TYPE_THREE,\n CONDITION_TYPE_FOUR,\n CONDITION_TYPE_FIVE,\n} from \"./BranchingLogic\";\n\nconst getBranchingErrors = (rules) => {\n const err = [];\n\n rules.forEach((rule, idx) => {\n const ruleNumber = idx + 1;\n\n // Conditions\n rule.questions.forEach((ques, i) => {\n const condNumber = i + 1;\n\n if (!isNumber(ques.index)) {\n err.push({\n description: `Criteria missing for Rule No. ${ruleNumber}, Condition No. ${condNumber}`,\n });\n }\n\n if (\n CONDITION_TYPE_ONE.includes(ques.condition) &&\n ques.choices?.length === 0\n ) {\n err.push({\n description: `Choice missing for Rule No. ${ruleNumber}, Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_TWO.includes(ques.condition) && !isNumber(ques.from)) {\n err.push({\n description: `From missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_TWO.includes(ques.condition) && !isNumber(ques.to)) {\n err.push({\n description: `To from for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_THREE.includes(ques.condition) && !ques.label) {\n err.push({\n description: `Label missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_THREE.includes(ques.condition) && !ques.rank) {\n err.push({\n description: `Rank missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_FOUR.includes(ques.condition) && !ques.label) {\n err.push({\n description: `Label missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_FOUR.includes(ques.condition) && !ques.association) {\n err.push({\n description: `Association missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_FIVE.includes(ques.condition) && !ques.label) {\n err.push({\n description: `Label missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (\n CONDITION_TYPE_FIVE.includes(ques.condition) &&\n !isNumber(ques.from)\n ) {\n err.push({\n description: `From missing for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n\n if (CONDITION_TYPE_FIVE.includes(ques.condition) && !isNumber(ques.to)) {\n err.push({\n description: `To from for Rule No. ${ruleNumber}. Condition No. ${condNumber}`,\n });\n }\n });\n\n // Actions\n rule.actions.forEach((action, i) => {\n const actionNumber = i + 1;\n\n if (\n [\n branchingActions.SKIP_TO_QUESTION,\n branchingActions.HIDE_QUESTION,\n branchingActions.INVALIDATE_QUESTION,\n ].includes(action.name) &&\n !isNumber(action.question)\n ) {\n err.push({\n description: `Question missing for Rule No. ${ruleNumber}, Action No. ${actionNumber}`,\n });\n }\n });\n });\n\n return err;\n};\n\nexport default getBranchingErrors;\n","import {\n DeleteOutlined,\n LeftOutlined,\n SwapOutlined,\n SaveOutlined,\n} from \"@ant-design/icons\";\nimport { Button, Col, Row, Select, Badge, Popover, Modal } from \"antd\";\nimport React, { useState, Fragment } from \"react\";\nimport { branchingConditions, branchingActions } from \"../../../constants\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport { useMediaQuery } from \"react-responsive\";\nimport dotProp from \"dot-prop-immutable\";\nimport { isNumber } from \"lodash-es\";\nimport { notify } from \"../../../utils\";\nimport Errors from \"../new-survey/Errors\";\nimport getBranchingErrors from \"./handleErrors\";\nimport \"./branching-logic.css\";\n\nconst dropdownStyle = {\n boxShadow: \"rgb(0 0 0 / 15%) 1px 1px 2px\",\n width: \"100%\",\n borderRadius: 4,\n border: \"none\",\n};\n\n// Testing data\nconst rules = [\n {\n questions: [\n {\n index: 0, // index of question\n condition: branchingConditions.CONTAINS,\n choices: [0], // index of choices\n logicalOr: false,\n },\n /* {\n index: 2,\n condition: branchingConditions.DOES_NOT_CONTAIN_ALL_OF,\n choices: [0, 1, 2],\n logicalOr: false\n } */\n ],\n actions: [\n {\n name: branchingActions.HIDE_QUESTION,\n question: 3, // index of question\n },\n ],\n },\n];\n\nconst DEFAULT_VAULES = {\n RULE: {\n questions: [{ logicalOr: false }],\n actions: [{}],\n },\n QUESTION: { logicalOr: false },\n ACTION: {},\n};\n\nconst QUESTION_TYPE_ONE = [\n \"multiChoices\",\n \"checkBoxes\",\n \"imageMultiChoices\",\n \"imageCheckBoxes\",\n \"videoMultiChoices\",\n \"videoCheckBoxes\",\n];\nconst QUESTION_TYPE_TWO = [\n \"stars\",\n \"slider\",\n \"likert\",\n \"netPromotorScore\",\n \"dropDown\",\n];\nconst QUESTION_TYPE_THREE = [\"ranking\", \"imageRanking\", \"videoRanking\"];\nconst QUESTION_TYPE_FOUR = [\n \"association\",\n \"imageAssociation\",\n \"videoAssociation\",\n];\nconst QUESTION_TYPE_FIVE = [\"imageStarRatingChoices\", \"videoStarRatingChoices\"];\nexport const CONDITION_TYPE_ONE = [\n branchingConditions.CONTAINS,\n branchingConditions.DOES_NOT_CONTAIN,\n branchingConditions.CONTAINS_ONE_OF,\n branchingConditions.DOES_NOT_CONTAIN_ANY_OF,\n branchingConditions.CONTAINS_ALL_OF,\n branchingConditions.DOES_NOT_CONTAIN_ALL_OF,\n branchingConditions.IS_EXACTLY,\n branchingConditions.IS_NOT,\n];\nexport const CONDITION_TYPE_TWO = [branchingConditions.IS_FROM_TO];\nexport const CONDITION_TYPE_THREE = [branchingConditions.RANKING];\nexport const CONDITION_TYPE_FOUR = [branchingConditions.ASSOCIATION];\nexport const CONDITION_TYPE_FIVE = [branchingConditions.IMAGE_VIDEO_RATINGS];\n\nconst questionTypeRange = (type, options) => {\n function getRange(start, end) {\n return Array(end - start + 1)\n .fill()\n .map((_, idx) => start + idx);\n }\n\n switch (type) {\n case \"stars\": {\n const { stars } = options;\n return getRange(1, stars);\n }\n case \"netPromotorScore\": {\n return getRange(0, 10);\n }\n case \"likert\": {\n const { likertRange } = options;\n return getRange(1, likertRange);\n }\n case \"slider\": {\n const { sliderMin, sliderMax } = options;\n return getRange(sliderMin, sliderMax);\n }\n case \"dropDown\": {\n const { range } = options;\n return getRange(1, range);\n }\n case \"ranking\": {\n const { multiChoices } = options;\n return getRange(1, multiChoices.length);\n }\n\n case \"imageRanking\": {\n const { imageMultiChoices } = options;\n return getRange(1, imageMultiChoices.length);\n }\n\n case \"videoRanking\": {\n const { videoMultiChoices } = options;\n return getRange(1, videoMultiChoices.length);\n }\n\n case \"imageStarRatingChoices\": {\n const { imageStar } = options;\n return getRange(1, imageStar);\n }\n case \"videoStarRatingChoices\": {\n const { videoStar } = options;\n return getRange(1, videoStar);\n }\n }\n};\n\nconst BranchingLogic = ({\n closeModal,\n questions,\n oldBranchingRules,\n onSaveRules,\n}) => {\n // Global states\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 430px)\" });\n\n // Component states\n const [rules, setRules] = useState(oldBranchingRules);\n\n // Derived states\n const allowedQuestions = questions.filter(\n (el) =>\n QUESTION_TYPE_ONE.includes(el.type) ||\n QUESTION_TYPE_TWO.includes(el.type) ||\n QUESTION_TYPE_THREE.includes(el.type) ||\n QUESTION_TYPE_FOUR.includes(el.type) ||\n QUESTION_TYPE_FIVE.includes(el.type)\n );\n const errors = getBranchingErrors(rules);\n\n // Rule handlers\n const addRule = (index) => {\n setRules((prevRules) => {\n if (index === undefined) {\n return prevRules.concat([DEFAULT_VAULES.RULE]);\n } else {\n return [\n ...prevRules.slice(0, index + 1),\n DEFAULT_VAULES.RULE,\n ...prevRules.slice(index + 1),\n ];\n }\n });\n };\n\n const removeRule = (ruleIndex) => {\n setRules((prevRules) => dotProp.delete(prevRules, `${ruleIndex}`));\n };\n\n // Question handlers\n const addQuestion = (ruleIndex) => {\n setRules((prevRules) =>\n dotProp.merge(\n prevRules,\n `${ruleIndex}.questions`,\n DEFAULT_VAULES.QUESTION\n )\n );\n };\n\n const getQuestionAttribute = (ruleIndex, questionIndex, attr) => {\n return dotProp.get(\n rules,\n `${ruleIndex}.questions.${questionIndex}.${attr}`\n );\n };\n\n const setQuestionAttribute = (ruleIndex, questionIndex, attr, value) => {\n setRules((prevRules) =>\n dotProp.set(\n prevRules,\n `${ruleIndex}.questions.${questionIndex}.${attr}`,\n value\n )\n );\n };\n\n const deleteQuestion = (ruleIndex, questionIndex) => {\n setRules((prevRules) =>\n dotProp.delete(prevRules, `${ruleIndex}.questions.${questionIndex}`)\n );\n };\n\n // Action handlers\n const addAction = (ruleIndex) => {\n setRules((prevRules) =>\n dotProp.merge(prevRules, `${ruleIndex}.actions`, DEFAULT_VAULES.ACTION)\n );\n };\n\n const getActionAttribute = (ruleIndex, actionIndex, attr) => {\n return dotProp.get(rules, `${ruleIndex}.actions.${actionIndex}.${attr}`);\n };\n\n const setActionAttribute = (ruleIndex, actionIndex, attr, value) => {\n setRules((prevRules) =>\n dotProp.set(\n prevRules,\n `${ruleIndex}.actions.${actionIndex}.${attr}`,\n value\n )\n );\n };\n\n const deleteAction = (ruleIndex, actionIndex) => {\n setRules((prevRules) =>\n dotProp.delete(prevRules, `${ruleIndex}.actions.${actionIndex}`)\n );\n };\n\n // Misc\n const getQuestionChoices = (ruleIndex, questionIndex) => {\n const idx = getQuestionAttribute(ruleIndex, questionIndex, \"index\");\n const { type, options } = questions[idx];\n\n switch (type) {\n case \"multiChoices\":\n return options.multiChoices.map((x) => x.label);\n case \"checkBoxes\":\n return options.multiChoices.map((x) => x.label);\n case \"imageMultiChoices\":\n return options.imageMultiChoices.map((x) => x.imageLabel);\n case \"imageCheckBoxes\":\n return options.imageMultiChoices.map((x) => x.imageLabel);\n case \"videoMultiChoices\":\n return options.videoMultiChoices.map((x) => x.videoLabel);\n case \"videoCheckBoxes\":\n return options.videoMultiChoices.map((x) => x.videoLabel);\n case \"ranking\":\n return options.multiChoices.map((x) => x.label);\n case \"imageRanking\":\n return options.imageMultiChoices.map((x) => x.imageLabel);\n case \"videoRanking\":\n return options.videoMultiChoices.map((x) => x.videoLabel);\n case \"association\":\n return {\n labels: options.associationChoices.map((x) => x.label),\n associations: options.associationChoices.map((x) => x.association),\n };\n case \"imageAssociation\":\n return {\n labels: options.imageAssociationChoices.map(\n (_, i) => `Image ${i + 1}`\n ),\n associations: options.imageAssociationChoices.map(\n (x) => x.association\n ),\n };\n case \"videoAssociation\":\n return {\n labels: options.videoAssociationChoices.map(\n (_, i) => `Video ${i + 1}`\n ),\n associations: options.videoAssociationChoices.map(\n (x) => x.association\n ),\n };\n case \"imageStarRatingChoices\":\n return options.imageStarRatingChoices.map((x) => x.imageLabel);\n case \"videoStarRatingChoices\":\n return options.videoStarRatingChoices.map((x) => x.videoLabel);\n default:\n return [];\n }\n };\n\n const showSelectQuestion = (ruleIndex, actionIndex) => {\n const actionName = getActionAttribute(ruleIndex, actionIndex, \"name\");\n return [\n branchingActions.SKIP_TO_QUESTION,\n branchingActions.HIDE_QUESTION,\n branchingActions.INVALIDATE_QUESTION,\n ].includes(actionName);\n };\n\n const handleChangeLogicalOperator = (ruleIndex, questionIndex) => {\n setRules((prevRules) =>\n dotProp.toggle(\n prevRules,\n `${ruleIndex}.questions.${questionIndex}.logicalOr`\n )\n );\n };\n\n const isLogicalOrOperator = (ruleIndex, questionIndex) => {\n return dotProp.get(\n rules,\n `${ruleIndex}.questions.${questionIndex}.logicalOr`\n );\n };\n\n const getSelectMode = (ruleIndex, questionIndex) => {\n const cond = dotProp.get(\n rules,\n `${ruleIndex}.questions.${questionIndex}.condition`\n );\n return [\n branchingConditions.CONTAINS_ONE_OF,\n branchingConditions.DOES_NOT_CONTAIN_ANY_OF,\n branchingConditions.CONTAINS_ALL_OF,\n branchingConditions.DOES_NOT_CONTAIN_ALL_OF,\n ].includes(cond)\n ? \"multiple\"\n : \"\";\n };\n\n const getMaxQuestionIndex = (ruleIndex) => {\n const rule = dotProp.get(rules, `${ruleIndex}`);\n const maxIndex = rule.questions.reduce(\n (prev, curr) => Math.max(prev, curr.index),\n 0\n );\n return maxIndex;\n };\n\n const renderConditionsAndOptions = (ruleIndex, questionIndex) => {\n const idx = getQuestionAttribute(ruleIndex, questionIndex, \"index\");\n const type = questions[idx]?.type;\n const options = questions[idx]?.options;\n\n if (QUESTION_TYPE_ONE.includes(type)) {\n return (\n \n {/*CONDITIONS*/}\n \n {isNumber(\n getQuestionAttribute(ruleIndex, questionIndex, \"index\")\n ) && (\n {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n value\n );\n setQuestionAttribute(ruleIndex, questionIndex, \"choices\", []);\n }}\n >\n {CONDITION_TYPE_ONE.map((el) => (\n \n {el}\n \n ))}\n \n )}\n \n {/* CHOICES */}\n \n {getQuestionAttribute(ruleIndex, questionIndex, \"condition\") && (\n {\n const arr = Array.isArray(value) ? value : [value];\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"choices\",\n arr\n );\n }}\n >\n {getQuestionChoices(ruleIndex, questionIndex).map((el, idx) => (\n \n {el}\n \n ))}\n \n )}\n \n \n );\n }\n\n if (QUESTION_TYPE_TWO.includes(type)) {\n const range = questionTypeRange(type, options);\n return (\n <>\n \n \n Is from\n \n \n \n \n setQuestionAttribute(ruleIndex, questionIndex, \"from\", value)\n }\n >\n {range.map((el) => (\n \n {el}\n \n ))}\n \n \n {isNumber(getQuestionAttribute(ruleIndex, questionIndex, \"from\")) && (\n <>\n \n \n To\n \n \n \n \n setQuestionAttribute(ruleIndex, questionIndex, \"to\", value)\n }\n >\n {range\n .filter(\n (x) =>\n x >=\n getQuestionAttribute(ruleIndex, questionIndex, \"from\")\n )\n .map((el) => (\n \n {el}\n \n ))}\n \n \n \n )}\n \n );\n }\n\n if (QUESTION_TYPE_THREE.includes(type)) {\n const range = questionTypeRange(type, options);\n return (\n <>\n {/*LABEL*/}\n \n {isNumber(\n getQuestionAttribute(ruleIndex, questionIndex, \"index\")\n ) && (\n \n setQuestionAttribute(ruleIndex, questionIndex, \"label\", value)\n }\n >\n {getQuestionChoices(ruleIndex, questionIndex).map((el) => (\n \n {el}\n \n ))}\n \n )}\n \n is\n \n \n {/* RANK */}\n \n {getQuestionAttribute(ruleIndex, questionIndex, \"label\") && (\n \n setQuestionAttribute(ruleIndex, questionIndex, \"rank\", value)\n }\n >\n {range.map((el) => (\n \n {el}\n \n ))}\n \n )}\n \n \n );\n }\n\n if (QUESTION_TYPE_FOUR.includes(type)) {\n return (\n <>\n {/*LABEL*/}\n \n {isNumber(\n getQuestionAttribute(ruleIndex, questionIndex, \"index\")\n ) && (\n \n setQuestionAttribute(ruleIndex, questionIndex, \"label\", value)\n }\n >\n {getQuestionChoices(ruleIndex, questionIndex).labels.map(\n (el) => (\n \n {el}\n \n )\n )}\n \n )}\n \n ==\n \n \n {/* RANK */}\n \n {getQuestionAttribute(ruleIndex, questionIndex, \"label\") && (\n \n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"association\",\n value\n )\n }\n >\n {getQuestionChoices(ruleIndex, questionIndex).associations.map(\n (el) => (\n \n {el}\n \n )\n )}\n \n )}\n \n \n );\n }\n\n if (QUESTION_TYPE_FIVE.includes(type)) {\n const range = questionTypeRange(type, options);\n return (\n <>\n \n \n setQuestionAttribute(ruleIndex, questionIndex, \"label\", value)\n }\n >\n {getQuestionChoices(ruleIndex, questionIndex).map((el) => (\n \n {el}\n \n ))}\n \n \n {getQuestionAttribute(ruleIndex, questionIndex, \"label\") && (\n <>\n \n \n Is from\n \n \n \n \n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"from\",\n value\n )\n }\n >\n {range.map((el) => (\n \n {el}\n \n ))}\n \n \n \n )}\n {isNumber(getQuestionAttribute(ruleIndex, questionIndex, \"from\")) && (\n <>\n \n \n To\n \n \n \n \n setQuestionAttribute(ruleIndex, questionIndex, \"to\", value)\n }\n >\n {range\n .filter(\n (x) =>\n x >=\n getQuestionAttribute(ruleIndex, questionIndex, \"from\")\n )\n .map((el) => (\n \n {el}\n \n ))}\n \n \n \n )}\n \n );\n }\n return;\n };\n\n const filterActionQuestions = (idx, ruleIndex, actionIndex) => {\n const actionName = getActionAttribute(ruleIndex, actionIndex, \"name\");\n const maxIndex = getMaxQuestionIndex(ruleIndex);\n\n switch (actionName) {\n case branchingActions.SKIP_TO_QUESTION: {\n return idx > maxIndex;\n }\n case branchingActions.END_SURVEY: {\n return;\n }\n case branchingActions.DISQUALIFY_RESPONDENT: {\n return;\n }\n case branchingActions.HIDE_QUESTION: {\n return idx > maxIndex;\n }\n case branchingActions.INVALIDATE_QUESTION: {\n return true;\n }\n default:\n return;\n }\n };\n\n const getQuestionNumber = (id) => {\n return questions.findIndex((el) => el.id === id);\n };\n\n const getQuestionType = (index) => {\n return questions[index]?.type;\n };\n\n const saveBranchingLogic = () => {\n if (errors.length !== 0) {\n notify(\n \"error\",\n \"Error\",\n \"You have errors in the logic. Please fix them first.\"\n );\n return false;\n }\n onSaveRules(rules);\n notify(\"success\", \"Success\", \"Branching logic saved.\");\n return true;\n };\n\n const handleBackNavigation = () => {\n const areRulesChanged =\n JSON.stringify(rules) !== JSON.stringify(oldBranchingRules);\n if (areRulesChanged) {\n Modal.confirm({\n title: \"You have changed the rules without saving.\",\n okText: \"Exit & Save\",\n onOk() {\n if (saveBranchingLogic()) {\n closeModal();\n }\n },\n cancelText: \"Exit without Saving\",\n onCancel: closeModal,\n maskClosable: true,\n });\n return;\n }\n closeModal();\n };\n\n return (\n
\n \n \n \n {!isTabletOrMobile && \"Back to Survey\"}\n \n

Branching Logic

\n \n {isTabletOrMobile ? : \"SAVE BRANCHING LOGIC\"}\n \n
\n \n {rules.map((ruleObject, ruleIndex) => (\n \n \n \n \n RULE {ruleIndex + 1}\n \n
\n \n SAVE RULE\n \n removeRule(ruleIndex)}\n >\n Delete Rule\n \n
\n \n \n \n {/* QUESTIONS */}\n
\n CONDITIONS (IF ANSWER TO)\n
\n {ruleObject.questions.map((_, questionIndex) => (\n <>\n \n \n \n {questionIndex + 1}\n \n \n {/* INDEX */}\n \n {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"index\",\n value\n );\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"choices\",\n []\n );\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n null\n );\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"label\",\n null\n );\n\n if (\n QUESTION_TYPE_TWO.includes(\n getQuestionType(value)\n )\n ) {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n branchingConditions.IS_FROM_TO\n );\n }\n if (\n QUESTION_TYPE_THREE.includes(\n getQuestionType(value)\n )\n ) {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n branchingConditions.RANKING\n );\n }\n if (\n QUESTION_TYPE_FOUR.includes(\n getQuestionType(value)\n )\n ) {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n branchingConditions.ASSOCIATION\n );\n }\n if (\n QUESTION_TYPE_FIVE.includes(\n getQuestionType(value)\n )\n ) {\n setQuestionAttribute(\n ruleIndex,\n questionIndex,\n \"condition\",\n branchingConditions.IMAGE_VIDEO_RATINGS\n );\n }\n }}\n >\n {allowedQuestions.map((el, idx) => (\n {`Q${getQuestionNumber(el.id) + 1}. ${\n el.text\n }`}\n ))}\n \n \n {/* CONDITION & OPTIONS */}\n {renderConditionsAndOptions(ruleIndex, questionIndex)}\n {/* DELETE BTN */}\n \n \n deleteQuestion(ruleIndex, questionIndex)\n }\n />\n \n
\n {/* LOGICAL OPERATOR */}\n {questionIndex !== ruleObject.questions.length - 1 && (\n \n handleChangeLogicalOperator(\n ruleIndex,\n questionIndex\n )\n }\n >\n {isLogicalOrOperator(ruleIndex, questionIndex)\n ? \"OR\"\n : \"AND\"}{\" \"}\n \n \n )}\n \n ))}\n addQuestion(ruleIndex)}\n style={{\n backgroundColor: \"#10213c\",\n height: \"28px\",\n fontSize: 12,\n color: \"white\",\n borderRadius: \"4px\",\n }}\n >\n ADD CONDITION\n \n \n \n {/* ACTIONS */}\n
\n ACTIONS (THEN)\n
\n {ruleObject.actions.map((_, actionIndex) => (\n \n \n \n \n {actionIndex + 1}\n \n \n {/* NAME */}\n \n {\n setActionAttribute(\n ruleIndex,\n actionIndex,\n \"name\",\n value\n );\n setActionAttribute(\n ruleIndex,\n actionIndex,\n \"question\",\n null\n );\n }}\n >\n {Object.keys(branchingActions).map((el) => (\n \n {branchingActions[el]}\n \n ))}\n \n \n {/* QUESTIONS */}\n \n {showSelectQuestion(ruleIndex, actionIndex) && (\n \n setActionAttribute(\n ruleIndex,\n actionIndex,\n \"question\",\n value\n )\n }\n >\n {questions\n .filter((_, idx) =>\n filterActionQuestions(\n idx,\n ruleIndex,\n actionIndex\n )\n )\n .map((el, idx) => (\n {`Q${getQuestionNumber(el.id) + 1}. ${\n el.text\n }`}\n ))}\n \n )}\n \n {/* DELETE BTN */}\n \n deleteAction(ruleIndex, actionIndex)}\n />\n \n \n \n ))}\n addAction(ruleIndex)}\n style={{\n backgroundColor: \"#10213c\",\n height: \"28px\",\n fontSize: 12,\n color: \"white\",\n borderRadius: \"4px\",\n }}\n >\n ADD ACTION\n \n \n \n \n addRule(ruleIndex)}\n style={{\n backgroundColor: \"#10213c\",\n height: \"42px\",\n display: \"block\",\n margin: \"20px 0\",\n color: \"white\",\n borderRadius: \"4px\",\n }}\n >\n ADD NEW RULE\n \n
\n ))}\n {rules.length === 0 && (\n \n ADD NEW RULE\n \n )}\n\n {/*
\n \n Back to Survey\n \n \n SAVE BRANCHING LOGIC\n \n
*/}\n \n \n \n );\n};\n\nexport default BranchingLogic;\n","import { Button, message, Affix } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\";\nimport Confused from \"../../../components/user/confused/Confused\";\nimport QuestionBox from \"../questions/QuestionBox\";\nimport styles from \"./questions-styles.module.css\";\nimport c from \"classnames/bind\";\nimport useArray from \"../useArray\";\nimport Modal from \"react-modal\";\nimport { PlusCircleOutlined } from \"@ant-design/icons\";\nimport Survey from \"../../user/survey/Survey\";\nimport Errors from \"../new-survey/Errors\";\nimport BranchingLogic from \"../branching-logic/BranchingLogic\";\nimport { generateId } from \"../../../utils\";\nimport { branchingActions, questionTemplate } from \"../../../constants\";\nimport dotProp from \"dot-prop-immutable\";\nimport { isNumber } from \"lodash-es\";\n\nconst cx = c.bind(styles);\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst actionsCleanUpOnMove = (rules) => {\n const getMaxQuestionIndex = (ruleIndex) => {\n const rule = dotProp.get(rules, `${ruleIndex}`);\n const maxIndex = rule.questions.reduce(\n (prev, curr) => Math.max(prev, curr.index),\n 0\n );\n return maxIndex;\n };\n const newRules = rules.map((rl, i) => {\n const maxIndex = getMaxQuestionIndex(i);\n\n const actions = rl.actions.map((x) => {\n if (\n x.name === branchingActions.SKIP_TO_QUESTION &&\n x.question <= maxIndex\n ) {\n return {\n name: x.name,\n };\n }\n if (x.name === branchingActions.HIDE_QUESTION && x.question <= maxIndex) {\n return {\n name: x.name,\n };\n }\n return x;\n });\n\n return {\n ...rl,\n actions,\n };\n });\n\n return newRules;\n};\n\nconst actionsCleanUpOnDelete = (rules) => {\n const newRules = rules.map((rl) => {\n let clearAction = false;\n rl.questions.forEach((x) => {\n if (!isNumber(x.index)) {\n clearAction = true;\n return;\n }\n });\n\n return {\n ...rl,\n actions: clearAction ? [{}] : rl.actions,\n };\n });\n\n return newRules;\n};\n\nconst Questions = ({\n formQuestions,\n branchingRules,\n surveyType,\n setFormQuestions,\n setBranchingRules,\n errors,\n branchingErrors,\n createdAt,\n brandLogo,\n brandName,\n surveyInstructions,\n viewOnly,\n}) => {\n const [questions, { add, remove, move, set }] = useArray(formQuestions);\n const [formModal, setFormModal] = useState(false);\n const [hideTryFormButton, setHideTryFormButton] = useState(false);\n const [branchingLogicModal, setBranchingLogicModal] = useState(false);\n useEffect(() => {\n setFormQuestions(questions);\n }, [questions, setFormQuestions]);\n\n const handleSaveBranchingRules = (rules) => {\n setBranchingRules(rules);\n };\n\n const handleAddQuestion = (index) => {\n add({ id: generateId(), ...questionTemplate }, index);\n const newBranchingRules = branchingRules.map((rl) => {\n const questions = rl.questions.map((x) => {\n if (x.index >= index) {\n return { ...x, index: x.index + 1 };\n }\n\n return x;\n });\n\n const actions = rl.actions.map((x) => {\n if (x.question >= index) {\n return { ...x, question: x.question + 1 };\n }\n\n return x;\n });\n\n return { questions, actions };\n });\n setBranchingRules(newBranchingRules);\n };\n\n const handleRemoveQuestion = (index) => {\n remove(index);\n const newBranchingRules = branchingRules.map((rl) => {\n const questions = rl.questions.map((x) => {\n if (x.index === index) {\n return { logicalOr: false };\n }\n\n if (x.index > index) {\n return { ...x, index: x.index - 1 };\n }\n\n return x;\n });\n\n const actions = rl.actions.map((x) => {\n if (x.question === index) {\n return { name: x.name };\n }\n\n if (x.question > index) {\n return { ...x, question: x.question - 1 };\n }\n\n return x;\n });\n\n return { questions, actions };\n });\n\n setBranchingRules(actionsCleanUpOnDelete(newBranchingRules));\n };\n\n const handleMoveQuestion = (source, destination) => {\n move(source, destination);\n const newBranchingRules = branchingRules.map((rl) => {\n const questions = rl.questions.map((x) => {\n if (x.index === source) {\n return { ...x, index: destination };\n }\n\n if (\n source > destination &&\n x.index >= destination &&\n x.index < source\n ) {\n // source > destination\n return { ...x, index: x.index + 1 };\n }\n\n if (\n source < destination &&\n x.index > source &&\n x.index <= destination\n ) {\n // source < destination\n return { ...x, index: x.index - 1 };\n }\n\n return x;\n });\n\n const actions = rl.actions.map((x) => {\n if (x.question === source) {\n return { ...x, question: destination };\n }\n\n if (\n source > destination &&\n x.question >= destination &&\n x.question < source\n ) {\n // source > destination\n return { ...x, question: x.question + 1 };\n }\n\n if (\n source < destination &&\n x.question > source &&\n x.question <= destination\n ) {\n // source < destination\n return { ...x, question: x.question - 1 };\n }\n\n return x;\n });\n\n return { questions, actions };\n });\n setBranchingRules(actionsCleanUpOnMove(newBranchingRules));\n };\n\n return (\n \n {formModal || hideTryFormButton ? null : (\n \n {\n if (errors.length !== 0) {\n message.error(\n \"You have errors in your form. Please fix them first.\"\n );\n return;\n }\n setFormModal(true);\n }}\n >\n Try your form\n \n \n )}\n\n \n {\n if (result.destination)\n handleMoveQuestion(result.source.index, result.destination.index);\n }}\n >\n \n {(provided) => (\n \n {questions.map((question, index) => (\n \n {(provided, snapshot) => (\n \n setHideTryFormButton(value)\n }\n ref={provided.innerRef}\n index={index}\n surveyType={surveyType}\n brandLogo={brandLogo}\n question={question}\n setQuestion={(question) => set(question, index)}\n addQuestion={(idx) => handleAddQuestion(idx)}\n dragHandleProps={provided.dragHandleProps}\n draggableProps={provided.draggableProps}\n removeQuestion={() => handleRemoveQuestion(index)}\n isDragging={snapshot.isDragging}\n />\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n \n add({\n id: generateId(),\n ...JSON.parse(JSON.stringify(questionTemplate)),\n })\n }\n disabled={viewOnly}\n >\n \n Add Question\n \n setBranchingLogicModal(true)}\n disabled={new Date(createdAt) < new Date(\"2021-04-24\") || viewOnly}\n >\n \n Add Branching Logic\n \n setFormModal(false)}\n style={modalStyles}\n >\n {formModal && (\n setFormModal(false)}\n tryOwnForm={true}\n brandLogo={brandLogo}\n brandName={brandName}\n surveyInstructions={surveyInstructions}\n />\n )}\n \n {branchingLogicModal && (\n setBranchingLogicModal(false)}\n style={modalStyles}\n >\n setBranchingLogicModal(false)}\n questions={questions}\n oldBranchingRules={branchingRules}\n onSaveRules={handleSaveBranchingRules}\n />\n \n )}\n \n \n );\n};\n\nexport default Questions;\n","import React, { Fragment, useEffect } from \"react\";\nimport Confused from \"../../../components/user/confused/Confused\";\nimport styles from \"./publish.module.css\";\nimport c from \"classnames/bind\";\nimport { Input, Tooltip } from \"antd\";\nimport {\n PlusCircleOutlined,\n MinusCircleOutlined,\n QuestionCircleOutlined,\n} from \"@ant-design/icons\";\nimport \"react-modern-calendar-datepicker/lib/DatePicker.css\";\nimport { Calendar, utils } from \"react-modern-calendar-datepicker\";\nimport { useState } from \"react\";\nimport Errors from \"../new-survey/Errors\";\nconst cx = c.bind(styles);\n\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst times = [\n { label: \"8am\", value: \"08:00\" },\n { label: \"9am\", value: \"09:00\" },\n { label: \"10am\", value: \"10:00\" },\n { label: \"11am\", value: \"11:00\" },\n { label: \"12pm\", value: \"12:00\" },\n { label: \"1pm\", value: \"13:00\" },\n { label: \"2pm\", value: \"14:00\" },\n { label: \"3pm\", value: \"15:00\" },\n { label: \"4pm\", value: \"16:00\" },\n { label: \"5pm\", value: \"17:00\" },\n { label: \"6pm\", value: \"18:00\" },\n { label: \"7pm\", value: \"19:00\" },\n];\n\nconst DateDiv = ({ date, onClick, selected }) => {\n const [day, month, year] = date.split(\"/\");\n return (\n onClick()}\n style={\n selected.isSelectedDate\n ? {\n backgroundColor: \"#FF9480\",\n borderColor: \"#FF9480\",\n color: \"white\",\n }\n : selected.isTimeSlotSelected\n ? {\n backgroundColor: \"#FFA999\",\n borderColor: \"#FFA999\",\n color: \"white\",\n }\n : {\n backgroundColor: \"white\",\n borderColor: \"white\",\n color: \"black\",\n }\n }\n >\n {`${day} ${months[parseInt(month) - 1]} ${year}`}\n \n );\n};\n\nconst TimeDiv = ({ time, onClick, selected }) => {\n return (\n onClick()}\n style={\n selected\n ? {\n backgroundColor: \"#FF9480\",\n borderColor: \"#FF9480\",\n color: \"white\",\n }\n : {\n backgroundColor: \"white\",\n borderColor: \"white\",\n color: \"black\",\n }\n }\n >\n {time}\n \n );\n};\n\nconst Publish = ({\n moderatedSlots,\n setModeratedSlots,\n numberOfParticipants,\n setNumberOfParticipants,\n isGroupSurvey,\n totalGroupParticipants,\n mode,\n setting,\n surveyType,\n errors,\n surveyPrice,\n viewOnly,\n surveyAccess\n}) => {\n const [selectedDate, setSelectedDate] = useState(null);\n const minimumDate = {\n ...utils().getToday(),\n day: utils().getToday().day + 1,\n };\n\n const dateToObject = (date) => {\n const res = {};\n date.forEach((item) => {\n const dateString = `${item.day}/${item.month}/${item.year}`;\n if (moderatedSlots && moderatedSlots[dateString])\n res[dateString] = moderatedSlots[dateString];\n else res[dateString] = {};\n });\n return res;\n };\n\n const objectToDate = (obj) => {\n const res = [];\n if (obj) {\n Object.keys(obj).forEach((item) => {\n const [day, month, year] = item.split(\"/\");\n const date = {\n day: parseInt(day),\n month: parseInt(month),\n year: parseInt(year),\n };\n res.push(date);\n });\n }\n return res;\n };\n\n const getDateObject = (date, time) => {\n let [day, month, year] = date.split(\"/\");\n month = month.length === 2 ? month : \"0\" + month;\n day = day.length === 2 ? day : \"0\" + day;\n const dateString = `${year}-${month}-${day}T${time}`;\n return new Date(dateString);\n };\n\n const isTimeSelected = (time) => {\n if (!selectedDate) return false;\n\n let res = false;\n if (moderatedSlots[selectedDate]) {\n Object.keys(moderatedSlots[selectedDate]).forEach((e) => {\n if (e === time) res = true;\n });\n }\n return res;\n };\n\n useEffect(() => {\n let slots = {};\n if (moderatedSlots && Object.keys(moderatedSlots).length > 0) {\n const currentDate = new Date();\n Object.keys(moderatedSlots).map((d, index) => {\n if (getDateObject(d, \"00:00\") > currentDate) {\n slots = {\n ...slots,\n [d]: moderatedSlots[d],\n };\n }\n });\n setModeratedSlots(slots);\n }\n }, []);\n\n return (\n \n \n {!surveyAccess && surveyType == true && mode === true && setting === false ? (\n \n \n
\n

\n Select/De-select dates{\" \"}\n \n \n \n

\n {\n value.sort((a, b) => (utils().isBeforeDate(a, b) ? -1 : 1));\n setModeratedSlots(dateToObject(value));\n }}\n calendarClassName={cx(\"calendar\")}\n />\n
\n\n {moderatedSlots && Object.keys(moderatedSlots).length > 0 ? (\n
\n
\n {Object.keys(moderatedSlots).map((date, idx) => (\n {\n setSelectedDate(date);\n }}\n selected={{\n isSelectedDate: selectedDate === date,\n isTimeSlotSelected:\n Object.keys(moderatedSlots[date]).length > 0,\n }}\n />\n ))}\n
\n
\n ) : null}\n\n {selectedDate && Object.keys(moderatedSlots).length > 0 ? (\n
\n
\n {times.map((e, i) => (\n {\n if (selectedDate && moderatedSlots[selectedDate]) {\n let timeExists = false;\n const date = moderatedSlots[selectedDate];\n Object.keys(date).forEach((time) => {\n if (time === e.value) timeExists = true;\n });\n if (!timeExists)\n moderatedSlots[selectedDate][e.value] = [];\n else delete moderatedSlots[selectedDate][e.value];\n setModeratedSlots(moderatedSlots);\n }\n }}\n />\n ))}\n
\n
\n ) : null}\n \n \n ) : null}\n \n
\n

\n Number of Participants\n {/* \n \n */}\n

\n

\n (We recommend atleast 5 users per survey)\n

\n
\n {!isGroupSurvey && (\n
\n setNumberOfParticipants(e.target.value)}\n className={cx(\"input-box\")}\n />\n \n setNumberOfParticipants((Number(numberOfParticipants) || 0) + 1)\n }\n />\n {\n e.stopPropagation();\n if (numberOfParticipants > 1)\n setNumberOfParticipants(\n (Number(numberOfParticipants) || 0) - 1\n );\n }}\n />\n
\n )}\n {isGroupSurvey && (\n
\n

{totalGroupParticipants}

\n
\n )}\n {/* {mode === true && setting === true ? (\n <>\n
\n

Number of groups

\n
\n
\n \n \n \n
\n \n ) : null} */}\n
\n

Price Per Participant

\n
\n
\n

Rs. {surveyPrice}

\n
\n\n
\n

Total

\n
\n
\n

\n Rs. {surveyPrice * numberOfParticipants}{\" \"}\n (Including GST)\n

\n
\n \n \n
\n );\n};\n\nexport default Publish;\n","export const getAgeRange = ({ start, end, interval }) => {\n let range = [];\n let element = [];\n for (let i = start; i <= end; i++) {\n element.push(i);\n if (i % interval === 0) {\n range.push({\n label: `${element[0]}-${element[element.length - 1]}`,\n value: element,\n });\n element = [];\n }\n }\n return range;\n};\n\nexport const getAgeGroupAnswerLength = (\n questionId,\n adminQuestions,\n criteria\n) => {\n let count = 0;\n getAgeRange({\n start: getQuestion(questionId, adminQuestions).questionObject.start,\n end: getQuestion(questionId, adminQuestions).questionObject.end,\n interval: getQuestion(questionId, adminQuestions).questionObject.interval,\n }).map((el, index) => {\n return el.value.every((r) =>\n criteria.find((o) => o.questionId === questionId)?.answer.includes(r)\n )\n ? (count += 1)\n : null;\n });\n return count;\n};\n\nexport const getQuestion = (id, adminQuestions) => {\n return (\n adminQuestions.filter((e) => e[\"_id\"] === id)[0] || { questionObject: \"\" }\n );\n};\n\nexport const getOptionsLength = (questionId, adminQuestions) => {\n const question = getQuestion(questionId, adminQuestions);\n if (question.questionObject.questionType == \"age\") {\n return getAgeRange({\n start: question.questionObject.start,\n end: question.questionObject.end,\n interval: question.questionObject.interval,\n }).length;\n }\n\n return question.questionObject.options.length;\n};\n\n// make a list in the Oxford comma style (eg \"a, b, c, and d\")\n// [\"a\"] -> \"a\"\n// [\"a\", \"b\"] -> \"a and b\"\n// [\"a\", \"b\", \"c\"] -> \"a, b, and c\"\nexport const oxford = (arr) => {\n let l = arr.length;\n if (!l) return \"\";\n if (l < 2) return arr[0];\n if (l < 3) return arr.join(` and `);\n arr = arr.slice();\n arr[l - 1] = `and ${arr[l - 1]}`;\n return arr.join(\", \");\n};\n\nexport const findNextAvailableGroupIndex = (groups) => {\n if (!groups?.length) return 1;\n const maxGroupIndex = Math.max(...groups.map((group) => group.index));\n return maxGroupIndex + 1;\n};\n","import React, { Fragment, useState } from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../utils\";\nimport { Row, Col } from \"antd\";\nimport {\n PlusCircleOutlined,\n DeleteOutlined,\n DownOutlined,\n UpOutlined,\n} from \"@ant-design/icons\";\nimport c from \"classnames/bind\";\nimport styles from \"./criteria.module.css\";\nimport \"./FilterUsers.css\";\nimport { GreenCheckbox } from \"../Components\";\nimport { getAgeRange, getQuestion } from \"./CriteriaUtils\";\n\nconst cx = c.bind(styles);\n\nconst CustomButton = ({ selected, children, onClick }) => {\n return (\n {\n onClick();\n }}\n >\n \n {children}\n \n );\n};\n\nconst FilterUsers = ({ adminQuestions, criteria, setCriteria }) => {\n const [showAllFilters, setShowAllFilters] = useState(() => {\n if (Array.isArray(criteria) && Array.isArray(adminQuestions)) {\n const filterAdminQuestions = adminQuestions.slice(6);\n return criteria.some(\n ({ questionId }) =>\n !!filterAdminQuestions.find(({ _id }) => _id === questionId)\n );\n }\n return false;\n });\n\n const checkQuestionInCriteria = (id) => {\n const res =\n criteria.filter((e) => e.questionId === id).length > 0 ? true : false;\n return res;\n };\n\n return (\n \n \n \n

Filter users

\n
\n Use the below filters to create the perfect sample set of users for\n your survey.\n
\n \n {adminQuestions && (\n \n \n
\n {adminQuestions\n .filter(\n (e, i) =>\n e.isActive === true &&\n e.criteriaType === false &&\n !!e.clientField &&\n (showAllFilters || i < 6)\n )\n .map((e, i) => (\n {\n if (!checkQuestionInCriteria(e[\"_id\"]))\n setCriteria([\n ...criteria,\n {\n questionId: e[\"_id\"],\n answer: [],\n ratios: [],\n selectedValues: [],\n },\n ]);\n else\n setCriteria(\n criteria.filter((cr) => cr.questionId !== e[\"_id\"])\n );\n }}\n key={i}\n >\n {capitalizeFirstCharacter(e.clientField)}\n \n ))}\n
\n \n \n \n setShowAllFilters(!showAllFilters)}\n >\n {showAllFilters ? \"Hide\" : \"Show\"} advanced filters{\" \"}\n {showAllFilters ? : }\n \n \n \n
\n )}\n {criteria.map((e, i) => (\n \n {capitalizeFirstCharacter(\n getQuestion(e.questionId, adminQuestions).clientField\n )}\n {\n setCriteria(criteria.filter((item) => item !== e));\n }}\n />\n
\n {[\n \"multipleChoice\",\n \"checkboxes\",\n \"location\",\n \"checkboxesSpecial\",\n ].includes(\n getQuestion(e.questionId, adminQuestions).questionObject\n .questionType\n ) &&\n getQuestion(\n e.questionId,\n adminQuestions\n ).questionObject.options.map((opt, idx) => (\n \n {\n const res = [...criteria];\n const exists = e.answer.includes(idx);\n if (exists) {\n res[i].answer = e.answer.filter((it) => it !== idx);\n } else {\n res[i].answer.push(idx);\n }\n setCriteria(res);\n }}\n />\n {opt}\n \n ))}\n {getQuestion(e.questionId, adminQuestions).questionObject\n .questionType === \"age\" &&\n getAgeRange({\n start: getQuestion(e.questionId, adminQuestions)\n .questionObject.start,\n end: getQuestion(e.questionId, adminQuestions).questionObject\n .end,\n interval: getQuestion(e.questionId, adminQuestions)\n .questionObject.interval,\n }).map((el, index) => (\n \n e.answer.includes(r))}\n className={cx(\"option-button-icon\")}\n onChange={(event) => {\n const res = [...criteria];\n const exists = el.value.every((r) =>\n e.answer.includes(r)\n );\n if (exists) {\n res[i].answer = e.answer.filter(\n (it) => !el.value.includes(it)\n );\n } else {\n el.value.forEach((x) => res[i].answer.push(x));\n }\n setCriteria(res);\n }}\n />\n {el.label}\n \n ))}\n
\n \n ))}\n
\n
\n );\n};\n\nexport default FilterUsers;\n","import React from \"react\";\nimport c from \"classnames/bind\";\nimport styles from \"./additional-criteria.module.css\";\nimport { Select, Button } from \"antd\";\nimport { DownOutlined } from \"@ant-design/icons\";\nimport MultiChoices from \"../questions/multi-choices/MultiChoices\";\nimport AddLink from \"../questions/add-link/AddLink\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst AdditionalCriteria = ({ question, setQuestion }) => {\n return (\n <>\n {!question &&
}\n {question && (\n
\n setQuestion({ ...question, text: e.target.value })}\n />\n
\n \n }\n onChange={(type) => setQuestion({ ...question, type })}\n >\n \n \n \n \n {question.type !== \"default\" && false && (\n {\n setQuestion({ ...question, hasLink: !question.hasLink });\n }}\n >\n Add Link\n \n )}\n
\n
\n {question.hasLink && (\n setQuestion({ ...question, link })}\n />\n )}\n {question.type !== \"default\" && (\n
\n \n setQuestion({ ...question, options })\n }\n />\n
\n )}\n
\n
\n )}\n \n );\n};\n\nexport default AdditionalCriteria;\n","import React from \"react\";\nimport { capitalizeFirstCharacter } from \"../../../utils\";\nimport { Row, Radio, Checkbox, Col } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport c from \"classnames/bind\";\nimport styles from \"./criteria.module.css\";\nconst cx = c.bind(styles);\n\nconst ScreeningQuestion = ({\n screeningQuestions,\n i,\n setScreeningQuestions,\n question,\n remove,\n}) => {\n return (\n
\n \n \n {capitalizeFirstCharacter(question.questionObject.text)}\n\n
\n {question.questionObject.options.multiChoices.map((opt, idx) => (\n \n ))}\n
\n \n \n {\n remove(i);\n }}\n />\n \n
\n
\n );\n};\n\nexport default ScreeningQuestion;\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport { Button, Row, Col, notification } from \"antd\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport c from \"classnames/bind\";\nimport { CustomModal } from \"../Components\";\nimport useArray from \"../useArray\";\nimport styles from \"./criteria.module.css\";\nimport AdditionalCriteria from \"./AdditionalCriteria\";\nimport ScreeningQuestion from \"./ScreeningQuestion\";\n\nconst cx = c.bind(styles);\n\nconst questionTemplate = {\n questionObject: {\n text: \"\",\n hasLink: false,\n link: \"\",\n type: \"default\",\n options: {\n multiChoices: [\n {\n label: \"\",\n },\n {\n label: \"\",\n },\n ],\n },\n },\n answer: [],\n};\n\nconst AddScreeningQuestion = ({\n screeningQuestions,\n setScreeningQuestions,\n}) => {\n const [modal, setModal] = useState(false);\n const [incompleteQues, setIncompleteQues] = useState(questionTemplate);\n const [questions, { add, remove }] = useArray(screeningQuestions);\n\n useEffect(() => {\n setScreeningQuestions(questions);\n }, [questions, setScreeningQuestions]);\n\n const checkAdditionalQuestion = () => {\n const { questionObject } = incompleteQues;\n const text = questionObject.text === \"\" ? false : true;\n const type = questionObject.type === \"default\" ? false : true;\n const options =\n questionObject.options.multiChoices.filter((item) => item.label === \"\")\n .length > 0\n ? false\n : true;\n console.log(options);\n if (text && type && options) return true;\n else return false;\n };\n\n const handleOk = () => {\n if (checkAdditionalQuestion()) {\n add(incompleteQues);\n setModal(false);\n setIncompleteQues(questionTemplate);\n } else {\n notification.error({\n message: \"Please complete the question first\",\n });\n }\n };\n\n return (\n \n \n \n

\n Add screening questions\n

\n
\n Only participants who answer all the screening questions correctly\n will be able to take the survey.\n
\n \n \n {\n setIncompleteQues(questionTemplate);\n setModal(true);\n }}\n >\n Add question\n \n \n
\n {screeningQuestions.length !== 0 && (\n \n Select qualifying options for the questions\n \n )}\n {screeningQuestions.map((e, i) => (\n \n ))}\n
\n {\n setIncompleteQues(questionTemplate);\n setModal(false);\n }}\n width={600}\n maskClosable={false}\n okText=\"Add Question\"\n onOk={handleOk}\n closeIcon={\n \n }\n >\n \n setIncompleteQues({ answer: [], questionObject })\n }\n />\n \n
\n
\n );\n};\n\nexport default AddScreeningQuestion;\n","import React, { useEffect, useState } from \"react\";\nimport { capitalizeFirstCharacter, Sum } from \"../../../../../utils.js\";\nimport { Modal, Form, Input, Select, Spin } from \"antd\";\nimport { PlusSquareOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport {\n getAgeRange,\n getOptionsLength,\n getQuestion,\n getAgeGroupAnswerLength,\n} from \"../../CriteriaUtils.js\";\nimport \"./RatioModal.css\";\nimport Errors from \"../../../new-survey/Errors.jsx\";\nconst antIcon = ;\n\nconst { Option } = Select;\n\nconst ratios = [\n 0,\n 5,\n 10,\n 15,\n 20,\n 25,\n 30,\n 35,\n 40,\n 45,\n 50,\n 55,\n 60,\n 65,\n 70,\n 75,\n 80,\n 85,\n 90,\n 95,\n 100,\n];\n\nconst RatioModal = ({\n isModalVisible,\n hideModal,\n isGroupSurvey,\n groupName,\n groupParticipants,\n updateGroupName,\n updateGroupParticipants,\n adminQuestions,\n criteria,\n setCriteria,\n}) => {\n const [criteriaObject, setCriteriaObj] = useState(null);\n const [group, setGroup] = useState({});\n const [disableForm, setDisableForm] = useState(false);\n\n useEffect(() => {\n setGroup({\n name: groupName,\n numberOfParticipants: groupParticipants,\n });\n }, [groupName, groupParticipants]);\n\n useEffect(() => {\n syncCriteriaObjwCriteria();\n }, [criteria]);\n\n useEffect(() => {\n validateRatios().length > 0 ? setDisableForm(true) : setDisableForm(false);\n }, [criteriaObject]);\n\n const groupNameChangeHandler = (e) => {\n setGroup({ ...group, name: e.target.value });\n updateGroupName(e.target.value);\n };\n\n const validateRatios = () => {\n const err = [];\n if (criteriaObject) {\n Object.keys(criteriaObject).forEach((criterion) => {\n if (\n criteriaObject[criterion]?.ratios?.length &&\n Sum(criteriaObject[criterion].ratios) != 100 &&\n !(\n criteriaObject[criterion].selectedValues.length === 1 &&\n criteriaObject[criterion].selectedValues[0] === -1\n )\n ) {\n err.push({\n message: `Ratios for selected criteria, \"${capitalizeFirstCharacter(\n getQuestion(criterion, adminQuestions).clientField\n )}\" do not add upto 100%.`,\n description: `Please select ratio(s) for criteria, \"${capitalizeFirstCharacter(\n getQuestion(criterion, adminQuestions).clientField\n )}\" such that it adds upto 100%\".`,\n });\n }\n });\n }\n return err;\n };\n\n const groupParticipantsChangeHandler = (e) => {\n setGroup({ ...group, numberOfParticipants: e.target.value });\n updateGroupParticipants(e.target.value);\n };\n\n //update criteria on OK button click\n const handleOk = () => {\n const newCriteria = criteria.map((criterion) => {\n const selectedValues =\n criteriaObject[criterion.questionId].selectedValues;\n const ratios =\n selectedValues.length === 1 && selectedValues[0] === -1\n ? []\n : criteriaObject[criterion.questionId].ratios;\n return {\n ...criterion,\n selectedValues,\n ratios,\n };\n });\n setCriteria(newCriteria);\n hideModal();\n };\n\n const syncCriteriaObjwCriteria = () => {\n const newCriteriaObject = {};\n criteria.map((c) => {\n if (!c?.selectedValues?.length || !c?.ratios?.length) {\n newCriteriaObject[c.questionId] = {\n selectedValues: [-1],\n ratios: new Array(\n getOptionsLength(c.questionId, adminQuestions)\n ).fill(0),\n };\n } else {\n let selectedValues = [];\n let ratios = new Array(\n getOptionsLength(c.questionId, adminQuestions)\n ).fill(0);\n if (\n getQuestion(c.questionId, adminQuestions).questionObject\n .questionType == \"age\"\n ) {\n getAgeRange({\n start: getQuestion(c.questionId, adminQuestions).questionObject\n .start,\n end: getQuestion(c.questionId, adminQuestions).questionObject.end,\n interval: getQuestion(c.questionId, adminQuestions).questionObject\n .interval,\n }).map((el, index) => {\n if (\n el.value.every((r) => c.answer.includes(r)) &&\n c.selectedValues.includes(index)\n ) {\n selectedValues.push(index);\n ratios[index] = c.ratios[index];\n }\n });\n } else {\n c.selectedValues.map((sv) => {\n if (c.answer.includes(sv)) {\n selectedValues.push(sv);\n ratios[sv] = c.ratios[sv];\n }\n });\n }\n newCriteriaObject[c.questionId] = {\n selectedValues: [...selectedValues],\n ratios: [...ratios],\n };\n }\n });\n setCriteriaObj(newCriteriaObject);\n };\n\n const handleCancel = () => {\n const newCriteriaObject = {};\n criteria.map((criterion) => {\n if (!criterion?.selectedValues?.length) {\n newCriteriaObject[criterion.questionId] = {\n selectedValues: [-1],\n ratios: new Array(\n getOptionsLength(criterion.questionId, adminQuestions)\n ).fill(0),\n };\n } else {\n newCriteriaObject[criterion.questionId] = {\n selectedValues: [...criterion.selectedValues],\n ratios: [...criterion.ratios],\n };\n }\n });\n setCriteriaObj(newCriteriaObject);\n hideModal();\n };\n\n const handleOptionChange = (event, questionId, index) => {\n if (event === -1) {\n const newCriteriaObject = { ...criteriaObject };\n newCriteriaObject[questionId].ratios = new Array(\n getOptionsLength(questionId, adminQuestions)\n ).fill(0);\n newCriteriaObject[questionId].selectedValues = [-1];\n setCriteriaObj(newCriteriaObject);\n } else {\n const newCriteriaObject = { ...criteriaObject };\n newCriteriaObject[questionId].selectedValues[index] = event;\n setCriteriaObj(newCriteriaObject);\n }\n };\n\n const handleAdd = (questionId, i) => {\n let newCriteriaObject = { ...criteriaObject };\n newCriteriaObject[questionId].selectedValues.push(null);\n setCriteriaObj(newCriteriaObject);\n };\n\n const handleRatioChange = (questionId, event, index) => {\n const arr = criteriaObject[questionId].ratios;\n arr[criteriaObject[questionId].selectedValues[index]] = event;\n const newCriteriaObject = { ...criteriaObject };\n newCriteriaObject[questionId].ratios = arr;\n setCriteriaObj(newCriteriaObject);\n };\n\n const checkSelectedOption = (questionId, index, i) => {\n for (let j = 0; j < i; j++) {\n if (criteriaObject[questionId].selectedValues[j] == index) {\n return false;\n }\n }\n return true;\n };\n\n return (\n \n \n {isGroupSurvey ? \"Select group filters\" : \"Select filters\"}\n \n
\n \n {isGroupSurvey ? (\n \n \n groupNameChangeHandler(e)}\n style={{\n borderRadius: \"5px\",\n border: \"none\",\n backgroundColor: \"#EEEEEE\",\n height: \"36px\",\n }}\n placeholder=\"Enter group name here\"\n />\n \n \n groupParticipantsChangeHandler(e)}\n type={\"number\"}\n min=\"1\"\n style={{\n borderRadius: \"5px\",\n border: \"none\",\n backgroundColor: \"#EEEEEE\",\n height: \"36px\",\n }}\n placeholder=\"Select no of participants\"\n >\n \n
\n ) : null}\n {criteriaObject ? (\n Object.keys(criteriaObject).map((c, i) => {\n return (\n
\n \n {[\n \"multipleChoice\",\n \"checkboxes\",\n \"location\",\n \"checkboxesSpecial\",\n ].includes(\n getQuestion(c, adminQuestions).questionObject.questionType\n )\n ? criteriaObject[c].selectedValues.map((x, i) => {\n return (\n \n handleOptionChange(e, c, i)}\n >\n {getQuestion(\n c,\n adminQuestions\n ).questionObject.options.map((opt, idx) => {\n return criteria\n .find((o) => o.questionId === c)\n ?.answer?.includes(idx) &&\n checkSelectedOption(c, idx, i) ? (\n \n ) : null;\n })}\n {i === 0 ? (\n \n ) : null}\n \n handleRatioChange(c, e, i)}\n disabled={\n criteriaObject[c].selectedValues.length ===\n 1 &&\n criteriaObject[c].selectedValues[0] === -1\n }\n defaultValue={100}\n value={\n criteriaObject[c].selectedValues.length ===\n 1 &&\n criteriaObject[c].selectedValues[0] === -1\n ? 100\n : criteriaObject[c].ratios[\n criteriaObject[c].selectedValues[i]\n ]\n }\n >\n {ratios.map((r) => {\n return (\n \n );\n })}\n \n {i ==\n criteriaObject[c].selectedValues.length - 1 &&\n criteria.find((o) => o.questionId === c)?.answer\n .length >\n i + 1 &&\n criteriaObject[c].selectedValues[0] != -1 ? (\n handleAdd(c, i)}\n style={{ margin: \"auto\", fontSize: \"1rem\" }}\n />\n ) : null}\n
\n );\n })\n : null}\n\n {getQuestion(c, adminQuestions).questionObject\n .questionType === \"age\"\n ? criteriaObject[c].selectedValues.map((x, i) => {\n return (\n \n handleOptionChange(e, c, i)}\n >\n {getAgeRange({\n start: getQuestion(c, adminQuestions)\n .questionObject.start,\n end: getQuestion(c, adminQuestions)\n .questionObject.end,\n interval: getQuestion(c, adminQuestions)\n .questionObject.interval,\n }).map((el, index) => {\n return el.value.every(\n (r) =>\n criteria\n .find((o) => o.questionId === c)\n ?.answer.includes(r) &&\n checkSelectedOption(c, index, i)\n ) ? (\n \n ) : null;\n })}\n {i === 0 ? (\n \n ) : null}\n \n handleRatioChange(c, e, i)}\n value={\n criteriaObject[c].selectedValues.length ===\n 1 &&\n criteriaObject[c].selectedValues[0] === -1\n ? 100\n : criteriaObject[c].ratios[\n criteriaObject[c].selectedValues[i]\n ]\n }\n >\n {ratios.map((r) => {\n return (\n \n );\n })}\n \n {i ==\n criteriaObject[c].selectedValues.length - 1 &&\n getAgeGroupAnswerLength(\n c,\n adminQuestions,\n criteria\n ) >\n i + 1 &&\n criteriaObject[c].selectedValues[0] != -1 ? (\n handleAdd(c, i)}\n style={{ margin: \"auto\", fontSize: \"1rem\" }}\n />\n ) : null}\n \n );\n })\n : null}\n \n \n );\n })\n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default RatioModal;\n","import React from \"react\";\nimport { getAgeRange, getQuestion } from \"./CriteriaUtils\";\n\nconst RatioDescription = ({ criterion, adminQuestions }) => {\n const option_ratio_object = [];\n\n criterion.selectedValues.forEach((selectedValue) => {\n if (selectedValue !== -1) {\n if (\n getQuestion(criterion.questionId, adminQuestions).questionObject\n .questionType == \"age\"\n ) {\n option_ratio_object.push(\n `${criterion.ratios[selectedValue]}% ${\n getAgeRange({\n start: getQuestion(criterion.questionId, adminQuestions)\n .questionObject.start,\n end: getQuestion(criterion.questionId, adminQuestions)\n .questionObject.end,\n interval: getQuestion(criterion.questionId, adminQuestions)\n .questionObject.interval,\n })[selectedValue].label\n }`\n );\n } else {\n option_ratio_object.push(\n `${criterion.ratios[selectedValue]}% ${\n getQuestion(criterion.questionId, adminQuestions).questionObject\n .options[selectedValue]\n }`\n );\n }\n }\n });\n\n const label = getQuestion(criterion.questionId, adminQuestions).clientField;\n\n return (\n !!option_ratio_object?.length && (\n \n {label}: {option_ratio_object.join(\", \")}\n \n )\n );\n};\n\nexport default RatioDescription;\n","import React, { useEffect } from \"react\";\nimport { Button, Card } from \"antd\";\nimport RatioModal from \"./Modals/RatioModal/RatioModal\";\nimport { useState } from \"react\";\nimport {\n oxford,\n findNextAvailableGroupIndex,\n getQuestion,\n getOptionsLength,\n getAgeRange,\n} from \"./CriteriaUtils.js\";\nimport RatioDescription from \"./RatioDescription\";\n\nconst GroupContainer = ({ criteria, groups, setGroups, adminQuestions }) => {\n const [isRatioModalVisible, setIsRatioModalVisible] = useState(false);\n const [activeGroup, setActiveGroup] = useState({});\n const [criteriaListClient, setCriteriaListClient] = useState([]);\n\n const syncSelectedValuesAndRatios = (newCriteria) => {\n const syncedCriteria = newCriteria.map((c) => {\n if (!c?.selectedValues?.length || !c?.ratios?.length) {\n return {\n ...c,\n selectedValues: [-1],\n ratios: [],\n };\n } else {\n let selectedValues = [];\n let ratios = new Array(\n getOptionsLength(c.questionId, adminQuestions)\n ).fill(0);\n if (\n getQuestion(c.questionId, adminQuestions).questionObject\n .questionType == \"age\"\n ) {\n getAgeRange({\n start: getQuestion(c.questionId, adminQuestions).questionObject\n .start,\n end: getQuestion(c.questionId, adminQuestions).questionObject.end,\n interval: getQuestion(c.questionId, adminQuestions).questionObject\n .interval,\n }).map((el, index) => {\n if (\n el.value.every((r) => c.answer.includes(r)) &&\n c.selectedValues.includes(index)\n ) {\n selectedValues.push(index);\n ratios[index] = c.ratios[index];\n }\n });\n } else {\n c.selectedValues.map((sv) => {\n if (c.answer.includes(sv)) {\n selectedValues.push(sv);\n ratios[sv] = c.ratios[sv];\n }\n });\n }\n return {\n ...c,\n selectedValues: [...selectedValues],\n ratios: [...ratios],\n };\n }\n });\n return syncedCriteria;\n };\n\n //When criteria changes, update each group's criteria and criteria list diplayed on the UI\n useEffect(() => {\n //update Criteria list\n const newCriteriaListClient = criteria.map((criterion) => {\n return getQuestion(criterion.questionId, adminQuestions).clientField;\n });\n setCriteriaListClient(newCriteriaListClient);\n\n if (!groups) return;\n\n //if an option is added or removed\n const newGroups = groups.map((group) => {\n const newCriteria = group.criteria.map((groupCriterion) => {\n return {\n ...criteria.find(\n (criterion) => criterion.questionId === groupCriterion.questionId\n ),\n ratios: groupCriterion.ratios,\n selectedValues: groupCriterion.selectedValues,\n };\n });\n\n //If an existing criterion is removed\n const removedCriteria = newCriteria.filter((groupCriterion) => {\n return criteria.some((criterion) => {\n return groupCriterion.questionId === criterion.questionId;\n });\n });\n\n //If a new criterion is added\n let addedCriteria = criteria.map((criterion) => {\n if (\n !newCriteria.some(\n (groupCriterion) =>\n groupCriterion.questionId === criterion.questionId\n )\n ) {\n return { ...criterion, raitos: [], selectedValues: [] };\n }\n });\n addedCriteria = addedCriteria.filter(\n (addedCriterion) => !!addedCriterion\n );\n\n return {\n ...group,\n criteria: syncSelectedValuesAndRatios([\n ...addedCriteria,\n ...removedCriteria,\n ]),\n };\n });\n\n setGroups(newGroups);\n }, [criteria]);\n\n const editGroup = async (index) => {\n setActiveGroup(groups.find((group) => group.index === index));\n showRatioModal();\n };\n\n const deleteGroup = async (index) => {\n const newGroups = groups.filter((group) => {\n return group.index !== index;\n });\n setActiveGroup({});\n setGroups(newGroups);\n };\n\n const showRatioModal = () => {\n setIsRatioModalVisible(true);\n };\n\n const hideRatioModal = () => {\n setIsRatioModalVisible(false);\n };\n\n const updateActiveGroupsName = (name) => {\n const newGroups = groups.map((group) => {\n if (group.index === activeGroup.index) {\n return { ...group, name };\n }\n return group;\n });\n setGroups(newGroups);\n };\n\n const updateActiveGroupsParticipants = (numberOfParticipants) => {\n const newGroups = groups.map((group) => {\n if (group.index === activeGroup.index) {\n return { ...group, numberOfParticipants };\n }\n return group;\n });\n setGroups(newGroups);\n };\n\n const updateActiveGroupsCriteria = (newCriteria) => {\n const newGroups = groups.map((group) => {\n if (group.index === activeGroup.index) {\n return { ...group, criteria: newCriteria };\n }\n return group;\n });\n setGroups(newGroups);\n };\n\n const createNewGroup = () => {\n const groupIndex = findNextAvailableGroupIndex(groups);\n const newGroup = {\n name: `Group ${groupIndex}`,\n numberOfParticipants: 0,\n index: groupIndex,\n criteria: criteria.map((criterion) => {\n return { ...criterion, ratios: [], selectedValues: [] };\n }),\n responses: [],\n };\n\n if (!groups) setGroups([newGroup]);\n else setGroups([...groups, newGroup]);\n\n setActiveGroup(newGroup);\n showRatioModal();\n };\n\n return (\n <>\n \n
\n
\n Create user groups\n
\n
{`You can filter participants based on ${oxford(\n criteriaListClient\n )}`}
\n
\n \n Add group\n \n\n \n \n {!!groups?.length &&\n groups.map((group) => {\n return (\n \n );\n })}\n \n );\n};\n\nconst GroupCard = ({ group, editHandler, deleteHandler, adminQuestions }) => {\n return (\n
\n \n \n
\n {`${group.name}${\n group.numberOfParticipants\n ? ` - ${group.numberOfParticipants} participants`\n : \"\"\n }`}\n
\n \n editHandler(group.index)}\n style={{ cursor: \"pointer\" }}\n >\n EDIT\n
\n deleteHandler(group.index)}\n style={{ cursor: \"pointer\" }}\n >\n DELETE\n \n \n \n
\n {group.criteria.map((criterion) => (\n \n ))}\n
\n \n \n );\n};\n\nexport default GroupContainer;\n","import React, { useEffect } from \"react\";\nimport { Button, Card } from \"antd\";\nimport RatioModal from \"./Modals/RatioModal/RatioModal\";\nimport { useState } from \"react\";\nimport { oxford, getQuestion } from \"./CriteriaUtils.js\";\nimport RatioDescription from \"./RatioDescription\";\n\nconst criteriaHasRatios = (criteria) => {\n if (!criteria) return false;\n return criteria.some((criterion) => {\n return (\n criterion?.selectedValues?.length &&\n criterion.selectedValues.some((selectedValue) => selectedValue !== -1)\n );\n });\n};\n\nconst RatioContainer = ({ criteria, adminQuestions, setCriteria }) => {\n const [isRatioModalVisible, setIsRatioModalVisible] = useState(false);\n const [criteriaListClient, setCriteriaListClient] = useState([]);\n const [hasRatios, setHasRatios] = useState(false);\n\n useEffect(() => {\n setHasRatios(criteriaHasRatios(criteria));\n }, [criteria]);\n\n //When criteria changes, update each group's criteria and criteria list diplayed on the UI\n useEffect(() => {\n //update Criteria list\n const newCriteriaListClient = criteria.map((criterion) => {\n return getQuestion(criterion.questionId, adminQuestions).clientField;\n });\n setCriteriaListClient(newCriteriaListClient);\n }, [criteria]);\n\n const showRatioModal = () => {\n setIsRatioModalVisible(true);\n };\n\n const hideRatioModal = () => {\n setIsRatioModalVisible(false);\n };\n\n return (\n <>\n \n
\n
Add Ratios
\n
{`You can add ratios for ${oxford(criteriaListClient)}`}
\n
\n showRatioModal()}\n >\n {hasRatios ? \"Edit Ratios\" : \"Add Ratios\"}\n \n\n hideRatioModal()}\n isGroupSurvey={false}\n criteria={criteria}\n adminQuestions={adminQuestions}\n setCriteria={setCriteria}\n />\n \n {hasRatios && (\n
\n \n \n
Ratios:
\n
\n
\n {criteria.map((criterion) => (\n \n ))}\n
\n \n \n )}\n \n );\n};\n\nexport default RatioContainer;\n","import React, { Fragment, useEffect } from \"react\";\nimport Errors from \"../new-survey/Errors\";\nimport FilterUsers from \"./FilterUsers\";\nimport AddScreeningQuestion from \"./AddScreeningQuestion\";\nimport { InnerContainer } from \"../../../components/page-layout/PageLayout\";\nimport GroupContainer from \"./GroupContainer\";\nimport RatioContainer from \"./RatioContainer\";\n\nconst Criteria = ({\n adminQuestions,\n criteria,\n setCriteria,\n groups,\n surveyAccess,\n setGroups,\n isGroupSurvey,\n screeningQuestions,\n setScreeningQuestions,\n errors,\n viewOnly,\n}) => {\n const innerContainerStyle = {\n padding: 40,\n marginTop: 32,\n pointerEvents: viewOnly ? \"none\" : \"auto\",\n };\n useEffect(() => {\n if(surveyAccess) setCriteria([])\n }, [surveyAccess])\n\n return (\n \n {!surveyAccess && \n \n \n}\n {!isGroupSurvey && !!criteria?.length && (\n \n \n \n )}\n\n {isGroupSurvey && !!criteria.length && (\n \n \n \n )}\n \n \n \n \n \n );\n};\n\nexport default Criteria;\n","import React, { Fragment } from \"react\";\nimport { Switch, Row, Col } from \"antd\";\nimport \"./UserQualParticipants.css\";\n\nconst UserQualParticipants = ({ useUserqualUsers, setUseUserqualUsers }) => {\n return (\n \n \n \n \n \n
\n Userqual participants\n
\n \n \n setUseUserqualUsers(checked)}\n />\n \n
\n \n
\n {useUserqualUsers && (\n \n \n \n Userqual will add users to the survey which match your given\n category\n \n \n \n )}\n
\n );\n};\n\nexport default UserQualParticipants;\n","import React from \"react\";\nimport { Upload, Button } from \"antd\";\nimport * as XLSX from \"xlsx\";\nimport styles from \"./UploadCSV.module.css\";\nimport c from \"classnames/bind\";\nimport { notify } from \"../../../utils\";\nimport { EMAIL_VALIDATION_REGEX } from \"../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst isValidFile = (fileType) => {\n const validFileTypes = [\n \".csv\",\n \".xlsx\",\n \".xls\",\n \"application/vnd.ms-excel\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"text/csv\",\n ];\n if (validFileTypes.includes(fileType)) return true;\n return false;\n};\n\nconst UploadCSV = ({ clientProvidedUsers, setClientProvidedUsers }) => {\n const props = {\n accept: \".csv, .xlsx, .xls\",\n beforeUpload: (file) => {\n if (!isValidFile(file.type)) {\n notify(\"error\", \"Error\", \"Invalid file type\");\n return Upload.LIST_IGNORE;\n }\n const reader = new FileReader();\n reader.onload = (evt) => {\n /* Parse data */\n const bstr = evt.target.result;\n const wb = XLSX.read(bstr, { type: \"binary\" });\n /* Get first worksheet */\n const wsname = wb.SheetNames[0];\n const ws = wb.Sheets[wsname];\n /* Convert array of arrays */\n const data = XLSX.utils.sheet_to_csv(ws, { header: 1 });\n let users = data.split(\"\\n\").join(\";\").split(\";\").join(\",\").split(\",\");\n users = users.map((user) => user.trim());\n users = users.filter(\n (email) =>\n email !== \"\" &&\n email !== \" \" &&\n EMAIL_VALIDATION_REGEX.test(email) &&\n clientProvidedUsers.indexOf(email) === -1\n );\n users = [...new Set(users)];\n setClientProvidedUsers([...clientProvidedUsers, ...users]);\n };\n reader.readAsBinaryString(file);\n return false;\n },\n };\n\n return (\n
\n \n \n Upload CSV\n \n \n
\n );\n};\n\nexport default UploadCSV;\n","import React, { Fragment, useState } from \"react\";\nimport { notify } from \"../../../utils\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport { Switch, Tag, Row, Col, Input } from \"antd\";\nimport UploadCSV from \"./UploadCSV\";\nimport { BASEURL, EMAIL_VALIDATION_REGEX } from \"../../../constants\";\nimport c from \"classnames/bind\";\nimport styles from \"./criteria.module.css\";\n\nconst cx = c.bind(styles);\n\nconst ImportParticipants = ({\n useImportedUsers,\n setUseImportedUsers,\n clientProvidedUsers,\n setClientProvidedUsers,\n}) => {\n const [userEmail, setUserEmail] = useState(\"\");\n\n return (\n \n \n \n \n \n
\n Import your participants\n
\n \n \n {\n if (!clientProvidedUsers) {\n setClientProvidedUsers([]);\n }\n setUseImportedUsers(checked);\n }}\n />\n \n
\n \n
\n {useImportedUsers && (\n \n \n \n \n

Bulk upload from excel file

\n
\n Upload .csv file with the list of users.{\" \"}\n \n Download sample\n \n
\n \n \n \n \n
\n \n \n

Add individual users

\n setUserEmail(e.target.value)}\n onKeyPress={(e) => {\n if (e.key === \"Enter\") {\n if (!EMAIL_VALIDATION_REGEX.test(userEmail)) {\n notify(\"error\", \"Error\", \"Invalid email\");\n return;\n }\n if (\n !!clientProvidedUsers &&\n clientProvidedUsers.includes(userEmail)\n ) {\n notify(\"error\", \"Error\", \"Email already added\");\n return;\n }\n setClientProvidedUsers([...clientProvidedUsers, userEmail]);\n setUserEmail(\"\");\n }\n }}\n className={cx(\"user-email-input\")}\n size=\"large\"\n />\n \n {clientProvidedUsers?.length > 0 && (\n \n {clientProvidedUsers.map((emailId, index) => (\n \n }\n onClose={(e) => {\n e.preventDefault();\n setClientProvidedUsers(\n clientProvidedUsers.filter((user) => user !== emailId)\n );\n }}\n style={{\n fontSize: 14,\n marginBottom: 10,\n }}\n >\n {emailId}\n \n ))}\n \n )}\n
\n )}\n
\n );\n};\n\nexport default ImportParticipants;\n","import React from \"react\";\nimport { Modal } from \"antd\";\n\nimport styles from \"./DeletePanelUserConfirmModal.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst DeletePanelUserConfirmModal = ({ handleOk, handleCancel, isVisible }) => {\n return (\n \n

Are you sure you want to delete the panel ?

\n \n );\n};\n\nexport default DeletePanelUserConfirmModal;\n","import React, { useEffect, useState } from \"react\";\nimport { Fragment } from \"react\";\nimport {\n Table,\n Modal,\n Dropdown,\n Menu,\n Button,\n Checkbox,\n Card,\n List,\n Radio,\n} from \"antd\";\nimport { FilterFilled, CloseSquareFilled } from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport \"./CopyPanelModal.css\";\nimport \"./CopyPanelModal.module.css\";\nimport styles from \"./CopyPanelModal.module.css\";\nimport c from \"classnames/bind\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport { getClientId } from \"../../../../../utils\";\nimport handleNetworkErrors from \"../../../handleNetworkErrors\";\nconst RadioGroup = Radio.Group;\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\nconst cx = c.bind(styles);\n\nconst filters = [\n {\n text: \"Qualitative\",\n value: \"Qualitative\",\n },\n {\n text: \"Quantitative\",\n value: \"Quantitative\",\n },\n {\n text: \"Moderated\",\n value: \"Moderated\",\n },\n {\n text: \"UnModerated\",\n value: \"UnModerated\",\n },\n /* {\n text: \"Mobile\",\n value: \"Mobile\",\n },\n {\n text: \"Desktop\",\n value: \"Desktop\",\n }, */\n {\n text: \"Group\",\n value: \"Group\",\n },\n {\n text: \"Individual\",\n value: \"Individual\",\n },\n {\n text: \"15 min\",\n value: \"15 min\",\n },\n {\n text: \"30 min\",\n value: \"30 min\",\n },\n {\n text: \"45 min\",\n value: \"45 min\",\n },\n {\n text: \"Custom Panels\",\n value: \"Custom Panels\",\n },\n];\n\nconst CopyPanelModal = ({ surveyList, isVisible, handleOk, handleCancel }) => {\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n const [filterVisible, setFilterVisible] = useState(false);\n const [appliedFilters, setAppliedFilters] = useState([]);\n const [radioState, setRadioState] = useState(null);\n const [customPanels, setCustomPanels] = useState([]);\n const timing = {\n 1: \"15 min\",\n 2: \"30 min\",\n 3: \"45 min\",\n };\n\n useEffect(() => {\n (async () => {\n try {\n const { data } = await axios({\n ...Routes.client.getPanels(getClientId()),\n });\n setCustomPanels(data.panels);\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, []);\n\n const surveyListColumns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n fixed: true,\n width: 100,\n },\n {\n title: \"Published Date\",\n dataIndex: \"date\",\n sorter: (a, b) => new Date(a.date) - new Date(b.date),\n render: (date) => moment(date).format(\"DD MMM YYYY\"),\n align: \"center\",\n },\n {\n title: \"Survey Type\",\n dataIndex: \"type\",\n },\n Table.SELECTION_COLUMN,\n ];\n\n const getSurveyType = (survey) => {\n let type = \"\";\n type += survey.surveyType ? \"Qual\" : \"Quant\";\n if (survey.surveyType) {\n type += \"/\" + (survey.mode ? \"Mod\" : \"unmod\");\n type += \"/\" + (survey.device ? \"Mobile\" : \"Desktop\");\n if (survey.mode) {\n type += \"/\" + (survey.setting ? \"Group\" : \"Individual\");\n }\n type += \"/\" + timing[survey.timingType];\n }\n return type;\n };\n\n const getSurveyTags = (survey) => {\n let tags = [];\n tags.push(survey.surveyType ? \"Qualitative\" : \"Quantitative\");\n if (survey.surveyType) {\n tags.push(survey.mode ? \"Moderated\" : \"UnModerated\");\n tags.push(survey.device ? \"Mobile\" : \"Desktop\");\n if (survey.mode) {\n tags.push(survey.setting ? \"Group\" : \"Individual\");\n }\n tags.push(timing[survey.timingType]);\n }\n return tags;\n };\n\n const handleRadioSelection = (e) => {\n const surveyObj = {\n ...e.target.value.survey,\n isSurvey: e.target.value.isSurvey,\n };\n setSelectedSurvey(surveyObj);\n };\n\n const getSurveyData = () => {\n return surveyList\n .filter((publishedSurvey) => publishedSurvey?.responses?.length)\n .map((publishedSurvey, index) => {\n return {\n key: publishedSurvey._id,\n name: publishedSurvey.name,\n date: publishedSurvey.createdAt,\n type: getSurveyType(publishedSurvey),\n tags: getSurveyTags(publishedSurvey),\n survey: publishedSurvey,\n isSurvey: true,\n };\n })\n .filter(({ tags }) => {\n if (appliedFilters.length === 0) {\n return true;\n }\n if (\n appliedFilters.length === 1 &&\n appliedFilters.includes(\"Custom Panels\")\n ) {\n return false;\n }\n return appliedFilters.some((f) => tags.includes(f));\n });\n };\n\n const includeCustomPanels = () => {\n if (\n appliedFilters.length === 0 ||\n appliedFilters.includes(\"Custom Panels\")\n ) {\n return true;\n }\n return false;\n };\n\n const getCustomPanelsData = () => {\n return includeCustomPanels()\n ? customPanels\n .filter((customPanel) => customPanel?.users?.length)\n .map((customPanel, index) => {\n return {\n key: customPanel._id,\n name: customPanel.name,\n date: \"\",\n type: \"\",\n tags: [\"Custom Panel\"],\n survey: customPanel,\n isSurvey: false,\n };\n })\n : [];\n };\n\n const surveyListData = [...getSurveyData(), ...getCustomPanelsData()];\n\n const rowSelection = {\n onChange: (selectedRowKeys, selectedRows) => {\n const surveyObj = {\n ...selectedRows[0].survey,\n isSurvey: selectedRows[0].isSurvey,\n };\n setSelectedSurvey(surveyObj);\n },\n };\n\n return (\n \n handleOk(selectedSurvey)}\n onCancel={handleCancel}\n width={600}\n centered={true}\n className={cx(\"published-survey-popup\")}\n okText=\"Use Panel\"\n cancelText=\"Cancel\"\n closable={false}\n okButtonProps={{\n size: \"large\",\n className: \"yesButton\",\n disabled: selectedSurvey ? false : true,\n }}\n cancelButtonProps={{ size: \"large\", className: \"noButton\" }}\n >\n \n
Select any one past survey
\n \n \n {filters.map(({ text, value }) => {\n return (\n \n {text}\n \n );\n })}\n \n \n }\n trigger={[\"click\"]}\n visible={filterVisible}\n onVisibleChange={setFilterVisible}\n placement=\"bottomCenter\"\n >\n \n Filter\n \n \n \n \n {\n return (\n \n \n \n
\n \n \n {item.date && new Date(item.date).getUTCDate()}\n
\n \n {item.date &&\n months[new Date(item.date).getUTCMonth()]}\n \n \n \n \n {item.name}\n \n \n {item.tags.map((it, index) => {\n return index === item.tags.length - 1 ? (\n
{it}
\n ) : (\n
{it}/
\n );\n })}\n \n \n \n
\n \n
\n \n \n
\n );\n }}\n />\n \n \n
\n );\n};\n\nexport default CopyPanelModal;\n","import React, { Fragment, useState } from \"react\";\nimport { Switch, Row, Col, Tag, Button } from \"antd\";\nimport { getClientId, notify } from \"../../../utils\";\nimport { useSelector } from \"react-redux\";\nimport DeletePanelUserConfirmModal from \"./Modals/DeletePanelUserConfirmModal/DeletePanelUserConfirmModal\";\nimport CopyPanelModal from \"./Modals/CopyPanelModal/CopyPanelModal\";\nimport axios, { Routes } from \"../../../services/API\";\n\nconst PastSurveyParticipants = ({\n usePanel,\n setUsePanel,\n panelUsers,\n setPanelUsers,\n}) => {\n const surveys = useSelector((state) => state.client.surveys);\n\n const [\n deletePanelUserConfirmModal,\n setDeletePanelUserConfirmModal,\n ] = useState(false);\n const [copyPanelModal, setCopyPanelModal] = useState(false);\n\n const copySurveyPanel = async (survey) => {\n let surveyUsers = [];\n if (survey.isSurvey) {\n if (Array.isArray(survey.clientProvidedUsers)) {\n surveyUsers = [...survey.clientProvidedUsers];\n }\n\n if (Array.isArray(survey.responses)) {\n survey.responses.forEach((userResponse) => {\n if (userResponse.userId) {\n surveyUsers.push(userResponse.userId.email);\n }\n });\n }\n } else {\n const { data } = await axios({\n ...Routes.client.getPanelUsers(getClientId(), survey._id),\n });\n surveyUsers = data.users.map((user) => user.email);\n }\n\n if (!surveyUsers.length) {\n notify(\n \"error\",\n \"Error\",\n survey.name +\n \" does not have any responses available to copy user details\"\n );\n return;\n }\n\n setPanelUsers(surveyUsers);\n };\n\n return (\n \n \n \n \n \n
\n Past survey participants\n
\n \n \n {\n setUsePanel(checked);\n if (!panelUsers) {\n setPanelUsers([]);\n }\n }}\n />\n \n
\n \n
\n {!!usePanel && (\n \n \n \n \n

Add users from previous survey

\n
\n All the users from selected survey will be added to this\n survey.\n
\n \n \n {\n if (!!panelUsers?.length) {\n setDeletePanelUserConfirmModal(true);\n } else {\n setCopyPanelModal(true);\n }\n }}\n >\n {!!panelUsers?.length ? \"Delete Panel\" : \"Select Panel\"}\n \n \n
\n \n {!!panelUsers?.length && (\n \n {(panelUsers || []).map((emailId, index) => (\n \n {emailId}\n \n ))}\n \n )}\n \n )}\n\n survey.isPublished)}\n handleOk={async (survey) => {\n await copySurveyPanel(survey);\n setCopyPanelModal(false);\n }}\n handleCancel={() => setCopyPanelModal(false)}\n isVisible={copyPanelModal}\n />\n\n {\n setPanelUsers([]);\n setDeletePanelUserConfirmModal(false);\n }}\n handleCancel={() => {\n setDeletePanelUserConfirmModal(false);\n }}\n isVisible={deletePanelUserConfirmModal}\n />\n
\n );\n};\n\nexport default PastSurveyParticipants;\n","import React, { Fragment } from \"react\";\nimport { Row, Col } from \"antd\";\nimport { InnerContainer } from \"../../../components/page-layout/PageLayout\";\nimport Errors from \"../new-survey/Errors\";\nimport UserQualParticipants from \"./UserQualParticipants\";\nimport ImportParticipants from \"./ImportParticipants\";\nimport PastSurveyParticipants from \"./PastSurveyParticipants\";\n\nconst Participants = ({\n useUserqualUsers,\n setUseUserqualUsers,\n useImportedUsers,\n setUseImportedUsers,\n clientProvidedUsers,\n setClientProvidedUsers,\n usePanel,\n setUsePanel,\n panelUsers,\n setPanelUsers,\n errors,\n viewOnly,\n}) => {\n const innerContainerStyle = {\n padding: 20,\n marginTop: 32,\n pointerEvents: viewOnly ? \"none\" : \"auto\",\n };\n\n return (\n \n \n \n

\n Add participants\n

\n
\n You can either import your own users or source users from Userqual.\n
\n \n
\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n
\n );\n};\n\nexport default Participants;\n","import { useState, useEffect } from \"react\";\nimport { capitalizeFirstCharacter, Sum } from \"../../../utils\";\nimport { months } from \"../../../constants\";\nimport getBranchingErrors from \"../branching-logic/handleErrors\";\n\nconst getSetupErrors = (survey) => {\n const err = [];\n if (!survey.name || survey.name === \"\") {\n err.push({\n message: \"Please enter Survey name.\",\n description: \"Please enter Survey name.\",\n });\n }\n\n if (survey.surveyType === undefined) {\n err.push({\n message:\n \"Please choose if it’s a Qualitative (Video) Survey or a Quantitative (Online) Survey.\",\n description:\n \"Please choose if it’s a Qualitative (Video) Survey or a Quantitative (Online) Survey.\",\n });\n }\n\n if (survey.surveyType === true && survey.mode === undefined) {\n err.push({\n message:\n \"Please choose if the Qualitative (Video) Survey would be Moderated (conducting by someone) or Unmoderated (self-conducted).\",\n description:\n \"Please choose if the Qualitative (Video) Survey would be Moderated (conducting by someone) or Unmoderated (self-conducted).\",\n });\n }\n\n if (\n survey.surveyType === true &&\n survey.mode !== undefined &&\n survey.device === undefined\n ) {\n err.push({\n message:\n \"Please choose if you would like the Survey to be taken on a Desktop or on a Mobile phone.\",\n description:\n \"Please choose if you would like the Survey to be taken on a Desktop or on a Mobile phone.\",\n });\n }\n\n if (\n survey.surveyType === true &&\n survey.mode === true &&\n survey.device !== undefined &&\n survey.setting === undefined\n ) {\n err.push({\n message:\n \"Please choose if the Survey would conducted in an Individual or Group setting.\",\n description:\n \"Please choose if the Survey would conducted in an Individual or Group setting.\",\n });\n }\n\n if (\n (survey.surveyType === true &&\n survey.mode === true &&\n survey.device !== undefined &&\n survey.setting !== undefined &&\n survey.timingType === undefined) ||\n (survey.surveyType === true &&\n survey.mode === false &&\n survey.device !== undefined &&\n survey.timingType === undefined)\n ) {\n err.push({\n message:\n \"Please choose how long you would like to conduct the Survey for.\",\n description:\n \"Please choose how long you would like to conduct the Survey for.\",\n });\n }\n\n return err;\n};\n\nconst getCriteriaErrors = (survey, adminQuestions) => {\n const err = [];\n\n const getAdminQuestionText = (id) => {\n if (adminQuestions && adminQuestions.length > 0)\n return capitalizeFirstCharacter(\n adminQuestions.filter((s) => s[\"_id\"] === id)[0].clientField\n );\n else return \"Unnamed criteria\";\n };\n\n if (!(survey.mode && survey.surveyType && survey.setting)) {\n survey.criteria.forEach((criterion) => {\n if (criterion?.ratios?.length && Sum(criterion.ratios) != 100) {\n err.push({\n message: `Ratios for selected criteria, \"${getAdminQuestionText(\n criterion.questionId\n )}\" do not add upto 100%.`,\n description: `Please select ratio(s) for criteria, \"${getAdminQuestionText(\n criterion.questionId\n )}\" such that it adds upto 100%\".`,\n });\n }\n });\n } else if (survey?.groups?.length) {\n survey.groups.forEach((group) => {\n group.criteria.forEach((criterion) => {\n if (criterion?.ratios?.length && Sum(criterion.ratios) != 100) {\n err.push({\n message: `Ratios for selected criteria, \"${getAdminQuestionText(\n criterion.questionId\n )}\" in group, \"${group.name}\" do not add upto 100%.`,\n description: `Please select ratio(s) for criteria, \"${getAdminQuestionText(\n criterion.questionId\n )}\" in group, \"${group.name}\" such that it adds upto 100%\".`,\n });\n }\n });\n });\n }\n\n survey.criteria.forEach((e) => {\n if (e.answer.length === 0) {\n err.push({\n message: `There is no selected option for criteria, \"${getAdminQuestionText(\n e.questionId\n )}\".`,\n description: `Please select option(s) for criteria, \"${getAdminQuestionText(\n e.questionId\n )}\".`,\n });\n }\n });\n\n survey.screeningQuestions.forEach((e) => {\n if (e.answer.length === 0) {\n err.push({\n message: `There is no qualified option for additional screening question, \"${e.questionObject.text}\".`,\n description: `Please select option(s) for additional screening question, \"${e.questionObject.text}\".`,\n });\n }\n });\n\n return err;\n};\n\nconst getParticipantsErrors = (survey) => {\n const err = [];\n\n if (\n !survey.useUserqualUsers &&\n !survey.useImportedUsers &&\n !survey.usePanel &&\n !survey.surveyAccess\n ) {\n err.push({\n message: \"There are no users for the survey.\",\n description: \"Please select atleast one of the options.\",\n });\n }\n\n if (!!survey.useImportedUsers && !survey.clientProvidedUsers?.length) {\n err.push({\n message: \"There are no imported users for the survey.\",\n description: \"Please import user emails for the survey\",\n });\n }\n\n if (!!survey.usePanel && !survey.panelUsers?.length) {\n err.push({\n message: \"No users have been added from the previous survey.\",\n description: \"Please add users from the previous survey.\",\n });\n }\n\n return err;\n};\n\nconst getQuestionsErrors = (survey) => {\n const err = [];\n\n if (survey.surveyType === false && survey.questions.length === 0) {\n err.push({\n message: `Questions missing.`,\n description: `You need to add atleast one question.`,\n });\n }\n\n if (\n survey.surveyType === true &&\n survey.mode === false &&\n survey.questions.length === 0\n ) {\n err.push({\n message: `Questions missing.`,\n description: `You need to add atleast one question.`,\n });\n }\n\n survey.questions.forEach((question, idx) => {\n const num = idx + 1;\n\n if (question.text === \"\" && question.type !== \"netPromotorScore\") {\n err.push({\n message: `There is no text for question no. ${num}`,\n description: `Please provide some text for question no. ${num}`,\n });\n }\n\n if (question.type === \"likert\") {\n if (question.options.likertStartLabel === \"\") {\n err.push({\n message: `There is no start label for question no. ${num}`,\n description: `Please provide start label for question no. ${num}`,\n });\n }\n\n // if (question.options.likertMiddleLabel === \"\") {\n // err.push({\n // message: `There is no middle label for question no. ${num}`,\n // description: `Please provide middle label for question no. ${num}`,\n // });\n // }\n\n if (question.options.likertEndLabel === \"\") {\n err.push({\n message: `There is no end label for question no. ${num}`,\n description: `Please provide end label for question no. ${num}`,\n });\n }\n }\n\n if (question.type === \"slider\") {\n if (question.options.sliderStartLabel === \"\") {\n err.push({\n message: `There is no start label for question no. ${num}`,\n description: `Please provide start label for question no. ${num}`,\n });\n }\n\n // if (question.options.sliderMiddleLabel === \"\") {\n // err.push({\n // message: `There is no middle label for question no. ${num}`,\n // description: `Please provide middle label for question no. ${num}`,\n // });\n // }\n\n if (question.options.sliderEndLabel === \"\") {\n err.push({\n message: `There is no end label for question no. ${num}`,\n description: `Please provide end label for question no. ${num}`,\n });\n }\n }\n\n if (question.type === \"multiChoices\" || question.type === \"checkBoxes\") {\n question.options.multiChoices.forEach((opt) => {\n if (opt.label === \"\") {\n err.push({\n message: `There is no label for question no. ${num}`,\n description: `Please provide a label for question no. ${num}`,\n });\n }\n });\n }\n\n if (\n question.type === \"imageMultiChoices\" ||\n question.type === \"imageCheckBoxes\"\n ) {\n question.options.imageMultiChoices.forEach((opt) => {\n if (opt.imageLabel === \"\") {\n err.push({\n message: `There is no label for question no. ${num}`,\n description: `Please provide a label for question no. ${num}`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question no. ${num}`,\n description: `Please provide an image for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"imageStarRatingChoices\") {\n question.options.imageStarRatingChoices.forEach((opt) => {\n if (opt.imageLabel === \"\") {\n err.push({\n message: `There is no label for question no. ${num}`,\n description: `Please provide a label for question no. ${num}`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question no. ${num}`,\n description: `Please provide an image for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"videoStarRatingChoices\") {\n question.options.videoStarRatingChoices.forEach((opt) => {\n if (opt.videoLabel === \"\") {\n err.push({\n message: `There is no label for question no. ${num}`,\n description: `Please provide a label for question no. ${num}`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n message: `There is no video for question no. ${num}`,\n description: `Please provide a video for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"association\") {\n question.options.associationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question no. ${num}`,\n description: `Please provide association for label for question no. ${num}`,\n });\n }\n if (opt.label === \"\") {\n err.push({\n message: `There is no label for question no. ${num}`,\n description: `Please provide a label for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"imageAssociation\") {\n question.options.imageAssociationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question no. ${num}`,\n description: `Please provide association for label for question no. ${num}`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question no. ${num}`,\n description: `Please provide an image for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"videoAssociation\") {\n question.options.videoAssociationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question no. ${num}`,\n description: `Please provide association label for question no. ${num}`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n message: `There is no video for question no. ${num}`,\n description: `Please provide a video for question no. ${num}`,\n });\n }\n });\n }\n\n if (question.type === \"adAnalysis\") {\n question.options.adAnalysisChoices.forEach((opt) => {\n if (!opt.videoType) {\n err.push({\n description: `Please provide video type for question no. ${num}`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n description: `Please provide a video for question no. ${num}`,\n });\n }\n });\n\n if (!question.options.adAnalysisData.url) {\n err.push({\n description: `Please combine the video of question no. ${num}`,\n });\n }\n }\n });\n return err;\n};\n\nconst getPublishErrors = (survey) => {\n const err = [];\n\n if (\n survey.surveyType === true &&\n survey.mode === true &&\n survey.setting === false &&\n !survey.surveyAccess &&\n !survey.moderatedSlots\n ) {\n err.push({\n message: `Please select a date and time for conducting the Survey.`,\n description: `Please select a date and time for conducting the Survey.`,\n });\n }\n if (\n survey.moderatedSlots &&\n Object.keys(survey.moderatedSlots).length === 0\n ) {\n err.push({\n message: `Please select a date and time for conducting the Survey.`,\n description: `Please select a date and time for conducting the Survey.`,\n });\n }\n\n if (survey.surveyType && survey.mode && survey.moderatedSlots) {\n let totalSelectedSlots = 0;\n if (survey.setting) {\n totalSelectedSlots = Object.keys(survey.moderatedSlots).reduce(\n (sum, slot) =>\n Object.keys(survey.moderatedSlots[slot]).length * 5 + sum,\n 0\n );\n } else {\n totalSelectedSlots = Object.keys(survey.moderatedSlots).reduce(\n (sum, slot) => Object.keys(survey.moderatedSlots[slot]).length + sum,\n 0\n );\n }\n if (survey.numberOfParticipants > totalSelectedSlots) {\n err.push({\n message: `Total number of participants are ${survey.numberOfParticipants} and selected slots are ${totalSelectedSlots}`,\n description: `Total number of participants are ${survey.numberOfParticipants} and selected slots are ${totalSelectedSlots}`,\n });\n }\n }\n\n if (survey.moderatedSlots) {\n Object.keys(survey.moderatedSlots).forEach((date) => {\n if (Object.keys(survey.moderatedSlots[date]).length === 0) {\n const [day, month, year] = date.split(\"/\");\n err.push({\n message: `Please select slots for ${\n months[parseInt(month) - 1]\n } ${day} ${year}.`,\n description: `Please select slots for ${\n months[parseInt(month) - 1]\n } ${day} ${year}.`,\n });\n }\n });\n }\n\n return err;\n};\n\nconst useErrors = (survey, adminQuestions) => {\n const [errors, setErrors] = useState({\n setupErrors: [],\n questionsErrors: [],\n criteriaErrors: [],\n participantsErrors: [],\n publishErrors: [],\n branchingErrors: [],\n });\n\n useEffect(() => {\n if (survey) {\n const setupErrors = getSetupErrors(survey);\n const criteriaErrors = getCriteriaErrors(survey, adminQuestions);\n const questionsErrors = getQuestionsErrors(survey);\n const participantsErrors = getParticipantsErrors(survey);\n const publishErrors = getPublishErrors(survey);\n const branchingErrors = getBranchingErrors(survey.rules);\n setErrors((s) => ({\n ...s,\n setupErrors,\n criteriaErrors,\n questionsErrors,\n participantsErrors,\n publishErrors,\n branchingErrors,\n }));\n }\n }, [survey, adminQuestions]);\n\n return errors;\n};\n\nexport default useErrors;\n","export const defaultAdminQuestion = [\n \"60015af7f976bbfd15c37ab6\",\n \"5fe3623f21debdd705d52c20\",\n \"60015af7f976bbfd15c37ab7\",\n \"60015af7f976bbfd15c37ab8\",\n \"60015af7f976bbfd15c37ab9\",\n \"60015be9f976bbfd15c37aba\",\n];\n","import { defaultAdminQuestion } from \"../criteria/defaultCriteria\";\n\nconst userTypes = {\n true: \"clientsUser\",\n false: \"UQUser\",\n};\nconst surveyTypes = {\n true: \"qualitative\",\n false: \"quantitative\",\n};\nconst modes = {\n true: \"moderated\",\n false: \"unModerated\",\n};\nconst timings = {\n 1: \"15\",\n 2: \"30\",\n 3: \"45\",\n};\nexport const CostCounter = (survey, tier) => {\n let price = 0;\n const userType = userTypes[survey.usersType];\n const pricingSegment = tier.pricing;\n const surveyType = surveyTypes[survey.surveyType];\n const questionTypesPricing = pricingSegment.additionalCost.questionType;\n const criteriaPricing = pricingSegment.additionalCost.additionalCriteria;\n const influencerAudiencePricing =\n pricingSegment.additionalCost.influencerAudience;\n\n if (survey.surveyType === undefined) {\n return 0;\n }\n\n if (survey.surveyType) {\n let modeType = modes[survey.mode];\n let time = timings[survey.timingType];\n if (survey.mode !== undefined && survey.timingType !== undefined) {\n price += pricingSegment[surveyType][modeType][time][userType];\n }\n } else {\n price += pricingSegment[surveyType][userType];\n }\n\n survey.questions.map((question, index) => {\n if (Object.keys(questionTypesPricing).indexOf(question.type) > -1) {\n price += questionTypesPricing[question.type];\n }\n });\n\n if (!survey.usersType) {\n survey.criteria.map((question, index) => {\n if (defaultAdminQuestion.indexOf(question.questionId) == -1) {\n price += criteriaPricing;\n }\n });\n\n if (survey.audienceType) {\n price += survey.influencerCategories.length * influencerAudiencePricing;\n }\n }\n\n return price;\n};\n\n// {\n// \"usersType\": false,\n// \"influencerCategories\": [],\n// \"questions\": [],\n// \"numberOfParticipants\": 10,\n// \"clientProvidedUsers\": [],\n// \"currentlyActive\": 0,\n// \"surveyStartsAt\": \"2021-04-12T21:11:22.502Z\",\n// \"surveyEndsAt\": \"2021-04-12T21:11:22.502Z\",\n// \"paymentType\": true,\n// \"paymentValue\": 20,\n// \"isPublished\": false,\n// \"isAdminVerified\": false,\n// \"_id\": \"607679b35eb26cdc555c7af6\",\n// \"clientId\": \"5fd88e45f22c230004487e52\",\n// \"criteria\": [],\n// \"screeningQuestions\": [],\n// \"responses\": [],\n// \"createdAt\": \"2021-04-14T05:12:19.262Z\",\n// \"updatedAt\": \"2021-04-14T05:12:19.262Z\",\n// \"__v\": 0,\n// \"name\": \"afasf\"\n// }\n\n// {\n// \"results\": {\n// \"individualResponsesCompare\": false,\n// \"questionSummariesCompare\": false\n// },\n// \"pricing\": {\n// \"qualitative\": {\n// \"moderated\": {\n// \"15\": {\n// \"clientsUser\": 5000,\n// \"UQUser\": 8000\n// },\n// \"30\": {\n// \"clientsUser\": 6000,\n// \"UQUser\": 9000\n// },\n// \"45\": {\n// \"clientsUser\": 7000,\n// \"UQUser\": 10000\n// }\n// },\n// \"unModerated\": {\n// \"15\": {\n// \"clientsUser\": 3000,\n// \"UQUser\": 4500\n// },\n// \"30\": {\n// \"clientsUser\": 4000,\n// \"UQUser\": 5500\n// },\n// \"45\": {\n// \"clientsUser\": 5000,\n// \"UQUser\": 6500\n// }\n// }\n// },\n// \"quantitative\": {\n// \"clientsUser\": 50,\n// \"UQUser\": 300\n// },\n// \"additionalCost\": {\n// \"questionType\": {\n// \"imageInstruction\": 250,\n// \"imageComment\": 250,\n// \"imageMultiChoices\": 250,\n// \"imageRanking\": 250,\n// \"imageCheckBoxes\": 300,\n// \"imageStarRatingChoices\": 250,\n// \"imageABTest\": 250,\n// \"imageAssociation\": 250,\n// \"videoInstruction\": 1500,\n// \"videoComment\": 1500,\n// \"videoMultiChoices\": 1500,\n// \"videoRanking\": 1500,\n// \"videoCheckBoxes\": 1800,\n// \"videoStarRatingChoices\": 1500,\n// \"videoABTest\": 1500,\n// \"videoAssociation\": 1500\n// },\n// \"additionalCriteria\": 250,\n// \"influencerAudience\": 500\n// }\n// },\n// \"_id\": \"5fda700af15c210004d22248\",\n// \"influencerAudience\": true,\n// \"advancedCriteria\": true,\n// \"advancedCriteriaQuestions\": false,\n// \"subscription\": 0\n// }\n","import React, { useState, useEffect} from \"react\";\nimport { Modal, Button, Card } from \"antd\";\nimport { CloseSquareFilled, LinkOutlined } from \"@ant-design/icons\";\nimport QRCode from \"qrcode.react\";\nimport styles from \"./ShareSurveyModal.module.css\";\nimport c from \"classnames/bind\";\nimport { BASEURL } from \"../../../../../constants\";\nimport handleNetworkErrors from \"../../../handleNetworkErrors\";\nimport axios, { Routes } from \"../../../../../services/API\"\n\nconst cx = c.bind(styles);\n\nconst ShareSurveyModal = ({\n handleOk,\n handleCancel,\n isVisible,\n isPublish,\n surveyToken,\n surveyAccess,\n surveyMode,\n surveyId,\n clientId,\n surveyType,\n survey,\n setOpenToken,\n token\n}) => {\n\nconst [surveyLink, setSurveyLink] = useState('');\nconst isOpenModerated = surveyType && surveyMode && surveyAccess\nlet openModToken = survey?.openSurvey?.surveyLinks[survey.openSurvey.surveyLinks.length-1]?.link || token\nconst link = isOpenModerated ? `https://userqual.com/attemptSurvey/${surveyToken}?token=${openModToken}` : `https://userqual.com/attemptSurvey/${surveyToken}`\n\n\nuseEffect(() => {\n setSurveyLink(link)\n}, [isVisible])\n\n const downloadQRCode = () => {\n const qrCodeURL = document\n .getElementById(\"qrCodeEl\")\n .toDataURL(\"image/png\")\n .replace(\"image/png\", \"image/octet-stream\");\n let aEl = document.createElement(\"a\");\n aEl.href = qrCodeURL;\n aEl.download = \"QR_Code.png\";\n document.body.appendChild(aEl);\n aEl.click();\n document.body.removeChild(aEl);\n };\n\n const generateOpenModLink = async () => {\n const {url, method} = Routes.client.generateOpenModeratedLink(survey.clientId, survey._id)\n try {\n debugger\n const {data} = await axios[method](url);\n let openModToken = data.newSurveyLink.link\n let link = `https://userqual.com/attemptSurvey/${surveyToken}?token=${openModToken}`\n setSurveyLink(link)\n setOpenToken(openModToken)\n } catch (err) {\n handleNetworkErrors(err);\n }\n }\n\n const footer = isPublish\n ? [\n ,\n ,\n ]\n : [];\n //TODO: need to create frontend endpoint using AddSurvey.jsx and make a backend call to and setup a proper route on Routes.jsx\n return (\n \n }\n >\n
Publish survey
\n\n \n {isPublish ? (\n
\n Are you sure you want to publish this survey? All the users added\n will be notified about this survey. You can also copy the below link\n and share it with other users. You can later copy this link from\n published survey page.\n
\n ) : (\n
\n Copy the below link to share this survey with other users. Users\n will need to login with mobile OTP or email to take the survey. You\n can also download the QR code to access the survey through a QR\n scan.\n
\n )}\n \n \n \n \n \n \n {surveyLink}\n \n \n \n
\n
\n {\n navigator.clipboard.writeText(surveyLink);\n }\n }\n >\n Copy Link\n \n
\n
\n {\n downloadQRCode();\n }}\n >\n Download QR Code\n \n
\n {isOpenModerated && !isPublish &&
\n {\n generateOpenModLink()\n }\n }\n >\n Generate New Link\n \n
\n }\n
\n \n
\n \n );\n};\n\nconst PublishButton = ({ handleOk }) => {\n return (\n \n {\"Publish\"}\n \n );\n};\n\nconst CancelButton = ({ handleCancel }) => {\n return (\n \n Cancel\n \n );\n};\n\nconst DoneButton = ({ handleOk }) => {\n return (\n \n {\"Done\"}\n \n );\n};\n\nexport default ShareSurveyModal;\n","import React, { useEffect, useState } from \"react\";\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport HeaderButtons from \"./HeaderButtons\";\nimport Setup from \"../setup/Setup\";\nimport { Button, notification, Spin } from \"antd\";\nimport styles from \"./new-survey-styles.module.css\";\nimport Questions from \"../questionsPage/Questions\";\nimport Publish from \"../publish/Publish\";\nimport Criteria from \"../criteria/Criteria\";\nimport Participants from \"../participants/Participants\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport { useCallback } from \"react\";\nimport useErrors from \"./useErrors\";\nimport { getClientId, notify, Sum } from \"../../../utils\";\nimport \"./Button.css\";\nimport { CostCounter } from \"./CostCounter\";\nimport { PERMISSION, ACCESS_LEVEL } from \"../../../constants\";\nimport ShareSurveyModal from \"../published-survey/Modals/ShareSurveyModal/ShareSurveyModal\";\n\nconst saveSurvey = async (survey) => {\n await axios({\n ...Routes.client.editSurvey(getClientId(), survey[\"_id\"]),\n data: { data: survey },\n });\n};\n\nconst sanitizeSurvey = (survey) => {\n const newGroups =\n survey.mode && survey.surveyType && survey.setting ? survey.groups : [];\n const newClientProvidedUsers = survey.useImportedUsers\n ? survey.clientProvidedUsers\n : [];\n const newPanelUsers = survey.usePanel ? survey.panelUsers : [];\n\n return {\n ...survey,\n groups: newGroups,\n clientProvidedUsers: newClientProvidedUsers,\n panelUsers: newPanelUsers,\n };\n};\n\nconst getTotalGroupParticipants = (survey) => {\n if (!survey?.groups?.length) return 0;\n const groupsParticipants = survey.groups.map((group) =>\n group.numberOfParticipants ? group.numberOfParticipants : 0\n );\n return Sum(groupsParticipants);\n};\n\nconst { client } = Routes;\n\nconst buttonStyles = {\n marginTop: \"1.5em\",\n marginBottom: \"1.5em\",\n backgroundColor: \"#F2F2F2\",\n fontSize: \"large\",\n borderRadius: 5,\n border: 0,\n color: \"white\",\n height: 51,\n width: 100,\n};\n\nconst NewSurvey = ({\n getSurvey,\n updateSurvey,\n newSurveyCleanUp,\n updateSurveys,\n profile,\n}) => {\n const history = useHistory();\n const [survey, setSurvey] = useState(null);\n const [step, setStep] = useState(1);\n const [adminQuestions, setAdminQuestions] = useState([]);\n const [influencers, setInfluencers] = useState([]);\n const [tierInfo, setTierInfo] = useState(null);\n const [loading, setLoading] = useState(false);\n const [surveyPrice, setSurveyPrice] = useState(0);\n const [viewOnly, setViewOnly] = useState(false);\n const [openModToken, setOpenModToken] = useState('')\n const { formId } = useParams();\n const [totalGroupParticipants, setTotalGroupParticipants] = useState(\n getTotalGroupParticipants(survey)\n );\n const {\n setupErrors,\n criteriaErrors,\n questionsErrors,\n publishErrors,\n participantsErrors,\n branchingErrors,\n } = useErrors(survey, adminQuestions);\n const [showPublishSurveyModal, setShowPublishSurveyModal] = useState(false);\n\n const [creatorOnly, setCreatorOnly] = useState(\n profile?.accessLevel === ACCESS_LEVEL.create\n );\n\n useEffect(() => {\n setTotalGroupParticipants(getTotalGroupParticipants(survey));\n }, [survey]);\n\n useEffect(() => {\n setCreatorOnly(profile?.accessLevel === ACCESS_LEVEL.create);\n }, [profile?.accessLevel]);\n\n useEffect(() => {\n if (Array.isArray(survey?.shared)) {\n const clientId = localStorage.getItem(\"client\");\n const sharedObj = survey.shared.find((s) => s.client === clientId);\n if (sharedObj) {\n setViewOnly(\n sharedObj.permission === PERMISSION.VIEW &&\n profile?.accessLevel !== ACCESS_LEVEL.admin\n );\n }\n }\n }, [survey, profile?.accessLevel]);\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n const generateOpenModLink = async () => {\n const {url, method} = Routes.client.generateOpenModeratedLink(getClientId(), survey[\"_id\"])\n try {\n debugger\n const {data} = await axios[method](url);\n return data.newSurveyLink.link\n } catch (err) {\n handleNetworkErrors(err);\n }\n }\n\n const publishSurveyHandler = async () => {\n await publishSurvey(survey, {\n setupErrors,\n criteriaErrors,\n questionsErrors,\n participantsErrors,\n publishErrors,\n branchingErrors,\n });\n setShowPublishSurveyModal(false);\n };\n \n const setFormQuestions = useCallback((questions) => {\n setSurvey((s) => ({ ...s, questions }));\n }, []);\n\n const setScreeningQuestions = useCallback((screeningQuestions) => {\n setSurvey((s) => ({ ...s, screeningQuestions }));\n }, []);\n\n const setBranchingRules = useCallback((rules) => {\n setSurvey((s) => ({ ...s, rules }));\n });\n\n const publishSurvey = useCallback(\n async (survey, errors) => {\n survey = sanitizeSurvey(survey);\n const id = getClientId();\n const { url, method } = creatorOnly\n ? client.sendForApproval(id, survey[\"_id\"])\n : client.publishSurvey(id, survey[\"_id\"]);\n const {\n setupErrors,\n criteriaErrors,\n questionsErrors,\n publishErrors,\n participantsErrors,\n branchingErrors,\n } = errors;\n if (setupErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Setup.\");\n return;\n }\n if (questionsErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Questions\");\n return;\n }\n if (criteriaErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Criteria\");\n return;\n }\n if (participantsErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Participants.\");\n return;\n }\n if (publishErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Publish\");\n return;\n }\n if (branchingErrors.length > 0) {\n notify(\"error\", \"Error\", \"You have errors in Branching Logic\");\n return;\n }\n try {\n // setLoading(true);\n await saveSurvey(survey);\n const { data } = await axios[method](url);\n if (data && data.message && data.message.includes(\"Survey published\")) {\n notification.success({\n message: \"Survey published successfully.\",\n });\n }\n if (data && data.message && data.message.includes(\"approval\")) {\n notification.success({\n message: \"Survey sent for approval.\",\n });\n }\n updateSurveys();\n history.push(\"/client/published\");\n } catch (err) {\n handleNetworkErrors(err);\n } finally {\n // setLoading(false);\n }\n // eslint-disable-next-line\n },\n [updateSurveys, creatorOnly]\n );\n\n useEffect(() => {\n if (survey?._id) saveSurvey(survey);\n }, [step]);\n\n useEffect(() => {\n if(survey?.surveyAccess && survey?.mode && survey?.surveyType) {\n if (survey?.openSurvey) {\n setOpenModToken(survey.openSurvey.surveyLinks[survey.openSurvey.surveyLinks.length-1].link)\n } else {\n if(!openModToken){\n generateOpenModLink().then((res)=> {\n setOpenModToken(res)\n })\n }\n }\n }\n }, [step])\n\n useEffect(() => {\n getSurvey(formId).then((data) => {\n if (data) setSurvey(data);\n else history.push(\"/client\");\n });\n return () => newSurveyCleanUp();\n // eslint-disable-next-line\n }, [formId, getSurvey]);\n\n useEffect(() => {\n updateSurvey(survey);\n }, [survey, updateSurvey]);\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.others.adminQuestions();\n try {\n const { data } = await axios[method](url);\n if (data) {\n setAdminQuestions(data.adminQuestions);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, []);\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.others.getInfluencerCategories();\n try {\n const { data } = await axios[method](url);\n if (data) {\n setInfluencers(data.influencerCategories);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, []);\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.others.tierInfo();\n try {\n const { data } = await axios[method](url);\n if (data) {\n setTierInfo(data);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, []);\n\n useEffect(() => {\n if (tierInfo && tierInfo.tiers[profile.accountTier]) {\n let price = CostCounter(survey, tierInfo.tiers[profile.accountTier]);\n setSurveyPrice(price);\n }\n }, [survey, updateSurvey]);\n\n const disableQuestionsPage = survey?.surveyType && survey.mode;\n const hasQuestions = survey?.questions?.length > 0;\n\n return (\n <>\n {survey && (\n \n \n {loading && }\n
\n {!!survey.name ? `${survey.name}` : \"Create Survey\"}\n
\n setStep(val)}\n setup={setupErrors.length}\n questions={questionsErrors.length + branchingErrors.length}\n criteria={criteriaErrors.length}\n participants={participantsErrors.length}\n publish={publishErrors.length}\n disableQuestionsPage={disableQuestionsPage}\n />\n {step === 1 && (\n setSurvey((s) => ({ ...s, name }))}\n surveyAccess={survey.surveyAccess}\n surveyType={survey.surveyType}\n formQuestions={survey.questions}\n branchingRules={survey.rules}\n setFormQuestions={setFormQuestions}\n setSurveyType={(surveyType) =>\n setSurvey((s) => ({ ...s, surveyType }))\n }\n setSurveyAccess={(surveyAccess) =>\n setSurvey((s) => ({ ...s, surveyAccess }))\n }\n device={survey.device}\n setDevice={(device) => setSurvey((s) => ({ ...s, device }))}\n mode={survey.mode}\n setMode={(mode) => setSurvey((s) => ({ ...s, mode }))}\n setting={survey.setting}\n setSetting={(setting) => setSurvey((s) => ({ ...s, setting }))}\n timingType={survey.timingType}\n setTimingType={(timingType) =>\n setSurvey((s) => ({ ...s, timingType }))\n }\n errors={setupErrors}\n questionsErrors={questionsErrors}\n surveyInstructions={survey.instructions}\n setSurveyInstructions={(instructions) => {\n setSurvey((s) => ({ ...s, instructions }));\n }}\n brandName={survey.brandName}\n setBrandName={(brandName) => {\n setSurvey((s) => ({ ...s, brandName }));\n }}\n brandLogo={survey.brandLogo}\n setBrandLogo={(brandLogo) => {\n setSurvey((s) => ({ ...s, brandLogo }));\n }}\n guideFile={survey.guideFile}\n setGuideFile={(guideFile) => {\n setSurvey((s) => ({ ...s, guideFile }));\n }}\n hasQuestions={hasQuestions}\n clearQuestions={() => {\n setSurvey((s) => ({ ...s, questions: [] }));\n }}\n viewOnly={viewOnly}\n />\n )}\n {step === 2 && (\n \n )}\n {step === 3 && (\n \n setSurvey((s) => ({ ...s, criteria }))\n }\n surveyAccess={survey.surveyAccess}\n groups={survey.groups}\n setGroups={(groups) => setSurvey((s) => ({ ...s, groups }))}\n isGroupSurvey={\n survey.mode && survey.surveyType && survey.setting\n }\n screeningQuestions={survey.screeningQuestions}\n setScreeningQuestions={setScreeningQuestions}\n errors={criteriaErrors}\n viewOnly={viewOnly}\n />\n )}\n {step === 4 && (\n \n setSurvey((s) => ({ ...s, useUserqualUsers }))\n }\n useImportedUsers={survey.useImportedUsers}\n setUseImportedUsers={(useImportedUsers) =>\n setSurvey((s) => ({ ...s, useImportedUsers }))\n }\n clientProvidedUsers={survey.clientProvidedUsers}\n setClientProvidedUsers={(clientProvidedUsers) =>\n setSurvey((s) => ({ ...s, clientProvidedUsers }))\n }\n usePanel={survey.usePanel}\n setUsePanel={(usePanel) => {\n setSurvey((s) => ({ ...s, usePanel }));\n }}\n panelUsers={survey.panelUsers}\n setPanelUsers={(panelUsers) => {\n setSurvey((s) => ({ ...s, panelUsers }));\n }}\n errors={participantsErrors}\n viewOnly={viewOnly}\n />\n )}\n {step === 5 && (\n \n setSurvey((s) => ({ ...s, moderatedSlots }))\n }\n numberOfParticipants={survey.numberOfParticipants}\n setNumberOfParticipants={(numberOfParticipants) =>\n setSurvey((s) => ({ ...s, numberOfParticipants }))\n }\n isGroupSurvey={\n survey.mode && survey.surveyType && survey.setting\n }\n totalGroupParticipants={totalGroupParticipants}\n mode={survey.mode}\n setting={survey.setting}\n surveyType={survey.surveyType}\n errors={publishErrors}\n surveyPrice={surveyPrice}\n surveyAccess={survey.surveyAccess}\n />\n )}\n {step < 5 && (\n \n setStep((c) =>\n disableQuestionsPage && c === 1 ? c + 2 : c + 1\n )\n }\n >\n Next\n \n )}\n {step === 5 && creatorOnly && (\n \n publishSurvey(survey, {\n setupErrors,\n criteriaErrors,\n questionsErrors,\n participantsErrors,\n publishErrors,\n branchingErrors,\n })\n }\n disabled={viewOnly}\n >\n {\"Send for approval\"}\n \n )}\n {step === 5 && !creatorOnly && (\n setShowPublishSurveyModal(true)}\n disabled={viewOnly}\n >\n {\"Pay & Publish\"}\n \n )}\n {showPublishSurveyModal && setShowPublishSurveyModal(false)}\n isVisible={showPublishSurveyModal}\n surveyToken={survey.referSurveyToken}\n surveyAccess={survey.surveyAccess}\n surveyMode={survey.mode}\n surveyType={survey.surveyType}\n isPublish={true}\n survey={survey}\n token={openModToken}\n />\n}\n \n
\n )}\n \n );\n};\n\nexport default NewSurvey;\n","import React from \"react\";\nimport \"./form-box-style.css\";\nimport { styled } from \"@linaria/react\";\nimport {\n CopyOutlined,\n DeleteOutlined,\n DesktopOutlined,\n EditOutlined,\n MobileOutlined,\n TeamOutlined,\n UserOutlined,\n ExclamationCircleOutlined,\n} from \"@ant-design/icons\";\nimport { css } from \"@linaria/core\";\nimport { useState } from \"react\";\nimport { Typography, Modal } from \"antd\";\nimport moment from \"moment\";\n\nconst { confirm } = Modal;\n\nexport const Flex = styled.div`\n display: flex;\n flex-direction: ${(props) => (props.row ? \"row\" : \"column\")};\n justify-content: ${(props) => (props.justify ? props.justify : \"flex-start\")};\n align-items: ${(props) => (props.align ? props.align : \"\")};\n align-self: ${(props) => (props.alignSelf ? props.alignSelf : \"\")};\n`;\n\nconst FormBox = styled.div`\n height: 250px;\n background-color: white;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n color: #404040;\n padding: 0.5rem;\n font-size: 110%;\n`;\n\nconst mx2 = css`\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n`;\n\nconst my2 = css`\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n`;\n\nconst icon = css`\n cursor: pointer;\n font-size: 20px;\n`;\n\nconst NewFormBox = ({\n name,\n edit,\n deleteSurvey,\n copySurvey,\n surveyType,\n mode,\n device,\n setting,\n timingType,\n createdBy,\n updatedAt,\n}) => {\n const [hover, setHover] = useState(false);\n\n function showDeleteConfirm() {\n confirm({\n title: \"Are you sure you want to delete this Survey?\",\n icon: ,\n okText: \"Yes\",\n okType: \"danger\",\n cancelText: \"No\",\n onOk() {\n deleteSurvey();\n },\n onCancel() {\n console.log(\"Cancel\");\n },\n });\n }\n return (\n setHover(true)}\n onMouseLeave={() => setHover(false)}\n style={{ border: \"2px solid #71CFD7\" }}\n >\n \n \n \n \n Draft\n \n {hover && (\n \n )}\n \n \n {hover && (\n <>\n \n \n \n )}\n \n \n \n \n \n \n {name}\n \n
Created by {createdBy}
\n
{moment(updatedAt).format(\"DD/MM/YYYY\")}
\n
\n \n {surveyType !== undefined && (\n
\n {surveyType === true ? \"Qualitative\" : \"Quantitative\"}\n
\n )}\n {surveyType === true && mode !== undefined && (\n
{mode === true ? \"Moderated\" : \"Unmoderated\"}
\n )}\n {surveyType === true && device !== undefined && (\n
\n {device === true ? : }\n
\n )}\n {surveyType === true &&\n mode === true &&\n setting !== undefined && (\n
\n {setting === true ? : }\n
\n )}\n {surveyType === true && timingType !== undefined && (\n
\n {timingType === 1 && \"15 mins\"}\n {timingType === 2 && \"30 mins\"}\n {timingType === 3 && \"45 mins\"}\n
\n )}\n {surveyType === false && (\n
\n / \n
\n )}\n
\n
\n
\n
\n \n );\n};\n\nexport default NewFormBox;\n","import React, { useState, useEffect } from \"react\";\nimport { notification, Tooltip } from \"antd\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport { Calendar, utils } from \"react-modern-calendar-datepicker\";\n\nimport styles from \"./CalendarComponent.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst times = [\n { label: \"8am\", value: \"08:00\" },\n { label: \"9am\", value: \"09:00\" },\n { label: \"10am\", value: \"10:00\" },\n { label: \"11am\", value: \"11:00\" },\n { label: \"12pm\", value: \"12:00\" },\n { label: \"1pm\", value: \"13:00\" },\n { label: \"2pm\", value: \"14:00\" },\n { label: \"3pm\", value: \"15:00\" },\n { label: \"4pm\", value: \"16:00\" },\n { label: \"5pm\", value: \"17:00\" },\n { label: \"6pm\", value: \"18:00\" },\n { label: \"7pm\", value: \"19:00\" },\n];\n\nconst DateDiv = ({ date, onClick, selected }) => {\n const [day, month, year] = date.split(\"/\");\n return (\n onClick()}\n style={\n new Date(date) < new Date()\n ? {\n backgroundColor: \"#88CDD5\",\n borderColor: \"#88CDD5\",\n color: \"white\",\n }\n : selected.isSelectedDate\n ? {\n backgroundColor: \"#FF9480\",\n borderColor: \"#FF9480\",\n color: \"white\",\n }\n : selected.isTimeSlotSelected\n ? {\n backgroundColor: \"#FFA999\",\n borderColor: \"#FFA999\",\n color: \"white\",\n }\n : {\n backgroundColor: \"white\",\n borderColor: \"white\",\n color: \"black\",\n }\n }\n >\n {`${day} ${months[parseInt(month) - 1]} ${year}`}\n \n );\n};\n\nconst TimeDiv = ({ time, onClick, selected, isBookedTime, selectedDate }) => {\n return (\n {\n if (isBookedTime || new Date(selectedDate) <= new Date()) {\n notification.error({\n message:\n \"Slot is already booked or time is already passed, cannot be changed\",\n });\n return;\n }\n onClick();\n }}\n style={\n isBookedTime\n ? {\n backgroundColor: \"#88CDD5\",\n borderColor: \"#88CDD5\",\n color: \"white\",\n }\n : selected\n ? {\n backgroundColor: \"#FF9480\",\n borderColor: \"#FF9480\",\n color: \"white\",\n }\n : {\n backgroundColor: \"white\",\n borderColor: \"white\",\n color: \"black\",\n }\n }\n >\n {time}\n \n );\n};\n\nconst CalendarComponent = ({\n moderatedSlots,\n setModeratedSlots,\n bookedSlots,\n hideTitle = false,\n overrideStyle = {},\n}) => {\n const [selectedDate, setSelectedDate] = useState(null);\n\n const minimumDate = {\n ...utils().getToday(),\n day: utils().getToday().day + 1,\n };\n\n const dateToObject = (date) => {\n const res = {};\n date.forEach((item) => {\n const dateString = `${item.day}/${item.month}/${item.year}`;\n if (moderatedSlots && moderatedSlots[dateString])\n res[dateString] = moderatedSlots[dateString];\n else res[dateString] = {};\n });\n return res;\n };\n\n const objectToDate = (obj) => {\n const res = [];\n if (obj) {\n Object.keys(obj).forEach((item) => {\n const [day, month, year] = item.split(\"/\");\n const date = {\n day: parseInt(day),\n month: parseInt(month),\n year: parseInt(year),\n };\n res.push(date);\n });\n }\n return res;\n };\n\n const isTimeSelected = (time) => {\n if (!selectedDate) return false;\n\n let res = false;\n if (moderatedSlots[selectedDate]) {\n Object.keys(moderatedSlots[selectedDate]).forEach((e) => {\n if (e === time) res = true;\n });\n }\n return res;\n };\n\n console.log(\"slots\", moderatedSlots);\n console.log(\"bookedSlots\", bookedSlots);\n\n return (\n \n
\n {!hideTitle && (\n

\n Select/De-select dates{\" \"}\n \n \n \n

\n )}\n {\n value.sort((a, b) => (utils().isBeforeDate(a, b) ? -1 : 1));\n const slots = dateToObject(value);\n setModeratedSlots({ ...slots, ...bookedSlots });\n }}\n calendarClassName={cx(\"calendar\")}\n />\n
\n {moderatedSlots && Object.keys(moderatedSlots).length > 0 ? (\n
\n
\n {Object.keys(moderatedSlots).map((date, idx) => (\n {\n if (selectedDate === date) setSelectedDate(null);\n else setSelectedDate(date);\n }}\n selected={{\n isSelectedDate: selectedDate === date,\n isTimeSlotSelected:\n Object.keys(moderatedSlots[date]).length > 0,\n }}\n />\n ))}\n
\n
\n ) : null}\n {selectedDate && Object.keys(moderatedSlots).length > 0 ? (\n
\n
\n {times.map((e, i) => (\n {\n if (selectedDate && moderatedSlots[selectedDate]) {\n const slots = { ...moderatedSlots };\n let timeExists = false;\n const date = slots[selectedDate];\n Object.keys(date).forEach((time) => {\n if (time === e.value) timeExists = true;\n });\n if (!timeExists) slots[selectedDate][e.value] = [];\n else delete slots[selectedDate][e.value];\n setModeratedSlots(slots);\n }\n }}\n />\n ))}\n
\n
\n ) : null}\n \n );\n};\n\nexport default CalendarComponent;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { Modal, Button, InputNumber, notification, Divider } from \"antd\";\nimport {\n CloseSquareFilled,\n MinusOutlined,\n PlusOutlined,\n} from \"@ant-design/icons\";\nimport TagsInput from \"react-tagsinput\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport styles from \"./SurveyStateModal.module.css\";\nimport c from \"classnames/bind\";\nimport { surveyStates, EMAIL_VALIDATION_REGEX } from \"../../../../../constants\";\n// import UploadCSV from \"../../../criteria/UploadCSV\";\nimport { notify } from \"../../../../../utils\";\nimport CalendarComponent from \"../CalendarComponent\";\n\nconst cx = c.bind(styles);\n\nconst SurveyStateModal = ({\n handleOk,\n handleCancel,\n updateSurvey,\n isVisible,\n surveyState,\n survey,\n surveyCost,\n}) => {\n const preBookedSlots = survey.moderatedSlots\n ? JSON.parse(JSON.stringify(survey.moderatedSlots))\n : null;\n const [addParticipantBox, setAddParticipantBox] = useState(false);\n const [numberOfParticipants, setNumberOfParticipants] = useState(0);\n const [clientProvidedUsers, setClientProvidedUsers] = useState([]);\n const [moderatedSlots, setModeratedSlots] = useState(preBookedSlots);\n // const [calendarComponent, setCalendarComponent] = useState(false);\n const isTabletOrMobile = useMediaQuery({\n query: \"(max-width: 500px)\",\n });\n\n useEffect(() => {\n setNumberOfParticipants(clientProvidedUsers.length);\n }, [clientProvidedUsers]);\n\n useEffect(() => {\n setAddParticipantBox(false);\n }, []);\n\n // useEffect(() => {\n // setCalendarComponent(false);\n // }, [addParticipantBox]);\n\n const handleAddParticipants = () => {\n let newValues = {};\n if (survey.usersType) {\n if (clientProvidedUsers.length === numberOfParticipants) {\n newValues = {\n ...newValues,\n clientProvidedUsers: [\n ...survey.clientProvidedUsers,\n ...clientProvidedUsers,\n ],\n };\n } else {\n notification.error({\n message:\n \"Number of participants are not matching with number of emails\",\n });\n return;\n }\n }\n newValues = {\n ...newValues,\n numberOfParticipants: numberOfParticipants + survey.numberOfParticipants,\n };\n if (survey.mode) {\n newValues = {\n ...newValues,\n moderatedSlots: moderatedSlots,\n };\n }\n updateSurvey(newValues);\n };\n\n return (\n \n }\n footer={null}\n >\n \n {addParticipantBox ? \"Add more participants\" : \"Survey options\"}\n \n {addParticipantBox && (\n \n
\n You can add more participants to the existing survey, this will not\n affect your existing data.\n
\n \n )}\n {addParticipantBox ? (\n \n
\n
\n \n
\n Current participant count\n
\n \n {survey.numberOfParticipants}\n
\n
\n \n
\n Price per participant\n
\n \n {surveyCost}\n \n \n \n
\n
Total additional cost
\n
Including 18% GST
\n
\n \n {surveyCost * numberOfParticipants}\n \n \n \n \n {\n if (numberOfParticipants > 0) {\n setNumberOfParticipants(numberOfParticipants - 1);\n }\n }}\n style={{\n minWidth: isTabletOrMobile ? \"36px\" : \"44px\",\n height: isTabletOrMobile ? 36 : 44,\n marginRight: isTabletOrMobile ? 0 : 8,\n padding: isTabletOrMobile ? \"0 8px\" : \"0 15px\",\n }}\n >\n \n \n setNumberOfParticipants(value)}\n className={cx(\"input-box\")}\n />\n {\n if (numberOfParticipants < 1000) {\n setNumberOfParticipants(numberOfParticipants + 1);\n }\n }}\n style={{\n minWidth: isTabletOrMobile ? \"36px\" : \"44px\",\n height: isTabletOrMobile ? 36 : 44,\n marginLeft: isTabletOrMobile ? 0 : 8,\n padding: isTabletOrMobile ? \"0 8px\" : \"0 15px\",\n }}\n >\n \n \n \n \n {survey.usersType && (\n \n
\n

Enter user emails

\n
\n
\n setClientProvidedUsers(tags)}\n onlyUnique={true}\n inputProps={{\n className: \"react-tagsinput-input\",\n placeholder: \"Add email\",\n }}\n tagProps={{\n className: \"react-tagsinput-tag\",\n classNameRemove: \"react-tagsinput-remove\",\n style: {\n backgroundColor: \"#00233F\",\n border: 0,\n color: \"white\",\n },\n }}\n validationRegex={EMAIL_VALIDATION_REGEX}\n onValidationReject={() =>\n notify(\"error\", \"Error\", \"Invalid email\")\n }\n />\n
\n {/* */}\n \n )}\n {survey.mode && (\n \n
\n Modify survey dates\n
\n {\n console.log(\"updatedSlots\", moderatedSlots);\n setModeratedSlots(moderatedSlots);\n }}\n hideTitle={true}\n overrideStyle={{\n margin: \"10px 0\",\n }}\n />\n
\n )}\n \n \n Cancel\n \n {\n handleAddParticipants();\n }}\n >\n Confirm\n \n \n
\n ) : surveyState === surveyStates.IN_PROGRESS ? (\n
\n
\n
Add more participants
\n
\n
\n You can add more participants to the existing survey, this will\n not affect your existing data.\n
\n setAddParticipantBox(true)}\n >\n Add Participants\n \n
\n
\n \n
\n
Pause survey
\n
\n
\n You can pause the survey temporarily, resume anytime from this\n menu.\n
\n handleOk(surveyStates.PAUSE)}\n >\n Pause Survey\n \n
\n
\n \n
\n
End survey
\n
\n
\n This will terminate the survey. You cannot undo this action, you\n can view survey data in result section.\n
\n handleOk(surveyStates.END)}\n >\n End Survey\n \n
\n
\n
\n ) : (\n
\n
\n
Restart survey
\n
\n
\n This will resume the survey and make it available to the users.\n
\n handleOk(surveyStates.IN_PROGRESS)}\n >\n Restart Survey\n \n
\n
\n \n
\n
End survey
\n
\n
\n This will terminate the survey. You cannot undo this action, you\n can view survey data in result section.\n
\n handleOk(surveyStates.END)}\n >\n End Survey\n \n
\n
\n
\n )}\n \n );\n};\n\nexport default SurveyStateModal;\n","import React, {useRef} from \"react\";\n\nimport \"./meeting.css\";\nimport AgoraVideoCall from \"../../../components/AgoraVideoCall\";\nimport { AGORA_APP_ID } from \"../../../agora.config\";\n\nclass Meeting extends React.Component {\n constructor(props) {\n super(props);\n this.videoProfile = \"480p_4\";\n this.channel =props.surveyAccess? `${props.token}` : `${props.surveyId}_${props.date}_${props.time}`;\n this.transcode = \"interop\";\n this.attendeeMode = \"video\";\n this.baseMode = \"avc\";\n this.appId = AGORA_APP_ID;\n this.uid = undefined;\n this.meeId = props.surveyId;\n this.date = props.date;\n this.time = props.time;\n this.isClient = props.isClient;\n this.isOneToOne = props.isOneToOne;\n }\n\n render() {\n return (\n
\n
\n
\n USERQUAL{\" \"}\n \n {this.isOneToOne ? \"ONE TO ONE\" : \"ONE TO MANY\"} Survey{\" \"}\n {this.channel}\n \n
\n
\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default Meeting;\n","import React, { useEffect, useState } from \"react\";\nimport { styled } from \"@linaria/react\";\n// import c from \"classnames/bind\";\nimport { Flex } from \"../draft/DraftFormBox\";\nimport {\n MobileOutlined,\n DesktopOutlined,\n EyeOutlined,\n TeamOutlined,\n UserOutlined,\n StopOutlined,\n} from \"@ant-design/icons\";\nimport Survey from \"../../user/survey/Survey\";\nimport moment from \"moment\";\nimport { notification, Row } from \"antd\";\nimport { useHistory } from \"react-router-dom\";\nimport SurveyStateModal from \"./Modals/SurveyStateModal/SurveyStateModal\";\nimport { surveyStates } from \"../../../constants\";\nimport { getRoleByToken, incrementPendingRequests } from \"../../../utils\";\nimport axios, { Routes } from \"../../../services/API\";\nimport styles from \"./PublishedFormBoxNew.module.css\";\nimport c from \"classnames/bind\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\n\nconst cx = c.bind(styles);\n\nconst ScheduledCallsBox = styled.div``;\n\nconst PublishedFormBoxRefactored = ({\n survey,\n surveyCost,\n surveyId,\n updateSurveys,\n name,\n surveyType,\n mode,\n device,\n questions,\n setting,\n timingType,\n createdBy,\n updatedAt,\n numberOfParticipants,\n numberOfResponses,\n isAdminVerified,\n onScheduledCallsClick,\n}) => {\n const [showModal, setShowModal] = useState(false);\n const [surveyState, setSurveyState] = useState(survey.status);\n const [surveyStateModal, setSurveyStateModal] = useState(false);\n\n const history = useHistory();\n\n const getStatus = () => {\n if (!isAdminVerified) return \"Pending\";\n if (numberOfResponses === numberOfParticipants) return \"Completed\";\n return \"In Progress\";\n };\n\n const updateSurvey = async (values) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.editSurvey(id, survey[\"_id\"]),\n data: {\n data: values,\n },\n });\n notification.success({\n message: \"Survey updated successfully\",\n });\n updateSurveys();\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n return (\n \n \n
\n Published / {getStatus()}\n \n setShowModal(true)}\n />\n setSurveyStateModal(true)}\n style={{\n fontSize: 20,\n cursor: \"pointer\",\n color:\n surveyStates.IN_PROGRESS === surveyState\n ? \"#8693A1\"\n : surveyStates.PAUSE === surveyState\n ? \"#88CDD5\"\n : \"#B02418\",\n }}\n title={\n surveyStates.IN_PROGRESS === surveyState\n ? \"Survey Live\"\n : surveyStates.PAUSE === surveyState\n ? \"Survey Paused\"\n : \"Survey Ended\"\n }\n />\n \n
\n {isAdminVerified === true && surveyType === true && mode === true ? (\n \n onScheduledCallsClick(surveyId)}\n >\n Scheduled Calls\n \n \n ) : null}\n \n history.push(\"/client/results\", { surveyId })}\n >\n Results: {numberOfResponses}/{numberOfParticipants}\n \n \n
\n
\n
{name && `${name}`}
\n
{createdBy}
\n
{moment(updatedAt).format(\"DD/MM/YYYY\")}
\n
\n
\n {surveyType !== undefined && (\n
\n {surveyType === true ? \"Qualitative\" : \"Quantitative\"}\n {surveyType === true &&\n mode !== undefined &&\n (mode === true ? \"/Moderated\" : \"/Unmoderated\")}\n
\n )}\n {surveyType === true && device !== undefined && (\n
\n {device === true ? : }\n
\n )}\n {surveyType === true && mode === true && setting !== undefined && (\n
\n {setting === true ? : }\n
\n )}\n {surveyType === true && timingType !== undefined && (\n
\n {timingType === 1 && \"15 mins\"}\n {timingType === 2 && \"30 mins\"}\n {timingType === 3 && \"45 mins\"}\n
\n )}\n {surveyType === false && (\n
\n / \n
\n )}\n
\n
\n \n {showModal && (\n setShowModal(false)}\n />\n )}\n {surveyStateModal && (\n setSurveyStateModal(false)}\n handleOk={(state) => {\n setSurveyStateModal(false);\n updateSurvey({\n status: state,\n });\n }}\n surveyState={surveyState}\n updateSurvey={updateSurvey}\n survey={survey}\n isVisible={surveyStateModal}\n />\n )}\n
\n );\n};\n\nexport default PublishedFormBoxRefactored;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport styles from \"./NoteBox.module.css\";\nimport c from \"classnames/bind\";\nimport { Menu, Dropdown, Input, Button, InputNumber } from \"antd\";\nimport { HighlightOutlined, MoreOutlined } from \"@material-ui/icons\";\n\nconst cx = c.bind(styles);\n\nconst convertMinuteSecondsString = (totalSeconds) => {\n // const totalSeconds = parseInt(date / 1000);\n const minutes = parseInt(totalSeconds / 60);\n const seconds = totalSeconds - minutes * 60;\n\n return (\n (minutes < 10 ? \"0\" + minutes : minutes) +\n \":\" +\n (seconds < 10 ? \"0\" + seconds : seconds)\n );\n};\n\nconst convertIntoSeconds = (minute, seconds) => {\n return parseInt(minute) * 60 + parseInt(seconds);\n};\n\nconst NoteBox = ({\n index,\n start,\n end,\n noteText,\n isReel,\n handleNoteChange,\n updateReel,\n}) => {\n const [editMode, setEditMode] = useState(false);\n const [startMinutes, setStartMinutes] = useState(\n convertMinuteSecondsString(start).split(\":\")[0]\n );\n const [startSeconds, setStartSeconds] = useState(\n convertMinuteSecondsString(start).split(\":\")[1]\n );\n const [endMinutes, setEndMinutes] = useState(\n convertMinuteSecondsString(end).split(\":\")[0]\n );\n const [endSeconds, setEndSeconds] = useState(\n convertMinuteSecondsString(end).split(\":\")[1]\n );\n const [text, setText] = useState(noteText);\n\n useEffect(() => {\n setStartMinutes(convertMinuteSecondsString(start).split(\":\")[0]);\n setStartSeconds(convertMinuteSecondsString(start).split(\":\")[1]);\n setEndMinutes(convertMinuteSecondsString(end).split(\":\")[0]);\n setEndSeconds(convertMinuteSecondsString(end).split(\":\")[1]);\n setText(noteText);\n }, [editMode]);\n\n const menu = () => {\n return (\n \n setEditMode(true)}>Edit\n Copy Link\n Add Reel To Results\n Delete\n \n );\n };\n\n return (\n \n
\n \n
\n {editMode ? (\n \n setStartMinutes(value)}\n />{\" \"}\n {\":\"}{\" \"}\n setStartSeconds(value)}\n />\n {isReel && (\n \n {\"-\"}\n setEndMinutes(value)}\n />{\" \"}\n {\":\"}{\" \"}\n setEndSeconds(value)}\n />\n \n )}\n \n ) : (\n \n {convertMinuteSecondsString(start)}\n {isReel && \"- \" + convertMinuteSecondsString(end)}\n \n )}\n
\n
\n
\n {editMode ? (\n
\n {\n setEditMode(false);\n }}\n >\n Cancel\n \n {\n handleNoteChange(\n convertIntoSeconds(startMinutes, startSeconds),\n convertIntoSeconds(endMinutes, endSeconds),\n text\n );\n setEditMode(false);\n }}\n >\n Save\n \n
\n ) : (\n setEditMode(true)}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n Edit\n
\n )}\n \n \n {editMode ? (\n setText(e.target.value)}\n />\n ) : (\n
{noteText}
\n )}\n \n );\n};\n\nexport default NoteBox;\n","export const getQuestionErrors = (question) => {\n const err = [];\n\n if (question.text === \"\" && question.type !== \"netPromotorScore\") {\n err.push({\n message: `There is no text for question`,\n description: `Please provide some text for question`,\n });\n }\n\n if (question.type === \"likert\") {\n if (question.options.likertStartLabel === \"\") {\n err.push({\n message: `There is no start label for question`,\n description: `Please provide start label for question`,\n });\n }\n\n // if (question.options.likertMiddleLabel === \"\") {\n // err.push({\n // message: `There is no middle label for question`,\n // description: `Please provide middle label for question`,\n // });\n // }\n\n if (question.options.likertEndLabel === \"\") {\n err.push({\n message: `There is no end label for question`,\n description: `Please provide end label for question`,\n });\n }\n }\n\n if (question.type === \"slider\") {\n if (question.options.sliderStartLabel === \"\") {\n err.push({\n message: `There is no start label for question`,\n description: `Please provide start label for question`,\n });\n }\n\n // if (question.options.sliderMiddleLabel === \"\") {\n // err.push({\n // message: `There is no middle label for question`,\n // description: `Please provide middle label for question`,\n // });\n // }\n\n if (question.options.sliderEndLabel === \"\") {\n err.push({\n message: `There is no end label for question`,\n description: `Please provide end label for question`,\n });\n }\n }\n\n if (question.type === \"multiChoices\" || question.type === \"checkBoxes\") {\n question.options.multiChoices.forEach((opt) => {\n if (opt.label === \"\") {\n err.push({\n message: `There is no label for question`,\n description: `Please provide a label for question`,\n });\n }\n });\n }\n\n if (\n question.type === \"imageMultiChoices\" ||\n question.type === \"imageCheckBoxes\"\n ) {\n question.options.imageMultiChoices.forEach((opt) => {\n if (opt.imageLabel === \"\") {\n err.push({\n message: `There is no label for question`,\n description: `Please provide a label for question`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question`,\n description: `Please provide an image for question`,\n });\n }\n });\n }\n\n if (question.type === \"imageStarRatingChoices\") {\n question.options.imageStarRatingChoices.forEach((opt) => {\n if (opt.imageLabel === \"\") {\n err.push({\n message: `There is no label for question`,\n description: `Please provide a label for question`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question`,\n description: `Please provide an image for question`,\n });\n }\n });\n }\n\n if (question.type === \"videoStarRatingChoices\") {\n question.options.videoStarRatingChoices.forEach((opt) => {\n if (opt.videoLabel === \"\") {\n err.push({\n message: `There is no label for question`,\n description: `Please provide a label for question`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n message: `There is no video for question`,\n description: `Please provide a video for question`,\n });\n }\n });\n }\n\n if (question.type === \"association\") {\n question.options.associationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question`,\n description: `Please provide association for label for question`,\n });\n }\n if (opt.label === \"\") {\n err.push({\n message: `There is no label for question`,\n description: `Please provide a label for question`,\n });\n }\n });\n }\n\n if (question.type === \"imageAssociation\") {\n question.options.imageAssociationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question`,\n description: `Please provide association for label for question`,\n });\n }\n if (opt.imageData === \"\") {\n err.push({\n message: `There is no image for question`,\n description: `Please provide an image for question`,\n });\n }\n });\n }\n\n if (question.type === \"videoAssociation\") {\n question.options.videoAssociationChoices.forEach((opt) => {\n if (opt.association === \"\") {\n err.push({\n message: `There is no association for question`,\n description: `Please provide association label for question`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n message: `There is no video for question`,\n description: `Please provide a video for question`,\n });\n }\n });\n }\n\n if (question.type === \"adAnalysis\") {\n question.options.adAnalysisChoices.forEach((opt) => {\n if (!opt.videoType) {\n err.push({\n description: `Please provide video type for question`,\n });\n }\n if (opt.videoData === \"\") {\n err.push({\n description: `Please provide a video for question`,\n });\n }\n });\n\n if (!question.options.adAnalysisData.url) {\n err.push({\n description: `Please combine the video of question`,\n });\n }\n }\n return err;\n};\n","import React from \"react\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { Typography } from \"antd\";\n\nconst Errors = ({ errors }) => {\n return (\n \n {errors.length !== 0 && (\n \n Before you Publish the question\n \n )}\n {errors.map((err, idx) => (\n \n \n \n \n
\n {/* \n {err.message}\n */}\n \n {err.description}\n \n
\n \n ))}\n \n );\n};\n\nexport default Errors;\n","import React, { Fragment, useEffect } from \"react\";\nimport styles from \"./QuestionBuilder.module.css\";\nimport { Button, Popconfirm, Select } from \"antd\";\nimport { useState } from \"react\";\nimport c from \"classnames/bind\";\nimport {\n DownOutlined,\n CheckSquareOutlined,\n UnorderedListOutlined,\n StarOutlined,\n PicCenterOutlined,\n MenuOutlined,\n CloseCircleOutlined,\n PlusCircleFilled,\n SmallDashOutlined,\n ControlOutlined,\n VideoCameraAddOutlined,\n PercentageOutlined,\n InfoCircleOutlined,\n} from \"@ant-design/icons\";\nimport FormStar from \"../../../questions/form-star/FormStar\";\nimport Likert from \"../../../questions/likert/Likert\";\nimport FormSlider from \"../../../questions/slider/FormSlider\";\nimport MultiChoices from \"../../../questions/multi-choices/MultiChoices\";\nimport ImageMultiChoices from \"../../../questions/image-multi-choices/imageMultiChoices\";\nimport ImageStarRating from \"../../../questions/image-star-rating/ImageStarRating\";\nimport RangeDropDown from \"../../../questions/rangeDropDown/RangeDropDown\";\nimport VideoInstruction from \"../../../questions/videoInstruction/VideoInstruction\";\nimport VideoStarRating from \"../../../questions/video-star-rating/videoStarRating\";\nimport TextABTest from \"../../../questions/textABTest/TextABTest\";\nimport ImageABTest from \"../../../questions/imageABTest/ImageABTest\";\nimport VideoABTest from \"../../../questions/videoABTest/VideoABTest\";\nimport Association from \"../../../questions/association/Association\";\nimport ImageAssociation from \"../../../questions/image-association/ImageAssociation\";\nimport VideoAssociation from \"../../../questions/video-association/VideoAssociation\";\nimport AddLink from \"../../../questions/add-link/AddLink\";\nimport ImageInstruction from \"../../../questions/imageInstruction/imageInstruction\";\nimport VideoMultiChoices from \"../../../questions/video-multi-choices/VideoMultiChoices\";\nimport NetPromotorScore from \"../../../questions/net-promotor-score/NetPromotorScore\";\nimport SurveyBrief from \"../../../questions/survey-brief/SurveyBrief\";\nimport AdAnalysis from \"../../../questions/ad-analysis/AdAnalysis\";\nimport { getQuestionErrors } from \"../QuestionBuilderError/questionErrors\";\nimport Errors from \"../QuestionBuilderError/Errors\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst extraSpace = [\n \"multiChoices\",\n \"checkBoxes\",\n \"imageMultiChoices\",\n \"videoMultiChoices\",\n \"imageCheckBoxes\",\n \"videoCheckBoxes\",\n \"ranking\",\n \"imageRanking\",\n \"videoRanking\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"textABTest\",\n \"imageABTest\",\n \"videoABTest\",\n \"association\",\n \"imageAssociation\",\n \"videoAssociation\",\n \"adAnalysis\",\n];\n\n// let NPS = null;\n\nconst NPS = ({ options, setOptions }) => {\n return (\n \n \n How likely is it that you would recommend{\" \"}\n to a\n friend or collegue?\n \n \n );\n};\n\nconst questionTypes = {\n stars: ({ options, setOptions }) => (\n \n ),\n likert: ({ options, setOptions }) => (\n \n ),\n slider: ({ options, setOptions }) => (\n \n ),\n netPromotorScore: ({ question, setQuestion, options, setOptions }) => {\n question.text = \"NPS\";\n // return \n },\n multiChoices: ({ options, setOptions }) => (\n \n ),\n imageMultiChoices: ({ options, setOptions }) => (\n \n ),\n videoMultiChoices: ({ options, setOptions }) => (\n \n ),\n checkBoxes: ({ options, setOptions }) => (\n \n ),\n imageCheckBoxes: ({ options, setOptions }) => (\n \n ),\n videoCheckBoxes: ({ options, setOptions }) => (\n \n ),\n ranking: ({ options, setOptions }) => (\n \n ),\n imageRanking: ({ options, setOptions }) => (\n \n ),\n videoRanking: ({ options, setOptions }) => (\n \n ),\n imageStarRatingChoices: ({ options, setOptions }) => (\n \n ),\n videoStarRatingChoices: ({ options, setOptions }) => (\n \n ),\n dropDown: ({ options, setOptions }) => (\n \n ),\n questionInstruction: ({ options, setOptions }) => null,\n videoInstruction: ({ options, setOptions }) => (\n \n ),\n imageInstruction: ({ options, setOptions }) => (\n \n ),\n videoComment: ({ options, setOptions }) => (\n \n ),\n imageComment: ({ options, setOptions }) => (\n \n ),\n textABTest: ({ options, setOptions }) => (\n \n ),\n imageABTest: ({ options, setOptions }) => (\n \n ),\n videoABTest: ({ options, setOptions }) => (\n \n ),\n association: ({ options, setOptions }) => (\n \n ),\n imageAssociation: ({ options, setOptions }) => (\n \n ),\n videoAssociation: ({ options, setOptions }) => (\n \n ),\n text: ({ options, setOptions }) => {\n return;\n },\n surveyBrief: ({ options, setOptions }) => (\n \n ),\n adAnalysis: ({ options, setOptions }) => (\n \n ),\n};\n\nconst QuestionBuilder = React.forwardRef(\n ({ index, question, setQuestion, surveyType, publishQuestion }, ref) => {\n const { hasLink } = question;\n const [mouseOver, setMouseOver] = useState(false);\n const [questionError, setQuestionError] = useState(\n getQuestionErrors(question)\n );\n const setOptions = (options) => setQuestion({ ...question, options });\n\n useEffect(() => {\n const errors = getQuestionErrors(question);\n setQuestionError(errors);\n }, [question]);\n\n return (\n setMouseOver(true)}\n onMouseLeave={() => setMouseOver(false)}\n ref={ref}\n >\n {/* \n \n */}\n
\n
\n {/*
\n {!mouseOver && (\n
\n {index + 1}\n
\n )}\n {mouseOver && (\n
\n \n
\n )}\n
*/}\n
\n {question.type === \"netPromotorScore\" ? (\n \n \n
\n ) : (\n \n setQuestion({ ...question, text: e.target.value })\n }\n />\n )}\n
\n \n }\n onChange={(value) =>\n setQuestion({ ...question, type: value })\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n {surveyType && (\n \n )}\n \n {\n setQuestion({ ...question, hasLink: !hasLink });\n }}\n >\n Add Link\n \n
\n
\n
\n {typeof questionTypes[question.type] === \"function\" && (\n \n {(hasLink ||\n !(\n [\"questionInstruction\", \"netPromotorScore\", \"text\"].indexOf(\n question.type\n ) > -1\n )) &&
}\n {hasLink ? (\n \n \n setQuestion({ ...question, clientLink: value })\n }\n />\n {question.type &&\n !(\n [\n \"questionInstruction\",\n \"netPromotorScore\",\n \"text\",\n ].indexOf(question.type) > -1\n ) &&
}\n
\n ) : null}\n -1\n ? cx(\"question-grid-extra\")\n : cx(\"question-grid\")\n }\n style={{ flexGrow: 1, width: \"inherit\" }}\n >\n {question.type === \"netPromotorScore\"\n ? questionTypes[question.type]({\n question: question,\n setQuestion: setQuestion,\n options: question.options,\n setOptions,\n })\n : questionTypes[question.type]({\n options: question.options,\n setOptions,\n })}\n \n
\n )}\n \n \n 0}\n className={cx(\"publish-button\")}\n onClick={() => publishQuestion()}\n >\n Publish Question\n \n \n );\n }\n);\n\nexport default QuestionBuilder;\n","import React, { useEffect } from \"react\";\nimport { Drawer, Input, Button, Menu, Dropdown, notification } from \"antd\";\n\nimport styles from \"./ChatComponent.module.css\";\nimport c from \"classnames/bind\";\nimport { useState } from \"react\";\nimport {\n MoreOutlined,\n SearchOutlined,\n AlignLeftOutlined,\n} from \"@ant-design/icons\";\nimport { questionTemplate } from \"../../../../constants\";\nimport NoteBox from \"./NoteBox/NoteBox\";\nimport QuestionBuilder from \"./QuestionBuilder/QuestionBuilder\";\nimport { getRoleByToken } from \"../../../../utils\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport handleNetworkErrors from \"../../handleNetworkErrors\";\n\nconst cx = c.bind(styles);\n\nconst ChatComponent = ({\n slot,\n recordingStartTime,\n notes,\n setNotes,\n publishQuestion,\n}) => {\n const [drawerVisible, setDrawerVisible] = useState(false);\n const [editorTab, setEditorTab] = useState(true);\n const [inputText, setInputText] = useState(\"\");\n const [searchMode, setSearchMode] = useState(false);\n const [question, setQuestion] = useState(questionTemplate);\n\n const handleModeChange = () => {\n setSearchMode(!searchMode);\n };\n\n const handleEnterOnInput = (value) => {\n if (value && value === \"\") {\n notification.error({ message: \"Please Enter some text\" });\n return;\n }\n if (searchMode) {\n console.log(\"Search functionality is still not completed\");\n } else {\n const newNotes = [\n ...notes,\n {\n key: new Date().getSeconds(),\n identifier: +new Date(),\n start: recordingStartTime\n ? parseInt((new Date() - recordingStartTime) / 1000)\n : 0,\n text: inputText,\n end: null,\n isReel: false,\n },\n ];\n setNotes(newNotes);\n updateNotes(newNotes);\n setInputText(\"\");\n }\n };\n\n const updateNotes = async (notes) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = Routes.client.upsertQualitativeData(\n id,\n slot.surveyId\n );\n try {\n const { data } = await axios[method](url, {\n data: {\n slotKey: slot.date + \"_\" + slot.time,\n notes: notes,\n },\n });\n // console.log(\"notes updated\", data);\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const menu = () => {\n return (\n \n Save\n Save as\n Download\n Rename\n Delete\n \n );\n };\n\n console.log(\"Notes\", notes);\n\n return (\n
\n {!drawerVisible && (\n setDrawerVisible(true)}\n >\n \n
\n )}\n setDrawerVisible(false)}\n style={{\n position: \"relative\",\n display: drawerVisible ? \"block\" : \"none\",\n }}\n >\n
\n \n
setDrawerVisible(false)}>\n \n
\n
Ask in-video questions
\n {/*
\n \n \n \n
*/}\n
\n \n publishQuestion(question)}\n />\n
\n \n Notes\n
\n \n {notes &&\n notes\n .sort((note1, note2) => note1.start - note2.start)\n .filter((note) =>\n searchMode\n ? note.text.match(new RegExp(inputText, \"i\")) !== null\n : true\n )\n .map((note, index) => {\n return (\n {\n const updatedNotes = [...notes];\n updatedNotes[index] = {\n ...note,\n isReel: !note.isReel,\n end: !note.isReel ? note.start + 60 : null,\n };\n setNotes(updatedNotes);\n }}\n handleNoteChange={(start, end, noteText) => {\n const updatedNotes = [...notes];\n updatedNotes[index] = {\n ...note,\n text: noteText,\n start: start,\n end: end,\n };\n setNotes(updatedNotes);\n }}\n />\n );\n })}\n \n\n
\n \n setInputText(e.target.value)}\n onPressEnter={(e) => handleEnterOnInput(e.target.value)}\n placeholder=\"Enter a note\"\n prefix={\n searchMode ? (\n \n ) : (\n \n )\n }\n />\n handleEnterOnInput(e.target.value)}\n >\n Add\n \n
\n \n {/*
\n setEditorTab(true)}\n >\n Transcript\n \n setEditorTab(false)}\n >\n Add Notes\n \n
*/}\n \n {/* {[...Array(5)].map((v, index) => {\n return (\n \n );\n })} */}\n \n \n \n \n );\n};\n\nexport default ChatComponent;\n","import copy from \"../../../assets/copy.png\";\nimport trash from \"../../../assets/trash (1).png\";\nimport stop from \"../../../assets/stop (1).png\";\nimport play from \"../../../assets/fi-rr-caret-right.svg\";\nexport default {\n copy,\n stop,\n trash,\n play,\n};\n","import React, { Fragment, useState } from \"react\";\nimport { styled } from \"@linaria/react\";\n// import c from \"classnames/bind\";\nimport { Flex } from \"../draft/DraftFormBox\";\nimport {\n MobileOutlined,\n DesktopOutlined,\n EyeOutlined,\n TeamOutlined,\n UserOutlined,\n LinkOutlined,\n VideoCameraOutlined,\n FileTextOutlined,\n UserAddOutlined,\n UserDeleteOutlined,\n UsergroupAddOutlined,\n StopOutlined,\n GroupOutlined,\n} from \"@ant-design/icons\";\nimport Survey from \"../../user/survey/Survey\";\nimport moment from \"moment\";\nimport { Button, notification, Row } from \"antd\";\nimport { useHistory } from \"react-router-dom\";\nimport SurveyStateModal from \"./Modals/SurveyStateModal/SurveyStateModal\";\nimport { surveyStates } from \"../../../constants\";\nimport {\n getRoleByToken,\n incrementPendingRequests,\n getDateObject,\n getClientInformation,\n} from \"../../../utils\";\nimport axios, { Routes } from \"../../../services/API\";\nimport styles from \"./PublishedFormBoxNewCopy.module.css\";\nimport c from \"classnames/bind\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport images from \"./publishedFormBoxImages\";\nimport ShareSurveyModal from \"./Modals/ShareSurveyModal/ShareSurveyModal.jsx\";\nimport { useEffect } from \"react\";\nimport { Group } from \"@material-ui/icons\";\n\nconst cx = c.bind(styles);\n\nconst ScheduledCallsBox = styled.div``;\n\nconst PublishedFormBoxRefactoredCopy = ({\n survey,\n surveyCost,\n surveyId,\n updateSurveys,\n name,\n surveyType,\n mode,\n accountUsersInfo,\n device,\n questions,\n setting,\n timingType,\n updatedAt,\n numberOfParticipants,\n numberOfResponses,\n isAdminVerified,\n onScheduledCallsClick,\n setOpenToken\n}) => {\n const [showModal, setShowModal] = useState(false);\n const [surveyState, setSurveyState] = useState(survey.status);\n const [shareSurveyModal, setShareSurveyModal] = useState(false);\n const [surveyStateModal, setSurveyStateModal] = useState(false);\n const [hover, setHover] = useState(null);\n const [createdBy, setCreatedBy] = useState(\"\");\n\n useEffect(() => {\n if (!accountUsersInfo) return setCreatedBy(\"\");\n const user = accountUsersInfo.find(\n (user) => user.clientId === survey.clientId\n );\n if (!user) return setCreatedBy(\"\");\n return setCreatedBy(\n user.firstName ? user.firstName + \" \" + user.lastName : user.email\n );\n }, [survey, accountUsersInfo]);\n\n const history = useHistory();\n\n const getStatus = () => {\n if (!isAdminVerified) return \"PENDING\";\n if (numberOfResponses === numberOfParticipants) return \"COMPLETED\";\n return \"IN PROGRESS\";\n };\n\n const updateSurvey = async (values) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.editSurvey(id, survey[\"_id\"]),\n data: {\n data: values,\n },\n });\n notification.success({\n message: \"Survey updated successfully\",\n });\n updateSurveys();\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n let hasScheduledCalls = (() => {\n const { moderatedSlots } = survey;\n const now = new Date();\n if (moderatedSlots) {\n for (const date in moderatedSlots) {\n for (const time in moderatedSlots[date]) {\n if (\n moderatedSlots[date][time].length > 0 &&\n now < getDateObject(date, time)\n ) {\n return true;\n }\n }\n }\n }\n return false;\n })();\n\n let hasResults = numberOfResponses > 0;\n\n return (\n setHover(true)}\n onMouseLeave={() => setHover(false)}\n className={cx(\"published-box\")}\n >\n
\n
\n \n {getStatus() + \" \" + numberOfResponses + \"/\" + numberOfParticipants}\n
\n
\n
\n setShareSurveyModal(true)}\n disabled={surveyStates.IN_PROGRESS}\n title={\"Share Survey\"}\n />\n
\n {!(survey.surveyType && survey.mode) && (\n
\n setShowModal(true)}\n />\n
\n )}\n
\n setSurveyStateModal(true)}\n src={\n surveyStates.IN_PROGRESS === surveyState\n ? images.stop\n : images.play\n }\n title={\n surveyStates.IN_PROGRESS === surveyState\n ? \"Survey Live\"\n : surveyStates.PAUSE === surveyState\n ? \"Survey Paused\"\n : \"Survey Ended\"\n }\n />\n
\n
\n
\n
\n \n {name}\n
\n
\n {moment(updatedAt).format(\"DD MMMM YYYY\")}\n
\n
Created by: {createdBy}
\n {hover && (\n
\n
\n \n {surveyType ? (\n \n ) : (\n \n )}\n \n
\n
\n \n {mode ? (\n \n ) : (\n \n )}\n \n
\n
\n \n {mode ? (\n \n ) : (\n \n )}\n \n
\n {surveyType === true && timingType !== undefined && (\n \n {timingType === 1 && 15}\n {timingType === 2 && 30}\n {timingType === 3 && 45}{\" \"}\n
mins
\n
\n )}\n
\n )}\n \n \n
\n
\n {isAdminVerified === true && surveyType === true && mode === true && !survey.surveyAccess && (\n onScheduledCallsClick(surveyId)}\n className={\n hasScheduledCalls\n ? cx([\"schedule-call-button\", \"button\"])\n : cx([\"schedule-call-button\", \"button\", \"disabled-button\"])\n }\n title=\"Scheduled Calls\"\n >\n {hasScheduledCalls ? \"SCHEDULED CALLS\" : \"NO CALLS SCHEDULED\"}\n
\n )}\n
\n
\n {isAdminVerified === true && surveyType === true && mode === true && survey.surveyAccess && (\n onScheduledCallsClick(surveyId)}\n className={\n cx([\"schedule-call-button\", \"button\"])\n }\n title=\"Scheduled Calls\"\n >\n JOIN CALL\n
\n )}\n \n history.push(\"/client/results\", { surveyId })}\n className={\n hasResults\n ? cx([\"view-result-button\", \"button\"])\n : cx([\"view-result-button\", \"button\", \"disabled-button\"])\n }\n title=\"View Results\"\n >\n {hasResults ? \"VIEW RESULTS\" : \"NO RESULTS\"}\n \n \n {shareSurveyModal && (\n setShareSurveyModal(false)}\n handleOk={() => {\n setShareSurveyModal(false);\n }}\n isPublish={false}\n surveyToken={survey.referSurveyToken}\n surveyAccess={survey.surveyAccess}\n clientId={survey.clientId}\n surveyId = {survey._id}\n isVisible={shareSurveyModal}\n surveyType={surveyType}\n surveyMode = {survey.mode}\n survey={survey}\n setOpenToken={setOpenToken}\n />\n )}\n {showModal && (\n setShowModal(false)}\n tryOwnForm={true}\n brandName={survey.brandName}\n brandLogo={survey.brandLogo}\n surveyInstructions={survey.instructions}\n />\n )}\n {surveyStateModal && (\n setSurveyStateModal(false)}\n handleOk={(state) => {\n setSurveyStateModal(false);\n updateSurvey({\n status: state,\n });\n }}\n surveyState={surveyState}\n updateSurvey={updateSurvey}\n survey={survey}\n isVisible={surveyStateModal}\n />\n )}\n \n );\n};\n\nexport default PublishedFormBoxRefactoredCopy;\n","import React, { useState, useEffect } from \"react\";\nimport PublishedFormBox from \"./PublishedFormBox\";\nimport ProjectLayout from \"../../../components/page-layout/PageLayout\";\nimport { CloseCircleOutlined } from \"@ant-design/icons\";\nimport styles from \"./published-forms.module.css\";\nimport c from \"classnames/bind\";\nimport { Button, notification } from \"antd\";\nimport Meeting from \"../../user/meeting\";\nimport Modal from \"react-modal\";\nimport { Fragment } from \"react\";\nimport PublishedFormBoxRefactored from \"./PublishedFormBoxRefactored\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport axios, { Routes } from \"../../../services/API\";\nimport { CostCounter } from \"../new-survey/CostCounter\";\nimport ChatComponent from \"./ChatComponent/ChatComponent\";\nimport { getRoleByToken, getDateObject, fetchUsers } from \"../../../utils\";\nimport PublishedFormBoxRefactoredCopy from \"./PublishedFormBoxRefactoredCopy\";\nimport store from \"../../../store\";\n\nconst cx = c.bind(styles);\nconst state = store.getState()\n\nconst times = [\n { label: \"8am\", value: \"08:00\" },\n { label: \"9am\", value: \"09:00\" },\n { label: \"10am\", value: \"10:00\" },\n { label: \"11am\", value: \"11:00\" },\n { label: \"12pm\", value: \"12:00\" },\n { label: \"1pm\", value: \"13:00\" },\n { label: \"2pm\", value: \"14:00\" },\n { label: \"3pm\", value: \"15:00\" },\n { label: \"4pm\", value: \"16:00\" },\n { label: \"5pm\", value: \"17:00\" },\n { label: \"6pm\", value: \"18:00\" },\n { label: \"7pm\", value: \"19:00\" },\n];\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n};\n\nconst isJoinCallButtonEnabled = (date, time) => {\n const d = getDateObject(date, time);\n d.setMinutes(d.getMinutes() - 5);\n return d < new Date();\n};\n\nconst getNumberOfResponses = (survey) => {\n if (survey.surveyType && survey.mode && !survey.setting) {\n // qual moderated individual survey\n return Array.isArray(survey.qualitativeData)\n ? survey.qualitativeData.length\n : 0;\n } else if (\n survey.surveyType &&\n survey.mode &&\n survey.setting &&\n survey.qualitativeData[0]\n ) {\n // qual moderated group survey\n return Array.isArray(survey.qualitativeData[0].responses)\n ? survey.qualitativeData[0].responses.length\n : 0;\n } else {\n return survey.responses.filter((r) => r.answers.length > 0).length;\n }\n};\n\nconst PublishedForms = ({ id, surveys, profile, updateSurveys }) => {\n const [availableSlots, setAvailableSlots] = useState();\n const [slot, setSlot] = useState();\n const [tierInfo, setTierInfo] = useState();\n const [recordingStartTime, setRecordingStartTime] = useState(null);\n const [notes, setNotes] = useState([]);\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n const [triggerQuestionPublished, setTriggerQuestionPublished] = useState({\n trigger: false,\n question: null,\n });\n const [accountUsersInfo, setAccountUsersInfo] = useState(null);\n const [showOpenModal, setShowOpenModal] = useState(false);\n const [showOpenMeet, setShowOpenMeet] = useState(false);\n const [surveyLink, setSurveyLink] = useState(``);\n const [openToken, setOpenToken] = useState('')\n\n const isOpenModerated = selectedSurvey?.surveyType && selectedSurvey?.mode && selectedSurvey.surveyAccess\n let openLink = isOpenModerated ? selectedSurvey?.openSurvey?.surveyLinks[selectedSurvey.openSurvey.surveyLinks.length-1]?.link : ''\n \n useEffect(() => {\n (async () => {\n if (!profile?.account?._id) return;\n const users = await fetchUsers(profile.account._id);\n setAccountUsersInfo(users);\n })();\n }, [profile]);\n\n const createdBy = profile.firstName\n ? profile.firstName + \" \" + profile.lastName\n : profile.email;\n\n const onScheduledCallsClick = (surveyId) => {\n const selectedSurvey = surveys.find(\n (val) => val._id === surveyId\n );\n setSelectedSurvey(selectedSurvey);\n if(!selectedSurvey.surveyAccess) {\n const {moderatedSlots, setting} = selectedSurvey;\n let arr = [];\n for (const date in moderatedSlots) {\n for (const time in moderatedSlots[date]) {\n if (\n moderatedSlots[date][time].length > 0 &&\n new Date() < getDateObject(date, time)\n ) {\n arr.push({\n surveyId,\n setting,\n date,\n time,\n label: times.find((val) => val.value === time).label + \" \" + date,\n });\n }\n }\n }\n setAvailableSlots(arr);\n } else {\n setShowOpenModal(true)\n }\n };\n\n const startModeratedSurvey = (surveyId, date, time, setting) => {\n setSlot({ surveyId, date, time, setting });\n };\n const startOpenModeratedSurvey = (surveyId, openLink) => {\n setShowOpenMeet(true)\n };\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.others.tierInfo();\n try {\n const { data } = await axios[method](url);\n if (data) {\n setTierInfo(data);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, [surveys]);\n\n const publishQuestion = (question, slot) => {\n setTriggerQuestionPublished({ trigger: true, question: question });\n upsertQualitativeData(question, slot);\n };\n\n const stopRecordingHandler = () => {\n upsertQualitativeData(null, slot);\n };\n\n const showAnswer = (answerData) => {\n // console.log(\"show answer\", answerData);\n if (answerData && answerData.answer && answerData.answer.message) {\n notification.success({\n message: answerData.answer.message,\n });\n }\n };\n\n const upsertQualitativeData = async (question, slot) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = Routes.client.upsertQualitativeData(\n id,\n selectedSurvey._id\n );\n try {\n const { data } = await axios[method](url, {\n data: {\n slotKey: selectedSurvey.surveyAccess? openLink : slot.date + \"_\" + slot.time,\n question: question,\n },\n });\n if (question) {\n notification.success({\n message: \"Question Published Successfully\",\n });\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n\n const employLink = async () => {\n if(selectedSurvey.surveyAccess) {\n const {url, method} = Routes.client.employOpenModeratedLink(selectedSurvey.clientId,selectedSurvey._id, openLink)\n const res = await axios[method](url)\n console.log(res)\n }\n }\n \n return (\n \n \n {availableSlots ? (\n
\n
\n
\n Scheduled Calls\n setAvailableSlots(undefined)}\n />{\" \"}\n
\n
\n You can call in 5 mins before the call time!\n
\n {availableSlots.map((item, index) => (\n \n \n Participant #{index + 1}: {item.label}\n \n \n startModeratedSurvey(\n item.surveyId,\n item.date,\n item.time,\n item.setting\n )\n }\n >\n Join Call\n \n
\n ))}\n
\n
\n \n ) : showOpenModal ? (\n
\n
\n
\n Scheduled Calls\n setShowOpenModal(false)}\n />{\" \"}\n
\n
\n You can call in 5 mins before the call time!\n
\n { \n \n {surveyLink}\n \n
\n }\n \n startOpenModeratedSurvey(\n selectedSurvey.surveyId,\n openLink\n )\n }\n >\n Join Call\n \n
\n
\n \n ) : (\n
\n <>\n {surveys && tierInfo && (\n <>\n {surveys\n .filter((s) => s.isPublished === true)\n .map((item, idx) => (\n \n \n {/* */}\n \n ))}\n \n )}\n \n
\n )}\n
\n {slot && (\n setSlot(undefined)}\n style={modalStyles}\n >\n \n \n publishQuestion(question, slot)}\n recordingStartTime={recordingStartTime}\n />\n \n \n )}\n {showOpenMeet && (\n setShowOpenMeet(false)}\n style={modalStyles}\n >\n \n \n publishQuestion(question, slot)}\n recordingStartTime={recordingStartTime}\n />\n \n \n\n )}\n
\n );\n};\n\nexport default PublishedForms;\n","import React from \"react\";\n\nconst FlexRow = ({ style, children, ...rest }) => (\n \n {children}\n \n);\n\nexport default FlexRow;\n","import { COLOR } from \"../../../../constants\";\nexport const greyButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: \"grey\",\n color: \"white\",\n borderRadius: 5,\n};\n\nexport const darkBlueButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: COLOR.darkBlue,\n color: \"white\",\n borderRadius: 5,\n};\n\nexport const tealButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: COLOR.teal,\n color: \"#01213f\",\n borderRadius: 5,\n border: \"none\",\n};\n\nexport const dullGreenButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n backgroundColor: COLOR.dullLightGreen,\n color: \"white\",\n borderRadius: 5,\n};\n\nexport const chartCheckboxStyle = {\n border: \"none\",\n backgroundColor: \"none\",\n margin: 5,\n padding: \"5px 5px 5px 8px\",\n};\n\nexport const greyLabelStyle = {\n color: COLOR.grey,\n fontSize: 14,\n fontWeight: \"bold\",\n margin: 5,\n padding: \"5px 5px 5px 8px\",\n};\n\nexport const holoButtonStyle = {\n marginRight: 8,\n marginBottom: 12,\n borderRadius: 5,\n color: \"rgb(0, 68, 121)\",\n borderColor: \"rgb(0, 68, 121)\",\n};\n\nexport const inlineLabelStyle = {\n display: \"inline-block\",\n minWidth: \"110px\",\n};\n","export const questionTypes = {\n QUESTION_INSTRUCTION: \"questionInstruction\",\n IMAGE_INSTRUCTION: \"imageInstruction\",\n VIDEO_INSTRUCTION: \"videoInstruction\",\n SURVEY_BRIEF: \"surveyBrief\",\n NET_PROMOTOR_SCORE: \"netPromotorScore\",\n TEXT: \"text\",\n IMAGE_COMMENT: \"imageComment\",\n VIDEO_COMMENT: \"videoComment\",\n MULTI_CHOICE: \"multiChoices\",\n IMAGE_MULTI_CHOICE: \"imageMultiChoices\",\n VIDEO_MULTI_CHOICE: \"videoMultiChoices\",\n RANKING: \"ranking\",\n IMAGE_RANKING: \"imageRanking\",\n VIDEO_RANKING: \"videoRanking\",\n CHECK_BOX: \"checkBoxes\",\n IMAGE_CHECK_BOX: \"imageCheckBoxes\",\n VIDEO_CHECK_BOX: \"videoCheckBoxes\",\n STAR_RATING: \"stars\",\n IMAGE_RATING: \"imageStarRatingChoices\",\n VIDEO_RATING: \"videoStarRatingChoices\",\n DROPDOWN: \"dropDown\",\n TEXT_AB_TEST: \"textABTest\",\n IMAGE_AB_TEST: \"imageABTest\",\n VIDEO_AB_TEST: \"videoABTest\",\n ASSOCIATION: \"association\",\n IMAGE_ASSOCIATION: \"imageAssociation\",\n VIDEO_ASSOCIATION: \"videoAssociation\",\n LIKERT: \"likert\",\n SLIDER: \"slider\",\n};\n\nexport const questionNotation = {\n questionInstruction: \"Instructions\",\n imageInstruction: \"Image - Instructions\",\n videoInstruction: \"Video - Instructions\",\n surveyBrief: \"Survey Brief\",\n netPromotorScore: \"Net Promoter Score (NPS)\",\n text: \"Text\",\n imageComment: \"Image Comment\",\n videoComment: \"Video Comment\",\n multiChoices: \"Multiple Choice\",\n imageMultiChoices: \"Image Multi Choice\",\n videoMultiChoices: \"Video Multi Choice\",\n ranking: \"Ranking\",\n imageRanking: \"Image Ranking\",\n videoRanking: \"Video Ranking\",\n checkBoxes: \"Checkboxes\",\n imageCheckBoxes: \"Image Check Boxes\",\n videoCheckBoxes: \"Video Check Boxes\",\n stars: \"Star Rating\",\n imageStarRatingChoices: \"Image - Star Rating\",\n videoStarRatingChoices: \"Video - Star Rating\",\n dropDown: \"Dropdown\",\n textABTest: \"Text A/B Test\",\n imageABTest: \"Image - A/B Test\",\n videoABTest: \"Video - A/B Test\",\n association: \"Association\",\n imageAssociation: \"Image - Association\",\n videoAssociation: \"Video - Association\",\n likert: \"Likert Scale\",\n slider: \"Slider\",\n};\n","import React, { useState } from \"react\";\nimport { Modal } from \"antd\";\nimport { Fragment } from \"react\";\n\nimport { CloseOutlined } from \"@ant-design/icons\";\n\nimport ImgsViewer from \"react-images-viewer\";\n\nconst IModal = ({ onCancel, imgUrl }) => {\n return (\n \n \n \n \n );\n};\n\nconst ImageModal = (url) => {\n const [imageModal, setImageModal] = useState(false);\n return (\n url.url && (\n \n setImageModal(true)} />\n {/* {imageModal && (\n setImageModal(false)} />\n )} */}\n setImageModal(false)}\n />\n \n )\n );\n};\n\nexport default ImageModal;\n","import React from \"react\";\nimport ReactWordCloud from \"react-wordcloud\";\n\nconst WordCloud = React.memo((props) => {\n console.log(\"output\", props.wordCloud);\n return (\n
\n \n
\n );\n});\n\nexport default WordCloud;\n","import React, { useRef, useEffect, useState } from \"react\";\nimport Chart from \"chart.js\";\nimport ChartDataLabels from \"chartjs-plugin-datalabels\";\nimport \"./chart.css\";\n\nconst CreateChart = ({ options, data, type, plugins, keyInfo }) => {\n const myChart = useRef();\n const [chartInstance, setChartInstance] = useState(null);\n useEffect(() => {\n if (chartInstance) {\n chartInstance.destroy();\n }\n console.log(\"Chart Initiate=\", keyInfo, data);\n Chart.plugins.unregister(ChartDataLabels);\n const chartInstanceTemp = new Chart(myChart.current.getContext(\"2d\"), {\n type: type,\n data: data,\n options: options,\n plugins: plugins ? [ChartDataLabels] : null,\n });\n setChartInstance(chartInstanceTemp);\n }, [options, data, type, plugins]);\n return ;\n};\n\nexport default CreateChart;\n\n//https://www.chartjs.org/docs/latest/getting-started/usage.html\n//Props to be passed can be viewed from the documentation link of chart.js given above\n","import React from \"react\";\nimport CreateChart from \"../CreateChart/CreateChart\";\nimport styles from \"./SentimentGraph.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nconst SentimentGraph = ({ sentimentAnalysis, participantIndex }) => {\n const sentimentCost = (value) => {\n switch (true) {\n case value >= 0.9:\n return \"Very Positive\";\n case value >= 0.75:\n return \"Positive\";\n case value >= 0:\n return \"Neutral\";\n case value >= -0.5:\n return \"Negative\";\n case value >= -1:\n return \"Very Negative\";\n }\n };\n\n const sentimentWeight = (value) => {\n switch (true) {\n case value >= -0.75 && value <= 0.75:\n return 5;\n case (value > 0.75 && value < 0.95) || (value < -0.75 && value > -0.95):\n return 7;\n case value >= 0.95 || value <= -0.95:\n return 10;\n }\n };\n\n let data = [];\n sentimentAnalysis.map((s, index) => {\n switch (s.Sentiment) {\n case \"POSITIVE\":\n data.push({\n x: s.SentimentScore.Positive,\n y: Math.random(),\n });\n break;\n case \"NEGATIVE\":\n data.push({\n x: 0 - s.SentimentScore.Negative,\n y: Math.random(),\n });\n break;\n case \"NEUTRAL\":\n data.push({\n x: s.SentimentScore.Neutral,\n y: Math.random(),\n });\n break;\n case \"MIXED\":\n data.push({\n x: s.SentimentScore.Mixed,\n y: Math.random(),\n });\n break;\n }\n });\n\n const total = data.reduce((sum, point) => sum + point.x, 0);\n const avgSentiment = total / data.length;\n\n const sentimentData = {\n datasets: [\n {\n label: \"Sentiment Values\",\n borderColor:\n participantIndex !== null\n ? data.map((d, i) =>\n i === participantIndex ? \"#FF9480\" : \"rgb(0, 193, 148)\"\n )\n : \"rgb(0, 193, 148)\",\n backgroundColor:\n participantIndex !== null\n ? data.map((d, i) =>\n i === participantIndex ? \"#FF9480\" : \"rgb(0, 193, 148)\"\n )\n : \"rgb(0, 193, 148)\",\n data: data,\n pointRadius: data.map((d, index) => sentimentWeight(d.x)),\n },\n ],\n };\n\n const options = {\n title: {\n display: true,\n text: [\n `Average Sentiment: ${avgSentiment.toFixed(2)}`,\n `Overall Sentiment: ${sentimentCost(avgSentiment)}`,\n ],\n },\n aspectRatio: 1,\n legend: {\n position: \"bottom\",\n },\n scales: {\n yAxes: [\n {\n display: true,\n ticks: {\n suggestedMin: 0, // minimum will be 0, unless there is a lower value.\n suggestedMax: 1,\n },\n },\n ],\n xAxes: [\n {\n display: true,\n ticks: {\n suggestedMin: -1, // minimum will be 0, unless there is a lower value.\n suggestedMax: 1,\n },\n },\n ],\n },\n };\n\n console.log(\"sentiment datasets\", sentimentData, participantIndex);\n\n return (\n
\n \n
\n );\n};\n\nexport default React.memo(SentimentGraph);\n","import React, { useState } from \"react\";\nimport { Fragment } from \"react\";\nimport WordCloud from \"../../../../../../components/wordcloud/WordCloud\";\nimport SentimentGraph from \"../../../../../../components/sentiment-graph/SentimentGraph\";\nimport { dullGreenButtonStyle } from \"../../../constants/styles\";\nimport Button from \"../../../../../../components/button/Button\";\n\nconst WordCloudAndSentimentReport = ({\n sentimentReport,\n wordReport,\n participantIndex,\n}) => {\n const [wordCloud, setWordCloud] = useState(false);\n const [sentimentAnalysis, setSentimentAnalysis] = useState(false);\n console.log(\"wordReport\", wordReport);\n return (\n \n {\n setWordCloud(!wordCloud);\n }}\n >{` ${wordCloud ? \"-\" : \"+\"} World Cloud`}\n {\n setSentimentAnalysis(!sentimentAnalysis);\n }}\n >{` ${sentimentAnalysis ? \"-\" : \"+\"} Sentiment Analysis`}\n \n {wordCloud && }\n {sentimentAnalysis && (\n \n )}\n \n \n );\n};\n\nexport default WordCloudAndSentimentReport;\n","import React from \"react\";\nimport { Modal } from \"antd\";\nimport Button from \"../../../../../../components/button/Button\";\nimport { darkBlueButtonStyle } from \"../../../constants/styles\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst TranscriptModal = ({\n onClose,\n handleChange,\n transcript,\n setTranscript,\n}) => {\n const isMobile = useMediaQuery({ query: \"(max-width: 500px)\" });\n return (\n \n

Transcript

\n setTranscript(e.target.value)}\n />\n \n Download Transcript\n \n
\n \n );\n};\n\nexport default TranscriptModal;\n","import React, { useEffect, useRef } from \"react\";\nimport {\n Modal,\n Input,\n InputNumber,\n Button,\n Checkbox,\n notification,\n} from \"antd\";\nimport { cloneDeep, isEqual } from \"lodash\";\nimport { useSelector } from \"react-redux\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport styles from \"./TranscriptVideoModal.module.css\";\nimport c from \"classnames/bind\";\nimport { useState } from \"react\";\nimport {\n CloseCircleFilled,\n VideoCameraFilled,\n EditFilled,\n DeleteFilled,\n CheckCircleOutlined,\n CloseCircleOutlined,\n CaretRightOutlined,\n} from \"@ant-design/icons\";\nimport {\n dullGreenButtonStyle,\n greyButtonStyle,\n} from \"../../../constants/styles\";\nimport {\n convertReadableToSecond,\n convertSecondsToReadable,\n} from \"../../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst Note = ({ note, updateNote }) => {\n const [editing, setEditing] = useState(false);\n const [tempNote, setTempNote] = useState(null);\n\n const updateNoteTime = (value, subKey) => {\n const splitIndex = subKey === \"min\" ? 0 : 1;\n const tempValue = convertSecondsToReadable(tempNote.start).split(\":\");\n tempValue[splitIndex] = (value || 0).toString();\n const newStart = convertReadableToSecond(tempValue.join(\":\"));\n setTempNote({ ...tempNote, start: newStart, end: newStart });\n };\n\n return (\n
\n {editing ? (\n <>\n \n {\n updateNoteTime(value, \"min\");\n }}\n />{\" \"}\n :{\" \"}\n {\n updateNoteTime(value, \"sec\");\n }}\n />\n {\n updateNote(tempNote);\n setEditing(false);\n }}\n />\n setEditing(false)}\n />\n
\n
\n {\n setTempNote({ ...tempNote, text: e.target.value });\n }}\n className={cx(\"edit-text-input\")}\n />\n
\n \n ) : (\n <>\n \n \n {note.userInitial}\n \n {convertSecondsToReadable(note.start)}\n {\n setTempNote(cloneDeep(note));\n setEditing(true);\n }}\n >\n Edit\n \n \n
{note.text}
\n \n )}\n \n );\n};\n\nconst TranscriptVideoModal = ({\n visible,\n subtitles,\n videoUrl,\n onCancel,\n transcript,\n notes,\n updateTranscript,\n updateNote,\n reels,\n createReel,\n removeReel,\n participantIndex,\n}) => {\n const [videoPlayerSourceUrl, setVideoPlayerSourceUrl] = useState(videoUrl);\n const [subtitlesUrl, setSubtitleUrl] = useState(null);\n const [notesVisible, setNotesVisible] = useState(false);\n const [transcriptVisible, setTranscriptVisible] = useState(false);\n const [recordingReel, setRecordingReel] = useState(false);\n const [reelStartTime, setReelStartTime] = useState(0);\n const [reelEndTime, setReelEndTime] = useState(0);\n const [timer, setTimer] = useState(null);\n const [draftTranscript, setDraftTranscript] = useState([]);\n const [editTranscript, setEditTranscript] = useState(false);\n const [newNote, setNewNote] = useState(\"\");\n const [addToTranscript, setAddToTranscript] = useState(false);\n const [deleteReelModal, setDeleteReelModal] = useState(false);\n const [reelToDelete, setReelToDelete] = useState(null);\n\n const [createReelModal, setCreateReelModal] = useState(false);\n const [reelToCreate, setReelToCreate] = useState(null);\n\n const [editReelModal, setEditReelModal] = useState(false);\n const [reelToEdit, setReelToEdit] = useState(null);\n const [editReelStartTime, setEditReelStartTime] = useState(0);\n const [editReelEndTime, setEditReelEndTime] = useState(0);\n const [recordingEditReel, setRecordingEditReel] = useState(0);\n const [reelTimeEdited, setReelTimeEdited] = useState(false);\n const [editTimer, setEditTimer] = useState(null);\n\n useEffect(() => {\n if (!editReelModal) {\n setEditReelStartTime(0);\n setEditReelEndTime(0);\n setReelTimeEdited(false);\n setRecordingEditReel(false);\n }\n }, [editReelModal]);\n\n const videoPlayer = useRef();\n const editVideoPlayer = useRef();\n\n const [userInitials, setUserInitials] = useState(\"\");\n const profile = useSelector((state) => state.client.profile);\n\n const [tempReels, setTempReels] = useState([]);\n\n const [unsavedReelsModal, setUnsavedReelsModal] = useState(false);\n const [reelName, setReelName] = useState(\"\");\n\n useEffect(() => {\n let initial = \"\";\n if (profile.firstName) {\n initial += profile.firstName[0].toUpperCase();\n if (profile.lastName) {\n initial += profile.lastName[0].toUpperCase();\n }\n } else if (profile.email) {\n initial += profile.email[0].toUpperCase();\n } else {\n initial = \"??\";\n }\n setUserInitials(initial);\n }, [profile]);\n\n const onCloseVideoModal = () => {\n if (tempReels.length > 0) {\n setUnsavedReelsModal(true);\n } else {\n onCancel();\n }\n };\n\n const playReel = (start, end) => {\n setVideoPlayerSourceUrl(`${videoUrl}#t=${start},${end}`);\n if (videoPlayer.current) {\n videoPlayer.current.load();\n videoPlayer.current.play();\n }\n };\n\n const deleteReel = async () => {\n if (reelToDelete.url) {\n await removeReel(reelToDelete.url, reelToDelete._id);\n } else {\n setTempReels(tempReels.filter((reel) => !isEqual(reel, reelToDelete)));\n }\n setReelToDelete(null);\n };\n\n const editReel = () => {\n const newTempReels = cloneDeep(tempReels);\n const reelIndex = newTempReels.findIndex((reel) =>\n isEqual(reel, reelToEdit)\n );\n const newReel = {\n ...newTempReels[reelIndex],\n start: editReelStartTime,\n end: editReelEndTime,\n };\n newTempReels.splice(reelIndex, 1, newReel);\n setTempReels(newTempReels);\n };\n\n const createNewReel = async () => {\n await createReel(reelToCreate.start, reelToCreate.end, reelName);\n setTempReels(tempReels.filter((reel) => !isEqual(reel, reelToCreate)));\n setReelToCreate(null);\n };\n\n const addNote = () => {\n if (!newNote) {\n notification.error({ message: \"Please Enter some text\" });\n return;\n }\n const tempNotes = cloneDeep(notes || []);\n const time = videoPlayer.current ? videoPlayer.current.currentTime : 0;\n const noteObj = {\n key: new Date().getSeconds(),\n identifier: Date.now(),\n start: time,\n text: newNote,\n end: time,\n isReel: false,\n reelUrl: \"\",\n isNote: true,\n userInitial: userInitials,\n };\n\n tempNotes.push(noteObj);\n updateNote(tempNotes.sort((n1, n2) => n1.start - n2.start));\n\n if (addToTranscript) {\n const tempTranscript = cloneDeep(transcript || []);\n tempTranscript.push(noteObj);\n updateTranscript(tempTranscript.sort((t1, t2) => t1.start - t2.start));\n }\n\n setNewNote(\"\");\n setAddToTranscript(false);\n };\n\n useEffect(() => {\n if (subtitles) {\n const file = new Blob([subtitles], { type: \"text/vtt\" });\n setSubtitleUrl(URL.createObjectURL(file));\n }\n }, [subtitles]);\n\n useEffect(() => {\n if (recordingReel && videoPlayer?.current && !timer) {\n setTimer(\n setInterval(() => {\n const videoTime = videoPlayer.current.currentTime;\n setReelEndTime(videoTime);\n }, 500)\n );\n } else if (!recordingReel && timer) {\n clearInterval(timer);\n setTimer(null);\n }\n }, [recordingReel, timer, videoPlayer.current]);\n\n useEffect(() => {\n if (reelEndTime < reelStartTime) {\n setReelStartTime(reelEndTime);\n }\n }, [reelStartTime, reelEndTime]);\n\n useEffect(() => {\n if (recordingEditReel && editVideoPlayer?.current && !editTimer) {\n setEditTimer(\n setInterval(() => {\n const videoTime = editVideoPlayer.current.currentTime;\n setEditReelEndTime(videoTime);\n }, 500)\n );\n } else if (!recordingEditReel && editTimer) {\n clearInterval(editTimer);\n setEditTimer(null);\n }\n }, [recordingEditReel, editTimer, editVideoPlayer.current]);\n\n useEffect(() => {\n if (editReelEndTime < editReelStartTime) {\n setEditReelStartTime(editReelEndTime);\n }\n }, [editReelStartTime, editReelEndTime]);\n\n const updateDraftTranscript = (index, key, value, subKey) => {\n const tempTranscript = cloneDeep(draftTranscript);\n if (key === \"start\" || key === \"end\") {\n const splitIndex = subKey === \"min\" ? 0 : 1;\n const tempValue = convertSecondsToReadable(\n tempTranscript[index][key]\n ).split(\":\");\n tempValue[splitIndex] = (value || 0).toString();\n tempTranscript[index][key] = convertReadableToSecond(tempValue.join(\":\"));\n } else {\n tempTranscript[index][key] = value;\n }\n setDraftTranscript(tempTranscript);\n };\n\n return (\n \n \n
\n
\n Participant no. {participantIndex + 1}\n
\n \n setNotesVisible(!notesVisible)}\n >\n setTranscriptVisible(!transcriptVisible)}\n >\n \n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n {\n if (!recordingReel && videoPlayer.current) {\n const videoTime = videoPlayer.current.currentTime;\n setReelEndTime(videoTime);\n setReelStartTime(videoTime);\n } else {\n setTempReels([\n ...tempReels,\n {\n start: reelStartTime,\n end: reelEndTime,\n },\n ]);\n setReelStartTime(0);\n setReelEndTime(0);\n }\n setRecordingReel(!recordingReel);\n }}\n >\n \n {recordingReel ? \"Stop recording\" : \"Record reel\"}\n \n \n {convertSecondsToReadable(reelStartTime)} -{\" \"}\n {convertSecondsToReadable(reelEndTime)}\n
\n
\n \n {[...tempReels, ...reels]\n .sort((r1, r2) => r1.start - r2.start)\n .map((reel, index) => (\n
\n {reel.url ? (\n \n \n {reel.name ?? \"\"}\n
\n
\n ) : (\n {\n setReelToCreate(reel);\n setReelName(\"\");\n setCreateReelModal(true);\n }}\n >\n Add To reel\n
\n )}\n
\n \n \n \n
\n {\n playReel(reel.start, reel.end);\n }}\n />\n {!reel.url && (\n {\n setReelToEdit(reel);\n setEditReelModal(true);\n }}\n />\n )}\n {\n setReelToDelete(reel);\n setDeleteReelModal(true);\n }}\n />\n
\n
\n \n {convertSecondsToReadable(reel.start)} -{\" \"}\n {convertSecondsToReadable(reel.end)}\n \n \n ))}\n \n \n \n {(notesVisible || transcriptVisible) && (\n
\n {transcriptVisible && (\n
\n \n \n Video Transcript\n
\n
\n {editTranscript ? (\n <>\n {\n setEditTranscript(false);\n }}\n style={{\n backgroundColor: \"#0c4674\",\n color: \"white\",\n border: \"none\",\n margin: \"0px 12px 0px 0px\",\n textTransform: \"uppercase\",\n transition: \"none\",\n }}\n >\n Cancel\n \n {\n const tempTranscript = cloneDeep(draftTranscript);\n\n updateTranscript(\n tempTranscript.sort(\n (t1, t2) => t1.start - t2.start\n )\n );\n setEditTranscript(false);\n }}\n style={{\n ...dullGreenButtonStyle,\n margin: 0,\n border: \"none\",\n textTransform: \"uppercase\",\n transition: \"none\",\n }}\n >\n Save\n \n \n ) : (\n {\n setDraftTranscript(cloneDeep(transcript || []));\n setEditTranscript(true);\n }}\n style={{\n ...dullGreenButtonStyle,\n margin: 0,\n border: \"none\",\n textTransform: \"uppercase\",\n transition: \"none\",\n }}\n >\n Edit transcript\n \n )}\n
\n
\n \n {editTranscript\n ? draftTranscript.map((t, index) => (\n \n \n {t.isNote && (\n \n {t.userInitial}\n \n )}\n {convertSecondsToReadable(t.start)}{\" \"}\n {!t.isNote && (\n - {convertSecondsToReadable(t.end)}\n )}\n \n
\n {\n updateDraftTranscript(\n index,\n \"text\",\n e.target.value\n );\n }}\n className={cx(\"edit-text-input\")}\n autoSize={{ minRows: 1, maxRows: 3 }}\n />\n
\n \n ))\n : transcript.map((t, index) => (\n \n \n {t.isNote && (\n \n {t.userInitial}\n \n )}\n {convertSecondsToReadable(t.start)}{\" \"}\n {!t.isNote && (\n - {convertSecondsToReadable(t.end)}\n )}\n \n \n {t.text}\n \n \n ))}\n \n \n )}\n {notesVisible && (\n \n
\n
\n {notes.map((note, index) => (\n {\n const tempNotes = cloneDeep(notes);\n tempNotes[index] = newNoteObject;\n updateNote(\n tempNotes.sort((n1, n2) => n1.start - n2.start)\n );\n }}\n />\n ))}\n
\n \n \n setNewNote(e.target.value)}\n className={cx(\"edit-text-input\")}\n style={{ margin: \"0px 10px 0px 0px\" }}\n onPressEnter={addNote}\n placeholder=\"Enter notes here\"\n />\n \n Add\n \n
\n setAddToTranscript(e.target.checked)}\n className={cx(\"add-transcript-check\")}\n >\n Add to transcript\n \n \n \n \n )}\n \n )}\n \n {reelToDelete !== null && (\n {\n setDeleteReelModal(false);\n setReelToDelete(null);\n }}\n footer={null}\n closable={false}\n width={\"500px\"}\n className={cx(\"confirmation-modal\")}\n >\n \n Delete Reel?\n \n \n This is {reelToDelete.url ? \"a saved\" : \"an unsaved\"} reel.\n \n \n {\n setDeleteReelModal(false);\n setReelToDelete(null);\n }}\n >\n Cancel\n \n {\n deleteReel();\n setDeleteReelModal(false);\n }}\n >\n Delete\n \n \n \n )}\n {reelToCreate !== null && (\n {\n setCreateReelModal(false);\n setReelToCreate(null);\n }}\n footer={null}\n closable={false}\n width={\"500px\"}\n className={cx(\"confirmation-modal\")}\n >\n \n Add to reels\n \n \n
\n
Reel duration
\n \n {convertSecondsToReadable(reelToCreate.start)} -{\" \"}\n {convertSecondsToReadable(reelToCreate.end)}\n
\n \n
\n
\n Reel name (optional)\n
\n setReelName(e.target.value)}\n size=\"small\"\n placeholder=\"Enter reel name\"\n style={{\n width: 220,\n borderRadius: 6,\n border: \"1px solid #0a3157\",\n }}\n />\n
\n \n \n The selected portion of this video will be cropped and saved as a\n reel.\n \n \n You can view these later from the reels section.\n \n \n {\n setCreateReelModal(false);\n setReelToCreate(null);\n }}\n >\n Cancel\n \n {\n createNewReel();\n setCreateReelModal(false);\n }}\n >\n Add\n \n \n \n )}\n {reelToEdit !== null && (\n {\n setEditReelModal(false);\n setReelToEdit(null);\n }}\n footer={null}\n closable={false}\n width={\"500px\"}\n className={cx(\"confirmation-modal\")}\n >\n \n Edit Reel\n \n \n \n \n \n \n \n \n Current reel time: \n \n {convertSecondsToReadable(reelToEdit.start)} -{\" \"}\n {convertSecondsToReadable(reelToEdit.end)}\n \n \n
\n {\n if (!recordingEditReel && editVideoPlayer.current) {\n const videoTime = editVideoPlayer.current.currentTime;\n setEditReelStartTime(videoTime);\n setEditReelEndTime(videoTime);\n setReelTimeEdited(true);\n editVideoPlayer.current.play();\n } else if (editVideoPlayer.current) {\n editVideoPlayer.current.pause();\n }\n setRecordingEditReel(!recordingEditReel);\n }}\n >\n {recordingEditReel ? \"Stop Recording\" : \"Start Recording\"}\n \n
\n {reelTimeEdited && (\n \n Edited reel time: \n \n {convertSecondsToReadable(editReelStartTime)} -{\" \"}\n {convertSecondsToReadable(editReelEndTime)}\n \n \n )}\n \n {\n setEditReelModal(false);\n setReelToEdit(null);\n }}\n >\n Cancel\n \n {\n editReel();\n setEditReelModal(false);\n }}\n >\n Update Reel\n \n \n \n )}\n\n {\n setUnsavedReelsModal(false);\n }}\n footer={null}\n closable={false}\n width={\"500px\"}\n className={cx(\"confirmation-modal\")}\n >\n \n Unsaved Reels\n \n \n You have unsaved reels, are you sure you want to exit?\n \n \n {\n setUnsavedReelsModal(false);\n }}\n >\n Cancel\n \n {\n setUnsavedReelsModal(false);\n onCancel();\n }}\n >\n Exit\n \n \n \n \n );\n};\n\nexport default TranscriptVideoModal;\n","import React, { useEffect, useRef } from \"react\";\nimport { Modal, Button, notification } from \"antd\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport styles from \"./ReelsModal.module.css\";\nimport c from \"classnames/bind\";\nimport { useState } from \"react\";\nimport {\n CloseCircleFilled,\n DeleteFilled,\n CaretRightFilled,\n} from \"@ant-design/icons\";\nimport { greyButtonStyle } from \"../../../constants/styles\";\nimport { convertSecondsToReadable } from \"../../../../../../constants\";\n\nconst cx = c.bind(styles);\n\nconst ReelsModal = ({\n reels,\n removeReel,\n participantIndex,\n visible,\n onCancel,\n}) => {\n const [deleteReelModal, setDeleteReelModal] = useState(false);\n const [reelToDelete, setReelToDelete] = useState(null);\n const [currentReel, setCurrentReel] = useState(0);\n\n const [videoUrl, setVideoUrl] = useState(\"\");\n\n const videoPlayer = useRef();\n\n useEffect(() => {\n setVideoUrl(reels[currentReel].url);\n if (videoPlayer.current) {\n videoPlayer.current.load();\n videoPlayer.current.play();\n }\n }, [currentReel, videoPlayer.current]);\n\n const deleteReel = async () => {\n await removeReel(reelToDelete.url, reelToDelete._id);\n setReelToDelete(null);\n };\n\n return (\n \n \n
\n
\n Reels for participant no. {participantIndex + 1}\n
\n \n \n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {[...reels].map((reel, index) => (\n
\n \n \n {reel.name ?? \"\"}\n
\n
\n
\n \n \n \n
\n setCurrentReel(index)} />\n {\n setReelToDelete(reel);\n setDeleteReelModal(true);\n }}\n />\n
\n
\n \n {convertSecondsToReadable(reel.start)} -{\" \"}\n {convertSecondsToReadable(reel.end)}\n
\n
\n ))}\n \n \n \n \n {reelToDelete !== null && (\n {\n setDeleteReelModal(false);\n setReelToDelete(null);\n }}\n footer={null}\n closable={false}\n width={\"500px\"}\n className={cx(\"confirmation-modal\")}\n >\n \n Delete Reel?\n \n \n This is {reelToDelete.url ? \"a saved\" : \"an unsaved\"} reel.\n \n \n {\n setDeleteReelModal(false);\n setReelToDelete(null);\n }}\n >\n Cancel\n \n {\n deleteReel();\n setDeleteReelModal(false);\n }}\n >\n Delete\n \n \n \n )}\n \n );\n};\n\nexport default ReelsModal;\n","import { LeftOutlined, ManOutlined, WomanOutlined } from \"@ant-design/icons\";\nimport { Slider, Row, Col, Select } from \"antd\";\nimport React, { useState } from \"react\";\nimport Modal from \"react-modal\";\nimport ReactPlayer from \"react-player/lazy\";\nimport { RemoveScrollBar } from \"react-remove-scroll-bar\";\nimport \"./emotional-analysis-modal.css\";\nimport Chart from \"react-google-charts\";\nimport { useMediaQuery } from \"react-responsive\";\nimport axios, { Routes } from \"../../../../../../services/API\";\nimport { notify } from \"../../../../../../utils\";\n\nconst emotionColor = {\n CONFUSED: \"#000000\",\n SAD: \"#000080\",\n CALM: \"#FFA500\",\n ANGRY: \"#FF0000\",\n FEAR: \"#9400D3\",\n DISGUSTED: \"#7B68EE\",\n SURPRISED: \"#800080\",\n HAPPY: \"#32CD32\",\n};\n\nconst modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n backgroundColor: \"#ECF9FA\",\n },\n};\n\nconst getFeatures = (figures) => {\n const features = Object.keys(figures)\n .map((val) => {\n if (figures[val].Value === true) {\n switch (val) {\n case \"EyesOpen\":\n return \"Eyes open\";\n case \"MouthOpen\":\n return \"Mouth open\";\n default:\n return val;\n }\n }\n return;\n })\n .filter((val) => val);\n\n return features;\n};\n\nconst getRoundOffNumber = (num) => {\n return (num + \"\").indexOf(\"9\") > -1 ? num + 1 : num;\n};\n\nconst getTimelineData = (emotionData, seconds) => {\n const data = [];\n emotionData.forEach((val) => {\n const emotion = val.Face.Emotions[0].Type;\n const timestamp = getRoundOffNumber(val.Timestamp) / 1000;\n\n if (data.length === 0) {\n data.push([\n \"Emotion\",\n emotion,\n emotionColor[emotion],\n new Date(0, 0, 0, 0, 0, 0),\n new Date(0, 0, 0, 0, 0, timestamp),\n ]);\n } else {\n if (data[data.length - 1][1] === emotion) {\n data[data.length - 1][4] = new Date(0, 0, 0, 0, 0, timestamp);\n } else {\n data.push([\n \"Emotion\",\n emotion,\n emotionColor[emotion],\n data[data.length - 1][4],\n new Date(0, 0, 0, 0, 0, timestamp),\n ]);\n }\n }\n });\n return data.filter((val) => val[3] < new Date(0, 0, 0, 0, 0, seconds));\n};\n\nconst getLineChartData = (emotionData, seconds) => {\n // [seconds, 'CONFUSED', 'SAD', 'CALM', 'ANGRY', 'FEAR', 'DISGUSTED', 'SURPRISED', 'HAPPY' ]\n const data = emotionData.map((val) => {\n const seconds = val.Timestamp / 1000;\n const confused = val.Face.Emotions.find((el) => el.Type === \"CONFUSED\")\n .Confidence;\n const sad = val.Face.Emotions.find((el) => el.Type === \"SAD\").Confidence;\n const calm = val.Face.Emotions.find((el) => el.Type === \"CALM\").Confidence;\n const angry = val.Face.Emotions.find((el) => el.Type === \"ANGRY\")\n .Confidence;\n const fear = val.Face.Emotions.find((el) => el.Type === \"FEAR\").Confidence;\n const disgusted = val.Face.Emotions.find((el) => el.Type === \"DISGUSTED\")\n .Confidence;\n const surprised = val.Face.Emotions.find((el) => el.Type === \"SURPRISED\")\n .Confidence;\n const happy = val.Face.Emotions.find((el) => el.Type === \"HAPPY\")\n .Confidence;\n return [\n seconds,\n confused,\n sad,\n calm,\n angry,\n fear,\n disgusted,\n surprised,\n happy,\n ];\n });\n return data.filter((val) => val[0] <= seconds);\n};\n\nconst VerticalBar = ({ percent = 0, color = \"#4c839e\" }) => {\n return (\n \n \n \n );\n};\n\nconst getAverageAgeRange = (data) => {\n const low = data.map((val) => val.Face.AgeRange.Low);\n const high = data.map((val) => val.Face.AgeRange.High);\n\n const lowAverage = low.reduce((total, val) => total + val, 0) / low.length;\n const highAverage = high.reduce((total, val) => total + val, 0) / high.length;\n return `${lowAverage.toFixed(0)}-${highAverage.toFixed(0)}`;\n};\n\nconst emotions = [\n \"CONFUSED\",\n \"SAD\",\n \"CALM\",\n \"ANGRY\",\n \"FEAR\",\n \"DISGUSTED\",\n \"SURPRISED\",\n \"HAPPY\",\n];\n\nconst EmotionalAnalysisModal = ({\n isOpen,\n closeModal,\n data,\n videoUrl,\n userId,\n survey,\n}) => {\n const [emotionData, setEmotionData] = useState(data);\n const [url, setUrl] = useState(videoUrl);\n const [figures, setFigures] = useState({});\n const [seconds, setSeconds] = useState(0);\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 768px)\" });\n const xlBreakpoint = useMediaQuery({ query: \"(max-width: 1200px)\" });\n\n const participants = survey.responses.map((val) => val.userId._id);\n\n const updateEmotionDataOnProgress = ({ playedSeconds }) => {\n const playedMilliSeconds = playedSeconds.toFixed(0) * 1000;\n if (emotionData.find((val) => val.Timestamp >= playedMilliSeconds)) {\n setFigures(\n emotionData.find((val) => val.Timestamp >= playedMilliSeconds)?.Face\n );\n }\n setSeconds(playedSeconds.toFixed(0));\n };\n\n const onParticipantChange = async (userId) => {\n const uploadURL = `${survey._id}_${userId}`;\n if (!survey.emotionJobId || !survey.emotionJobId[uploadURL]) {\n notify(\n \"error\",\n \"Error\",\n \"No emotional analysis found for this participant.\"\n );\n return;\n }\n const jobId = survey.emotionJobId[uploadURL];\n const clientId = localStorage.getItem(\"client\");\n try {\n let result = [];\n let nextToken = \"\";\n while (true) {\n const { data } = await axios({\n ...Routes.client.getVideoAnalysis(\n clientId,\n survey._id,\n jobId,\n nextToken\n ),\n });\n result = result.concat(data.Faces);\n if (data.NextToken) {\n nextToken = data.NextToken;\n } else {\n break;\n }\n }\n setEmotionData(data.Faces);\n setUrl(\n `https://userqual-video-recording.s3.ap-south-1.amazonaws.com/${survey._id}_${userId}.mp4`\n );\n } catch (err) {\n notify(\n \"error\",\n \"Error\",\n \"No emotional analysis found for this participant.\"\n );\n }\n };\n\n const onCloseModal = () => {\n closeModal();\n };\n return (\n \n \n \n \n
\n Back\n
\n
\n Video sentiment analysis\n
\n \n \n
\n \n \n \n {participants.map((val, index) => (\n \n Participant {index + 1}\n \n ))}\n \n \n

\n Facial features\n

\n {getFeatures(figures).map((val) => (\n
  • \n {val}\n
  • \n ))}\n
    \n \n \n \n \n \n {/* AGE AND GENDER */}\n \n \n \n

    \n {/* {figures?.AgeRange?.Low}-{figures?.AgeRange?.High} */}\n {getAverageAgeRange(emotionData)}\n

    \n Likely age\n \n \n

    \n \n \n

    \n Likely gender\n \n
    \n \n {/* VIDEO QUALITY */}\n \n

    Video quality

    \n {figures.Quality &&\n Object.keys(figures.Quality).map((val) => (\n \n {val}\n
    \n \n
    \n \n ))}\n \n \n \n \n {/* LEGENDS */}\n \n \n

    Legends

    \n {Object.keys(emotionColor).map((val) => (\n
    \n
    \n {val}\n \n ))}\n \n \n {/* GRAPHS */}\n \n \n Loading Chart}\n data={[\n [\n { type: \"string\", id: \"Position\" },\n { type: \"string\", id: \"Name\" },\n { type: \"string\", role: \"style\" },\n { type: \"date\", id: \"Start\" },\n { type: \"date\", id: \"End\" },\n ],\n ...getTimelineData(emotionData, seconds),\n ]}\n options={{\n timeline: { showRowLabels: false },\n avoidOverlappingGridLines: false,\n }}\n />\n Loading Chart}\n data={[\n [\n \"x\",\n \"CONFUSED\",\n \"SAD\",\n \"CALM\",\n \"ANGRY\",\n \"FEAR\",\n \"DISGUSTED\",\n \"SURPRISED\",\n \"HAPPY\",\n ],\n ...getLineChartData(emotionData, seconds),\n ]}\n options={{\n hAxis: {\n title: \"Time (in seconds)\",\n },\n legend: \"none\",\n series: {\n 3: { color: emotionColor.ANGRY },\n 1: { color: emotionColor.SAD },\n 2: { color: emotionColor.CALM },\n 0: { color: emotionColor.CONFUSED },\n 4: { color: emotionColor.FEAR },\n 5: { color: emotionColor.DISGUSTED },\n 6: { color: emotionColor.SURPRISED },\n 7: { color: emotionColor.HAPPY },\n },\n // chartArea: { width: '100%', height: '80%' }\n theme: \"maximized\",\n }}\n />\n \n \n
    \n \n \n \n

    Emotions

    \n {emotions.map((val) => (\n \n {val}\n
    \n el.Type === val)\n .Confidence\n }\n color={emotionColor[val]}\n />\n
    \n \n ))}\n \n \n
    \n \n
    \n );\n};\n\nexport default EmotionalAnalysisModal;\n","import React, { useEffect, useState } from \"react\";\n\nimport {\n COLOR,\n convertSecondsIntoStandardFormat,\n convertTranscriptToWebVtt,\n GetFilename,\n} from \"../../../../../constants\";\nimport FlexRow from \"../../../../../components/flex-row\";\nimport Button from \"../../../../../components/button/Button\";\nimport {\n holoButtonStyle,\n inlineLabelStyle,\n darkBlueButtonStyle,\n dullGreenButtonStyle,\n} from \"../../constants/styles\";\nimport styles from \"./ResponseBox.module.css\";\nimport { notification, Select, Slider, Card } from \"antd\";\nimport c from \"classnames/bind\";\nimport { StarFilled, StarOutlined, CloseOutlined } from \"@ant-design/icons\";\nimport { questionTypes } from \"../../../../../components/constants/questionType\";\nimport { Fragment } from \"react\";\nimport VideoModal, { Vmodal } from \"./VideoModal/VideoModal\";\nimport ImageModal from \"./ImageModal/ImageModal\";\nimport \"./responseBox.css\";\nimport {\n getRoleByToken,\n getVideoUrl,\n getTranscriptUrl,\n notify,\n incrementPendingRequests,\n decrementPendingRequests,\n getSubtitlesUrl,\n getModeratedSubtitlesUrl,\n getModeratedVideoUrl,\n} from \"../../../../../utils\";\nimport WordCloudAndSentimentReport from \"./WordCloudAndSentimentReport/WordCloudAndSentimentReport\";\nimport axios, { Routes } from \"../../../../../services/API\";\nimport TranscriptModal from \"./TranscriptModal/TranscriptModal\";\nimport handleNetworkErrors from \"../../../../user/constants/handleNetworkErrors\";\nimport TranscriptVideoModal from \"./TranscriptVideoModal/TransciptVideoModal\";\nimport ReelsModal from \"./ReelsModal/ReelsModal\";\nimport EmotionalAnalysisModal from \"./EmotionalAnalysisModal/EmotionalAnalysisModal\";\nimport ReactImageVideoLightbox from \"react-image-video-lightbox\";\nimport { ErrorOutlined } from \"@material-ui/icons\";\n\nconst cx = c.bind(styles);\n\nconst ResponseBox = ({\n participantCriteriaDetails,\n participantDetails,\n participantResponse,\n survey,\n userId,\n sentimentAnalysis,\n participantIndex,\n transcriptReport,\n moderatedCallIndex\n\n}) => {\n const { client } = Routes;\n const [viewScript, setViewScript] = useState(false);\n const [viewReels, setViewReels] = useState(false);\n const [transcript, setTranscript] = useState(null);\n const [transcriptText, setTranscriptText] = useState(\"\");\n const [notes, setNotes] = useState(null);\n const [reels, setReels] = useState(null);\n const [subtitles, setSubtitles] = useState(null);\n const [responses, setResponses] = useState(null);\n const [userVideoRecording, setUserVideoRecording] = useState(false);\n const [userVideoURL, setUserVideoURL] = useState(null);\n const [emotionalAnalysis, setEmotionalAnalysis] = useState(false);\n const [emotionalAnalysisObject, setEmotionalAnalysisObject] = useState({});\n\n const userIdKey = survey.mode\n ? survey.qualitativeData[survey.setting ? 0 : participantIndex]?.slotKey\n : userId;\n\n const ClientLink = (redirectURL) => {\n const url = redirectURL.redirectURL;\n console.log(\n participantDetails,\n participantResponse,\n survey,\n userId,\n sentimentAnalysis,\n participantIndex,\n transcriptReport\n );\n return (\n
    \n {\n window.open(\n url.indexOf(\"https\") > -1 ? url : \"https://\" + url,\n \"_blank\"\n );\n }}\n >{`Open link: ${url}`}\n
    \n );\n };\n\n const videos = [\n {\n url:\n \"https://userqual-file-upload.s3.amazonaws.com/newClip8O9hHs2klK.mp4\",\n type: \"video\",\n altTag: \"some image\",\n },\n {\n url:\n \"https://userqual-file-upload.s3.amazonaws.com/newClipB9DaKaq6W9.mp4\",\n type: \"video\",\n title: \"some video\",\n },\n {\n url:\n \"https://userqual-file-upload.s3.amazonaws.com/newClipaJQyanoC7F.mp4\",\n type: \"video\",\n altTag: \"some other image\",\n },\n {\n url:\n \"https://userqual-file-upload.s3.amazonaws.com/newClipaJQyanoC7F.mp4\",\n type: \"video\",\n title: \"some other video\",\n },\n ];\n\n useEffect(() => {\n if (Array.isArray(transcript)) {\n const text = transcript.map(({ text }) => text).join(\" \");\n setTranscriptText(text);\n }\n }, [transcript]);\n\n useEffect(() => {\n setResponses(questionResponses(participantResponse));\n // Only for Qualitative Surveys\n if (survey.surveyType) {\n setQualitativeData();\n saveVideoURL();\n // fetchSubtitleForVideo();\n }\n }, [participantResponse]);\n\n useEffect(() => {\n if (Array.isArray(transcript)) {\n setSubtitles(convertTranscriptToWebVtt(transcript));\n }\n }, [transcript]);\n\n const saveVideoURL = async () => {\n if (survey.surveyType) {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n let { url, method } = client.getVideo(id, survey._id);\n url += fetchVideoUrl(survey, userId);\n try {\n const { data } = await axios[method](url);\n if (data) {\n console.log(\"video data\", data);\n setUserVideoURL(data.signedRequest);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n }\n };\n\n const fetchVideoUrl = (survey, userId) => {\n if (survey.mode) {\n if (survey.surveyAccess) return getModeratedVideoUrl(survey._id, survey.qualitativeData[moderatedCallIndex]?.slotKey, survey.surveyAccess);\n return getModeratedVideoUrl(survey._id, userIdKey, survey.surveyAccess);\n } else {\n return getVideoUrl(survey._id, userId);\n }\n };\n\n const setQualitativeData = async () => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n let { url, method } = client.fetchQualitativeData(\n id,\n survey._id,\n userIdKey\n );\n // url += getTranscriptUrl(survey._id, userId);\n try {\n const { data } = await axios[method](url);\n // const { subtitleData } = await axios[method](subtitleUrl);\n // console.log(\"subtitles\", subtitleData);\n if (data) {\n setNotes((data.notes || []).sort((n1, n2) => n1.start - n2.start));\n setTranscript(\n (data.transcript || []).sort((t1, t2) => t1.start - t2.start)\n );\n setReels((data.reels || []).sort((r1, r2) => r1.start - r2.start));\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const fetchSubtitleForVideo = async () => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n let { url, method } = client.getTranscript(id, survey._id);\n if (survey.mode) {\n url += getModeratedSubtitlesUrl(survey._id, userIdKey);\n } else {\n url += getSubtitlesUrl(survey._id, userId);\n }\n try {\n const { data } = await axios[method](url);\n if (data) {\n setSubtitles(data);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const saveTranscriptToTxt = () => {\n const element = document.createElement(\"a\");\n const file = new Blob([transcriptText], { type: \"text/plain\" });\n element.href = URL.createObjectURL(file);\n element.download = \"transcript.txt\";\n document.body.appendChild(element); // Required for this to work in FireFox\n element.click();\n setViewScript(false);\n };\n\n const onViewEmotionalAnalysis = async () => {\n const uploadURL = `${survey._id}_${userIdKey.replace(/\\//g, \"|\")}`;\n if (!survey.emotionJobId || !survey.emotionJobId[uploadURL]) {\n notify(\n \"error\",\n \"Error\",\n \"No emotional analysis found for this participant.\"\n );\n return;\n }\n const jobId = survey.emotionJobId[uploadURL];\n const clientId = localStorage.getItem(\"client\");\n try {\n let result = [];\n let nextToken = \"\";\n while (true) {\n const { data } = await axios({\n ...Routes.client.getVideoAnalysis(\n clientId,\n survey._id,\n jobId,\n nextToken\n ),\n });\n result = result.concat(data.Faces);\n if (data.NextToken) {\n nextToken = data.NextToken;\n } else {\n break;\n }\n }\n setEmotionalAnalysisObject(result);\n setEmotionalAnalysis(true);\n } catch (err) {\n notify(\n \"error\",\n \"Error\",\n \"No emotional analysis found for this participant.\"\n );\n }\n };\n\n const updateTranscript = async (transcript) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.upsertQualitativeData(id, survey._id),\n data: {\n data: {\n slotKey: userIdKey,\n transcript: transcript,\n },\n },\n });\n setTranscript(transcript);\n notification.success({ message: \"Transcript Updated Successfully\" });\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const updateNote = async (notes) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.upsertQualitativeData(id, survey._id),\n data: {\n data: {\n slotKey: userIdKey,\n notes: notes,\n },\n },\n });\n setNotes(notes);\n notification.success({\n message: \"Notes Updated Successfully\",\n });\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const addReelToResultSection = async (reelUrl, { start, end, name = \"\" }) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.upsertQualitativeData(id, survey._id),\n data: {\n data: {\n slotKey: userIdKey,\n reel: {\n url: reelUrl,\n start: start,\n end: end,\n name: name,\n },\n },\n },\n });\n notification.success({\n message: \"Reels Updated in Result Page Successfully\",\n });\n // Fetch Updated Data\n setQualitativeData();\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n // const addReelToResultSection = async (start, end) => {\n // const id =\n // getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n // ? localStorage.getItem(\"client\")\n // : \"\";\n // const startTime = convertSecondsIntoStandardFormat(start);\n // const endTime = convertSecondsIntoStandardFormat(end);\n // try {\n // const { url, method, data } = Routes.client.createReel(id, survey._id);\n // const updatedData = {\n // ...data,\n // inputs: [\n // {\n // fileName: `${survey._id}_${userId}.mp4`,\n // clippings: [\n // {\n // start: startTime,\n // end: endTime,\n // },\n // ],\n // },\n // ],\n // };\n // const resp = await axios[method](url, { data: updatedData });\n // notification.success({\n // message: \"Reel Created\",\n // });\n // updateReel(resp.data.url, { start, end });\n // } catch (e) {\n // handleNetworkErrors(e);\n // }\n // };\n\n const createReel = async (start, end, name = \"\") => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const startTime = convertSecondsIntoStandardFormat(start);\n const endTime = convertSecondsIntoStandardFormat(end);\n try {\n const { url, method, data } = Routes.client.createReel(id, survey._id);\n const updatedData = {\n ...data,\n inputs: [\n {\n fileName: `${survey._id}_${userIdKey.replace(/\\//g, \"|\")}.mp4`,\n clippings: [\n {\n start: startTime,\n end: endTime,\n },\n ],\n },\n ],\n };\n const resp = await axios[method](url, { data: updatedData });\n // notification.success({\n // message: \"Reel Created\",\n // });\n const reelUrl = resp.data.url;\n await addReelToResultSection(reelUrl, { start, end, name });\n } catch (e) {\n handleNetworkErrors(e);\n }\n };\n\n const removeReel = async (url, reelId = null) => {\n const filePath = GetFilename(url);\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { url, method } = Routes.client.removeReel(id, survey._id);\n const { message } = await axios[method](url, {\n data: {\n data: {\n reelId: reelId,\n filePath: filePath,\n },\n },\n });\n notification.success({\n message: \"Reel deleted successfully\",\n });\n setReels(reels.filter((reel) => reel._id !== reelId));\n } catch (err) {\n handleNetworkErrors(ErrorOutlined);\n }\n };\n\n const questionResponses = (participantResponse) => {\n const responseArray = participantResponse.map((question, index) => {\n let generateResponse = null;\n switch (question.type) {\n case questionTypes.QUESTION_INSTRUCTION:\n case questionTypes.IMAGE_INSTRUCTION:\n case questionTypes.VIDEO_INSTRUCTION:\n generateResponse = (\n \n {question.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {question.videoUrl ? (\n
    \n \n
    \n ) : null}\n
    \n );\n break;\n case questionTypes.TEXT:\n case questionTypes.IMAGE_COMMENT:\n case questionTypes.VIDEO_COMMENT:\n generateResponse = (\n \n {question.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {question.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    {question.answer[0]}
    \n \n
    \n );\n break;\n case questionTypes.MULTI_CHOICE:\n case questionTypes.IMAGE_MULTI_CHOICE:\n case questionTypes.VIDEO_MULTI_CHOICE:\n generateResponse = (\n \n {question.options.map((option, index) => {\n return (\n
    \n \n {option.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {option.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    {option.label}
    \n
    \n );\n })}\n
    \n );\n break;\n case questionTypes.CHECK_BOX:\n case questionTypes.IMAGE_CHECK_BOX:\n case questionTypes.VIDEO_CHECK_BOX:\n generateResponse = (\n \n {question.options.map((option, index) => {\n return (\n
    \n -1\n ? { background: \"#01223f\" }\n : null\n }\n className={cx(\"check-boxes\")}\n >\n {option.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {option.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    {option.label}
    \n
    \n );\n })}\n
    \n );\n break;\n case questionTypes.DROPDOWN:\n generateResponse = (\n
    \n {question.answer[0]} (Range from 1-{question.range})\n
    \n );\n break;\n case questionTypes.SLIDER:\n generateResponse = (\n \n
    \n \n
    \n
    \n
    {question.labels.start}
    \n
    {question.labels.middle}
    \n
    {question.labels.end}
    \n
    \n
    \n );\n break;\n case questionTypes.LIKERT:\n generateResponse = (\n \n
    \n {[...new Array(question.range)].map((tmp, index) => {\n return (\n \n );\n })}\n
    \n
    \n
    {question.labels.start}
    \n
    {question.labels.middle}
    \n
    {question.labels.end}
    \n
    \n
    \n );\n break;\n case questionTypes.NET_PROMOTOR_SCORE:\n generateResponse = (\n \n
    \n {[...new Array(11)].map((tmp, index) => {\n return (\n \n {index}\n
    \n );\n })}\n \n \n
    Not At All Likely
    \n
    Extremely Likely
    \n \n
    \n );\n break;\n case questionTypes.RANKING:\n case questionTypes.IMAGE_RANKING:\n case questionTypes.VIDEO_RANKING:\n generateResponse = (\n \n {question.answer.map((choice, index) => {\n return (\n
    \n {index + 1}- \n {choice.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {choice.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    {choice.label}
    \n
    \n );\n })}\n
    \n );\n break;\n case questionTypes.ASSOCIATION:\n case questionTypes.IMAGE_ASSOCIATION:\n case questionTypes.VIDEO_ASSOCIATION:\n generateResponse = (\n \n {question.answer.map((choice, index) => {\n return (\n
    \n {choice.label ? {choice.label}- : null}\n {choice.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {choice.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    {choice.association}
    \n
    \n );\n })}\n
    \n );\n break;\n case questionTypes.STAR_RATING:\n case questionTypes.IMAGE_RATING:\n case questionTypes.VIDEO_RATING:\n generateResponse = (\n \n \n {question.options.map((option, outIndex) => {\n return (\n
    \n {option.imageUrl || option.videoUrl ? (\n \n {option.imageUrl ? (\n
    \n {/* */}\n \n
    \n ) : null}\n {option.videoUrl ? (\n
    \n {/*
    \n ) : null}\n
    \n ) : null}\n
    \n {option.label ? (\n
    {option.label}
    \n ) : null}\n
    \n {[...new Array(question.stars)].map((tmp, index) => {\n let star = 0;\n if (question.type === questionTypes.STAR_RATING) {\n star = question.answer[outIndex];\n } else {\n star = question.answer[0][option.label];\n }\n return index + 1 <= star ? (\n \n ) : (\n \n );\n })}\n
    \n
    \n
    \n );\n })}\n \n
    \n );\n break;\n }\n return (\n
    \n
    \n
    \n {index + 1}\n
    \n \n
    \n {question.text}\n
    \n
    \n {generateResponse}\n {question.clientLink !== \"\" ? (\n \n ) : null}\n
    \n
    \n
    \n \n );\n });\n return responseArray;\n };\n\n return (\n \n {/* \n
    \n \n \n {participantResponse[0].startedAt\n ? new Date(participantResponse[0].startedAt).toString()\n : \"No Details are available\"}\n \n
    \n
    \n */}\n {/*
    \n {participantDetails[participantIndex] &&\n participantDetails[participantIndex]\n .filter((detail) => [\"Gender\", \"Age\"].includes(detail.label))\n .map((detail, index) => {\n return (\n
    \n \n {detail.value}\n
    \n );\n })}\n
    */}\n {/* {\n setParticipantCriteriaDetails(!participantCriteriaDetails);\n }}\n >{` ${participantCriteriaDetails ? \"View less\" : \"View all\"\n } participant details`} */}\n {/*
    */}\n {participantCriteriaDetails && (\n \n \n {participantDetails[participantIndex] &&\n participantDetails[participantIndex]\n .filter((detail) => ![\"Gender\", \"Age\"].includes(detail.label))\n .map((detail, index) => {\n return (\n \n
    \n {detail.label}\n
    \n {detail.value}\n \n );\n })}\n \n {/*
    \n Color of Eyes\n
    \n Pink (Qualify)\n \n \n
    Degree
    \n Psychology (Qualify)\n \n \n
    Ended
    \n \n {participantResponse[0].endsAt\n ? new Date(participantResponse[0].endsAt).toString()\n : \"No Details are available\"}\n \n \n \n
    \n Time Spent\n
    \n \n {participantResponse[0].startedAt &&\n participantResponse[0].endsAt\n ? new Date(\n new Date(participantResponse[0].endsAt) -\n new Date(participantResponse[0].startedAt)\n )\n .toISOString()\n .substr(11, 8)\n : \"No Details are available\"}\n */}\n \n \n \n )}\n {survey.surveyType && (\n \n \n
    \n setUserVideoRecording(true)}\n >\n View video recording\n
    \n {userVideoRecording && userVideoURL && transcript && (\n setUserVideoRecording(false)}\n videoUrl={userVideoURL}\n subtitles={subtitles}\n transcript={transcript}\n reels={reels}\n createReel={createReel}\n removeReel={removeReel}\n notes={notes}\n setNotes={setNotes}\n setTranscript={setTranscript}\n updateTranscript={updateTranscript}\n updateNote={updateNote}\n participantIndex={participantIndex}\n />\n )}\n {survey.surveyType && reels?.length > 0 && (\n <>\n {\n setViewReels(!viewReels);\n }}\n >\n View video reels\n \n {viewReels && (\n setViewReels(false)}\n reels={reels}\n removeReel={removeReel}\n participantIndex={participantIndex}\n />\n // {/*
    \n // {\n // return {\n // url: reel?.url,\n // title: \"index\",\n // type: \"video\",\n // };\n // })}\n // startIndex={0}\n // showResourceCount={true}\n // onCloseCallback={() => setViewReels(false)}\n // onNavigationCallback={(currentIndex) =>\n // console.log(`Current index: ${currentIndex}`)\n // }\n // />\n //
    */}\n )}\n \n )}\n {\n setViewScript(!viewScript);\n }}\n >\n View transcript\n \n {viewScript && (\n setViewScript(false)}\n handleChange={() => saveTranscriptToTxt()}\n transcript={transcriptText}\n setTranscript={(text) => setTranscriptText(text)}\n >\n )}\n onViewEmotionalAnalysis()}\n >\n View emotional analysis\n \n {emotionalAnalysis && (\n setEmotionalAnalysis(false)}\n userId={userId}\n survey={survey}\n />\n )}\n {transcriptReport[participantIndex] &&\n transcriptReport[participantIndex].sentiment && (\n \n )}\n \n
    \n
    \n )}\n {responses}\n \n );\n};\n\nexport default ResponseBox;\n","const intersection = (s1, s2) => {\n return [...s1].some((s) => s2.has(s));\n};\nconst isMatch = (filters, criteria) => {\n for (const filter in filters) {\n if (\n !intersection(\n filters[filter],\n criteria[filter] ? criteria[filter] : new Set()\n )\n )\n return false;\n }\n return true;\n};\n\nconst filteredUsers = (criteria, users) => {\n if(!criteria?.length) return users\n let criteriaFilter = {};\n criteria.forEach((question) => {\n if (question.answer.length > 0 && !Array.isArray(question.answer[0])) {\n criteriaFilter[question.questionId] = new Set(question.answer);\n } else if (Array.isArray(question.answer[0])) {\n let arr = [];\n question.answer.map((ans, index) => {\n ans.map((a, i) => arr.push(a));\n });\n criteriaFilter[question.questionId] = new Set(arr);\n }\n });\n return users\n .map((user) => {\n let adminQuestionsAnswers = {};\n user.adminQuestionsAnswers.forEach((question) => {\n adminQuestionsAnswers[question.questionId] = new Set(question.answer);\n });\n return { _id: user._id, adminQuestionsAnswers, email: user.email };\n })\n .filter((user) => isMatch(criteriaFilter, user.adminQuestionsAnswers));\n};\n\nexport default filteredUsers;\n","import React, { useEffect, useState } from \"react\";\nimport { Button, Input, notification, Select } from \"antd\";\nimport { Option } from \"antd/lib/mentions\";\n\nimport { darkBlueButtonStyle } from \"../../../constants/styles\";\nimport styles from \"./AddParticipantToPanel.module.css\";\nimport c from \"classnames/bind\";\nimport {\n getClientId,\n getRoleByToken,\n incrementPendingRequests,\n} from \"../../../../../../utils\";\nimport axios, { Routes } from \"../../../../../../services/API\";\nimport handleNetworkErrors from \"../../../../handleNetworkErrors\";\n\nconst cx = c.bind(styles);\n\nconst AddParticipantToPanel = ({ userId }) => {\n const [open, setOpen] = useState(false);\n const [createPanelBox, setCreatePanelBox] = useState(false);\n const [newPanelName, setNewPanelName] = useState(\"\");\n const [panels, setPanels] = useState(null);\n\n const clientId = getClientId();\n\n useEffect(() => {\n (async () => {\n try {\n const { data } = await axios({\n ...Routes.client.getPanels(clientId),\n });\n setPanels(data.panels);\n console.log(\"service call\", data);\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, [userId]);\n\n const createPanel = async (panelName) => {\n try {\n const { data } = await axios({\n ...Routes.client.createPanel(clientId),\n data: {\n data: {\n name: panelName,\n },\n },\n });\n notification.success({\n message: \"Panel Created Successfully with name: \" + panelName,\n });\n setPanels([...panels, data.panels]);\n setCreatePanelBox(false);\n } catch (err) {\n setCreatePanelBox(false);\n handleNetworkErrors(err);\n }\n };\n\n const addUserToPanel = async (panelId) => {\n try {\n const { data } = await axios({\n ...Routes.client.addUserToPanel(clientId, panelId),\n data: {\n data: {\n userId: userId,\n },\n },\n });\n notification.success({ message: \"user is added to panel\" });\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n return (\n
    \n {\n setOpen(!open);\n }}\n >\n Add to Panel\n \n {\n setOpen(false);\n addUserToPanel(panelId);\n }}\n dropdownRender={(menu) => {\n return (\n
    \n {!createPanelBox && (\n setCreatePanelBox(!createPanelBox)}\n className={cx(\"new-panel-option\")}\n >\n + New Panel\n
    \n )}\n {createPanelBox && (\n
    \n
    \n setNewPanelName(e.target.value)}\n placeholder=\"Panel Name\"\n />\n
    \n
    \n createPanel(newPanelName)}\n >\n Create\n \n setCreatePanelBox(false)}\n >\n Cancel\n \n
    \n
    \n )}\n {menu}\n
    \n );\n }}\n >\n {panels &&\n panels.map((panel, index) => (\n \n ))}\n \n \n );\n};\n\nexport default AddParticipantToPanel;\n","import React, { Fragment, useEffect, useRef, useState } from \"react\";\nimport {\n CaretLeftOutlined,\n CaretRightOutlined,\n SaveFilled,\n RollbackOutlined,\n UpCircleFilled,\n DownCircleFilled,\n FilterFilled,\n UsergroupAddOutlined,\n} from \"@ant-design/icons\";\nimport ReactToPrint from \"react-to-print\";\nimport { difference, cloneDeep } from \"lodash\";\nimport FlexRow from \"../../../../components/flex-row\";\nimport Button from \"../../../../components/button/Button\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\nimport {\n greyButtonStyle,\n darkBlueButtonStyle,\n tealButtonStyle,\n} from \"../constants/styles\";\nimport { getWordCloudAnalysis } from \"../constants/getWordCloudReport\";\nimport ResponseBox from \"./ResponseBox\";\nimport { questionTypes } from \"../../../../components/constants/questionType\";\nimport styles from \"../QuestionSummary/QuestionSummary.module.css\";\nimport c from \"classnames/bind\";\nimport filterUsers from \"../constants/filterUsers\";\nimport { defaultAdminQuestion } from \"../../criteria/defaultCriteria\";\nimport AddParticipantToPanel from \"./ResponseBox/AddParticipantToPanel/AddParticipantToPanel\";\nimport { Drawer, Space, Collapse, Checkbox } from \"antd\";\n\nconst { Panel } = Collapse;\n\nconst cx = c.bind(styles);\n\nconst IndividualResponses = ({\n surveyData,\n adminQuestions,\n criteria,\n setCriteria,\n moderatedCallIndex\n}) => {\n const responseBoxRef = useRef();\n const [participant, setParticipant] = useState(1);\n const [filter, setFilter] = useState(false);\n const [participantResponses, setParticipantResponses] = useState([]);\n const [survey, setSurvey] = useState(surveyData);\n const [sentimentAnalysis, setSentimentAnalysis] = useState(null);\n\n const [isFilterActive, setIsFilterActive] = useState([]);\n const [comments, setComments] = useState(null);\n const [transcriptReport, setTranscriptReport] = useState([]);\n const [participantDetails, setParticipantDetails] = useState(null);\n\n const [activeKeys, setActiveKeys] = useState([]);\n const [filterAnswers, setFilterAnswers] = useState({});\n const [participantCriteriaDetails, setParticipantCriteriaDetails] = useState(\n false\n );\n\n useEffect(() => {\n setSurvey(surveyData);\n if (surveyData) {\n const responses = surveyData.responses;\n const qArray = [...isFilterActive];\n // if (responses && responses[0]) {\n // responses[0].userId.adminQuestionsAnswers.map((question, index) => {\n // const q = getQuestion(question.questionId);\n // if (q && q.isActive) {\n // qArray.push(q._id);\n // }\n // });\n // }\n if (surveyData.criteria.length === 0) {\n setIsFilterActive(defaultAdminQuestion);\n } else {\n surveyData.criteria.map((c, index) => {\n qArray.push(c.questionId);\n });\n defaultAdminQuestion.map((questionId, index) => {\n if (qArray.indexOf(questionId) === -1) {\n qArray.push(questionId);\n }\n });\n setIsFilterActive(qArray);\n }\n // setIsFilterActive(qArray);\n let storeComments = { ...comments };\n surveyData.questions.map((question, questionIndex) => {\n if (\n question.type === questionTypes.TEXT ||\n question.type === questionTypes.IMAGE_COMMENT ||\n question.type === questionTypes.VIDEO_COMMENT\n ) {\n storeComments[questionIndex] = [];\n surveyData.responses.map((response, index) => {\n if (!storeComments[questionIndex]) {\n storeComments[questionIndex] = [];\n }\n if (response?.answer?.[questionIndex] != null) {\n storeComments[questionIndex].push(\n response.answers[questionIndex][0]\n );\n }\n });\n // getWordCloudAnalysis(storeComments[questionIndex]);\n }\n });\n console.log(\"comments\", storeComments);\n }\n }, [surveyData]);\n\n useEffect(() => {\n getFilteredUsers();\n }, [criteria]);\n\n useEffect(() => {\n if (filter) {\n setActiveKeys(criteria.map((c) => c.questionId));\n const filters = {};\n for (const { questionId, answer } of criteria) {\n filters[questionId] = [\n ...answer.map((a) => (Array.isArray(a) ? a.join() : a)),\n ];\n }\n setFilterAnswers(filters);\n }\n }, [criteria, filter]);\n\n const generateWordCloudData = (commentData) => {\n let words = {};\n if (commentData[1] && commentData[1].analysedComments?.[0]) {\n const report = commentData[1].analysedComments[0];\n report.wordCloud.map((wordReport, index) => {\n if (Object.keys(words).indexOf(wordReport.text) > -1) {\n words[wordReport.text] += wordReport.value;\n } else {\n words[wordReport.text] = wordReport.value;\n }\n });\n }\n let wordCloud = [];\n Object.keys(words).map((word, index) => {\n wordCloud.push({\n text: word,\n value: words[word],\n });\n });\n return wordCloud;\n };\n\n useEffect(() => {\n setParticipant(1);\n }, [survey]);\n\n useEffect(() => {\n debugger\n if (survey) {\n let questions = [];\n let responses = [];\n const isQualModeratedIndividualAndClosed =\n survey.surveyType && survey.mode && !survey.setting && !survey.surveyAccess;\n if (\n isQualModeratedIndividualAndClosed &&\n survey.qualitativeData[participant - 1]\n ) {\n questions = survey.qualitativeData[participant - 1].questions;\n responses = survey.qualitativeData[participant - 1].responses;\n } else if (\n !survey.surveyAccess &&\n survey.surveyType &&\n survey.mode &&\n survey.setting &&\n survey.qualitativeData[0]\n ) {\n questions = survey.qualitativeData[0].questions;\n responses = survey.qualitativeData[0].responses;\n } else if (survey.surveyAccess && survey.mode && survey.surveyType) {\n questions = survey.qualitativeData[moderatedCallIndex]?.questions;\n responses = survey.qualitativeData[moderatedCallIndex]?.responses;\n } else {\n questions = survey.questions;\n responses = survey.responses.filter((r) => r.answers.length > 0);\n }\n const sentimentValues = {};\n questions.map((question, questionIndex) => {\n if (\n [\n questionTypes.TEXT,\n questionTypes.IMAGE_COMMENT,\n questionTypes.VIDEO_COMMENT,\n ].indexOf(question?.type) > -1\n ) {\n const sentimentArray = [];\n responses.map((userResponse, index) => {\n const report = userResponse.answers[questionIndex][1];\n if (report && report.analysedComments?.[0]) {\n sentimentArray.push(report.analysedComments[0].sentiment);\n }\n });\n sentimentValues[questionIndex] = sentimentArray;\n }\n if (survey.surveyType) {\n const sentimentReports = [...transcriptReport];\n responses.map((userResponse, index) => {\n sentimentReports[index] = {\n wordCloud: userResponse.wordCloud,\n sentiment: userResponse.sentiment ? userResponse.sentiment : null,\n };\n });\n console.log(\"sentiment reports\", sentimentReports);\n setTranscriptReport(sentimentReports);\n }\n });\n setSentimentAnalysis(sentimentValues);\n let participantDetails = [];\n const isQualModeratedIndividualWithNoResponses =\n isQualModeratedIndividual &&\n survey.qualitativeData[participant - 1] &&\n (!responses || responses.length === 0);\n setParticipantResponses(\n isQualModeratedIndividualWithNoResponses\n ? [[{}]]\n : responses.map((userResponse, index) => {\n console.log(userResponse, \"userresponse\");\n if(!surveyData.surveyAccess){\n const userDetails = [];\n userResponse.userId.adminQuestionsAnswers &&\n userResponse.userId.adminQuestionsAnswers.map(\n (question, index) => {\n if (\n defaultAdminQuestion.indexOf(question.questionId) > -1\n ) {\n const q = getQuestion(question.questionId);\n if (q.questionObject.questionType === \"age\") {\n userDetails.push({\n label: \"Age\",\n value: question.answer[0],\n });\n } else {\n userDetails.push({\n label: q.clientField,\n value:\n q.questionObject &&\n q.questionObject.options[question.answer[0]],\n });\n }\n console.log(\"adminquestion\", q);\n }\n }\n );\n participantDetails.push(userDetails);\n }\n return userResponse.answers.map((response, index) => {\n const questionInfo = questions[index];\n const participantResponse = {\n type: questionInfo.type,\n text: questionInfo.text,\n clientLink: questionInfo.clientLink,\n startedAt: userResponse.startedAt,\n endsAt: userResponse.endsAt,\n };\n participantResponse.answer = response;\n switch (questionInfo.type) {\n case questionTypes.QUESTION_INSTRUCTION:\n break;\n case questionTypes.IMAGE_INSTRUCTION:\n participantResponse.imageUrl =\n questionInfo.options.imageData;\n break;\n case questionTypes.IMAGE_COMMENT:\n participantResponse.imageUrl =\n questionInfo.options.imageData;\n participantResponse.wordCloud = generateWordCloudData(\n response\n );\n break;\n case questionTypes.VIDEO_INSTRUCTION:\n participantResponse.videoUrl =\n questionInfo.options.videoData;\n break;\n case questionTypes.VIDEO_COMMENT:\n participantResponse.videoUrl =\n questionInfo.options.videoData;\n participantResponse.wordCloud = generateWordCloudData(\n response\n );\n break;\n case questionTypes.TEXT:\n participantResponse.wordCloud = generateWordCloudData(\n response\n );\n break;\n case questionTypes.SURVEY_BRIEF:\n break;\n case questionTypes.MULTI_CHOICE:\n case questionTypes.CHECK_BOX:\n participantResponse.options =\n questionInfo.options.multiChoices;\n break;\n case questionTypes.IMAGE_MULTI_CHOICE:\n case questionTypes.IMAGE_CHECK_BOX:\n participantResponse.options = questionInfo.options.imageMultiChoices.map(\n (choice) => {\n return {\n label: choice.imageLabel,\n imageUrl: choice.imageData,\n };\n }\n );\n break;\n case questionTypes.VIDEO_MULTI_CHOICE:\n case questionTypes.VIDEO_CHECK_BOX:\n participantResponse.options = questionInfo.options.videoMultiChoices.map(\n (choice) => {\n return {\n label: choice.videoLabel,\n videoUrl: choice.videoData,\n };\n }\n );\n break;\n case questionTypes.RANKING:\n break;\n case questionTypes.IMAGE_RANKING:\n participantResponse.answer = response.map((data, index) => {\n return {\n label: data.imageLabel,\n imageUrl: data.imageData,\n };\n });\n break;\n case questionTypes.VIDEO_RANKING:\n participantResponse.answer = response.map((data, index) => {\n return {\n label: data.videoLabel,\n videoUrl: data.videoData,\n };\n });\n break;\n case questionTypes.STAR_RATING:\n participantResponse.stars = questionInfo.options.stars;\n participantResponse.starType =\n questionInfo.options.starType;\n participantResponse.options = response;\n break;\n case questionTypes.IMAGE_RATING:\n participantResponse.stars = questionInfo.options.imageStar;\n participantResponse.starType =\n questionInfo.options.imageStarType;\n participantResponse.options = questionInfo.options.imageStarRatingChoices.map(\n (choice, index) => {\n return {\n label: choice.imageLabel,\n imageUrl: choice.imageData,\n };\n }\n );\n break;\n case questionTypes.VIDEO_RATING:\n participantResponse.stars = questionInfo.options.videoStar;\n participantResponse.starType =\n questionInfo.options.videoStarType;\n participantResponse.options = questionInfo.options.videoStarRatingChoices.map(\n (choice, index) => {\n return {\n label: choice.videoLabel,\n videoUrl: choice.videoData,\n };\n }\n );\n break;\n case questionTypes.DROPDOWN:\n participantResponse.range = questionInfo.options.range;\n break;\n case questionTypes.ASSOCIATION:\n break;\n case questionTypes.IMAGE_ASSOCIATION:\n participantResponse.answer = response.map((data, index) => {\n return {\n imageUrl: data.imageData,\n association: data.association,\n };\n });\n break;\n case questionTypes.VIDEO_ASSOCIATION:\n participantResponse.answer = response.map((data, index) => {\n return {\n videoUrl: data.videoData,\n association: data.association,\n };\n });\n break;\n case questionTypes.LIKERT:\n participantResponse.labels = {\n start: questionInfo.options.likertStartLabel,\n middle: questionInfo.options.likertMiddleLabel,\n end: questionInfo.options.likertEndLabel,\n };\n participantResponse.range =\n questionInfo.options.likertRange;\n break;\n case questionTypes.SLIDER:\n participantResponse.labels = {\n start: questionInfo.options.sliderStartLabel,\n middle: questionInfo.options.sliderMiddleLabel,\n end: questionInfo.options.sliderEndLabel,\n };\n participantResponse.min = parseInt(\n questionInfo.options.sliderMin\n );\n participantResponse.max = parseInt(\n questionInfo.options.sliderMax\n );\n break;\n case questionTypes.NET_PROMOTOR_SCORE:\n participantResponse.options =\n questionInfo.options.npsOption;\n break;\n case questionTypes.TEXT_AB_TEST:\n case questionTypes.IMAGE_AB_TEST:\n case questionTypes.VIDEO_AB_TEST:\n break;\n }\n return participantResponse;\n });\n })\n );\n setParticipantDetails(participantDetails);\n }\n }, [survey, participant, moderatedCallIndex]);\n\n const resetFilterAndCompare = () => {\n setCriteria([]);\n setFilter(false);\n setSurvey(surveyData);\n };\n\n const getQuestion = (id) => {\n return adminQuestions.filter((e) => e[\"_id\"] === id)[0];\n };\n\n const getAgeRange = ({ start, end, interval }) => {\n let range = [];\n let element = [];\n for (let i = start; i <= end; i++) {\n element.push(i);\n if (i % interval === 0) {\n range.push({\n label: `${element[0]}-${element[element.length - 1]}`,\n value: element,\n });\n element = [];\n }\n }\n return range;\n };\n\n console.log(\"participantResponse\", participantResponses);\n\n const getFilteredUsers = () => {\n if(!surveyData.surveyAccess) {\n const users = surveyData.responses.map((response) => response.userId);\n const finalUsers = filterUsers(criteria, users);\n const userIds = finalUsers.map((user, index) => user._id);\n console.log(\"refinedUserIds\", userIds, criteria);\n const refinedSurvey = { ...surveyData };\n refinedSurvey.responses = surveyData.responses.filter(\n (response, index) => userIds.indexOf(response.userId._id) > -1\n );\n setSurvey(refinedSurvey);\n } else {\n setSurvey({ ...surveyData })\n }\n };\n\n const applyCriteria = () => {\n const newCriteria = [];\n for (const key of activeKeys) {\n if (filterAnswers[key].length === 0) {\n continue;\n }\n const isAge =\n adminQuestions.find((q) => q._id === key)?.questionObject\n ?.questionType === \"age\";\n const answer = filterAnswers[key].map((a) =>\n isAge ? a.split(\",\").map((age) => parseInt(age, 10)) : a\n );\n newCriteria.push({\n questionId: key,\n answer,\n });\n }\n\n setCriteria(newCriteria);\n };\n\n const isQualModeratedIndividual =\n survey && survey.surveyType && survey.mode && !survey.setting && !surveyData.surveyAccess;\n const participants = isQualModeratedIndividual\n ? survey.qualitativeData\n : participantResponses;\n\n return (\n \n {/* \n \n (\n \n )}\n content={() => responseBoxRef.current}\n >\n \n {\n setFilter(!filter);\n }}\n >\n \n \n \n */}\n setFilter(false)}\n closable={false}\n headerStyle={{ padding: \"8px 24px\" }}\n title={\"Filter\"}\n destroyOnClose={true}\n width={340}\n extra={\n \n setFilter(false)}\n >\n Cancel\n \n {\n applyCriteria();\n setFilter(false);\n }}\n >\n Apply\n \n \n }\n >\n {\n return isActive ? (\n \n ) : (\n \n );\n }}\n onChange={(openKeys) => {\n const addedKeys = difference(openKeys, activeKeys);\n const removedKeys = difference(activeKeys, openKeys);\n const tempAnswers = cloneDeep(filterAnswers);\n for (const key of addedKeys) {\n tempAnswers[key] = [];\n }\n for (const key of removedKeys) {\n delete tempAnswers[key];\n }\n setActiveKeys(openKeys);\n setFilterAnswers(tempAnswers);\n }}\n >\n {adminQuestions &&\n adminQuestions\n .filter(\n (e) =>\n e.isActive === true &&\n e.criteriaType === false &&\n !!e.clientField &&\n isFilterActive.indexOf(e[\"_id\"]) > -1 &&\n [\n \"multipleChoice\",\n \"checkboxes\",\n \"location\",\n \"checkboxesSpecial\",\n \"age\",\n ].includes(e.questionObject.questionType)\n )\n .map((e, i) => (\n \n {\n const tempAnswers = cloneDeep(filterAnswers);\n tempAnswers[e._id] = checkedValue;\n setFilterAnswers(tempAnswers);\n }}\n style={{\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n gap: 8,\n }}\n >\n {e.questionObject.questionType === \"age\"\n ? getAgeRange({\n start: e.questionObject.start,\n end: e.questionObject.end,\n interval: e.questionObject.interval,\n }).map((op, idx) => (\n \n {op.label}\n \n ))\n : e.questionObject.options.map((op, idx) => (\n \n {op}\n \n ))}\n \n \n ))}\n \n \n \n
    \n \n
    \n Participants\n
    \n \n \n {\n setFilter(!filter);\n }}\n />\n
    \n \n \n {participants.map((prtcpnt, index) => {\n return (\n setParticipant(index + 1)}\n >\n
    \n
    \n {\" \"}\n Participant {index + 1}\n
    \n
    \n \n );\n })}\n \n \n {participantResponses[\n isQualModeratedIndividual ? 0 : participant - 1\n ] ? (\n \n
    \n \n
    \n
    \n User {participant}\n
    \n {participantDetails[participant - 1]?.length ? (\n \n {\n participantDetails[participant - 1].find(\n (a) => a.label == \"Gender\"\n )?.value\n }{\" \"}\n of{\" \"}\n {\n participantDetails[participant - 1].find(\n (a) => a.label == \"Age\"\n )?.value\n }{\" \"}\n years\n
    \n ) : (\n \"\"\n )}\n
    \n\n {/* 1\n ? tealButtonStyle\n : greyButtonStyle),\n marginLeft: 0,\n }}\n >{`Participant #${participant}`} */}\n
    \n {\n if (participant > 1) {\n setParticipant(participant - 1);\n }\n }}\n icon={}\n />\n {\n if (true) {\n setParticipant(participant + 1);\n }\n }}\n disabled={\n !(participants && participants[participant - 1]) ||\n participant === participants.length\n }\n icon={}\n />\n
    \n \n
    \n {\n setParticipantCriteriaDetails(!participantCriteriaDetails);\n }}\n >\n {` ${participantCriteriaDetails ? \"Hide\" : \"View\"} details`}\n \n \n (\n \n Save as file\n \n )}\n content={() => responseBoxRef.current}\n >\n
    \n \n \n \n ) : (\n \n No Result Found for given Criteria!\n \n )}\n \n
    \n );\n};\n\nexport default IndividualResponses;\n","import React, { Fragment } from \"react\";\nimport { Select } from \"antd\";\n\nimport { COLOR } from \"../../constants\";\nimport { CaretDownOutlined } from \"@ant-design/icons\";\n\nconst { Option } = Select;\n\nconst labelStyle = {\n color: COLOR.grey,\n fontSize: 14,\n margin: 5,\n padding: \"5px 5px 5px 8px\",\n minWidth: 110,\n display: \"inline-block\",\n};\n\nconst Dropdown = ({\n options,\n value,\n handleChange,\n customStyle,\n children,\n label,\n color,\n disabled,\n style,\n ...rest\n}) => {\n return (\n \n {label ? : null}\n \n }\n disabled={disabled}\n value={value}\n onChange={(value) => {\n handleChange(value);\n }}\n >\n {options.map((opt, index) => (\n \n {opt.label}\n \n ))}\n \n \n );\n};\n\nexport default Dropdown;\n","import React from \"react\";\nimport { Tabs } from \"antd\";\nimport { COLOR } from \"../../constants\";\nimport \"./tabbar.css\";\n\nconst { TabPane } = Tabs;\n\nconst TabBar = ({ tabs, activeKey, onChange, tabBarStyle, ...rest }) => {\n return (\n {\n console.log(\"tab change\", e, typeof e);\n onChange(e);\n }}\n {...rest}\n >\n {tabs.map((tab, index) => (\n \n {tab}\n \n }\n key={String(index + 1)}\n />\n ))}\n \n );\n};\n\nexport default TabBar;\n","import React, { useState, useRef } from \"react\";\nimport Dropdown from \"../../../../components/dropdown/dropdown\";\nimport SwitchButton from \"../../../../components/switch/switch\";\n// import Button from \"../../../../components/button/Button\";\nimport { COLOR } from \"../../../../constants\";\nimport axios, { Routes } from \"../../../../services/API\";\nimport { useEffect } from \"react\";\nimport TabBar from \"../../../../components/tabbar/TabBar\";\nimport FlexRow from \"../../../../components/flex-row\";\nimport { Row, Col, Select, Button, Cascader, Divider, Card } from \"antd\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { greyButtonStyle, darkBlueButtonStyle } from \"../constants/styles\";\nimport ReactToPrint from \"react-to-print\";\nimport { useHistory } from \"react-router-dom\";\nimport html2canvas from \"html2canvas\";\nimport jsPDF from \"jspdf\";\nimport styles from \"./navbar.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select;\n\nconst audienceType = {\n general: false,\n influencer: true,\n};\nconst surveyType = {\n quantitative: false,\n qualitative: true,\n};\n\nconst mode = {\n unmoderated: false,\n moderated: true,\n};\n\nconst device = {\n desktop: false,\n mobile: true,\n};\n\nconst setting = {\n individual: false,\n group: true,\n};\n\nconst groupedFilter = [\n { key: \"surveyType\", value: surveyType },\n { key: \"mode\", value: mode },\n { key: \"device\", value: device },\n { key: \"setting\", value: setting },\n];\n\n// const setting = {\n// \"one-to-one\": false,\n// \"one-to-many\": true,\n// };\n\nconst timingType = {\n 0: \"15min\",\n 1: \"30min\",\n 2: \"45min\",\n};\n\nconst userType = {\n userQual: false,\n clientProvided: true,\n};\n\nconst filterOptions = [\n {\n value: \"qualitative\",\n label: \"Qualitative\",\n children: [\n {\n value: \"unmoderated\",\n label: \"Unmoderated\",\n children: [\n {\n value: \"desktop\",\n label: \"Desktop\",\n },\n {\n value: \"mobile\",\n label: \"Mobile\",\n },\n ],\n },\n {\n value: \"moderated\",\n label: \"Moderated\",\n children: [\n {\n value: \"desktop\",\n label: \"Desktop\",\n children: [\n {\n value: \"individual\",\n label: \"Individual\",\n },\n {\n value: \"group\",\n label: \"Group\",\n },\n ],\n },\n {\n value: \"mobile\",\n label: \"Mobile\",\n children: [\n {\n value: \"individual\",\n label: \"Individual\",\n },\n {\n value: \"group\",\n label: \"Group\",\n },\n ],\n },\n ],\n },\n ],\n },\n {\n value: \"quantitative\",\n label: \"Quantitative\",\n },\n];\n\nconst Navbar = (props) => {\n const history = useHistory();\n\n const [filter, setFilter] = useState(false);\n const [appliedFilters, setAppliedFilters] = useState([]);\n const [filterButtons, setFilterButtons] = useState([]);\n const [selectedFilters, setSelectedFilters] = useState([]);\n\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n\n const [filteredSurvey, setFilteredSurvey] = useState(props.surveys);\n const filterContainerRef = useRef(null);\n const mountedRef = useRef();\n\n useEffect(() => {\n if (history.location.state && history.location.state.surveyId) {\n setSelectedSurvey(history.location.state.surveyId);\n }\n }, [history.location.state]);\n\n const fetchSurveyData = async (surveyId) => {\n const clientId = localStorage.getItem(\"client\");\n const { method, url } = Routes.client.getSurvey(clientId, surveyId);\n const surveyResponse = await axios[method](url);\n console.log(\"got survey\", surveyResponse.data);\n props.setSurveyData(surveyResponse.data.survey);\n };\n const fetchQualitativeSurveySummary = async (surveyId) => {\n const clientId = localStorage.getItem(\"client\");\n const { method, url } = Routes.client.qualitativeSummaries(\n clientId,\n surveyId\n );\n const qualityResponse = await axios[method](url);\n console.log(\"got qualitative survey\", qualityResponse.data);\n };\n\n useEffect(() => {\n if (selectedSurvey) {\n fetchSurveyData(selectedSurvey);\n fetchQualitativeSurveySummary(selectedSurvey);\n } else {\n props.setSurveyData(null);\n }\n }, [selectedSurvey]);\n\n useEffect(() => {\n if (!mountedRef.current) {\n mountedRef.current = true;\n return;\n }\n setSelectedSurvey(null);\n if (appliedFilters.length === 0) {\n setFilteredSurvey(props.surveys);\n return;\n }\n let filteredSurveys = [];\n for (const appliedFilter of appliedFilters) {\n filteredSurveys = [\n ...filteredSurveys,\n ...props.surveys.filter((s) => {\n let isValid = true;\n for (const index in appliedFilter) {\n const { key, value } = groupedFilter[index];\n isValid = isValid && s[key] === value[appliedFilter[index]];\n }\n return isValid;\n }),\n ];\n }\n\n setFilteredSurvey(filteredSurveys);\n }, [appliedFilters, mountedRef]);\n\n useEffect(() => {\n function outsideFilterClickHandler(event) {\n if (\n filter &&\n filterContainerRef.current &&\n !filterContainerRef.current.contains(event.target)\n ) {\n setFilter(false);\n setSelectedFilters(appliedFilters);\n }\n }\n\n document.addEventListener(\"click\", outsideFilterClickHandler);\n\n return () => {\n document.removeEventListener(\"click\", outsideFilterClickHandler);\n };\n }, [filterContainerRef, filter, appliedFilters]);\n\n useEffect(() => {\n const filterBtns = [];\n for (const appliedFilter of appliedFilters) {\n let text = \"\";\n for (const key in appliedFilter) {\n switch (appliedFilter[key]) {\n case \"qualitative\":\n text += \"Qualitative\";\n break;\n case \"quantitative\":\n text += \"Quantitative\";\n break;\n case \"moderated\":\n text += \"Moderated\";\n break;\n case \"unmoderated\":\n text += \"Unmoderated\";\n break;\n case \"desktop\":\n text += \"Desktop\";\n break;\n case \"mobile\":\n text += \"Mobile\";\n break;\n case \"individual\":\n text += \"Individual\";\n break;\n case \"group\":\n text += \"Group\";\n break;\n }\n if (parseInt(key) !== appliedFilter.length - 1) {\n text += \" > \";\n }\n }\n\n if (!filterBtns.includes(text)) {\n filterBtns.push({\n value: appliedFilter,\n text,\n });\n }\n }\n\n setFilterButtons(filterBtns);\n }, [appliedFilters]);\n\n console.log(\"Surveys\", props.surveys);\n console.log(\"Filtered Survey\", filteredSurvey);\n\n const printPDF = () => {\n const input = document.getElementById(\"printDocument\");\n html2canvas(input).then((canvas) => {\n const imgData = canvas.toDataURL(\"image/png\");\n\n // Document of a4WidthMm wide and inputHeightMm high\n let pdf = new jsPDF();\n\n pdf.addImage(imgData, \"PNG\", 0, 0);\n pdf.save(`question_summary.pdf`);\n });\n };\n\n const isQualModeratedIndividual =\n props.surveyData &&\n props.surveyData.surveyType &&\n props.surveyData.mode &&\n !props.surveyData.setting;\n\n return (\n <>\n
    \n
    \n Survey Results\n
    \n
    \n View results and responses for all completed surveys\n
    \n \n \n \n {filteredSurvey.map((surv) => (\n \n {surv.name}\n \n ))}\n \n \n \n {\n // console.log(\"cascader value changed\", value, selectedOptions);\n setSelectedFilters(value);\n }}\n expandTrigger=\"click\"\n open={filter}\n dropdownClassName={cx(\"filter-dropdown\")}\n dropdownRender={(menu) => (\n
    \n {filter && menu}\n \n \n {\n setFilter(false);\n setSelectedFilters(appliedFilters);\n }}\n style={{\n marginRight: 20,\n color: \"#555\",\n }}\n >\n Cancel\n \n {\n setFilter(false);\n setAppliedFilters(selectedFilters);\n }}\n >\n Apply\n \n
    \n
    \n )}\n >\n setFilter(true)}\n >\n Filter surveys\n \n \n \n \n
    \n {filterButtons.map((filter) => (\n \n {filter.text}\n \n ))}\n
    \n \n {/* \n \n \n \n {filteredSurvey.map((surv) => (\n \n {surv.name}\n \n ))}\n \n \n \n {\n // console.log(\"cascader value changed\", value, selectedOptions);\n setSelectedFilters(value);\n }}\n expandTrigger=\"click\"\n open={filter}\n dropdownClassName={cx(\"filter-dropdown\")}\n dropdownRender={(menu) => (\n
    \n {filter && menu}\n \n \n {\n setFilter(false);\n setSelectedFilters(appliedFilters);\n }}\n style={{\n marginRight: 20,\n color: \"#555\",\n }}\n >\n Cancel\n \n {\n setFilter(false);\n setAppliedFilters(selectedFilters);\n }}\n >\n Apply\n \n
    \n \n )}\n >\n setFilter(true)}\n >\n Filter\n \n \n {filterButtons.map((filter) => (\n \n {filter.text}\n \n ))}\n \n \n\n {props.surveyData != null && (\n \n \n \n {props.surveyData.name}\n \n \n (\n \n )}\n bodyClass={cx(\"print-body\")}\n content={() => props.questionComponentRef.current}\n >\n \n \n \n \n {props.surveyData.surveyType ? \"Qualitative\" : \"Quantitative\"}{\" \"}\n {props.surveyData.surveyType\n ? props.surveyData.mode\n ? \"/ Moderated \"\n : \"/ Un Moderated \"\n : null}\n {props.surveyData.surveyType\n ? props.surveyData.setting\n ? \"/ Group \"\n : \"/ Individual \"\n : null}\n \n \n Published:{\" \"}\n {new Date(props.surveyData.createdAt)\n .toString()\n .split(\" \")\n .map((stringPart, index) => {\n if (index <= 4) {\n return {stringPart} ;\n }\n })}{\" \"}\n IST\n \n \n \n Participants:{\" \"}\n {isQualModeratedIndividual\n ? props.surveyData.qualitativeData.length\n : props.surveyData.responses.length}{\" \"}\n / {props.surveyData.numberOfParticipants}\n \n \n \n \n )}\n */}\n\n {/* {props.surveyData != null && (\n \n
    {props.surveyData.name}
    \n \n {\n props.onTabChange(\"1\");\n }}\n >\n Question Summaries\n \n {\n props.onTabChange(\"2\");\n }}\n >\n Individual Responses\n \n \n
    \n )} */}\n \n );\n};\n\nexport default Navbar;\n","import React from \"react\";\n\nexport const dataColumns = [\n {\n title: \"Answer Choices\",\n dataIndex: \"answerChoices\",\n },\n {\n title: \"Responses\",\n dataIndex: \"responses\",\n render: (text) => text + \"%\",\n align: \"center\",\n sorter: (a, b) => a.responses - b.responses,\n },\n {\n title: \"Number\",\n dataIndex: \"number\",\n align: \"center\",\n sorter: (a, b) => a.number - b.number,\n },\n];\n\nexport const sliderDataColumns = [\n {\n title: \"Answer Choices\",\n dataIndex: \"answerChoices\",\n },\n {\n title: \"Average Number\",\n dataIndex: \"averageNumber\",\n align: \"center\",\n sorter: (a, b) => a.averageNumber - b.averageNumber,\n },\n {\n title: \"Total Number\",\n dataIndex: \"totalNumber\",\n align: \"center\",\n sorter: (a, b) => a.totalNumber - b.totalNumber,\n },\n {\n title: \"Responses\",\n dataIndex: \"responses\",\n align: \"center\",\n sorter: (a, b) => a.responses - b.responses,\n },\n];\n\nexport const npsDataColumns = [\n {\n title: \"\",\n dataIndex: \"Responses\",\n },\n {\n title: \"DETRACTORS(0-6)\",\n dataIndex: \"detractors\",\n align: \"center\",\n },\n {\n title: \"PASSIVES(7-8)\",\n dataIndex: \"passives\",\n align: \"center\",\n },\n {\n title: \"PROMOTORS(9-10)\",\n dataIndex: \"promotors\",\n align: \"center\",\n },\n {\n title: \"NET PROMOTOR SCORE\",\n dataIndex: \"nps\",\n align: \"center\",\n },\n];\n\nexport const npsStatsColumns = [\n {\n title: \"\",\n dataIndex: \"title\",\n align: \"center\",\n },\n {\n title: \"MINIMUM\",\n dataIndex: \"min\",\n align: \"center\",\n },\n {\n title: \"LOWER QUARTILE\",\n dataIndex: \"lower\",\n align: \"center\",\n },\n {\n title: \"MEDIAN\",\n dataIndex: \"median\",\n align: \"center\",\n },\n {\n title: \"UPPER QUARTILE\",\n dataIndex: \"upper\",\n align: \"center\",\n },\n {\n title: \"MAXIMUM\",\n dataIndex: \"max\",\n align: \"center\",\n },\n];\n\nexport const starDataColumns = [];\n\nexport const basicStatisticsColumns = [\n {\n title: \"Minimum\",\n dataIndex: \"min\",\n align: \"center\",\n sorter: (a, b) => a.min - b.min,\n },\n {\n title: \"Maximum\",\n dataIndex: \"max\",\n align: \"center\",\n sorter: (a, b) => a.max - b.max,\n },\n {\n title: \"Median\",\n dataIndex: \"median\",\n align: \"center\",\n sorter: (a, b) => a.median - b.median,\n },\n {\n title: \"Mean\",\n dataIndex: \"mean\",\n align: \"center\",\n sorter: (a, b) => a.mean - b.mean,\n },\n {\n title: \"Standard Daviation\",\n dataIndex: \"sd\",\n align: \"center\",\n sorter: (a, b) => a.sd - b.sd,\n },\n];\n\nexport const starTableColumns = (totalStar, labels) => {\n let columns = [];\n columns.push({\n title: \"\",\n dataIndex: \"option\",\n });\n [...new Array(totalStar)].map((value, index) => {\n columns.push({\n title: labels ? labels[index] : index + 1,\n dataIndex: index + 1,\n align: \"center\",\n sorter: (a, b) => a[index + 1].props.value - b[index + 1].props.value,\n });\n });\n columns.push({\n title: \"Total\",\n dataIndex: \"total\",\n align: \"center\",\n sorter: (a, b) => a.total - b.total,\n });\n columns.push({\n title: \"Weighted Average\",\n dataIndex: \"weightedAverage\",\n align: \"center\",\n sorter: (a, b) => a.weightedAverage - b.weightedAverage,\n });\n return columns;\n};\n\nexport const starTableData = (options, decimalPlaces) => {\n let dataColumns = [];\n options.map((option, index) => {\n let column = {};\n let total = 0;\n let weightedTotal = 0;\n const percentageValue = calculatePercentage(option.answered);\n column.key = index;\n column[\"option\"] = option.label;\n option.answered.map((value, innerIndex) => {\n column[innerIndex + 1] = (\n \n );\n total += value;\n weightedTotal += value * (innerIndex + 1);\n });\n column[\"total\"] = total;\n column[\"weightedAverage\"] = (weightedTotal / total).toFixed(decimalPlaces);\n dataColumns.push(column);\n });\n return dataColumns;\n};\n\nexport const calculatePercentage = (arr) => {\n const totalAnswered = arr.reduce((sum, value) => sum + value, 0);\n console.log(totalAnswered);\n return arr.map((value) => (value * 100) / totalAnswered);\n};\n\nconst sort = (a, b) => {\n const check = a;\n console.log(a.props.value);\n};\n\nexport const TableCell = ({ value, percentageValue, decimalPlaces }) => {\n return (\n
    \n
    {value}
    \n
    {percentageValue.toFixed(decimalPlaces) + \"%\"}
    \n
    \n );\n};\n","import React from \"react\";\nimport { COLOR } from \"../../constants\";\nimport { Checkbox } from \"antd\";\n\nconst FilterCheckbox = ({\n label,\n checked,\n onChange,\n style,\n labelStyle,\n classes,\n id,\n disabled,\n}) => {\n return (\n \n onChange(e.target.checked)}\n >\n \n {label}\n \n \n \n );\n};\n\nexport default FilterCheckbox;\n","import React, { useState } from \"react\";\nimport { SketchPicker } from \"react-color\";\n\nconst ColorPicker = ({ colorAttr, setColor, colorNumber }) => {\n const [displayColorPicker, setDisplayColorPicker] = useState(false);\n\n let styles = {\n color: {\n width: \"auto\",\n height: \"100%\",\n borderRadius: \"2px\",\n background: `rgba(${colorAttr.r}, ${colorAttr.g}, ${colorAttr.b}, ${colorAttr.a})`,\n },\n swatch: {\n padding: \"5px\",\n background: \"#fff\",\n borderRadius: \"1px\",\n boxShadow: \"0 0 0 1px rgba(0,0,0,.1)\",\n display: \"inline-block\",\n cursor: \"pointer\",\n width: \"60px\",\n height: \"60px\",\n },\n popover: {\n position: \"absolute\",\n zIndex: \"2\",\n },\n cover: {\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n bottom: \"0px\",\n left: \"0px\",\n },\n };\n\n const handleClick = () => {\n setDisplayColorPicker(true);\n };\n\n const handleClose = () => {\n // setColor(color, key)\n // setColor({\n // displayColorPicker: false,\n // color: colorAttr.color,\n // });\n setDisplayColorPicker(false);\n };\n\n const handleChange = (color) => {\n setColor(colorNumber, color.rgb);\n };\n\n return (\n
    \n
    \n
    \n
    \n {displayColorPicker ? (\n
    \n
    \n \n
    \n ) : null}\n
    \n );\n};\n\nexport default ColorPicker;\n","import React from \"react\";\nimport { Radio } from \"antd\";\nimport \"./ButtonToggle.css\";\n\nconst ButtonToggle = ({ value, setValue, options, activeClass, disabled }) => {\n const buttonStyle = {\n height: \"auto\",\n padding: 5,\n margin: 10,\n border: \"none\",\n };\n return (\n setValue(e.target.value)}\n value={value}\n >\n {options.map((option, index) => {\n return (\n \n {option.icon ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n );\n};\n\nexport default ButtonToggle;\n","import React from \"react\";\nimport Ratings from \"react-ratings-declarative\";\nimport styles from \"./StarRating.module.css\";\nimport c from \"classnames/bind\";\nimport { StarFilled, SmileFilled, HeartFilled } from \"@ant-design/icons\";\n\nconst cx = c.bind(styles);\n\nconst StarRatingElement = ({\n totalStars,\n ratings,\n label,\n starType,\n ratingLabel,\n}) => {\n const getCharacter = () => {\n switch (starType) {\n case \"star\":\n return ;\n case \"smiley\":\n return ;\n case \"heart\":\n return ;\n default:\n return;\n }\n };\n return (\n
    \n

    {label}

    \n

    \n {ratingLabel}\n {starType === \"star\" ? (\n \n ) : starType === \"smiley\" ? (\n \n ) : starType === \"heart\" ? (\n \n ) : null}\n

    \n \n {[...new Array(totalStars)].map((v, i) => {\n return ;\n })}\n \n
    \n );\n};\n\nexport default StarRatingElement;\n","import React from \"react\";\nimport { arc } from \"d3-shape\";\nimport { scaleLinear } from \"d3-scale\";\nimport { format } from \"d3-format\";\n\nconst GaugeMeter = ({ value = 50, min = -100, max = 100, label, units }) => {\n const backgroundArc = arc()\n .innerRadius(0.65)\n .outerRadius(1)\n .startAngle(-Math.PI / 2 - Math.PI / 4)\n .endAngle(Math.PI / 2 + Math.PI / 4)\n .cornerRadius(1)();\n\n const percentScale = scaleLinear().domain([min, max]).range([0, 1]);\n const percent = percentScale(value);\n\n const angleScale = scaleLinear()\n .domain([0, 1])\n .range([-Math.PI / 2 - Math.PI / 4, Math.PI / 2 + Math.PI / 4])\n .clamp(true);\n\n const angle = angleScale(percent);\n\n const filledArc = arc()\n .innerRadius(0.65)\n .outerRadius(1)\n .startAngle(-Math.PI / 2 - Math.PI / 4)\n .endAngle(angle)\n .cornerRadius(1)();\n\n const colorScale = scaleLinear().domain([0, 1]).range([\"#96CFDF\", \"#1E4479\"]);\n\n const gradientSteps = colorScale.ticks(10).map((value) => colorScale(value));\n\n const markerLocation = getCoordsOnArc(angle, 1 - (1 - 0.65) / 2);\n\n return (\n \n \n Your Net Promotor Score: {value}\n
    \n \n \n \n {gradientSteps.map((color, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n\n \n {format(\",\")(value)}\n
    NPS
    \n
    \n\n {!!label && (\n \n {label}\n \n )}\n\n {!!units && (\n \n {units}\n \n )}\n \n );\n};\n\nconst getCoordsOnArc = (angle, offset = 10) => [\n Math.cos(angle - Math.PI / 2) * offset,\n Math.sin(angle - Math.PI / 2) * offset,\n];\n\nexport default GaugeMeter;\n","// export const wordCloudTestData = {\n// analysedComments: [\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.996,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"awesome label\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"random comments\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"color\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"label\",\n// value: \"0.476\",\n// count: 2,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.922,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"nice image\",\n// value: \"0.952\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Negative\",\n// tag_id: 122921385,\n// confidence: 0.878,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"lack of freedom\",\n// value: \"0.968\",\n// count: 1,\n// },\n// {\n// text: \"freedom of speech\",\n// value: \"0.968\",\n// count: 1,\n// },\n// {\n// text: \"blue box\",\n// value: \"0.645\",\n// count: 1,\n// },\n// {\n// text: \"color\",\n// value: \"0.645\",\n// count: 2,\n// },\n// {\n// text: \"blue sky\",\n// value: \"0.645\",\n// count: 1,\n// },\n// {\n// text: \"key\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"user\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"human\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"world\",\n// value: \"0.323\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.801,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"random paragraph\",\n// value: \"0.988\",\n// count: 5,\n// },\n// {\n// text: \"number of paragraph\",\n// value: \"0.370\",\n// count: 1,\n// },\n// {\n// text: \"number of reason\",\n// value: \"0.370\",\n// count: 1,\n// },\n// {\n// text: \"next logical step\",\n// value: \"0.370\",\n// count: 1,\n// },\n// {\n// text: \"random paragraph generator\",\n// value: \"0.370\",\n// count: 1,\n// },\n// {\n// text: \"chosen number\",\n// value: \"0.247\",\n// count: 1,\n// },\n// {\n// text: \"random sentence\",\n// value: \"0.247\",\n// count: 1,\n// },\n// {\n// text: \"random word\",\n// value: \"0.247\",\n// count: 1,\n// },\n// {\n// text: \"rights place\",\n// value: \"0.247\",\n// count: 1,\n// },\n// {\n// text: \"everyone\",\n// value: \"0.123\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Neutral\",\n// tag_id: 122921384,\n// confidence: 0.507,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"writing project\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"random paragraph\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"productive way\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"original meaning\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"word\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"tools\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"writer\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"writing\",\n// value: \"0.476\",\n// count: 3,\n// },\n// {\n// text: \"intention\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"purpose\",\n// value: \"0.476\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.989,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"block of text\",\n// value: \"0.968\",\n// count: 1,\n// },\n// {\n// text: \"free online tools\",\n// value: \"0.968\",\n// count: 1,\n// },\n// {\n// text: \"tools\",\n// value: \"0.645\",\n// count: 3,\n// },\n// {\n// text: \"great way\",\n// value: \"0.645\",\n// count: 1,\n// },\n// {\n// text: \"good way\",\n// value: \"0.645\",\n// count: 1,\n// },\n// {\n// text: \"writer\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"programming\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"project\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"programmer\",\n// value: \"0.323\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Negative\",\n// tag_id: 122921385,\n// confidence: 0.994,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"generator\",\n// value: \"0.968\",\n// count: 3,\n// },\n// {\n// text: \"paragraph\",\n// value: \"0.968\",\n// count: 3,\n// },\n// {\n// text: \"computer\",\n// value: \"0.645\",\n// count: 2,\n// },\n// {\n// text: \"many time\",\n// value: \"0.645\",\n// count: 1,\n// },\n// {\n// text: \"sense\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"human\",\n// value: \"0.323\",\n// count: 1,\n// },\n// {\n// text: \"time\",\n// value: \"0.323\",\n// count: 2,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Neutral\",\n// tag_id: 122921384,\n// confidence: 0.448,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"sixth senses\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"feeling\",\n// value: \"0.476\",\n// count: 2,\n// },\n// {\n// text: \"back\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"neck\",\n// value: \"0.476\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.959,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"much love\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"love\",\n// value: \"0.476\",\n// count: 2,\n// },\n// {\n// text: \"pie\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"day\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"friend\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"one\",\n// value: \"0.476\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Negative\",\n// tag_id: 122921385,\n// confidence: 0.497,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"carefree way\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"sound\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"boy\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"notice\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"ball\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"fate\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"step\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"street\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"road\",\n// value: \"0.476\",\n// count: 1,\n// },\n// ],\n// },\n// {\n// sentiment: [\n// {\n// tag_name: \"Positive\",\n// tag_id: 122921383,\n// confidence: 0.73,\n// },\n// ],\n// wordCloud: [\n// {\n// text: \"tom\",\n// value: \"0.952\",\n// count: 2,\n// },\n// {\n// text: \"devious plan\",\n// value: \"0.952\",\n// count: 1,\n// },\n// {\n// text: \"dad\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"lessons\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"hate\",\n// value: \"0.476\",\n// count: 1,\n// },\n// {\n// text: \"hater\",\n// value: \"0.476\",\n// count: 1,\n// },\n// ],\n// },\n// ],\n// };\n\nexport const wordCloudTestData = {\n analysedComments: [\n {\n sentiment: {\n Index: 0,\n Sentiment: \"MIXED\",\n SentimentScore: {\n Positive: 0.08229811489582062,\n Negative: 0.0034206025302410126,\n Neutral: 0.0031430176459252834,\n Mixed: 0.9111382961273193,\n },\n },\n wordCloud: [\n {\n text: \"a random comment\",\n value: 1,\n },\n {\n text: \"the label\",\n value: 1,\n },\n {\n text: \"an awesome label\",\n value: 1,\n },\n {\n text: \"the color\",\n value: 1,\n },\n {\n text: \"the U\",\n value: 1,\n },\n ],\n },\n {\n sentiment: {\n Index: 1,\n Sentiment: \"POSITIVE\",\n SentimentScore: {\n Positive: 0.9951318502426147,\n Negative: 0.000465965160401538,\n Neutral: 0.0024560377933084965,\n Mixed: 0.0019461987540125847,\n },\n },\n wordCloud: [],\n },\n {\n sentiment: {\n Index: 2,\n Sentiment: \"NEGATIVE\",\n SentimentScore: {\n Positive: 0.14600315690040588,\n Negative: 0.8173885941505432,\n Neutral: 0.0354309044778347,\n Mixed: 0.0011773464502766728,\n },\n },\n wordCloud: [\n {\n text: \"This logo\",\n value: 0.9999855756759644,\n },\n {\n text: \"the state\",\n value: 1,\n },\n {\n text: \"the world\",\n value: 1,\n },\n {\n text: \"Its color\",\n value: 0.9999991059303284,\n },\n {\n text: \"the blue skies\",\n value: 0.9999852776527405,\n },\n {\n text: \"the letter\",\n value: 0.9999040961265564,\n },\n {\n text: \"#34\",\n value: 0.9995771646499634,\n },\n {\n text: \"#34\",\n value: 0.9980799555778503,\n },\n {\n text: \"color\",\n value: 0.9999997615814209,\n },\n {\n text: \"the blue box\",\n value: 0.9999998807907104,\n },\n {\n text: \"the lack\",\n value: 0.9999998211860657,\n },\n {\n text: \"freedom\",\n value: 0.9999997615814209,\n },\n {\n text: \"humans\",\n value: 0.9999994039535522,\n },\n {\n text: \"this earth\",\n value: 0.999999463558197,\n },\n {\n text: \"Freedom\",\n value: 0.9999797344207764,\n },\n {\n text: \"speech\",\n value: 0.9999997615814209,\n },\n {\n text: \"the key\",\n value: 0.9999942779541016,\n },\n {\n text: \"happiness\",\n value: 0.9999096393585205,\n },\n {\n text: \"any user\",\n value: 0.9999998807907104,\n },\n ],\n },\n {\n sentiment: {\n Index: 3,\n Sentiment: \"POSITIVE\",\n SentimentScore: {\n Positive: 0.4442999064922333,\n Negative: 0.005591574590653181,\n Neutral: 0.38128167390823364,\n Mixed: 0.16882683336734772,\n },\n },\n wordCloud: [\n {\n text: \"random paragraphs\",\n value: 0.9999998807907104,\n },\n {\n text: \"the right place\",\n value: 0.9999999403953552,\n },\n {\n text: \"a random word\",\n value: 0.9999998211860657,\n },\n {\n text: \"a random sentence\",\n value: 0.9999999403953552,\n },\n {\n text: \"the next logical step\",\n value: 0.9999999403953552,\n },\n {\n text: \"a random paragraph\",\n value: 1,\n },\n {\n text: \"the Random Paragraph Generator\",\n value: 0.9999997615814209,\n },\n {\n text: \"mind\",\n value: 1,\n },\n {\n text: \"The process\",\n value: 0.9999997615814209,\n },\n {\n text: \"the number\",\n value: 1,\n },\n {\n text: \"random paragraphs\",\n value: 0.9999985694885254,\n },\n {\n text: \"the button\",\n value: 1,\n },\n {\n text: \"Your chosen number\",\n value: 0.999999463558197,\n },\n {\n text: \"paragraphs\",\n value: 0.9999997615814209,\n },\n {\n text: \"a number\",\n value: 1,\n },\n {\n text: \"reasons\",\n value: 0.9999997615814209,\n },\n {\n text: \"random paragraphs\",\n value: 0.9999999403953552,\n },\n {\n text: \"A few examples\",\n value: 0.9999975562095642,\n },\n {\n text: \"some people\",\n value: 1,\n },\n {\n text: \"this generator\",\n value: 0.9999999403953552,\n },\n {\n text: \"the following paragraphs\",\n value: 0.9999883770942688,\n },\n ],\n },\n {\n sentiment: {\n Index: 4,\n Sentiment: \"POSITIVE\",\n SentimentScore: {\n Positive: 0.8398491144180298,\n Negative: 0.06463920325040817,\n Neutral: 0.07277948409318924,\n Mixed: 0.022732166573405266,\n },\n },\n wordCloud: [\n {\n text: \"Another productive way\",\n value: 0.9999999403953552,\n },\n {\n text: \"this tool\",\n value: 0.9999997615814209,\n },\n {\n text: \"a daily writing routine\",\n value: 0.9999998807907104,\n },\n {\n text: \"One way\",\n value: 0.9999999403953552,\n },\n {\n text: \"a random paragraph\",\n value: 1,\n },\n {\n text: \"the intention\",\n value: 1,\n },\n {\n text: \"the original meaning\",\n value: 0.999999463558197,\n },\n {\n text: \"The purpose\",\n value: 0.9999694228172302,\n },\n {\n text: \"the writing\",\n value: 1,\n },\n {\n text: \"the writer\",\n value: 0.9999997615814209,\n },\n {\n text: \"their day\",\n value: 0.9999971985816956,\n },\n {\n text: \"writing projects\",\n value: 0.8479079008102417,\n },\n {\n text: \"words\",\n value: 0.9999994039535522,\n },\n {\n text: \"their fingers\",\n value: 0.9999999403953552,\n },\n ],\n },\n {\n sentiment: {\n Index: 5,\n Sentiment: \"POSITIVE\",\n SentimentScore: {\n Positive: 0.9969587326049805,\n Negative: 0.00019932868599426,\n Neutral: 0.0027231546118855476,\n Mixed: 0.00011880663805641234,\n },\n },\n wordCloud: [\n {\n text: \"only writers\",\n value: 0.9005135893821716,\n },\n {\n text: \"this free online tool\",\n value: 1,\n },\n {\n text: \"a programmer\",\n value: 0.9999999403953552,\n },\n {\n text: \"a project\",\n value: 1,\n },\n {\n text: \"blocks\",\n value: 0.9999996423721313,\n },\n {\n text: \"text\",\n value: 1,\n },\n {\n text: \"this tool\",\n value: 0.9999995827674866,\n },\n {\n text: \"a great way\",\n value: 0.9999998211860657,\n },\n {\n text: \"a good way\",\n value: 0.9999998211860657,\n },\n {\n text: \"your programming\",\n value: 1,\n },\n {\n text: \"the tool\",\n value: 0.9999999403953552,\n },\n ],\n },\n {\n sentiment: {\n Index: 6,\n Sentiment: \"NEGATIVE\",\n SentimentScore: {\n Positive: 0.0028258319944143295,\n Negative: 0.9888590574264526,\n Neutral: 0.005087283905595541,\n Mixed: 0.0032278045546263456,\n },\n },\n wordCloud: [\n {\n text: \"the paragraphs\",\n value: 0.9999881982803345,\n },\n {\n text: \"the generator\",\n value: 1,\n },\n {\n text: \"humans\",\n value: 0.999977707862854,\n },\n {\n text: \"computers\",\n value: 0.9947909116744995,\n },\n {\n text: \"this generator\",\n value: 1,\n },\n {\n text: \"computers\",\n value: 0.999998927116394,\n },\n {\n text: \"the paragraphs\",\n value: 0.9999998211860657,\n },\n {\n text: \"many times\",\n value: 0.9999053478240967,\n },\n {\n text: \"any sense\",\n value: 1,\n },\n {\n text: \"the time\",\n value: 1,\n },\n {\n text: \"paragraphs\",\n value: 0.9996434450149536,\n },\n {\n text: \"this generator\",\n value: 0.9999998807907104,\n },\n {\n text: \"the best\",\n value: 0.9985896944999695,\n },\n ],\n },\n {\n sentiment: {\n Index: 7,\n Sentiment: \"MIXED\",\n SentimentScore: {\n Positive: 0.036955174058675766,\n Negative: 0.26187363266944885,\n Neutral: 0.1907292753458023,\n Mixed: 0.5104419589042664,\n },\n },\n wordCloud: [\n {\n text: \"that tingly feeling\",\n value: 0.8999176025390625,\n },\n {\n text: \"the back\",\n value: 0.9999997615814209,\n },\n {\n text: \"your neck\",\n value: 0.9999992847442627,\n },\n {\n text: \"that feeling\",\n value: 0.9999839663505554,\n },\n {\n text: \"sixth senses\",\n value: 0.9999998807907104,\n },\n ],\n },\n {\n sentiment: {\n Index: 8,\n Sentiment: \"POSITIVE\",\n SentimentScore: {\n Positive: 0.6630426645278931,\n Negative: 0.013157353736460209,\n Neutral: 0.20429331064224243,\n Mixed: 0.11950665712356567,\n },\n },\n wordCloud: [\n {\n text: \"Love\",\n value: 0.9999990463256836,\n },\n {\n text: \"pie\",\n value: 0.9999109506607056,\n },\n {\n text: \"all your friends\",\n value: 0.9989756345748901,\n },\n {\n text: \"loved ones\",\n value: 0.8807447552680969,\n },\n {\n text: \"how much\",\n value: 0.9871357083320618,\n },\n {\n text: \"one day\",\n value: 0.9999623894691467,\n },\n ],\n },\n {\n sentiment: {\n Index: 9,\n Sentiment: \"NEUTRAL\",\n SentimentScore: {\n Positive: 0.18264415860176086,\n Negative: 0.1501716822385788,\n Neutral: 0.6283667087554932,\n Mixed: 0.038817450404167175,\n },\n },\n wordCloud: [\n {\n text: \"The boy\",\n value: 1,\n },\n {\n text: \"the street\",\n value: 1,\n },\n {\n text: \"a carefree way\",\n value: 1,\n },\n {\n text: \"notice\",\n value: 1,\n },\n {\n text: \"the sound\",\n value: 1,\n },\n {\n text: \"the car\",\n value: 1,\n },\n {\n text: \"his ball\",\n value: 1,\n },\n {\n text: \"the road\",\n value: 1,\n },\n {\n text: \"a step\",\n value: 1,\n },\n {\n text: \"his fate\",\n value: 1,\n },\n ],\n },\n {\n sentiment: {\n Index: 10,\n Sentiment: \"NEGATIVE\",\n SentimentScore: {\n Positive: 0.0617872029542923,\n Negative: 0.41322067379951477,\n Neutral: 0.19016407430171967,\n Mixed: 0.3348279893398285,\n },\n },\n wordCloud: [\n {\n text: \"the haters\",\n value: 0.9999998211860657,\n },\n {\n text: \"the lesson\",\n value: 1,\n },\n {\n text: \"Tom\",\n value: 1,\n },\n {\n text: \"dad\",\n value: 1,\n },\n {\n text: \"Tom\",\n value: 1,\n },\n {\n text: \"their hate\",\n value: 0.999999463558197,\n },\n {\n text: \"his devious plan\",\n value: 0.9999907612800598,\n },\n ],\n },\n ],\n};\n","export const npsValues = [\n {\n name: \"Manufacturing\",\n detractors: 15.21,\n passives: 26.53,\n promotors: 58.27,\n npsValue: 43,\n lower: -23,\n median: 7,\n upper: 33,\n },\n {\n name: \"Pharmaceuticals\",\n detractors: 38.25,\n passives: 47.36,\n promotors: 14.39,\n npsValue: -24,\n lower: -65,\n median: -19,\n upper: 19,\n },\n {\n name: \"Technology\",\n detractors: 9.83,\n passives: 12.96,\n promotors: 77.21,\n npsValue: 67,\n lower: -12,\n median: 15,\n upper: 51,\n },\n {\n name: \"FMCG\",\n detractors: 21.34,\n passives: 24.89,\n promotors: 53.77,\n npsValue: 32,\n lower: -5,\n median: 22,\n upper: 47,\n },\n {\n name: \"Chemicals/Petrochemicals\",\n detractors: 12.51,\n passives: 52.97,\n promotors: 34.52,\n npsValue: 17,\n lower: -33,\n median: 15,\n upper: 38,\n },\n {\n name: \"Financial Servies\",\n detractors: 32.67,\n passives: 9.99,\n promotors: 57.34,\n npsValue: 25,\n lower: -12,\n median: 21,\n upper: 56,\n },\n {\n name: \"Construction/Engineering\",\n detractors: 18.94,\n passives: 56.61,\n promotors: 24.45,\n npsValue: 6,\n lower: -27,\n median: 19,\n upper: 24,\n },\n {\n name: \"Food/Beverages\",\n detractors: 22.95,\n passives: 5.71,\n promotors: 71.34,\n npsValue: 40,\n lower: 3,\n median: 35,\n upper: 66,\n },\n {\n name: \"Textiles/Apparels\",\n detractors: 12.52,\n passives: 14.04,\n promotors: 73.44,\n npsValue: 61,\n lower: 8,\n median: 41,\n upper: 72,\n },\n {\n name: \"Real Estate\",\n detractors: 43.22,\n passives: 35.34,\n promotors: 21.44,\n npsValue: -22,\n lower: -69,\n median: -4,\n upper: 17,\n },\n];\n","import { Button, Space } from \"antd\";\nimport React, { Fragment, useEffect, useRef, useState } from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Input } from \"antd\";\nimport ReactToPrint from \"react-to-print\";\nimport {\n dataColumns,\n basicStatisticsColumns,\n starTableColumns,\n starTableData,\n sliderDataColumns,\n npsDataColumns,\n calculatePercentage,\n TableCell,\n npsStatsColumns,\n} from \"../../constants/tableUtility\";\nimport Dropdown from \"../../../../../components/dropdown/dropdown\";\nimport FilterCheckbox from \"../../../../../components/filter-checkbox/FilterCheckbox\";\nimport TabBar from \"../../../../../components/tabbar/TabBar\";\nimport ColorPicker from \"../../../../../components/ColorPicker\";\nimport FlexRow from \"../../../../../components/flex-row\";\nimport CreateChart from \"../../../../../components/CreateChart/CreateChart\";\nimport { COLOR, graphConfigTemplate } from \"../../../../../constants\";\nimport { CaretLeftOutlined, CaretRightOutlined } from \"@ant-design/icons\";\nimport * as barIcons from \"../../icons/index\";\nimport {\n chartCheckboxStyle,\n greyButtonStyle,\n dullGreenButtonStyle,\n greyLabelStyle,\n darkBlueButtonStyle,\n} from \"../../constants/styles\";\nimport ButtonToggle from \"../../../../../components/ButtonToggle\";\nimport styles from \"./QuestionBox.module.css\";\nimport c from \"classnames/bind\";\nimport { min, max, mean, median, std, typeOf } from \"mathjs\";\nimport ResponsiveTable from \"../../../../../components/responsive-table/ResponsiveTable\";\nimport StarRatingElement from \"../../../../../components/starRating/StarRating\";\nimport GaugeMeter from \"../../../../../components/gaugeMeter/GaugeMeter\";\nimport {\n questionNotation,\n questionTypes,\n} from \"../../../../../components/constants/questionType\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport { wordCloudTestData } from \"../../constants/wordCloudTestData\";\nimport { npsValues } from \"../../constants/npsValues\";\nimport WordCloud from \"../../../../../components/wordcloud/WordCloud\";\nimport SentimentGraph from \"../../../../../components/sentiment-graph/SentimentGraph\";\nconst cx = c.bind(styles);\n\n// let graphConfig = {};\n\nconst tableTypes = {\n type1: [\n \"multiChoices\",\n \"imageMultiChoices\",\n \"videoMultiChoices\",\n \"checkBoxes\",\n \"imageCheckBoxes\",\n \"videoCheckBoxes\",\n ],\n type2: [\n \"stars\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"dropDown\",\n \"likert\",\n \"ranking\",\n \"association\",\n \"imageRanking\",\n \"videoRanking\",\n \"imageAssociation\",\n \"videoAssociation\",\n ],\n type3: [\"slider\"],\n type4: [\"netPromotorScore\"],\n};\n\nexport const graphTypes = {\n type1: [\n \"questionInstruction\",\n \"imageInstruction\",\n \"videoInstruction\",\n \"textABTest\",\n \"imageABTest\",\n \"videoABTest\",\n \"adAnalysis\",\n ],\n type2: [\"text\", \"imageComment\", \"videoComment\"],\n type3: [\"multiChoices\", \"imageMultiChoices\", \"videoMultiChoices\"],\n type4: [\"checkBoxes\", \"imageCheckBoxes\", \"videoCheckBoxes\"],\n type5: [\n \"stars\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"likert\",\n \"dropDown\",\n ],\n type6: [\"slider\"],\n type7: [\"netPromotorScore\"],\n type8: [\"ranking\", \"imageRanking\", \"videoRanking\"],\n type9: [\"association\", \"imageAssociation\", \"videoAssociation\"],\n};\n\nconst setChartTypeInit = {\n type1: {\n show: [true, true, true, true],\n chartDepth: true,\n axisScale: true,\n percentage: [true, true, true, true, true, true, true, true],\n absolute: [true, true, true, true, true, true, true, true],\n weightedAverage: [true, true, true, true, true, true, true],\n },\n type2: {\n show: [true, true, true, false],\n chartDepth: true,\n axisScale: true,\n percentage: [true, true, true, true, true, true, true, true],\n absolute: [true, true, true, true, true, true, true, true],\n weightedAverage: [true, true, true, true, true, true, true, true],\n },\n type3: {\n show: [false, false, false, false],\n chartDepth: false,\n axisScale: false,\n percentage: [false, false, false, false, false, false, false, false],\n absolute: [false, false, false, false, false, false, false, false],\n weightedAverage: [false, false, true, true, true, true, true, true],\n },\n type4: {\n show: [false, false, false, false],\n chartDepth: true,\n axisScale: false,\n percentage: [false, false, true, true, true, true, false, false],\n absolute: [false, false, false, false, true, true, false, false],\n weightedAverage: [true, true, true, true, true, true, true, true],\n },\n type5: {\n show: [false, false, false, false],\n chartDepth: true,\n axisScale: false,\n percentage: [false, false, false, false, false, false, true, true],\n absolute: [false, false, false, false, true, true, true, true],\n weightedAverage: [true, true, true, true, true, true, true, true],\n },\n type6: {\n show: [false, false, false, false],\n chartDepth: true,\n axisScale: true, //question.sliderType = percentage then percentage or absolute\n percentage: [false, false, true, true, true, true, false, true],\n absolute: [false, false, true, true, true, true, false, true],\n weightedAverage: [true, true, true, true, true, true, true, true],\n },\n type7: {\n show: [false, false, false, false],\n chartDepth: true,\n axisScale: false,\n percentage: [false, false, false, false, false, false, true, true],\n absolute: [false, false, false, false, true, true, false, false],\n weightedAverage: [true, true, true, true, true, true, true, true],\n },\n type8: {\n show: [false, false, false, false],\n chartDepth: false,\n axisScale: false,\n percentage: [false, false, false, false, true, true, false, false],\n absolute: [false, false, false, false, true, true, false, false],\n weightedAverage: [false, false, true, true, true, true, false, false],\n },\n type9: {\n show: [false, false, false, false],\n chartDepth: false,\n axisScale: false,\n percentage: [false, false, false, false, true, true, false, false],\n absolute: [false, false, false, false, true, true, false, false],\n weightedAverage: [false, false, false, false, true, true, false, false],\n },\n};\n\nconst initChartAttr = {\n options: [\n {\n label: \"bar\",\n value: \"bar\",\n icon: barIcons.barchart,\n },\n {\n label: \"horizontalBar\",\n value: \"horizontalBar\",\n icon: barIcons.barcharth,\n },\n {\n label: \"stackedBar\",\n value: \"stackedBar\",\n icon: barIcons.barh,\n },\n {\n label: \"horizontalStackedBar\",\n value: \"horizontalStackedBar\",\n icon: barIcons.barhh,\n },\n {\n label: \"pie\",\n value: \"pie\",\n icon: barIcons.pie,\n },\n {\n label: \"doughnut\",\n value: \"doughnut\",\n icon: barIcons.pieh,\n },\n {\n label: \"line\",\n value: \"line\",\n icon: barIcons.line,\n },\n {\n label: \"lineFill\",\n value: \"lineFill\",\n icon: barIcons.lineh,\n },\n ],\n};\n\nconst QuestionBox = ({\n questionResponses,\n setQuestion,\n chartAttributes,\n setChartAttributes,\n question,\n answered,\n questionNumber,\n axisScale,\n setAxisScale,\n decimalPlaces,\n setDecimalPlaces,\n depth,\n setDepth,\n colors,\n setColors,\n chartType,\n setChartType,\n keyInfo,\n onSaveOptions,\n cloneConfiguration,\n customize,\n setCustomize,\n criteriaData,\n compareMode,\n compareChartTitle,\n setCompareChartTitle,\n graphTitle,\n}) => {\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 450px)\" });\n\n const [graphTab, setGraphTab] = useState(\"1\");\n const [showDataTable, setShowDataTable] = useState(false);\n const [showStatisticsTable, setShowStatisticsTable] = useState(false);\n const [chartVisibility, setChartVisibility] = useState(false);\n const [selectedChart, setSelectedChart] = useState(1);\n const [graphConfig, setGraphConfig] = useState(null);\n const questionComponentRef = useRef(null);\n const [print, setPrint] = useState(false);\n\n let configurationType = null;\n Object.keys(graphTypes).map((key) => {\n if (graphTypes[key].indexOf(question.type) > -1) {\n configurationType = key;\n }\n });\n\n const chartSettings = setChartTypeInit[configurationType];\n\n const [tableColumns, setTableColumns] = useState(null);\n const [tableData, setTableData] = useState(null);\n const [statsColumns, setStatsColumns] = useState(null);\n const [statsData, setStatsData] = useState(null);\n\n const [textAnalysis, setTextAnalysis] = useState(false);\n\n const [weightedAverage, setWeightedAverage] = useState(null);\n\n let stacked = false;\n let totalResponse = null;\n console.log(graphTypes, setChartTypeInit);\n const [totalColors, setTotalColors] = useState(10);\n const [disabledCustomize, setDisabledCustomize] = useState(false);\n const [chartTitle, setChartTitle] = useState(\"\");\n const [wordCloud, setWordCloud] = useState(null);\n const [sentimentValues, setSentimentValues] = useState(null);\n\n const [defaultNPS, setDefaultNPS] = useState(0);\n\n useEffect(() => {\n if (answered > 0) {\n setGraphConfig({\n ...graphConfigTemplate,\n options: { ...graphConfigTemplate.options, plugins: {} },\n });\n setGraphTab(\"1\");\n // setChartAttributes(initChartAttributes);\n setTableData(null);\n setStatsData(null);\n countWeightedAverage();\n setChartTitle(\"\");\n setTextAnalysis(false);\n if (\n graphTypes.type1.indexOf(question.type) > -1 ||\n graphTypes.type2.indexOf(question.type) > -1\n ) {\n setDisabledCustomize(true);\n } else {\n setGraphInit(\"bar\");\n setDisabledCustomize(false);\n }\n if (\n !(\n tableTypes.type1.indexOf(question.type) > -1 ||\n tableTypes.type2.indexOf(question.type) > -1 ||\n tableTypes.type3.indexOf(question.type) > -1 ||\n tableTypes.type4.indexOf(question.type) > -1\n )\n ) {\n setShowStatisticsTable(false);\n setShowDataTable(false);\n }\n }\n }, [question]);\n\n useEffect(() => {\n setWordCloud(null);\n prepareWordCloud();\n }, [textAnalysis]);\n\n const prepareWordCloud = async () => {\n if (graphTypes.type2.indexOf(question.type) > -1) {\n try {\n // const wordCloudReport = await getWordCloudAnalysis(question.comments);\n const wordCloudReport = wordCloudTestData;\n console.log(\"input comments:\", question.comments);\n console.log(\"Report 1:\", wordCloudReport);\n let words = {};\n let sentimentValues = [];\n const analysedComments = question.comments.map((commentData, index) => {\n if (commentData[1] && commentData[1].analysedComments?.[0]) {\n return commentData[1].analysedComments[0];\n } else {\n return null;\n }\n });\n console.log(\"analysedComment\", analysedComments);\n analysedComments.map((report, index) => {\n if (report) {\n report.wordCloud.map((wordReport, index) => {\n if (Object.keys(words).indexOf(wordReport.text) > -1) {\n words[wordReport.text] += wordReport.value;\n } else {\n words[wordReport.text] = wordReport.value;\n }\n });\n sentimentValues.push(report.sentiment);\n }\n });\n let wordCloud = [];\n Object.keys(words).map((word, index) => {\n wordCloud.push({\n text: word,\n value: words[word],\n });\n });\n setWordCloud(wordCloud);\n setSentimentValues(sentimentValues);\n } catch (e) {\n alert(e);\n }\n }\n };\n\n useEffect(() => {\n initChartAttr.options.map((option, index) => {\n if (option.value === cloneConfiguration.chartType) {\n setSelectedChart(index);\n }\n });\n }, [cloneConfiguration.chartType]);\n\n useEffect(() => {\n if (\n cloneConfiguration.chartType &&\n answered > 0 &&\n !(\n graphTypes.type1.indexOf(question.type) > -1 ||\n graphTypes.type2.indexOf(question.type) > -1\n )\n ) {\n setGraphInit();\n }\n }, [weightedAverage, cloneConfiguration]);\n\n const countWeightedAverage = () => {\n switch (true) {\n case tableTypes.type1.indexOf(question.type) > -1:\n const stats = prepareStatistics(\n question.options.map((option) => option.answered)\n );\n setWeightedAverage([\n {\n label: \"Average\",\n answered: stats.length > 0 ? parseFloat(mean(stats)) : 0,\n },\n ]);\n break;\n case tableTypes.type2.indexOf(question.type) > -1:\n const options = question.options.map((option, index) => {\n const stats = prepareStatistics(option.answered);\n return {\n label: option.label,\n answered: stats.length > 0 ? parseFloat(mean(stats)) : 0,\n };\n });\n setWeightedAverage(options);\n break;\n default:\n setWeightedAverage(null);\n }\n };\n\n const checkChart = (fieldType, index, value) => {\n setChartAttributes({\n ...chartAttributes,\n [fieldType]: chartAttributes[fieldType].map((val, ind) =>\n ind === index ? { ...val, value } : val\n ),\n });\n };\n\n const setChartDepth = (depth) => {\n if (!depth) {\n setAxisScale(false);\n }\n setDepth(depth);\n };\n\n const setGraphInit = (chartTypeParam) => {\n const graphConfigTemp = {\n ...graphConfigTemplate,\n options: { ...graphConfigTemplate.options },\n };\n graphConfigTemp.options.scales.yAxes[0].ticks = { beginAtZero: true };\n graphConfigTemp.options.scales.xAxes[0].ticks = { beginAtZero: true };\n const propChartType = chartTypeParam\n ? chartTypeParam\n : cloneConfiguration.chartType;\n //set Labels in Graph\n graphConfigTemp.plugins = chartAttributes.showFilter[2].value;\n graphConfigTemp.type = getChartType(propChartType);\n // is it Stacked or not\n stacked =\n propChartType === \"horizontalStackedBar\" ||\n propChartType === \"stackedBar\";\n graphConfigTemp.options = {\n ...graphConfigTemp.options,\n title: {\n ...graphConfigTemp.options.title,\n text: graphTitle ? graphTitle : chartTitle,\n },\n };\n console.log(\"graphTitle=\", graphTitle);\n\n //set Aspect Ratio to 1 when bar graph is horizontal\n // if (graphConfigTemp.type === \"horizontalBar\") {\n // graphConfigTemp.options.aspectRatio = 1;\n // }\n\n // Labels as per stacked and not stacked graph\n const lableCode = (value, context) => {\n // hard-coded condition wrong\n if (cloneConfiguration.axisScale && question.type != \"slider\") {\n return value + \"%\";\n } else {\n return value;\n }\n };\n graphConfigTemp.options = {\n ...graphConfigTemp.options,\n plugins: {\n datalabels: {\n color:\n graphConfigTemp.type === \"line\"\n ? \"black\"\n : !stacked\n ? \"black\"\n : \"white\",\n formatter: lableCode,\n font: {\n weight: \"bold\",\n size: 10,\n },\n rotation: 0,\n padding: stacked ? 0 : 4,\n backgroundColor: !stacked ? null : \"black\",\n align:\n graphConfigTemp.type === \"line\"\n ? \"top\"\n : !stacked\n ? graphConfigTemp.type === \"bar\"\n ? \"top\"\n : \"right\"\n : \"center\",\n offset: 4,\n anchor: stacked ? \"center\" : \"end\",\n },\n },\n };\n // Prepares Dataset for all graph types\n let { dataSets, isNested } = cloneConfiguration.depth\n ? prepareDataSet(question.options)\n : prepareDataSet(weightedAverage);\n console.log(\"dataSets\", keyInfo, dataSets);\n totalResponse = question.options.reduce(\n (sum, option) => sum + option.answered,\n 0\n );\n\n // Set Max Column height when data is absolute to show labels correctly\n const columnMax = findColumnMax(dataSets);\n\n if (\n !cloneConfiguration.axisScale &&\n isNested &&\n propChartType === \"lineFill\"\n ) {\n graphConfigTemp.options = updateMax(graphConfigTemp, {\n max: answered,\n beginAtZero: true,\n });\n } else if (!stacked && propChartType !== \"lineFill\") {\n graphConfigTemp.options = updateMax(graphConfigTemp, {\n max: columnMax + columnMax / 4,\n beginAtZero: true,\n });\n } else {\n // Reset when graph is stacked or percentage\n graphConfigTemp.options = updateMax(graphConfigTemp, {\n beginAtZero: true,\n });\n }\n\n // Table and Statistics\n switch (true) {\n case tableTypes.type1.indexOf(question.type) > -1:\n setTableColumns(dataColumns);\n setTableData(\n question.options.map((option, index) => {\n return {\n key: index,\n answerChoices: option.label,\n responses:\n option.answered !== 0\n ? ((option.answered * 100) / totalResponse).toFixed(\n cloneConfiguration.decimalPlaces\n )\n : 0,\n number: option.answered,\n };\n })\n );\n const stats = prepareStatistics(\n question.options.map((option) => option.answered)\n );\n setStatsColumns(basicStatisticsColumns);\n setStatsData([\n {\n min: stats.length > 0 ? min(stats) : 0,\n max: stats.length > 0 ? max(stats) : 0,\n mean: (stats.length ? mean(stats) : 0).toFixed(\n cloneConfiguration.decimalPlaces\n ),\n median: stats.length ? median(stats) : 0,\n sd: (stats.length > 0 ? std(stats) : 0).toFixed(\n cloneConfiguration.decimalPlaces\n ),\n },\n ]);\n break;\n case tableTypes.type2.indexOf(question.type) > -1:\n setTableColumns(\n starTableColumns(question.options[0].answered.length, question.labels)\n );\n setTableData(\n starTableData(question.options, cloneConfiguration.decimalPlaces)\n );\n setStatsColumns([\n { title: \"\", dataIndex: \"option\" },\n ...basicStatisticsColumns,\n ]);\n setStatsData(\n question.options.map((option) => {\n const stats = prepareStatistics(option.answered);\n return {\n option: option.label,\n min: stats.length ? min(stats) : 0,\n max: stats.length ? max(stats) : 0,\n mean: (stats.length ? mean(stats) : 0).toFixed(\n cloneConfiguration.decimalPlaces\n ),\n median: stats.length ? median(stats) : 0,\n sd: (stats.length ? std(stats) : 0).toFixed(\n cloneConfiguration.decimalPlaces\n ),\n };\n })\n );\n break;\n case tableTypes.type3.indexOf(question.type) > -1:\n setTableColumns(sliderDataColumns);\n setTableData(\n question.options.map((option, index) => {\n return {\n answerChoices: \"Responses\",\n averageNumber: option.answered.toFixed(\n cloneConfiguration.decimalPlaces\n ),\n totalNumber: option.totalNumber,\n responses: answered,\n };\n })\n );\n setStatsColumns(basicStatisticsColumns);\n setStatsData([\n {\n min: question.options[0].min,\n max: question.options[0].max,\n mean: question.options[0].answered.toFixed(\n cloneConfiguration.decimalPlaces\n ),\n median: question.options[0].median,\n sd: question.options[0].sd.toFixed(\n cloneConfiguration.decimalPlaces\n ),\n },\n ]);\n dataSets[0] = parseFloat(dataSets[0]).toFixed(\n cloneConfiguration.decimalPlaces\n );\n break;\n case tableTypes.type4.indexOf(question.type) > -1:\n setTableColumns(npsDataColumns);\n const percentageValue = calculatePercentage([\n question.options[0].answered,\n question.options[1].answered,\n question.options[2].answered,\n ]);\n setTableData([\n {\n Responses: \"Your Responses\",\n detractors: (\n \n ),\n passives: (\n \n ),\n promotors: (\n \n ),\n nps: question.NPS,\n },\n {\n Responses: npsValues[defaultNPS].name,\n detractors: npsValues[defaultNPS].detractors + \"%\",\n passives: npsValues[defaultNPS].passives + \"%\",\n promotors: npsValues[defaultNPS].promotors + \"%\",\n nps: npsValues[defaultNPS].npsValue,\n },\n ]);\n setStatsColumns(npsStatsColumns);\n setStatsData([\n {\n title: \"Your Responses\",\n min: -100,\n lower: -25,\n median: 50,\n upper: 25,\n max: 100,\n },\n {\n title: npsValues[defaultNPS].name,\n min: -100,\n lower: npsValues[defaultNPS].lower,\n median: npsValues[defaultNPS].median,\n upper: npsValues[defaultNPS].upper,\n max: 100,\n },\n ]);\n break;\n }\n\n // when Graph is pie or doughnut remove axis\n if (propChartType === \"pie\" || propChartType === \"doughnut\") {\n graphConfigTemp.options = {\n aspectRatio: 1,\n plugins: {\n datalabels: {\n color: \"white\",\n formatter: function (value, context) {\n if (cloneConfiguration.axisScale) {\n return value + \"%\";\n } else {\n return value;\n }\n },\n font: {\n weight: \"bold\",\n },\n },\n },\n };\n }\n\n //Graphs\n switch (true) {\n case !isNested && !stacked:\n // Labels are not required if graphs are on weighted Average\n if (cloneConfiguration.depth) {\n graphConfigTemp.data.labels = question.options.map(\n (option) => option.label\n );\n } else {\n graphConfigTemp.data.labels = weightedAverage.map(\n (option) => option.label\n );\n }\n if (propChartType === \"bar\" || propChartType === \"horizontalBar\") {\n graphConfigTemp.options.scales.yAxes[0].stacked = false;\n graphConfigTemp.options.scales.xAxes[0].stacked = false;\n graphConfigTemp.data.labels = [\"\"];\n if (cloneConfiguration.depth) {\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: question.options.map((option, index) => {\n let colorIndex =\n index % (cloneConfiguration.colors.length || 1);\n\n return {\n barPercentage: question.options.length === 1 ? 0.3 : 1,\n label: option.label,\n backgroundColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n borderColor: \"rgba(255,255,255,1)\",\n data: [dataSets[index]],\n };\n }),\n };\n setTotalColors(question.options.length);\n } else {\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: weightedAverage.map((option, index) => {\n let colorIndex =\n index % (cloneConfiguration.colors.length || 1);\n\n return {\n barPercentage: weightedAverage.length === 1 ? 0.3 : 1,\n label: option.label,\n backgroundColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n borderColor: \"rgba(255,255,255,1)\",\n data: [dataSets[index]],\n };\n }),\n };\n setTotalColors(weightedAverage.length);\n }\n console.log(\"inner Data=\", keyInfo, graphConfigTemp);\n } else {\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: [\n {\n barPercentage: 1,\n fill: propChartType === \"lineFill\" ? true : false,\n label: question.options.map((option) => option.label),\n backgroundColor: [...Array(question.options.length)].map(\n (value, index) => {\n let colorIndex =\n index % (cloneConfiguration.colors.length || 1);\n return `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`;\n }\n ),\n borderColor:\n graphConfigTemp.type === \"line\"\n ? \"rgba(0,193,148,1)\"\n : \"rgba(255,255,255,1)\",\n data:\n dataSets.length === 1 ? [null, ...dataSets, null] : dataSets,\n },\n ],\n };\n setTotalColors(dataSets.length);\n if (dataSets.length === 1 && graphConfig.type === \"line\") {\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n labels: [\"\", \"\", \"\"],\n };\n }\n }\n break;\n case !isNested && stacked:\n graphConfigTemp.options.scales.yAxes[0].stacked = true;\n graphConfigTemp.options.scales.xAxes[0].stacked = true;\n graphConfigTemp.data.labels = [\"\"];\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: dataSets.map((data, index) => {\n let colorIndex = index % (cloneConfiguration.colors.length || 1);\n\n return {\n label: question.options[index].label,\n barPercentage: 0.5,\n data: [data],\n backgroundColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n };\n }),\n };\n setTotalColors(dataSets.length);\n break;\n case isNested && !stacked:\n if (propChartType === \"lineFill\") {\n var add = [];\n dataSets = dataSets.map((data, outerIndex) => {\n if (outerIndex === 0) {\n add = data.map((value) => value);\n }\n if (outerIndex > 0) {\n add = data.map((value, index) => {\n const number = parseFloat(value) + parseFloat(add[index]);\n return Math.round(number) === 100\n ? 100\n : number.toFixed(cloneConfiguration.decimalPlaces);\n });\n }\n return add;\n });\n }\n if (propChartType === \"pie\" || propChartType === \"doughnut\") {\n graphConfigTemp.data.labels = dataSets.map(\n (data, index) => index + 1\n );\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: question.options.map((option, index) => {\n return {\n label: dataSets.map(\n (data, index) => index + 1 + \" \" + option.label\n ),\n data: dataSets.map((data) => data[index]),\n backgroundColor: dataSets.map((data, index) => {\n let colorIndex =\n index % (cloneConfiguration.colors.length || 1);\n return `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`;\n }),\n };\n }),\n };\n setTotalColors(dataSets.length);\n } else {\n graphConfigTemp.options.scales.yAxes[0].stacked = false;\n graphConfigTemp.options.scales.xAxes[0].stacked = false;\n graphConfigTemp.data.labels = question.options.map(\n (option) => option.label\n );\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: dataSets.map((data, index) => {\n let colorIndex = index % (cloneConfiguration.colors.length || 1);\n return {\n fill: propChartType === \"lineFill\" ? true : false,\n label: question.labels ? question.labels[index] : index + 1,\n barPercentage: 1,\n data: data,\n backgroundColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n borderColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n datalabels: {\n color:\n graphConfigTemp.type === \"line\"\n ? `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`\n : \"black\",\n formatter: (value, context) => {\n if (propChartType === \"lineFill\" && index !== 0) {\n // console.log(\"dataValue\", context.dataIndex, value);\n return cloneConfiguration.axisScale\n ? (\n value - dataSets[index - 1][context.dataIndex]\n ).toFixed(cloneConfiguration.decimalPlaces) + \"%\"\n : value - dataSets[index - 1][context.dataIndex];\n } else {\n return cloneConfiguration.axisScale ? value + \"%\" : value;\n }\n },\n },\n };\n }),\n };\n }\n setTotalColors(dataSets.length);\n break;\n case isNested && stacked:\n graphConfigTemp.options.scales.yAxes[0].stacked = true;\n graphConfigTemp.options.scales.xAxes[0].stacked = true;\n graphConfigTemp.data.labels = question.options.map(\n (option) => option.label\n );\n graphConfigTemp.data = {\n ...graphConfigTemp.data,\n datasets: dataSets.map((data, index) => {\n let colorIndex = index % (cloneConfiguration.colors.length || 1);\n return {\n label: question.labels ? question.labels[index] : index + 1,\n barPercentage: data.length === 1 ? 0.5 : 1,\n data: data,\n backgroundColor: `rgba(${cloneConfiguration.colors[colorIndex].r},${cloneConfiguration.colors[colorIndex].g},${cloneConfiguration.colors[colorIndex].b},${cloneConfiguration.colors[colorIndex].a})`,\n };\n }),\n };\n setTotalColors(dataSets.length);\n break;\n }\n console.log(\n \"inner data config\",\n keyInfo,\n JSON.parse(JSON.stringify(graphConfigTemp))\n );\n // show Data Table if ticked\n setShowDataTable(chartAttributes.showFilter[1].value);\n // show Data Table if ticked\n setShowStatisticsTable(chartAttributes.showFilter[3].value);\n\n setChartVisibility(chartAttributes.showFilter[0].value);\n\n // setCustomize(false);\n\n setGraphConfig(graphConfigTemp);\n // setGraphTab(true);\n // graphConfig.data.datasets.background\n };\n\n useEffect(() => {\n if (\n question.type === questionTypes.NET_PROMOTOR_SCORE &&\n tableData &&\n statsData\n ) {\n setTableData([\n { ...tableData[0] },\n {\n Responses: npsValues[defaultNPS].name,\n detractors: npsValues[defaultNPS].detractors + \"%\",\n passives: npsValues[defaultNPS].passives + \"%\",\n promotors: npsValues[defaultNPS].promotors + \"%\",\n nps: npsValues[defaultNPS].npsValue,\n },\n ]);\n setStatsData([\n {\n ...statsData[0],\n },\n {\n title: npsValues[defaultNPS].name,\n min: -100,\n lower: npsValues[defaultNPS].lower,\n median: npsValues[defaultNPS].median,\n upper: npsValues[defaultNPS].upper,\n max: 100,\n },\n ]);\n }\n }, [defaultNPS]);\n\n console.log(\"weightedAverage\", weightedAverage);\n\n const updateMax = (configOptions, ticks) => {\n return {\n ...configOptions.options,\n scales: {\n ...configOptions.options.scales,\n yAxes: [\n {\n ...configOptions.options.scales.yAxes[0],\n ticks: ticks,\n },\n ],\n xAxes: [\n {\n ...configOptions.options.scales.xAxes[0],\n ticks: ticks,\n },\n ],\n },\n };\n };\n\n const prepareDataSet = (options) => {\n let dataSets;\n dataSets = options.map((option, index) => {\n return option.answered;\n });\n let isNested = true;\n dataSets = dataSets.map((data, index) => {\n if (data.length) {\n return setAxisScaleArr(data);\n } else {\n isNested = false;\n return data;\n }\n });\n if (!isNested) {\n dataSets = setAxisScaleArr(dataSets);\n } else {\n dataSets = [...new Array(question.totalStar)].map((value, index) => {\n return dataSets.map((data, innerIndex) => {\n // console.log(data);\n return data[index];\n });\n });\n }\n // console.log({ dataSets, isNested });\n return { dataSets, isNested };\n };\n\n const setAxisScaleArr = (arr) => {\n if (cloneConfiguration.axisScale && question.type !== \"slider\") {\n const totalAnswered = arr.reduce((sum, value) => sum + value, 0);\n // console.log(totalAnswered);\n return arr.map((value) =>\n ((value * 100) / totalAnswered).toFixed(\n cloneConfiguration.decimalPlaces\n )\n );\n } else {\n return arr.map((value) =>\n cloneConfiguration.depth\n ? value\n : value.toFixed(cloneConfiguration.decimalPlaces)\n );\n }\n };\n\n const prepareStatistics = (arr) => {\n let stats = [];\n arr.map((value, index) => {\n [...new Array(value)].map(() => stats.push(index + 1));\n });\n return stats;\n };\n\n const findColumnMax = (dataSets) => {\n let maxNumber = 0;\n let isNested = true;\n dataSets.map((data, index) => {\n if (typeOf(data) === \"Array\") {\n let t = 0;\n if (data.length != 0 && data[0] instanceof String) t = max(data);\n maxNumber = t > maxNumber ? t : maxNumber;\n } else {\n isNested = false;\n }\n });\n if (!isNested) {\n maxNumber = max(dataSets.map((d) => (isNaN(d) ? 0 : d)));\n }\n return maxNumber;\n };\n\n const getChartType = (chartType) => {\n // console.log(\"chart type\", chartType);\n switch (true) {\n case chartType === \"bar\" || chartType === \"stackedBar\":\n return \"bar\";\n case chartType === \"horizontalBar\" ||\n chartType === \"horizontalStackedBar\":\n return \"horizontalBar\";\n case chartType === \"pie\":\n return \"pie\";\n case chartType === \"doughnut\":\n return \"doughnut\";\n case chartType === \"line\" || chartType === \"lineFill\":\n return \"line\";\n }\n };\n\n const changeColor = (index, value) => {\n const colorArr = [...colors];\n colorArr[index] = value;\n setColors(colorArr);\n // console.log(colors);\n };\n\n console.log(\"axis\", axisScale, depth);\n\n return (\n \n
    \n \n
    \n {questionNumber}. {question.text}\n
    \n
    \n {\n if (questionNumber > 1) {\n setQuestion(questionNumber - 1);\n }\n }}\n icon={}\n />\n
    \n {questionNumber + \" of \" + questionResponses.length}\n
    \n {\n if (true) {\n setQuestion(questionNumber + 1);\n }\n }}\n icon={}\n />\n
    \n
    \n
    \n
    \n {/*
    \n
    {questionNumber}
    \n
    {question.text}
    \n
    */}\n
    \n
    \n {questionNotation[question.type]}\n
    \n {question.type === \"imageInstruction\" ||\n question.type === \"videoInstruction\" ||\n question.type === \"questionInstruction\" ? null : (\n
    \n
    Answered {answered}
    \n
    Unanswered 0
    \n
    \n )}\n
    \n {question.type === \"netPromotorScore\" && (\n
    \n
    DETRACTORS(0-6): {question.options[0].answered}
    \n
    PASSIVES(7-8): {question.options[1].answered}
    \n
    PROMOTERS(0-10): {question.options[2].answered}
    \n
    \n )}\n
    \n
    \n\n {onSaveOptions && answered > 0 && (\n
    \n setCustomize(!customize)}\n disabled={disabledCustomize}\n >\n Customize\n \n (\n \n Save as\n \n )}\n bodyClass={cx(\"print-body\")}\n content={() => questionComponentRef.current}\n >\n
    \n )}\n \n {onSaveOptions && (\n \n \n \n \n {isTabletOrMobile ? (\n \n ) : (\n \n )}\n \n \n {graphTab === \"1\" && (\n \n \n \n \n \n )}\n {graphTab === \"2\" && (\n \n \n
    \n
    Show
    \n {chartAttributes.showFilter.map(\n ({ label, value }, index) => (\n \n checkChart(\"showFilter\", index, checked)\n }\n />\n )\n )}\n
    \n
    \n
    Data Format
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n setChartDepth(value)}\n value={depth}\n color={COLOR.grey}\n disabled={\n chartSettings.chartDepth ||\n chartSettings.weightedAverage[selectedChart]\n }\n options={[\n {\n label: \"Distribution\",\n value: true,\n },\n {\n label: \"Weighted Average\",\n value: false,\n },\n ]}\n >\n
    \n
    \n \n \n
    \n )}\n {graphTab === \"3\" && (\n \n \n {colors\n .filter((v, index) => index < totalColors)\n .map((color, index) => {\n return (\n \n changeColor(index, value)\n }\n />\n );\n })}\n \n \n )}\n {graphTab === \"4\" && (\n \n \n {!compareMode && (\n \n setChartTitle(e.target.value)}\n placeholder=\"Chart Title\"\n />\n \n )}\n {compareMode && (\n \n \n setCompareChartTitle({\n ...compareChartTitle,\n graph1: e.target.value,\n })\n }\n placeholder=\"Chart Title 1\"\n />\n \n setCompareChartTitle({\n ...compareChartTitle,\n graph2: e.target.value,\n })\n }\n placeholder=\"Chart Title 2\"\n />\n \n setCompareChartTitle({\n ...compareChartTitle,\n graph3: e.target.value,\n })\n }\n placeholder=\"Chart Title 3\"\n />\n \n )}\n \n \n )}\n
    \n onSaveOptions()}\n >\n Save\n \n {\n setCustomize(false);\n }}\n >\n CANCEL\n \n
    \n \n
    \n \n
    \n )}\n {criteriaData && (\n \n {criteriaData.map((c, index) => {\n return (\n \n
    \n {c.fieldName}:  \n
    \n
    {c.selectedValues.join(\", \")}
    \n \n );\n })}\n \n )}\n {answered > 0 && (\n \n
    \n {question.type === \"netPromotorScore\" && (\n \n )}\n {graphTypes.type2.indexOf(question.type) > -1 && (\n
    \n setTextAnalysis(!textAnalysis)}\n >\n Text Analysis\n \n {textAnalysis && sentimentValues && wordCloud && (\n \n \n \n
    \n )}\n
    \n )}\n {[\n \"stars\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n ].indexOf(question.type) > -1 && (\n \n {tableData &&\n question.options.map((option, index) => {\n return (\n \n );\n })}\n \n )}\n \n
    \n
    \n {chartVisibility && graphConfig && graphConfig.type ? (\n
    \n \n
    \n ) : null}\n
    \n {showDataTable && (\n
    \n \n totalResponse && (\n \n
    Total
    \n
    {totalResponse}
    \n
    \n )\n }\n />\n
    \n )}\n {showStatisticsTable && (\n
    \n \n Statistics\n
    \n \n {question.type === \"netPromotorScore\" && (\n \n Your Net Promotor Score: {question.NPS}\n \n )}\n \n )}\n {question.type === questionTypes.NET_PROMOTOR_SCORE &&\n showDataTable && (\n ({\n label: nps.name,\n value: index,\n }))}\n />\n )}\n \n
    \n \n
    \n )}\n \n );\n};\n\nexport default QuestionBox;\n","export const initFilterAttributes = {\n gender: [\n {\n label: \"Female\",\n value: false,\n },\n {\n label: \"Male\",\n value: false,\n },\n {\n label: \"Neutral\",\n value: false,\n },\n ],\n age: [\n { label: \"16-20\", value: false },\n { label: \"21-25\", value: false },\n { label: \"26-30\", value: false },\n { label: \"31-35\", value: false },\n { label: \"35-40\", value: false },\n { label: \"41-45\", value: false },\n { label: \"46-50\", value: false },\n { label: \"51-55\", value: false },\n { label: \"56-60\", value: false },\n { label: \"61-65\", value: false },\n { label: \"66-70\", value: false },\n { label: \"71-75\", value: false },\n ],\n income: [\n { label: \"No income pm\", value: false },\n { label: \"0-50,000 pm\", value: false },\n { label: \"50,001-1,00,000 pm\", value: false },\n { label: \"1,00,001-3,00,000 pm\", value: false },\n { label: \"3,00,001-5,00,000 pm\", value: false },\n { label: \"5,00,001-10,00,000 pm\", value: false },\n { label: \"10,00,000+ pm\", value: false },\n ],\n};\n\nexport const initChartAttributes = {\n showFilter: [\n {\n label: \"Chart\",\n value: true,\n },\n {\n label: \"Table\",\n value: false,\n },\n {\n label: \"Data in chart\",\n value: true,\n },\n {\n label: \"Basic statistics\",\n value: false,\n },\n ],\n};\n","import React, { Fragment, useEffect, useState, useRef } from \"react\";\nimport Button from \"../../../../components/button/Button\";\nimport {\n CaretLeftOutlined,\n CaretRightOutlined,\n DeleteOutlined,\n PlusCircleFilled,\n SaveFilled,\n RollbackOutlined,\n FilterFilled,\n UsergroupAddOutlined,\n DownCircleFilled,\n UpCircleFilled,\n} from \"@ant-design/icons\";\nimport { difference, cloneDeep } from \"lodash\";\nimport ReactToPrint from \"react-to-print\";\nimport { COLOR, colorConstant } from \"../../../../constants\";\nimport filterUsers from \"../constants/filterUsers\";\nimport TabBar from \"../../../../components/tabbar/TabBar\";\nimport FlexRow from \"../../../../components/flex-row\";\nimport QuestionBox, { graphTypes } from \"./QuestionBox\";\nimport {\n initFilterAttributes,\n initChartAttributes,\n} from \"../constants/attributes\";\nimport {\n greyButtonStyle,\n darkBlueButtonStyle,\n dullGreenButtonStyle,\n tealButtonStyle,\n} from \"../constants/styles\";\nimport { std, min, max, median, clone } from \"mathjs\";\nimport { capitalizeFirstCharacter } from \"../../../../utils\";\nimport styles from \"./QuestionSummary.module.css\";\nimport c from \"classnames/bind\";\nimport { defaultAdminQuestion } from \"../../criteria/defaultCriteria\";\nimport { Drawer, Space, Collapse, Checkbox, Tabs } from \"antd\";\nconst { Panel } = Collapse;\nconst { TabPane } = Tabs;\n\nconst cx = c.bind(styles);\n\nconst questionTypes = {\n type1: [\n \"questionInstruction\",\n \"videoInstruction\",\n \"videoInstruction\",\n \"textABTest\",\n \"imageABTest\",\n \"videoABTest\",\n ],\n type2: [\"text\", \"imageComment\", \"videoComment\"],\n type3: [\n \"multiChoices\",\n \"imageMultiChoices\",\n \"videoMultiChoices\",\n \"checkBoxes\",\n \"imageCheckBoxes\",\n \"videoCheckBoxes\",\n ],\n type4: [\n \"stars\",\n \"imageStarRatingChoices\",\n \"videoStarRatingChoices\",\n \"likert\",\n \"dropDown\",\n ],\n type6: [\"slider\"],\n type7: [\"netPromotorScore\"],\n type8: [\n \"ranking\",\n \"imageRanking\",\n \"videoRanking\",\n \"association\",\n \"imageAssociation\",\n \"videoAssociation\",\n ],\n};\n\nconst compareTabs = [\n {\n key: \"1\",\n },\n {\n key: \"2\",\n },\n {\n key: \"3\",\n },\n];\n\nconst getAgeRange = ({ start, end, interval }) => {\n let range = [];\n let element = [];\n for (let i = start; i <= end; i++) {\n element.push(i);\n if (i % interval === 0) {\n range.push({\n label: `${element[0]}-${element[element.length - 1]}`,\n value: element,\n });\n element = [];\n }\n }\n return range;\n};\n\nconst CollapseFilter = ({\n activeKeys,\n filterAnswers,\n setActiveKeys,\n setFilterAnswers,\n adminQuestions,\n isFilterActive,\n}) => {\n return (\n {\n return isActive ? (\n \n ) : (\n \n );\n }}\n onChange={(openKeys) => {\n const addedKeys = difference(openKeys, activeKeys);\n const removedKeys = difference(activeKeys, openKeys);\n const tempAnswers = cloneDeep(filterAnswers);\n for (const key of addedKeys) {\n tempAnswers[key] = [];\n }\n for (const key of removedKeys) {\n delete tempAnswers[key];\n }\n setActiveKeys(openKeys);\n setFilterAnswers(tempAnswers);\n }}\n >\n {adminQuestions &&\n adminQuestions\n .filter(\n (e) =>\n e.isActive === true &&\n e.criteriaType === false &&\n !!e.clientField &&\n isFilterActive.indexOf(e[\"_id\"]) > -1 &&\n [\n \"multipleChoice\",\n \"checkboxes\",\n \"location\",\n \"checkboxesSpecial\",\n \"age\",\n ].includes(e.questionObject.questionType)\n )\n .map((e, i) => (\n \n {\n const tempAnswers = cloneDeep(filterAnswers);\n tempAnswers[e._id] = checkedValue;\n setFilterAnswers(tempAnswers);\n }}\n style={{\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n gap: 8,\n }}\n >\n {e.questionObject.questionType === \"age\"\n ? getAgeRange({\n start: e.questionObject.start,\n end: e.questionObject.end,\n interval: e.questionObject.interval,\n }).map((op, idx) => (\n \n {op.label}\n \n ))\n : e.questionObject.options.map((op, idx) => (\n \n {op}\n \n ))}\n \n \n ))}\n \n );\n};\n\nconst QuestionSummary = ({\n surveyData,\n criteria,\n setCriteria,\n adminQuestions,\n setSurveyData,\n questionComponentRef,\n moderatedCallIndex\n}) => {\n const [question, setQuestion] = useState(1);\n const [filter, setFilter] = useState(false);\n const [criteriaData, setCriteriaData] = useState(null);\n const [compare, setCompare] = useState(false);\n\n const [filterAttributes, setFilterAttributes] = useState(\n initFilterAttributes\n );\n const [chartAttributes, setChartAttributes] = useState(initChartAttributes);\n\n const [survey, setSurvey] = useState(surveyData);\n\n const [compareTab, setCompareTab] = useState(\"1\");\n const [compareFilter, setCompareFilter] = useState({\n 1: [],\n 2: [],\n 3: [],\n });\n const [compareSurvey1, setCompareSurvey1] = useState([]);\n const [compareSurvey2, setCompareSurvey2] = useState([]);\n const [compareSurvey3, setCompareSurvey3] = useState([]);\n const [compareResponse1, setCompareResponse1] = useState([]);\n const [compareResponse2, setCompareResponse2] = useState([]);\n const [compareResponse3, setCompareResponse3] = useState([]);\n const [criteriaData1, setCriteriaData1] = useState(null);\n const [criteriaData2, setCriteriaData2] = useState(null);\n const [criteriaData3, setCriteriaData3] = useState(null);\n const [compareMode, setCompareMode] = useState(false);\n const [compareChartTitle, setCompareChartTitle] = useState({\n graph1: \"\",\n graph2: \"\",\n graph3: \"\",\n });\n\n //question Responses\n const [answered, setAnswered] = useState(0);\n const [questionResponses, setQuestionResponses] = useState([]);\n const [isFilterActive, setIsFilterActive] = useState([]);\n\n //Graph Configurations\n const [axisScale, setAxisScale] = useState(true);\n const [decimalPlaces, setDecimalPlaces] = useState(1);\n const [depth, setDepth] = useState(true);\n const [colors, setColors] = useState(colorConstant);\n const [chartType, setChartType] = useState(\"\");\n const [customize, setCustomize] = useState(false);\n\n const [activeKeys, setActiveKeys] = useState([]);\n const [filterAnswers, setFilterAnswers] = useState({});\n\n const [compareActiveKeys, setCompareActiveKeys] = useState({\n 1: [],\n 2: [],\n 3: [],\n });\n const [compareFilterAnswers, setCompareFilterAnswers] = useState({\n 1: {},\n 2: {},\n 3: {},\n });\n\n //Clone Configuration\n const [cloneConfiguration, setCloneConfiguration] = useState({\n axisScale: true,\n decimalPlaces: 1,\n depth: true,\n colors: colorConstant,\n chartType: \"\",\n compareChartTitle,\n });\n\n const onSaveOptions = () => {\n setCloneConfiguration({\n axisScale,\n decimalPlaces,\n depth,\n colors,\n chartType,\n compareChartTitle,\n });\n setCustomize(false);\n };\n\n useEffect(() => {\n const questionBox = questionResponses[question - 1];\n if (questionBox) {\n const tempChartType =\n graphTypes.type1.indexOf(questionBox.type) > -1 ||\n graphTypes.type2.indexOf(questionBox.type) > -1\n ? \"\"\n : \"bar\";\n setAxisScale(true);\n setDepth(true);\n setChartType(tempChartType);\n setCloneConfiguration({\n ...cloneConfiguration,\n axisScale: true,\n depth: true,\n chartType: tempChartType,\n });\n }\n }, [question]);\n\n useEffect(() => {\n setSurvey(surveyData);\n if (surveyData) {\n const responses = surveyData.responses;\n const qArray = [];\n if (surveyData.criteria.length === 0) {\n setIsFilterActive(defaultAdminQuestion);\n } else {\n surveyData.criteria.map((c, index) => {\n qArray.push(c.questionId);\n });\n defaultAdminQuestion.map((questionId, index) => {\n if (qArray.indexOf(questionId) === -1) {\n qArray.push(questionId);\n }\n });\n setIsFilterActive(qArray);\n }\n setQuestion(1);\n resetFilterAndCompare();\n }\n }, [surveyData]);\n\n useEffect(() => {\n getFilteredUsers();\n }, [criteria]);\n\n useEffect(() => {\n if (filter) {\n setActiveKeys(criteria.map((c) => c.questionId));\n const filters = {};\n for (const { questionId, answer } of criteria) {\n filters[questionId] = [\n ...answer.map((a) => (Array.isArray(a) ? a.join() : a)),\n ];\n }\n setFilterAnswers(filters);\n }\n }, [criteria, filter]);\n\n useEffect(() => {\n if (compare) {\n for (const key in compareFilter) {\n setCompareActiveKeys((prevValue) => ({\n ...prevValue,\n [key]: compareFilter[key].map((cf) => cf.questionId),\n }));\n const filters = {};\n for (const { questionId, answer } of compareFilter[key]) {\n filters[questionId] = [\n ...answer.map((a) => (Array.isArray(a) ? a.join() : a)),\n ];\n }\n setCompareFilterAnswers((prevValue) => ({\n ...prevValue,\n [key]: filters,\n }));\n }\n }\n }, [compare, compareFilter]);\n\n useEffect(() => {\n initiateCompare();\n }, [compareFilter]);\n\n useEffect(() => {\n if (survey) {\n if (!survey.surveyAccess && survey.surveyType && survey.mode && survey.qualitativeData[0]) {\n setAnswered(\n survey.qualitativeData[0].responses.filter(\n (a) => a.answers.length > 0\n ).length\n );\n const questions = survey.qualitativeData[0].questions;\n const responses = survey.qualitativeData[0].responses;\n setQuestionResponses(\n getQuestionResponses(\n questions,\n responses.filter((r) => r.answers.length > 0)\n )\n );\n return;\n } else if(survey.surveyAccess && survey.mode && survey.surveyType) {\n const questions = survey.qualitativeData[moderatedCallIndex]?.questions;\n const responses = survey.qualitativeData[moderatedCallIndex]?.responses;\n setQuestionResponses(\n getQuestionResponses(\n questions,\n responses.filter((r) => r.answers.length > 0)\n )\n );\n setAnswered(responses.filter((a) => a.answers.length > 0).length)\n return\n }\n setAnswered(survey.responses.filter((a) => a.answers.length > 0).length);\n const questions = survey.questions;\n const responses = survey.responses;\n setQuestionResponses(\n getQuestionResponses(\n questions,\n responses.filter((r) => r.answers.length > 0)\n )\n );\n }\n }, [survey, moderatedCallIndex]);\n\n const getQuestionResponses = (questions, responses) => {\n return questions.map((question, questionIndex) => {\n if (!question) {\n return;\n }\n const questionData = { ...question };\n switch (true) {\n case questionTypes.type1.indexOf(question.type) > -1:\n break;\n case questionTypes.type2.indexOf(question.type) > -1:\n questionData.comments = responses.map((userAnswer, index) => {\n return userAnswer.answers[questionIndex];\n });\n break;\n case questionTypes.type3.indexOf(question.type) > -1:\n switch (true) {\n case [\"multiChoices\", \"checkBoxes\"].indexOf(question.type) > -1:\n questionData.options = questionData.options.multiChoices.map(\n (choice) => {\n return { ...choice, answered: 0, label: choice.label };\n }\n );\n break;\n case [\"imageMultiChoices\", \"imageCheckBoxes\"].indexOf(\n question.type\n ) > -1:\n questionData.options = questionData.options.imageMultiChoices.map(\n (choice) => {\n return {\n ...choice,\n answered: 0,\n label: choice.imageLabel,\n };\n }\n );\n break;\n case [\"videoMultiChoices\", \"videoCheckBoxes\"].indexOf(\n question.type\n ) > -1:\n questionData.options = questionData.options.videoMultiChoices.map(\n (choice) => {\n return {\n ...choice,\n answered: 0,\n label: choice.videoLabel,\n };\n }\n );\n }\n if (\n [\"checkBoxes\", \"imageCheckBoxes\", \"videoCheckBoxes\"].indexOf(\n question.type\n ) > -1\n ) {\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n userAnswer.answers[questionIndex].map((answer, innerIndex) => {\n questionData.options[answer].answered += 1;\n });\n }\n });\n } else {\n responses.map((userAnswer, index) => {\n if (\n questionData.options?.[\n userAnswer.answers?.[questionIndex]?.[0]\n ] &&\n userAnswer.answers[questionIndex]\n ) {\n questionData.options[\n userAnswer.answers[questionIndex][0]\n ].answered += 1;\n }\n });\n }\n break;\n case questionTypes.type4.indexOf(question.type) > -1:\n let isComplex = false;\n switch (question.type) {\n case \"stars\":\n questionData.totalStar = questionData.options.stars;\n questionData.options = [\n {\n starType: questionData.options.starType,\n label: \"\",\n answered: new Array(questionData.totalStar).fill(0),\n },\n ];\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n questionData.options[0].answered[\n userAnswer.answers[questionIndex][0] - 1\n ] += 1;\n }\n });\n break;\n case \"likert\":\n questionData.totalStar = questionData.options.likertRange;\n questionData.options = [\n {\n label: \"\",\n answered: new Array(questionData.totalStar).fill(0),\n },\n ];\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n questionData.options[0].answered[\n userAnswer.answers[questionIndex][0] - 1\n ] += 1;\n }\n });\n break;\n case \"dropDown\":\n questionData.totalStar = questionData.options.range;\n questionData.options = [\n {\n label: \"\",\n answered: new Array(questionData.totalStar).fill(0),\n },\n ];\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n questionData.options[0].answered[\n userAnswer.answers[questionIndex][0] - 1\n ] += 1;\n }\n });\n break;\n case \"imageStarRatingChoices\":\n questionData.totalStar = questionData.options.imageStar;\n questionData.options = questionData.options.imageStarRatingChoices.map(\n (choice) => {\n return {\n ...choice,\n answered: new Array(questionData.totalStar).fill(0),\n label: choice.imageLabel,\n };\n }\n );\n isComplex = true;\n break;\n case \"videoStarRatingChoices\":\n questionData.totalStar = questionData.options.videoStar;\n questionData.options = questionData.options.videoStarRatingChoices.map(\n (choice) => {\n return {\n ...choice,\n answered: new Array(questionData.totalStar).fill(0),\n label: choice.videoLabel,\n };\n }\n );\n isComplex = true;\n break;\n }\n if (isComplex) {\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n const answers = Object.values(\n userAnswer.answers[questionIndex][0]\n );\n answers.map((answer, index) => {\n questionData.options[index].answered[answer - 1] += 1;\n });\n }\n });\n }\n break;\n case questionTypes.type6.indexOf(question.type) > -1:\n const totalSum = responses.reduce((sum, userAnswer) => {\n if (userAnswer.answers[questionIndex]) {\n return sum + userAnswer.answers[questionIndex][0];\n } else {\n return sum;\n }\n }, 0);\n const responseArr = responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n return userAnswer.answers[questionIndex][0];\n }\n });\n questionData.options = [\n {\n // min: parseInt(question.options.sliderMin),\n // max: parseInt(question.options.sliderMax),\n min:\n responseArr.length > 0 && responseArr instanceof Number\n ? min(responseArr)\n : 0,\n max:\n responseArr.length > 0 && responseArr instanceof Number\n ? max(responseArr)\n : 0,\n median:\n responseArr.length > 0 && responseArr instanceof Number\n ? median(responseArr)\n : 0,\n sd:\n responseArr.length > 0 && responseArr instanceof Number\n ? std(responseArr)\n : 0,\n label: questionData.text,\n answered:\n responseArr.length > 0 ? totalSum / responses.length : 0,\n totalNumber: totalSum,\n },\n ];\n break;\n case questionTypes.type7.indexOf(question.type) > -1:\n questionData.options = [\n {\n label: \"Detractors(0-6)\",\n answered: 0,\n },\n {\n label: \"Passives(7-8)\",\n answered: 0,\n },\n {\n label: \"Promoters(9-10)\",\n answered: 0,\n },\n ];\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n const userResponse = userAnswer.answers[questionIndex][0];\n switch (true) {\n case userResponse >= 0 && userResponse <= 6:\n questionData.options[0].answered += 1;\n break;\n case userResponse === 7 || userResponse === 8:\n questionData.options[1].answered += 1;\n break;\n case userResponse === 9 || userResponse === 10:\n questionData.options[2].answered += 1;\n break;\n }\n }\n });\n const detractors = Math.round(\n (questionData.options[0].answered / responses.length) * 100\n );\n const promoters = Math.round(\n (questionData.options[2].answered / responses.length) * 100\n );\n questionData.NPS = promoters - detractors;\n break;\n case questionTypes.type8.indexOf(question.type) > -1:\n let isRanking = false;\n let labels = [];\n let label = null;\n let choices = null;\n switch (question.type) {\n case \"ranking\":\n isRanking = true;\n label = \"label\";\n choices = \"multiChoices\";\n break;\n case \"imageRanking\":\n isRanking = true;\n label = \"imageLabel\";\n choices = \"imageMultiChoices\";\n break;\n case \"videoRanking\":\n isRanking = true;\n label = \"videoLabel\";\n choices = \"videoMultiChoices\";\n break;\n case \"association\":\n isRanking = false;\n label = \"label\";\n choices = \"associationChoices\";\n break;\n case \"imageAssociation\":\n isRanking = false;\n label = \"imageData\";\n choices = \"imageAssociationChoices\";\n break;\n case \"videoAssociation\":\n isRanking = false;\n label = \"videoData\";\n choices = \"videoAssociationChoices\";\n break;\n }\n const length = question.options[choices].length;\n questionData.totalStar = length;\n questionData.options = question.options[choices].map(\n (choice, index) => {\n if (isRanking) {\n labels.push(choice[label]);\n } else {\n labels.push(choice.association);\n }\n return {\n ...choice,\n answered: new Array(length).fill(0),\n label: isRanking ? choice[label] : GetFilename(choice[label]),\n };\n }\n );\n responses.map((userAnswer, index) => {\n if (userAnswer.answers[questionIndex]) {\n userAnswer.answers[questionIndex].map((answer, rank) => {\n if (\n isRanking &&\n questionData.options[labels.indexOf(answer[label])]\n ) {\n questionData.options[labels.indexOf(answer[label])].answered[\n rank\n ] += 1;\n } else {\n if (answer.association) {\n questionData.options[\n labels.indexOf(answer.association)\n ].answered[rank] += 1;\n }\n questionData.labels = labels;\n }\n });\n }\n });\n break;\n }\n return questionData;\n });\n };\n\n console.log(\"Admin Questions\", adminQuestions);\n console.log(\"isFilterActive\", isFilterActive);\n\n // From: https://stackoverflow.com/questions/511761/js-function-to-get-filename-from-url\n function GetFilename(url) {\n if (url) {\n var m = url.toString().match(/.*\\/(.+?)\\./);\n if (m && m.length > 1) {\n return m[1];\n }\n }\n return url;\n }\n\n const getQuestion = (id) => {\n return adminQuestions.filter((e) => e[\"_id\"] === id)[0];\n };\n\n const getFilteredUsers = () => {\n if(!surveyData.surveyAccess){\n const users = surveyData.responses.map((response) => response.userId);\n const finalUsers = filterUsers(criteria, users);\n const userIds = finalUsers.map((user, index) => user._id);\n console.log(\"refinedUserIds\", userIds, criteria);\n const refinedSurvey = { ...surveyData };\n refinedSurvey.responses = surveyData.responses.filter(\n (response, index) => userIds.indexOf(response.userId._id) > -1\n );\n setCriteriaData(prepareFilterCriteriaData(criteria));\n setSurvey(refinedSurvey);\n } else {\n setSurvey({...surveyData})\n }\n };\n\n const applyCriteria = () => {\n const newCriteria = [];\n for (const key of activeKeys) {\n if (filterAnswers[key].length === 0) {\n continue;\n }\n const isAge =\n adminQuestions.find((q) => q._id === key)?.questionObject\n ?.questionType === \"age\";\n const answer = filterAnswers[key].map((a) =>\n isAge ? a.split(\",\").map((age) => parseInt(age, 10)) : a\n );\n newCriteria.push({\n questionId: key,\n answer,\n });\n }\n\n setCriteria(newCriteria);\n };\n\n const applyCompareFilter = () => {\n for (const index in compareFilter) {\n const newFilter = [];\n for (const key of compareActiveKeys[index]) {\n if (compareFilterAnswers[index][key].length === 0) {\n continue;\n }\n const isAge =\n adminQuestions.find((q) => q._id === key)?.questionObject\n ?.questionType === \"age\";\n const answer = compareFilterAnswers[index][key].map((a) =>\n isAge ? a.split(\",\").map((age) => parseInt(age, 10)) : a\n );\n newFilter.push({\n questionId: key,\n answer,\n });\n }\n setCompareFilter((prevValue) => ({ ...prevValue, [index]: newFilter }));\n }\n };\n\n const initiateCompare = () => {\n const users = surveyData.responses.map((response) => response.userId);\n const survey1 = getRefinedSurvey(compareFilter[\"1\"], users);\n const survey2 = getRefinedSurvey(compareFilter[\"2\"], users);\n const survey3 = getRefinedSurvey(compareFilter[\"3\"], users);\n setCompareSurvey1(survey1);\n setCompareSurvey2(survey2);\n setCompareSurvey3(survey3);\n setCriteriaData1(prepareFilterCriteriaData(compareFilter[\"1\"]));\n setCriteriaData2(prepareFilterCriteriaData(compareFilter[\"2\"]));\n setCriteriaData3(prepareFilterCriteriaData(compareFilter[\"3\"]));\n setCompareResponse1(\n getQuestionResponses(survey1.questions, survey1.responses)\n );\n setCompareResponse2(\n getQuestionResponses(survey2.questions, survey2.responses)\n );\n setCompareResponse3(\n getQuestionResponses(survey3.questions, survey3.responses)\n );\n };\n\n const prepareFilterCriteriaData = (criteria) => {\n let filterData = [];\n criteria.map((c, index) => {\n const question = getQuestion(c.questionId);\n if (question.questionObject.questionType === \"age\") {\n const answers = c.answer.map((ageArray, index) => {\n return ageArray[0] + \"-\" + ageArray[ageArray.length - 1];\n });\n filterData.push({\n fieldName: question.clientField,\n selectedValues: answers,\n });\n } else {\n const answers = c.answer.map((value, index) => {\n return question.questionObject.options[value];\n });\n filterData.push({\n fieldName: question.clientField,\n selectedValues: answers,\n });\n }\n });\n return filterData;\n };\n\n const getRefinedSurvey = (criteria, users) => {\n if(!surveyData.surveyAccess){\n const finalUsers = filterUsers(criteria, users);\n const userIds = finalUsers.map((user, index) => user._id);\n const refinedSurvey = { ...surveyData };\n refinedSurvey.responses = surveyData.responses.filter(\n (response, index) => userIds.indexOf(response.userId._id) > -1\n );\n return refinedSurvey;\n } else {\n return {...surveyData}\n }\n };\n\n const resetFilterAndCompare = () => {\n setCompareMode(false);\n setCriteria([]);\n setCompareFilter({\n 1: [],\n 2: [],\n 3: [],\n });\n setCompare(false);\n setFilter(false);\n setCriteriaData(null);\n setCriteriaData1(null);\n setCriteriaData2(null);\n setCriteriaData3(null);\n setSurvey(surveyData);\n };\n\n console.log(\"Criteria\", criteria);\n\n return (\n \n \n
    \n \n
    \n Questions\n
    \n { !surveyData.surveyAccess && \n \n \n {\n setCompare(!compare);\n setFilter(false);\n }}\n style={{ fontSize: 14, margin: \"auto\" }}\n />\n {\n setFilter(!filter);\n setCompare(false);\n }}\n />\n
    \n }\n \n \n {questionResponses.map((qstn, index) => {\n return (\n setQuestion(index + 1)}\n >\n \n {index + 1}\n \n \n {qstn.text}\n \n \n );\n })}\n \n \n \n \n
    \n {/* \n {`Question #${question}`}\n */}\n {/* {\n if (question > 1) {\n setQuestion(question - 1);\n }\n }}\n icon={}\n />\n {\n if (true) {\n setQuestion(question + 1);\n }\n }}\n icon={}\n /> */}\n
    \n \n setFilter(false)}\n closable={false}\n headerStyle={{ padding: \"8px 24px\" }}\n title={\"Filter\"}\n destroyOnClose={true}\n width={340}\n extra={\n \n setFilter(false)}\n >\n Cancel\n \n {\n applyCriteria();\n setFilter(false);\n }}\n >\n Apply\n \n \n }\n >\n \n \n setCompare(false)}\n closable={false}\n headerStyle={{ padding: \"8px 24px\" }}\n bodyStyle={{ paddingTop: 0 }}\n title={\"Compare\"}\n destroyOnClose={true}\n width={340}\n extra={\n \n setCompare(false)}\n >\n Cancel\n \n {\n applyCompareFilter();\n setCompare(false);\n setCompareMode(true);\n }}\n >\n Apply\n \n \n }\n >\n \n {compareTabs.map((tab) => (\n \n {\n setCompareActiveKeys((prevValue) => {\n return { ...prevValue, [tab.key]: newActiveKeys };\n });\n }}\n setFilterAnswers={(newFilterAnswers) => {\n setCompareFilterAnswers((prevValue) => {\n return { ...prevValue, [tab.key]: newFilterAnswers };\n });\n }}\n key={`collapseFilter-${tab.key}`}\n />\n \n ))}\n \n \n
    \n {!compareMode &&\n questionResponses &&\n questionResponses[question - 1] && (\n r?.answers?.[question - 1]?.length > 0\n )?.length ?? 0\n }\n question={questionResponses[question - 1]}\n chartAttributes={chartAttributes}\n setChartAttributes={setChartAttributes}\n customize={customize}\n setCustomize={setCustomize}\n />\n )}\n {compareMode && (\n \n {compareResponse1 && compareResponse1[question - 1] && (\n r?.answers?.[question - 1]?.length > 0\n )?.length ?? 0\n }\n question={compareResponse1[question - 1]}\n chartAttributes={chartAttributes}\n setChartAttributes={setChartAttributes}\n customize={customize}\n setCustomize={setCustomize}\n />\n )}\n {compareResponse2 && compareResponse2[question - 1] && (\n r?.answers?.[question - 1]?.length > 0\n )?.length ?? 0\n }\n question={compareResponse2[question - 1]}\n chartAttributes={chartAttributes}\n setChartAttributes={setChartAttributes}\n />\n )}\n {compareResponse3 && compareResponse3[question - 1] && (\n r?.answers?.[question - 1]?.length > 0\n )?.length ?? 0\n }\n question={compareResponse3[question - 1]}\n chartAttributes={chartAttributes}\n setChartAttributes={setChartAttributes}\n />\n )}\n \n )}\n
    \n \n \n
    \n );\n};\n\nexport default QuestionSummary;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport IndividualResponses from \"./IndividualReponses\";\nimport Navbar from \"./Navbar\";\nimport QuestionSummary from \"./QuestionSummary\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport axios, { Routes } from \"../../../services/API\";\nimport styles from \"./result.module.css\";\nimport c from \"classnames/bind\";\nimport ReactToPrint from \"react-to-print\";\nimport { PieChartOutlined, PrinterFilled } from \"@ant-design/icons\";\nimport { Card, Button, Select, Col } from \"antd\";\n\nconst cx = c.bind(styles);\nconst { Option } = Select\n\nconst Result = ({ id, surveys }) => {\n const [selectedTab, setSelectedTab] = useState(\"1\");\n const [surveyData, setSurveyData] = useState(null);\n const [adminQuestions, setAdminQuestions] = useState(null);\n const [criteria, setCriteria] = useState([]);\n const [selectedGroup, setSelectedGroup] = useState(null);\n const questionComponentRef = useRef(null);\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.others.adminQuestions();\n try {\n const { data } = await axios[method](url);\n if (data) {\n setAdminQuestions(data.adminQuestions);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, []);\n \n console.log(\"refinedSurvey\", surveyData);\n\n return (\n \n \n s.isPublished)}\n surveyData={surveyData}\n setSurveyData={setSurveyData}\n questionComponentRef={questionComponentRef}\n >\n {surveyData == null ? (\n \n \n \n Select survey to view results\n \n \n ) : (\n <>\n \n
    \n
    \n {surveyData.name}\n
    \n
    \n (\n \n Print Survey\n \n )}\n bodyClass={cx(\"print-body\")}\n content={() => questionComponentRef.current}\n >\n
    \n
    \n
    \n
    \n
    \n Survey type\n
    \n
    \n {surveyData.surveyType\n ? \"Qualitative\" +\n \" / \" +\n (surveyData.mode ? \"Moderated\" : \"Un Moderated\")\n : \"Quantitative\"}\n
    \n
    \n
    \n
    \n Published on\n
    \n
    \n {new Date(surveyData.createdAt)\n .toString()\n .split(\" \")\n .map((stringPart, index) => {\n if (index <= 4) {\n return {stringPart} ;\n }\n })}{\" \"}\n IST\n
    \n
    \n
    \n
    \n Participants\n
    \n
    \n Completed\n {\" \" +\n surveyData.responses.length +\n \" / \" +\n surveyData.numberOfParticipants}\n
    \n
    \n
    \n {\n surveyData.surveyAccess && surveyData.mode && surveyData.surveyType &&\n
    \n \n {surveyData.qualitativeData.map((group, i) => (\n \n Group {i}\n \n ))}\n \n
    \n }\n \n {\n setSelectedTab(\"1\");\n }}\n >\n Question Summaries\n \n {\n setSelectedTab(\"2\");\n }}\n >\n Individual Responses\n \n \n {\n (() => {\n if (surveyData.surveyAccess && surveyData.mode && surveyData.surveyType) {\n if(selectedGroup !== null) return
    \n {selectedTab === \"1\" ? (\n \n ) : (\n \n )}\n
    \n else return
    Please select call
    \n }\n else \n return
    \n {selectedTab === \"1\" ? (\n \n ) : (\n \n )}\n
    \n })()\n}\n\n
    \n \n )}\n
    \n
    \n );\n};\n\nexport default Result;\n","import React, { useState } from \"react\";\nimport axios, { Routes } from \"../../../services/API\";\nimport logo from \"../../../logo.svg\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport { getRoleByToken } from \"../../../utils\";\n\nfunction Account() {\n const [addBalance, setBalance] = useState(2000);\n function loadScript(src) {\n return new Promise((resolve) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = () => {\n resolve(true);\n };\n script.onerror = () => {\n resolve(false);\n };\n document.body.appendChild(script);\n });\n }\n async function displayRazorpay() {\n const res = await loadScript(\n \"https://checkout.razorpay.com/v1/checkout.js\"\n );\n\n if (!res) {\n alert(\"Razorpay SDK failed to load. Are you online?\");\n return;\n }\n const options = {\n key: \"rzp_test_wIjrjqqlDLfHKq\",\n amount: addBalance * 100,\n currency: \"INR\",\n name: \"UserQual\",\n description: \"Adding Balance To UserQual Account\",\n image: { logo },\n handler: async function (response) {\n try {\n const userId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { data } = await axios({\n ...Routes.client.addBalance(userId),\n data: {\n data: {\n amount: addBalance,\n paymentId: response.razorpay_payment_id,\n },\n },\n });\n } catch (err) {\n handleNetworkErrors(err);\n }\n console.log({\n razorpayPaymentId: response.razorpay_payment_id,\n razorpayOrderId: response.razorpay_order_id,\n razorpaySignature: response.razorpay_signature,\n });\n },\n prefill: {\n name: \"Soumya Dey\", //here the users details will come\n email: \"SoumyaDey@example.com\",\n contact: \"9999999999\",\n },\n theme: {\n color: \"#61dafb\",\n },\n };\n const paymentObject = new window.Razorpay(options);\n paymentObject.open();\n }\n\n return (\n
    \n
    \n \"logo\"\n setBalance(e.target.value)}\n />\n \n
    \n
    \n );\n}\n\nexport default Account;\n","import React, { useState } from \"react\";\nimport { Modal, Input, Button } from \"antd\";\nimport { notify } from \"../../utils\";\n\nconst AccountModal = ({ open = false, onSave }) => {\n const [accountName, setAccountName] = useState(\"\");\n\n return (\n \n \n Welcome to UserQual\n \n \n Create your account\n \n
    \n \n Account Name\n

    \n setAccountName(e.target.value)}\n placeholder=\"Enter account name\"\n />\n \n You can change this later.\n

    \n
    \n \n {\n if (accountName) {\n onSave(accountName);\n } else {\n notify(\"error\", \"Error\", \"Account name cannot be empty\");\n }\n }}\n style={{\n color: \"white\",\n backgroundColor: \"#00c194\",\n borderRadius: 5,\n border: \"none\",\n textTransform: \"uppercase\",\n }}\n >\n Save\n \n \n \n );\n};\n\nexport default AccountModal;\n","import axios, { Routes } from \"../services/API\";\nimport { set } from \"automate-redux\";\nimport { getRoleByToken } from \"../utils\";\n\nconst { client } = Routes;\n\nconst dateSort = (a, b) => {\n const d1 = new Date(a.updatedAt);\n const d2 = new Date(b.updatedAt);\n return d2.getTime() - d1.getTime();\n};\n\nexport const updateSurveysAction = () => async (dispatch, getState) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = client.getSurveys(id);\n try {\n const { data } = await axios[method](url);\n if (data) {\n dispatch(setSurveysAction(data.surveys.sort((a, b) => dateSort(a, b))));\n }\n } catch (err) {\n throw err;\n }\n};\n\nexport const updateSurveyAction = (survey) => async (dispatch, getState) => {\n if (survey) {\n dispatch(setSurveyAction(survey));\n }\n};\n\nexport const updateSurveysFromStoreAction = () => async (\n dispatch,\n getState\n) => {\n const survey = getState().client.survey;\n const remainingSurveys = getState().client.surveys.filter(\n (s) => s[\"_id\"] !== survey[\"_id\"]\n );\n dispatch(setSurveysAction([survey, ...remainingSurveys]));\n dispatch(editSurveyAction(survey));\n};\n\nexport const generateNewSurveyAction = (projectId) => async (\n dispatch,\n getState\n) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = client.createSurvey(id, projectId);\n try {\n const surveys = getState().client.surveys;\n const { data } = await axios[method](url);\n if (data) {\n dispatch(setSurveysAction([data.survey, ...surveys]));\n return data.survey[\"_id\"];\n }\n } catch (err) {\n throw err;\n }\n};\n\nexport const editSurveyAction = (survey) => async (dispatch, getState) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n if (survey && survey[\"_id\"]) {\n const { url, method } = client.editSurvey(id, survey[\"_id\"]);\n try {\n await axios[method](url, { data: survey });\n } catch (err) {\n throw err;\n }\n }\n};\n\nexport const deleteSurveyAction = (surveyId) => async (dispatch, getState) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = client.deleteSurvey(id, surveyId);\n const { data } = await axios[method](url);\n if (data) {\n dispatch(updateSurveysAction());\n const surveys = getState().client.surveys.filter(\n (s) => s[\"_id\"] !== surveyId\n );\n dispatch(setSurveysAction(surveys));\n }\n};\n\nexport const getSurveyAction = (surveyId) => (dispatch, getState) => {\n const surveys = getState().client.surveys;\n if (surveys && surveys.length > 0) {\n return surveys.filter((s) => s && s[\"_id\"] === surveyId)[0];\n }\n return null;\n};\n\nexport const copySurveyAction = (survey, projectId) => async (\n dispatch,\n getState\n) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { url, method } = client.createSurvey(id, projectId);\n const surveys = getState().client.surveys;\n try {\n const { data } = await axios[method](url);\n if (data && data.survey) {\n const surveyId = data.survey[\"_id\"];\n data.survey = { ...survey };\n data.survey[\"_id\"] = surveyId;\n if (data.survey.name !== undefined && data.survey.name !== \"\") {\n const copyName = \"Copy_\" + data.survey.name;\n data.survey.name = copyName;\n } else data.survey.name = \"Copy_undefined\";\n await axios[client.editSurvey(id, surveyId).method](\n client.editSurvey(id, surveyId, true).url,\n {\n data: data.survey,\n }\n );\n dispatch(setSurveysAction([data.survey, ...surveys]));\n }\n } catch (err) {\n throw err;\n }\n};\n\nexport const getSignedRequest = (file) => async () => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.uploadFile(id),\n data: { data: { ...file } },\n });\n console.log(data);\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const getProfile = () => async (dispatch) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.getProfile(id),\n });\n dispatch(setProfile({ ...data.client, accessLevel: data.accessLevel }));\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const editProfile = (values) => async (dispatch) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n if (!values || !Object.keys(values)?.length) {\n return await dispatch(getProfile());\n }\n const { data } = await axios({\n ...Routes.client.editProfile(id),\n data: { data: values },\n });\n dispatch(setProfile({ ...data.client, accessLevel: data.accessLevel }));\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const createAccount = (values) => async (dispatch) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.createAccount(id),\n data: { data: values },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const updateAccountName = (values) => async (dispatch) => {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.client.updateAccountName(id),\n data: { data: values },\n });\n return data.message;\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Email\nexport const sendEmail = (email) => async (dispatch) => {\n try {\n await axios({\n ...Routes.verification.sendEmail(email, \"client\"),\n });\n dispatch(editProfile({ email }));\n } catch (err) {\n throw err.toString();\n }\n};\n\n// OTP\nexport const sendOtp = (mobileNumber) => async () => {\n try {\n await axios({\n ...Routes.verification.sendOTP(mobileNumber),\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const verifyOtp = (mobileNumber, OTP) => async (dispatch) => {\n try {\n await axios({\n ...Routes.verification.verifyOTP(),\n data: {\n data: {\n mobileNumber,\n OTP,\n role: \"client\",\n isMobileNumberVerified: true,\n },\n },\n });\n dispatch(editProfile({ mobileNumber, isMobileNumberVerified: true }));\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const createProjectAction = (projectName) => async (dispatch) => {\n try {\n const id =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n const { data } = await axios({\n ...Routes.client.createProject(id),\n data: { data: { projectName } },\n });\n\n return data.project;\n } catch (err) {\n throw err;\n }\n};\n\nexport const getProjectAction = (projectId) => async (dispatch) => {\n try {\n const clientId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"client\"\n ? localStorage.getItem(\"client\")\n : \"\";\n\n const { data } = await axios({\n ...Routes.client.getProject(clientId, projectId),\n });\n\n return data;\n } catch (err) {\n throw err.toString();\n }\n};\n\nconst setSurveysAction = (data) => set(`client.surveys`, data);\nconst setSurveyAction = (data) => set(`client.survey`, data);\nconst setProfile = (data) => set(`client.profile`, data);\n","import React, { useEffect, useState } from \"react\";\nimport ProjectPageLayout, {\n InnerContainer,\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport { Row, Col, Table, Button, notification } from \"antd\";\nimport axios, { Routes } from \"../../../services/API\";\nimport \"../../../components/responsive-table/responsive-table.css\";\nimport handleNetworkErrors from \"../handleNetworkErrors\";\nimport moment from \"moment\";\nimport ShareSurveyModal from \"../published-survey/Modals/ShareSurveyModal/ShareSurveyModal\";\nimport { fetchUsers } from \"../../../utils\";\n\nconst fetchSurveyInfo = async () => {\n const clientId = localStorage.getItem(\"client\");\n const { data } = await axios({\n ...Routes.client.fetchSurveyInfo(clientId),\n });\n\n return data;\n};\n\nconst Requests = ({ accountId }) => {\n const [totalSurveyCount, setTotalSurveyCount] = useState(0);\n const [publishedSurveyCount, setPublishedSurveyCount] = useState(0);\n const [pendingSurveys, setPendingSurveys] = useState([]);\n const [showPublishSurveyModal, setShowPublishSurveyModal] = useState(false);\n const [activeSurvey, setActiveSurvey] = useState(null);\n const [activeSurveyReferToken, setActiveSurveyReferToken] = useState(null);\n const [activeSurveyId, setActiveSurveyId] = useState(null);\n const [accountUsersInfo, setAccountUsersInfo] = useState([]);\n\n useEffect(() => {\n (async () => {\n const users = await fetchUsers(accountId);\n setAccountUsersInfo(users);\n })();\n }, []);\n\n useEffect(() => {\n if (activeSurvey === null) {\n setActiveSurveyReferToken(null);\n setActiveSurveyId(null);\n } else {\n setActiveSurveyReferToken(activeSurvey.referSurveyToken);\n setActiveSurveyId(activeSurvey._id);\n }\n }, [activeSurvey]);\n\n const getName = (clientId) => {\n const user = accountUsersInfo.find((user) => user.clientId === clientId);\n if (!user) return \"\";\n return user.firstName ? user.firstName + \" \" + user.lastName : user.email;\n };\n\n const refetchData = async () => {\n try {\n const data = await fetchSurveyInfo();\n setTotalSurveyCount(data.count.totalSurveys);\n setPublishedSurveyCount(data.count.publishedSurveys);\n setPendingSurveys(data.pendingForApproval);\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const showShareSurveyModal = (survey) => {\n setActiveSurvey(survey);\n setShowPublishSurveyModal(true);\n };\n\n const publishSurveyHandler = async () => {\n await publishSurvey(activeSurveyId);\n setShowPublishSurveyModal(false);\n };\n\n const publishSurvey = async (surveyId) => {\n try {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.publishSurvey(clientId, surveyId),\n });\n await refetchData();\n notification.success({\n message: \"Survey published successfully.\",\n });\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const rejectSurvey = async (surveyId) => {\n try {\n const clientId = localStorage.getItem(\"client\");\n await axios({\n ...Routes.client.rejectSurvey(clientId, surveyId),\n });\n await refetchData();\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const columns = [\n {\n title: \"Sr. no.\",\n key: \"no\",\n align: \"center\",\n width: \"4%\",\n render: (text, record, index) => {index + 1},\n },\n {\n title: \"Survey Name\",\n key: \"survey_name\",\n align: \"left\",\n dataIndex: \"name\",\n width: \"20%\",\n },\n {\n title: \"Survey Type\",\n key: \"survey_type\",\n align: \"left\",\n render: (text, record) => (record.surveyType ? \"Qual\" : \"Quant\"),\n width: \"10%\",\n },\n {\n title: \"Created By\",\n key: \"created_by\",\n align: \"left\",\n render: (text, record) => {getName(record.clientId)},\n width: \"12%\",\n },\n {\n title: \"Published By\",\n key: \"published_by\",\n align: \"left\",\n render: (text, record) => (\n {getName(record.publisherId || record.clientId)}\n ),\n width: \"12%\",\n },\n {\n title: \"Created date\",\n key: \"createdDate\",\n align: \"left\",\n dataIndex: \"createdAt\",\n render: (text) => moment(text).format(\"DD/MM/YYYY\"),\n width: \"10%\",\n },\n {\n title: \"Action\",\n key: \"action\",\n align: \"center\",\n width: \"30%\",\n render: (text, record) => (\n \n {\n rejectSurvey(record._id);\n }}\n >\n Reject\n \n {\n showShareSurveyModal(record);\n }}\n >\n Publish\n \n \n ),\n },\n ];\n\n useEffect(() => {\n document.body.setAttribute(\"data-new-theme\", true);\n\n return () => {\n document.body.removeAttribute(\"data-new-theme\");\n };\n }, []);\n\n useEffect(() => {\n let fetching = true;\n fetchSurveyInfo().then((data) => {\n if (fetching) {\n setTotalSurveyCount(data.count.totalSurveys);\n setPublishedSurveyCount(data.count.publishedSurveys);\n setPendingSurveys(data.pendingForApproval);\n }\n });\n\n return () => {\n fetching = false;\n };\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n \n

    Publish Survey

    \n
    Manage publish status for all surveys
    \n \n
    \n \n \n \n \n \n \n {pendingSurveys.length}\n \n
    \n Pending for approval\n
    \n \n \n \n \n \n {publishedSurveyCount}\n \n
    Surveys published
    \n \n \n \n \n \n {totalSurveyCount}\n \n
    Total surveys
    \n \n \n
    \n \n \n \n \n
    \n \n setShowPublishSurveyModal(false)}\n isPublish={true}\n isVisible={showPublishSurveyModal}\n surveyToken={activeSurveyReferToken}\n />\n
    \n
    \n \n );\n};\n\nexport default Requests;\n","import React, { useCallback, useEffect } from \"react\";\nimport { Switch, Route, useHistory } from \"react-router-dom\";\nimport Topbar from \"../../components/topbar/Topbar\";\nimport Sidenav from \"../../components/client/sidenav/Sidenav\";\nimport DraftForms from \"./draft/DraftForms\";\nimport Project from \"./project/Project\";\nimport NewSurvey from \"./new-survey/NewSurvey\";\nimport PublishedForms from \"./published-survey/PublishedForms\";\nimport Profile from \"../user/profile/Profile\";\nimport Settings from \"../user/settings/Settings\";\nimport History from \"../user/history/History\";\nimport Result from \"./result\";\nimport AddBalance from \"./account\";\nimport AccountModal from \"./AccountModal\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../utils\";\nimport {\n updateSurveysAction,\n generateNewSurveyAction,\n deleteSurveyAction,\n getSurveyAction,\n updateSurveyAction,\n copySurveyAction,\n updateSurveysFromStoreAction,\n getProfile,\n editProfile,\n sendEmail,\n sendOtp,\n verifyOtp,\n createAccount,\n updateAccountName as updateAccountNameAction,\n createProjectAction,\n getProjectAction,\n} from \"../../actions/client\";\nimport handleNetworkErrors from \"./handleNetworkErrors\";\nimport { ACCESS_LEVEL } from \"../../constants\";\nimport Requests from \"./requests/Requests\";\n\nconst Client = () => {\n const history = useHistory();\n const surveys = useSelector((state) => state.client.surveys);\n const profile = useSelector((state) => state.client.profile);\n const dispatch = useDispatch();\n\n const isAdmin = profile?.accessLevel === ACCESS_LEVEL.admin;\n\n const generateNewSurvey = useCallback(\n (projectId) => {\n incrementPendingRequests();\n dispatch(generateNewSurveyAction(projectId))\n .then((id) => {\n setTimeout(() => history.push(`/client/new-survey/${id}`), 5);\n })\n .catch((err) => {\n if (err.request || err.response) handleNetworkErrors(err);\n })\n .finally(() => decrementPendingRequests());\n // eslint-disable-next-line\n },\n [dispatch]\n );\n\n const updateSurveys = useCallback(() => {\n incrementPendingRequests();\n dispatch(updateSurveysAction())\n .then()\n .catch((err) => {\n if (err.request || err.response) handleNetworkErrors(err);\n })\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n const updateSurvey = useCallback(\n (survey) => {\n dispatch(updateSurveyAction(survey));\n },\n [dispatch]\n );\n\n const deleteSurvey = useCallback(\n (surveyId) => {\n incrementPendingRequests();\n dispatch(deleteSurveyAction(surveyId))\n .then(() => notify(\"success\", \"Success\", \"Survey deleted\"))\n .catch((err) => {\n if (err.request || err.response) handleNetworkErrors(err);\n })\n .finally(() => decrementPendingRequests());\n },\n [dispatch]\n );\n\n const getSurvey = useCallback(\n async (id) => {\n return dispatch(getSurveyAction(id));\n },\n [dispatch]\n );\n\n const copySurvey = useCallback(\n (survey, projectId) => {\n incrementPendingRequests();\n dispatch(copySurveyAction(survey, projectId)).then(() => {\n decrementPendingRequests();\n dispatch(updateSurveysAction());\n notify(\"success\", \"Success\", \"Survey copied\");\n });\n },\n [dispatch]\n );\n\n const newSurveyCleanUp = useCallback(() => {\n dispatch(updateSurveysFromStoreAction()).catch((err) => {\n console.log(err);\n if (err.request || err.response) handleNetworkErrors(err);\n });\n }, [dispatch]);\n\n const handleEditProfile = (values) => {\n incrementPendingRequests();\n dispatch(editProfile(values))\n .then(() => notify(\"success\", \"Success\", \"Profile edited\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const updateAccountName = async (name) => {\n incrementPendingRequests();\n try {\n await dispatch(\n updateAccountNameAction({\n accountId: profile?.account?._id,\n accountName: name,\n })\n );\n } catch (err) {\n notify(\"error\", \"Error\", \"Failed to update account name\");\n } finally {\n decrementPendingRequests();\n }\n };\n\n const handleSendEmail = async (email) => {\n incrementPendingRequests();\n dispatch(sendEmail(email))\n .then(() =>\n notify(\n \"success\",\n \"Email sent!\",\n \"Please click on the link sent to your email to verify it.\"\n )\n )\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleSendOtp = (mobileNumber) => {\n return new Promise((resolve, reject) => {\n incrementPendingRequests();\n dispatch(sendOtp(mobileNumber))\n .then(() => {\n notify(\n \"success\",\n \"OTP sent!\",\n \"Please verify the OTP sent on your mobile\"\n );\n resolve();\n })\n .catch((ex) => {\n notify(\"error\", \"Error\", ex);\n reject();\n })\n .finally(() => decrementPendingRequests());\n });\n };\n\n const handleCreateAccount = (accountName) => {\n return new Promise((resolve, reject) => {\n incrementPendingRequests();\n dispatch(createAccount({ clientId: profile._id, accountName }))\n .then(() => {\n notify(\"success\", \"Account Created\", \"Account created successfully\");\n return dispatch(getProfile());\n })\n .then(() => {\n resolve();\n })\n .catch((ex) => {\n notify(\"error\", \"Error\", ex);\n reject();\n })\n .finally(() => decrementPendingRequests());\n });\n };\n\n const handleVerifyOtp = (value, mobileNumber) => {\n return new Promise((resolve, reject) => {\n incrementPendingRequests();\n dispatch(verifyOtp(mobileNumber, value))\n .then(() => {\n notify(\"success\", \"Success\", \"OTP Verified\");\n resolve();\n })\n .catch((ex) => {\n notify(\"error\", \"Error\", \"Wrong OTP. Please enter the correct OTP.\");\n reject();\n })\n .finally(() => decrementPendingRequests());\n });\n };\n\n const createProject = async (projectName) => {\n try {\n incrementPendingRequests();\n const project = await dispatch(createProjectAction(projectName));\n setTimeout(() => {\n history.push(`/client/project/${project._id}`);\n }, 5);\n notify(\"success\", \"Success\", \"Project created successfully\");\n } catch (err) {\n notify(\"error\", \"Error\", err.message);\n } finally {\n decrementPendingRequests();\n }\n };\n\n const getProject = useCallback(\n async (projectId) => await dispatch(getProjectAction(projectId)),\n [dispatch]\n );\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(updateSurveysAction())\n .then()\n .catch((err) => {\n if (err.request || err.response) handleNetworkErrors(err);\n })\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getProfile())\n .catch((err) => notify(\"error\", \"Error\", err))\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n return (\n \n \n \n \n \n \n (\n \n )}\n />\n (\n \n )}\n />\n (\n s.isPublished)}\n updateSurveys={updateSurveys}\n {...props}\n profile={profile ? profile : {}}\n />\n )}\n />\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n \n )}\n />\n \n {!!profile && !profile.account && (\n \n )}\n \n );\n};\n\nexport default Client;\n","import React from \"react\";\nimport { adminPages } from \"../../../constants\";\nimport { Link, useHistory } from \"react-router-dom\";\n\nexport const SidenavItem = (props) => {\n return (\n {\n if (props.onClick) props.onClick();\n }}\n className={props.active ? \"sidenav-item active\" : \"sidenav-item\"}\n >\n {props.children}\n \n );\n};\n\nconst Sidenav = ({ drawer, selectedItem }) => {\n const history = useHistory();\n const className = drawer ? \"sidenav-drawer\" : \"sidenav\";\n return (\n
    \n \n \n Registration Questions\n \n \n \n \n Sample Questions\n \n \n \n \n Additional Questions\n \n \n \n \n Surveys\n \n \n \n \n Influencers\n \n \n \n \n Clients\n \n \n \n \n Pricing\n \n \n \n \n Features\n \n \n {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"admin\");\n history.push(\"/signin/admin\");\n }}\n >\n Logout\n \n
    \n );\n};\n\nexport default Sidenav;\n","import React, { useState } from \"react\";\nimport \"./question-textbox.css\";\nimport { Input, Row, Col, Select, Button, Form, Tooltip } from \"antd\";\nimport { CheckOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\n\nconst QuestionTextbox = ({\n selectOptions,\n isOptionSelected,\n buttonText,\n onButtonClick,\n isButtonActive,\n onSelectChange,\n}) => {\n const [value, setValue] = useState();\n return (\n \n \n \n setValue(e.target.value)}\n style={{ resize: \"none\", paddingRight: 20 }}\n className=\"input-border\"\n />\n \n \n {value ? (\n \n ) : (\n \n \n \n )}\n \n \n \n \n \n {selectOptions.map((opt) => (\n \n {opt.label}\n \n ))}\n \n \n \n {buttonText}\n \n \n \n );\n};\n\nexport default QuestionTextbox;\n","import React, { useState } from \"react\";\nimport \"./choice-input-box.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\n\nconst ChoiceInputBox = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxesSpecial\" && (\n \n )}\n \n \n );\n};\n\nexport default ChoiceInputBox;\n","import React, { useState } from \"react\";\nimport \"./TwoChoiceInputBox.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\n\nconst TwoChoiceInputBox = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default TwoChoiceInputBox;\n","import React, { Fragment, useState } from \"react\";\nimport \"./abTextTypeQuestion.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { COLOR } from \"../../../constants\";\n\nconst ABTextTypeQuestion = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n isSumHundred,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n // console.log(isCorrect);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n \n %\n \n \n \n ) : (\n \n \n %\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default ABTextTypeQuestion;\n","import React, { useState } from \"react\";\nimport \"./imageMultiChoiceInput.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport CustomButton from \"../../button/Button\";\n\nconst ImageMultiChoiceInput = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload File\n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default ImageMultiChoiceInput;\n","import React, { useState } from \"react\";\nimport \"./videoMultiChoiceInput.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport CustomButton from \"../../button/Button\";\n\nconst VideoMultiChoiceInput = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload File\n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default VideoMultiChoiceInput;\n","import React, { Fragment, useState } from \"react\";\nimport \"./imageABTest.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { COLOR } from \"../../../constants\";\nimport CustomButton from \"../../button/Button\";\n\nconst ImageABTest = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n isSumHundred,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n // console.log(isCorrect);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload File\n \n \n \n \n \n %\n \n \n \n ) : (\n \n \n %\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default ImageABTest;\n","import React, { Fragment, useState } from \"react\";\nimport \"./videoABTest.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { COLOR } from \"../../../constants\";\nimport CustomButton from \"../../button/Button\";\n\nconst VideoABTest = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n isSumHundred,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n // console.log(isCorrect);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload File\n \n \n \n \n \n %\n \n \n \n ) : (\n \n \n %\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default VideoABTest;\n","import React, { useState } from \"react\";\nimport \"./imageAssociation.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport CustomButton from \"../../button/Button\";\n\nconst ImageAssociation = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload Image\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default ImageAssociation;\n","import React, { useState } from \"react\";\nimport \"./videoAssociation.css\";\nimport { Input, Row, Col, Form, Checkbox, Tooltip } from \"antd\";\nimport {\n CheckOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport CustomButton from \"../../button/Button\";\n\nconst VideoAssociation = (props) => {\n // Props\n const {\n dragHandleProps,\n choiceNumber,\n questionType,\n field,\n isFilled,\n addChoice,\n removeChoice,\n totalChoices,\n } = props;\n\n // Component states\n const [isChoiceNumberShown, setIsChoiceNumberShown] = useState(true);\n\n return (\n setIsChoiceNumberShown(false)}\n onMouseLeave={() => setIsChoiceNumberShown(true)}\n >\n \n {isChoiceNumberShown ? (\n {choiceNumber}\n ) : (\n \n )}\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload Video\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n addChoice(choiceNumber)}\n className=\"action-icon\"\n />\n {totalChoices > 2 && (\n removeChoice(choiceNumber)}\n />\n )}\n {questionType === \"checkboxes-special\" && (\n \n )}\n \n \n );\n};\n\nexport default VideoAssociation;\n","import { set } from \"automate-redux\";\nimport axios, { Routes } from \"../services/API\";\nimport admin from \"../services/API/admin\";\nimport { getRoleByToken } from \"../utils\";\n\n// Admin\nexport const signIn = (email, password) => async (dispatch) => {\n const { data } = await axios({\n ...Routes.admin.signin(),\n data: { data: { email, password } },\n });\n dispatch(setTierInfo(data.admin.tierInfo));\n localStorage.setItem(\"token\", data.token);\n localStorage.setItem(\"admin\", data.admin._id);\n};\n\nexport const editAdmin = (newTierInfo) => async (dispatch) => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.editAdmin(localStorageId),\n data: { data: { tierInfo: newTierInfo } },\n });\n dispatch(setTierInfo(newTierInfo));\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const getTierInfo = () => async (dispatch) => {\n try {\n const { data } = await axios({ ...Routes.others.tierInfo() });\n dispatch(setTierInfo(data.tiers));\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Questions\nexport const getAdminQuestions = () => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.admin.getAdminQuestions(localStorageId),\n });\n return data.adminQuestions.sort((a, b) => a.index - b.index);\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const updateAdminQuestions = (adminQuestions) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n const newData = adminQuestions.map((el, index) => ({ ...el, index }));\n console.log(\"ADMINS\", newData);\n await axios({\n ...Routes.admin.updateAdminQuestions(localStorageId),\n data: { data: newData },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const deleteAdminQuestion = (newData) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.updateAdminQuestion(localStorageId, newData._id),\n data: { data: newData },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Surveys\nexport const getSurveys = () => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.admin.getSurveys(localStorageId),\n });\n return data.surveys;\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const publishSurvey = (data) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n // await axios({\n // ...Routes.admin.editSurvey(localStorageId, data._id),\n // data: { data },\n // });\n await axios({ ...Routes.admin.verifySurvey(localStorageId, data._id) });\n } catch (err) {\n return err.toString();\n }\n};\n\n// Influencers\nexport const getInfluencers = () => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.admin.getInfluencers(localStorageId),\n });\n return data.influencers;\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const updateInfluencers = (influencers) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.updateInfluencers(localStorageId),\n data: { data: influencers },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const deleteInfluencer = (influencerId) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.deleteInfluencer(localStorageId, influencerId),\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const getInfluencerCategories = () => async (dispatch) => {\n try {\n const { data } = await axios({\n ...Routes.others.getInfluencerCategories(),\n });\n return data.influencerCategories;\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const editInfluencerCategories = (influencerCategories) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.editAdmin(localStorageId),\n data: { data: { influencerCategories } },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Clients\nexport const getClients = () => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n const { data } = await axios({\n ...Routes.admin.getClients(localStorageId),\n });\n return data.clients;\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const addClient = (data) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.addClient(localStorageId),\n data: { data },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\nexport const editClient = (clientId, data) => async () => {\n const localStorageId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"admin\"\n ? localStorage.getItem(\"admin\")\n : \"\";\n try {\n await axios({\n ...Routes.admin.editClient(localStorageId, clientId),\n data: { data },\n });\n } catch (err) {\n throw err.toString();\n }\n};\n\n// Setters\nconst setTierInfo = (data) => set(`admin.tierInfo`, data);\n","import \"./question-box.css\";\nimport {\n Switch,\n Input,\n Row,\n Col,\n Form,\n InputNumber,\n Popconfirm,\n Tooltip,\n Button,\n Slider,\n Select,\n} from \"antd\";\nimport React, { Fragment, useState } from \"react\";\nimport {\n CheckOutlined,\n CloseCircleOutlined,\n InfoCircleOutlined,\n MenuOutlined,\n PlusCircleFilled,\n HeartOutlined,\n SmileOutlined,\n StarOutlined,\n} from \"@ant-design/icons\";\nimport QuestionTextbox from \"../../question-text-box/QuestionTextbox\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport ChoiceInputBox from \"../choice-input-box/ChoiceInputBox\";\nimport TwoChoiceInputBox from \"../two-choice-input-box/TwoChoiceInputBox\";\nimport { COLOR, urlPattern } from \"../../../constants\";\nimport Dropdown from \"../../dropdown/dropdown\";\nimport ABTextTypeQuestion from \"../a-b-texttypequestion/abTextTypeQuestion\";\nimport CustomButton from \"../../button/Button\";\nimport ImageMultiChoiceInput from \"../imageMultiChoiceInput/imageMultiChoiceInput\";\nimport VideoMultiChoiceInput from \"../videoMultiChoiceInput/videoMultiChoiceInput\";\nimport ImageABTest from \"../imageABTest/imageABTest\";\nimport VideoABTest from \"../videoABTest/videoABTest\";\nimport ImageAssociation from \"../imageAssociation/imageAssociation\";\nimport VideoAssociation from \"../videoAssociation/videoAssociation\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { deleteAdminQuestion } from \"../../../actions/admin\";\nimport { useDispatch } from \"react-redux\";\n\nconst questionTypeOptions = [\n {\n label: \"Multiple Choice\",\n value: \"multipleChoice\",\n },\n {\n label: \"Checkboxes\",\n value: \"checkboxes\",\n },\n {\n label: \"Checkboxes - Special\",\n value: \"checkboxesSpecial\",\n },\n {\n label: \"Location\",\n value: \"location\",\n },\n {\n label: \"Age\",\n value: \"age\",\n },\n {\n label: \"Add link\",\n value: \"addLink\",\n },\n {\n label: \"Likert Scale\",\n value: \"likertScale\",\n },\n {\n label: \"Association\",\n value: \"association\",\n },\n {\n label: \"Text A/B Test\",\n value: \"abTextType\",\n },\n {\n label: \"Text\",\n value: \"text\",\n },\n {\n label: \"Question/Instruction\",\n value: \"questionInstruction\",\n },\n {\n label: \"Star Rating\",\n value: \"starRating\",\n },\n {\n label: \"Image Multichoice\",\n value: \"imageMultiChoice\",\n },\n {\n label: \"Image Multichoice StarRating\",\n value: \"imageMultichoiceStarRating\",\n },\n {\n label: \"Slider\",\n value: \"slider\",\n },\n {\n label: \"Range\",\n value: \"range\",\n },\n {\n label: \"Video Instruction\",\n value: \"videoInstruction\",\n },\n {\n label: \"Video Multichoice StarRating\",\n value: \"videoMultiChoiceStarRating\",\n },\n {\n label: \"Image A/B Test\",\n value: \"imageABTest\",\n },\n {\n label: \"Video A/B Test\",\n value: \"videoABTest\",\n },\n {\n label: \"Image Association\",\n value: \"imageAssociation\",\n },\n {\n label: \"Video Association\",\n value: \"videoAssociation\",\n },\n];\n\nconst QuestionTypeCheckbox = ({ value, onChange }) => (\n \n checked ? onChange(\"profile\") : onChange(\"non-profile\")\n }\n />\n);\n\nconst QuestionBox = (props) => {\n // Props\n const {\n removeQuestion,\n addQuestion,\n onChange,\n value,\n questionNumber,\n dragHandleProps,\n displayAt,\n } = props;\n\n const dispatch = useDispatch();\n const [form] = Form.useForm();\n\n // Component states\n const [isQuestionNumberShown, setIsQuestionNumberShown] = useState(true);\n const [isAddNewQuestionIconShown, setIsAddNewQuestionIconShown] = useState(\n false\n );\n const [clientCriteria, setClientCriteria] = useState(\n !!(value && value.clientField)\n );\n const [range, setRange] = useState(\"3\");\n const [questionType, setQuestionType] = useState(\n value && value.questionObject.questionType\n ? value.questionObject.questionType\n : undefined\n );\n\n // Handlers\n const onQuestionTypeChange = (value) => setQuestionType(value);\n const onClientCriteriaChange = () => {\n if (clientCriteria) {\n onChange({ ...form.getFieldsValue(), clientField: \"\" });\n }\n setClientCriteria(!clientCriteria);\n };\n\n const onValuesChange = (changedValues, allValues) => {\n onChange(allValues);\n };\n\n //new\n const [ratingSymbolType, setRatingSymbolType] = useState(\"star\");\n const [symbolCount, setSymbolCount] = useState(5);\n\n const [sliderType, setSliderType] = useState(\"Percentage\");\n const [sliderStart, setSliderStart] = useState(0);\n const [sliderEnd, setSliderEnd] = useState(100);\n\n const getCharacter = (str) => {\n switch (str) {\n case \"star\":\n return (\n \n );\n case \"smile\":\n return (\n \n );\n case \"heart\":\n return (\n \n );\n default:\n return;\n }\n };\n\n return (\n \n setIsQuestionNumberShown(false)}\n onMouseLeave={() => setIsQuestionNumberShown(true)}\n >\n {\n if (form.getFieldValue(\"_id\")) {\n incrementPendingRequests();\n dispatch(\n deleteAdminQuestion({\n ...form.getFieldsValue(),\n isActive: false,\n })\n )\n .then(() => {\n notify(\"success\", \"Success\", \"Question deleted\");\n removeQuestion();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n } else {\n removeQuestion();\n }\n }}\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n \n \n \n \n \n \n \n

    \n Profile Question{\" \"}\n \n \n \n
    \n \n \n \n
    \n

    \n \n \n \n \n {isQuestionNumberShown ? (\n \n {questionNumber}\n \n ) : (\n \n )}\n \n \n \n \n \n \n {clientCriteria && (\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n \n )}\n
    \n {questionType === \"checkboxesSpecial\" && (\n \n \n \n )}\n {questionType === \"multipleChoice\" ||\n questionType === \"checkboxes\" ||\n questionType === \"checkboxesSpecial\" ||\n questionType === \"location\" ? (\n \n {(fields, { add, remove, move }) => {\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n
    \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n ) : null}\n {questionType === \"age\" && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {questionType === \"addLink\" && (\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n )}\n {questionType === \"association\" && (\n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"likertScale\" && (\n \n \n
    \n \n {[...new Array(parseInt(range))].map((value, index) => (\n \n {index + 1}\n
    \n ))}\n \n \n {[...new Array(parseInt(range))].map((value, index) => (\n \n ))}\n \n \n {\n \n
    {form.getFieldValue([\"Start Label\"])}
    \n
    {form.getFieldValue([\"Middle Label\"])}
    \n
    {form.getFieldValue([\"End Label\"])}
    \n
    \n }\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n )}\n {questionType === \"abTextType\" && (\n \n {(fields, { add, remove, move }) => {\n console.log(\n \"gotcha\",\n questionType,\n fields,\n form.getFieldValue([\"abTextType\"])\n );\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n option && option !== \"\"\n )\n .reduce(\n (sum, option) =>\n sum + parseInt(option.percentage),\n 0\n ) === 100\n }\n addChoice={(newIndex) =>\n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"questionInstruction\" && (\n \n \n \n Upload File\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n )}\n {questionType === \"starRating\" && (\n \n \n \n {[...new Array(symbolCount)].map((value, index) =>\n getCharacter(ratingSymbolType)\n )}\n \n \n \n \n setRatingSymbolType(value)}\n customStyle={{ width: 60 }}\n options={[\n {\n value: \"star\",\n label: \"star\",\n },\n {\n value: \"smile\",\n label: \"smile\",\n },\n {\n value: \"heart\",\n label: \"heart\",\n },\n ]}\n >\n \n \n setSymbolCount(value)}\n customStyle={{ width: 60 }}\n options={[...new Array(6)].map((value, index) => {\n return {\n label: index + 5,\n value: index + 5,\n };\n })}\n >\n \n \n \n )}\n {questionType === \"imageMultiChoice\" && (\n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"imageMultichoiceStarRating\" && (\n \n \n \n {[...new Array(symbolCount)].map((value, index) =>\n getCharacter(ratingSymbolType)\n )}\n \n \n \n \n setRatingSymbolType(value)}\n customStyle={{ width: 60 }}\n options={[\n {\n value: \"star\",\n label: \"star\",\n },\n {\n value: \"smile\",\n label: \"smile\",\n },\n {\n value: \"heart\",\n label: \"heart\",\n },\n ]}\n >\n \n \n setSymbolCount(value)}\n customStyle={{ width: 60 }}\n options={[...new Array(6)].map((value, index) => {\n return {\n label: index + 5,\n value: index + 5,\n };\n })}\n >\n \n \n \n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n \n \n )}\n {questionType === \"slider\" && (\n \n \n \n \n {\n \n
    {form.getFieldValue([\"Start Label\"])}
    \n
    {form.getFieldValue([\"Middle Label\"])}
    \n
    {form.getFieldValue([\"End Label\"])}
    \n
    \n }\n \n \n \n
    \n setSliderType(value)}\n options={[\n {\n label: \"Percentage\",\n value: \"Percentage\",\n },\n {\n label: \"Absolute\",\n value: \"Absolute\",\n },\n ]}\n >\n
    \n
    \n \n setSliderStart(value)}\n options={[...new Array(sliderEnd)].map((v, i) => {\n return {\n label: i,\n value: i,\n };\n })}\n >\n
    \n
    \n \n setSliderEnd(value)}\n options={[...new Array(100 - sliderStart)].map((v, i) => {\n return {\n label: i + sliderStart + 1,\n value: i + sliderStart + 1,\n };\n })}\n >\n
    \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n )}\n {questionType === \"range\" && (\n \n \n \n {\n return {\n label: i + 1,\n value: i + 1,\n };\n })}\n >\n \n \n \n )}\n {questionType === \"videoInstruction\" && (\n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n \n \n ) : (\n \n \n \n )\n }\n className=\"input-border\"\n />\n \n \n \n Upload Video\n \n \n )}\n {questionType === \"videoMultiChoiceStarRating\" && (\n \n \n \n {[...new Array(symbolCount)].map((value, index) =>\n getCharacter(ratingSymbolType)\n )}\n \n \n \n \n setRatingSymbolType(value)}\n customStyle={{ width: 60 }}\n options={[\n {\n value: \"star\",\n label: \"star\",\n },\n {\n value: \"smile\",\n label: \"smile\",\n },\n {\n value: \"heart\",\n label: \"heart\",\n },\n ]}\n >\n \n \n setSymbolCount(value)}\n customStyle={{ width: 60 }}\n options={[...new Array(6)].map((value, index) => {\n return {\n label: index + 5,\n value: index + 5,\n };\n })}\n >\n \n \n \n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n \n \n )}\n {questionType === \"imageABTest\" && (\n \n {(fields, { add, remove, move }) => {\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n option && option !== \"\"\n )\n .reduce(\n (sum, option) =>\n sum + parseInt(option.percentage),\n 0\n ) === 100\n }\n addChoice={(newIndex) =>\n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"videoABTest\" && (\n \n {(fields, { add, remove, move }) => {\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n sum + parseInt(option.percentage),\n 0\n ) === 100\n }\n addChoice={(newIndex) =>\n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"imageAssociation\" && (\n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n {questionType === \"videoAssociation\" && (\n \n {(fields, { add, remove, move }) => {\n console.log(\"gotcha\", questionType, fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n add(null, newIndex)\n }\n removeChoice={(index) =>\n remove(index - 1)\n }\n />\n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n )}\n \n \n \n setIsAddNewQuestionIconShown(true)}\n onMouseLeave={() => setIsAddNewQuestionIconShown(false)}\n >\n {isAddNewQuestionIconShown || window.innerWidth < 768 ? (\n addQuestion(questionNumber)}\n />\n ) : (\n \n )}\n \n
    \n );\n};\n\nexport default QuestionBox;\n","import \"./reg-questions.css\";\nimport React, { useCallback } from \"react\";\n// libraries\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n// antd\nimport { Form, Button } from \"antd\";\nimport { PlusOutlined } from \"@ant-design/icons\";\n// components\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport QuestionBox from \"../../../components/admin/question-box/QuestionBox\";\nimport { useDispatch } from \"react-redux\";\nimport { useEffect } from \"react\";\nimport {\n getAdminQuestions,\n updateAdminQuestions,\n} from \"../../../actions/admin\";\n// actions\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { adminPages } from \"../../../constants\";\nconst ObjectID = require(\"bson-objectid\");\n\nconst RegQuestions = () => {\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n\n const displayAt = \"regQuestions\";\n\n // Api calls\n const getAllQuestions = useCallback(() => {\n incrementPendingRequests();\n dispatch(getAdminQuestions())\n .then((questions) => {\n const activeQuestions = questions.filter(\n (val) => val.isActive && val.displayAt === displayAt\n );\n form.setFieldsValue({ questions: activeQuestions });\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, form]);\n\n useEffect(() => {\n getAllQuestions();\n }, [getAllQuestions]);\n\n // Handlers\n const onFormSubmit = ({ questions }) => {\n questions = questions.filter((val) => val);\n questions.forEach((obj) =>\n Object.keys(obj).forEach(\n (key) => obj[key] === undefined && delete obj[key]\n )\n );\n\n questions.forEach((val) => {\n if (!val._id) {\n val._id = ObjectID();\n }\n });\n\n questions.forEach((val) => {\n if (val.questionObject.options) {\n val.questionObject.options = val.questionObject.options.filter(\n (el) => el\n );\n }\n });\n\n incrementPendingRequests();\n dispatch(updateAdminQuestions(questions))\n .then(() => {\n notify(\"success\", \"Success\", \"Questions updated\");\n getAllQuestions();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n \n \n \n \n \n \n
    \n
    \n \n {(fields, { add, remove, move }) => {\n return (\n \n
    \n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n \n remove(field.name)\n }\n addQuestion={(newIndex) =>\n add(null, newIndex)\n }\n dragHandleProps={\n provided.dragHandleProps\n }\n displayAt={displayAt}\n />\n \n
    \n )}\n \n ))}\n
    \n )}\n \n \n \n \n add()}\n size=\"large\"\n style={{ width: \"50%\" }}\n >\n Add question \n \n \n
    \n );\n }}\n \n \n Save\n \n \n \n \n \n
    \n );\n};\n\nexport default RegQuestions;\n","import React, { useCallback } from \"react\";\n// libraries\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n// antd\nimport { Form, Button } from \"antd\";\nimport { PlusOutlined } from \"@ant-design/icons\";\n// components\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport QuestionBox from \"../../../components/admin/question-box/QuestionBox\";\nimport { useDispatch } from \"react-redux\";\nimport { useEffect } from \"react\";\nimport {\n getAdminQuestions,\n updateAdminQuestions,\n} from \"../../../actions/admin\";\n// actions\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { adminPages } from \"../../../constants\";\nconst ObjectID = require(\"bson-objectid\");\n\nconst SampleQuestions = () => {\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n\n const displayAt = \"sampleQuestions\";\n\n // Api calls\n const getAllQuestions = useCallback(() => {\n incrementPendingRequests();\n dispatch(getAdminQuestions())\n .then((questions) => {\n const activeQuestions = questions.filter(\n (val) => val.isActive && val.displayAt === displayAt\n );\n form.setFieldsValue({ questions: activeQuestions });\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, form]);\n\n useEffect(() => {\n getAllQuestions();\n }, [getAllQuestions]);\n\n // Handlers\n const onFormSubmit = ({ questions }) => {\n questions = questions.filter((val) => val);\n questions.forEach((obj) =>\n Object.keys(obj).forEach(\n (key) => obj[key] === undefined && delete obj[key]\n )\n );\n\n questions.forEach((val) => {\n if (!val._id) {\n val._id = ObjectID();\n }\n });\n\n questions.forEach((val) => {\n if (val.questionObject.options) {\n val.questionObject.options = val.questionObject.options.filter(\n (el) => el\n );\n }\n });\n\n incrementPendingRequests();\n dispatch(updateAdminQuestions(questions))\n .then(() => {\n notify(\"success\", \"Success\", \"Questions updated\");\n getAllQuestions();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n \n \n \n \n \n \n
    \n
    \n \n {(fields, { add, remove, move }) => {\n return (\n \n
    \n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n \n remove(field.name)\n }\n addQuestion={(newIndex) =>\n add(null, newIndex)\n }\n dragHandleProps={\n provided.dragHandleProps\n }\n displayAt={displayAt}\n />\n \n
    \n )}\n \n ))}\n
    \n )}\n \n \n \n \n add()}\n size=\"large\"\n style={{ width: \"50%\" }}\n >\n Add question \n \n \n
    \n );\n }}\n \n \n Save\n \n \n \n \n \n \n );\n};\n\nexport default SampleQuestions;\n","import React, { useCallback } from \"react\";\n// libraries\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n// antd\nimport { Form, Button } from \"antd\";\nimport { PlusOutlined } from \"@ant-design/icons\";\n// components\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport QuestionBox from \"../../../components/admin/question-box/QuestionBox\";\nimport { useDispatch } from \"react-redux\";\nimport { useEffect } from \"react\";\nimport {\n getAdminQuestions,\n updateAdminQuestions,\n} from \"../../../actions/admin\";\n// actions\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { adminPages } from \"../../../constants\";\nconst ObjectID = require(\"bson-objectid\");\n\nconst AdditionalQuestions = () => {\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n\n const displayAt = \"additionalQuestions\";\n\n // Api calls\n const getAllQuestions = useCallback(() => {\n incrementPendingRequests();\n dispatch(getAdminQuestions())\n .then((questions) => {\n const activeQuestions = questions.filter(\n (val) => val.isActive && val.displayAt === displayAt\n );\n form.setFieldsValue({ questions: activeQuestions });\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, form]);\n\n useEffect(() => {\n getAllQuestions();\n }, [getAllQuestions]);\n\n // Handlers\n const onFormSubmit = ({ questions }) => {\n questions = questions.filter((val) => val);\n questions.forEach((obj) =>\n Object.keys(obj).forEach(\n (key) => obj[key] === undefined && delete obj[key]\n )\n );\n\n questions.forEach((val) => {\n if (!val._id) {\n val._id = ObjectID();\n }\n });\n\n questions.forEach((val) => {\n if (val.questionObject.options) {\n val.questionObject.options = val.questionObject.options.filter(\n (el) => el\n );\n }\n });\n\n incrementPendingRequests();\n dispatch(updateAdminQuestions(questions))\n .then(() => {\n notify(\"success\", \"Success\", \"Questions updated\");\n getAllQuestions();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n \n \n \n \n \n \n
    \n
    \n \n {(fields, { add, remove, move }) => {\n return (\n \n
    \n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n \n remove(field.name)\n }\n addQuestion={(newIndex) =>\n add(null, newIndex)\n }\n dragHandleProps={\n provided.dragHandleProps\n }\n displayAt={displayAt}\n />\n \n
    \n )}\n \n ))}\n
    \n )}\n \n \n \n \n add()}\n size=\"large\"\n style={{ width: \"50%\" }}\n >\n Add question \n \n \n
    \n );\n }}\n \n \n Save\n \n \n \n \n \n \n );\n};\n\nexport default AdditionalQuestions;\n","import { Button, Switch, Row, Col, Select, Input, InputNumber } from \"antd\";\nimport React, { useState } from \"react\";\nimport ProjectPageLayout from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport styles from \"./user-survey.module.css\";\nimport c from \"classnames/bind\";\nimport ResponsiveTable from \"../../../components/responsive-table/ResponsiveTable\";\nimport { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { publishSurvey, getSurveys } from \"../../../actions/admin\";\nimport {\n incrementPendingRequests,\n decrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { adminPages } from \"../../../constants\";\nimport Survey from \"../../user/survey/Survey\";\n\nconst cx = c.bind(styles);\n\nconst calculatePercent = (clientRate, value) => {\n return (clientRate * value) / 100;\n};\n\nconst calculateNumber = (clientRate, paymentValue) => {\n return (paymentValue * 100) / clientRate;\n};\n\nconst UserSurvey = () => {\n const dispatch = useDispatch();\n const tierInfo = useSelector((state) => state.admin.tierInfo);\n const [data, setData] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [questions, setQuestions] = useState();\n const [surveyType, setSurveyType] = useState();\n const [surveyBrandName, setSurveyBrandName] = useState();\n const [surveyBrandLogo, setSurveyBrandLogo] = useState();\n const [surveyInstructions, setSurveyInstructions] = useState();\n\n useEffect(() => {\n if (tierInfo) {\n incrementPendingRequests();\n dispatch(getSurveys())\n .then((surveys) => {\n const surveysDataSource = surveys\n .filter((val) => val.isPublished)\n .map((val) => {\n const surveyType = val.surveyType\n ? \"qualitative\"\n : \"quantitative\";\n const mode = val.mode ? \"moderated\" : \"unModerated\";\n const userType = val.userType ? \"clientUser\" : \"UQUser\";\n const accountTier = val.clientId.accountTier;\n const clientRate =\n surveyType === \"qualitative\"\n ? tierInfo[accountTier].pricing[surveyType][mode][userType]\n : tierInfo[accountTier].pricing[surveyType][userType];\n\n return {\n ...val,\n clientRate,\n number: val.paymentType\n ? calculateNumber(clientRate, val.paymentValue)\n : val.paymentValue,\n };\n });\n setData(surveysDataSource);\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }\n }, [dispatch, tierInfo]);\n\n // Handlers\n const onNumberChange = (record, newNumber) => {\n const { _id, clientRate, paymentType } = record;\n const newData = data.map((val) => {\n if (val._id !== _id) return val;\n\n return {\n ...val,\n paymentValue: paymentType\n ? calculatePercent(clientRate, newNumber)\n : newNumber,\n number: newNumber,\n };\n });\n\n setData(newData);\n };\n\n const changePaymentType = (record, value) => {\n const { _id, clientRate, number } = record;\n const newData = data.map((val) => {\n if (val._id !== _id) return val;\n\n return {\n ...val,\n paymentType: value,\n paymentValue: value ? calculatePercent(clientRate, number) : number,\n };\n });\n\n setData(newData);\n };\n\n const onPublish = (record) => {\n delete record.number;\n delete record.clientRate;\n\n incrementPendingRequests();\n dispatch(publishSurvey(record))\n .then(() => {\n const newData = data.map((val) => {\n if (val._id !== record._id) return val;\n\n return { ...val, isAdminVerified: true };\n });\n setData(newData);\n notify(\"success\", \"Success\", \"Survey published\");\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const openSurveyView = (record) => {\n setShowModal(true);\n setQuestions(record.questions);\n const surveyTypeBool = record.surveyType === \"qualitative\" ? true : false;\n setSurveyType(surveyTypeBool);\n setSurveyBrandName(record.brandName);\n setSurveyBrandLogo(record.brandLogo);\n setSurveyInstructions(record.instructions);\n };\n\n const columns = [\n {\n title: \"#\",\n key: \"no\",\n render: (text, record, index) => {index + 1},\n },\n {\n title: \"Survey View\",\n align: \"center\",\n key: \"survey_view\",\n render: (text, record) => (\n \n {record.name}
    {\" \"}\n openSurveyView(record)}>User View\n
    \n ),\n },\n {\n title: \"Survey Name\",\n dataIndex: \"name\",\n align: \"center\",\n key: \"name\",\n },\n {\n title: \"Survey Type\",\n dataIndex: \"surveyType\",\n align: \"center\",\n key: \"survey_type\",\n render: (text) => (text ? \"Qualitative\" : \"Quantitative\"),\n },\n {\n title: \"Users\",\n dataIndex: \"usersType\",\n align: \"center\",\n key: \"users\",\n render: (text) => (text ? \"Client\" : \"UQ\"),\n },\n {\n title: \"Conducted\",\n dataIndex: \"mode\",\n align: \"center\",\n key: \"conducted\",\n render: (text) => (text ? \"Moderated\" : \"Unmoderated\"),\n },\n {\n title: \"Device\",\n dataIndex: \"device\",\n align: \"center\",\n key: \"device\",\n render: (text) => (text ? \"Mobile\" : \"Desktop\"),\n },\n {\n title: \"User type\",\n dataIndex: \"audienceType\",\n align: \"center\",\n key: \"user_type\",\n render: (text) => (text ? \"Influencer\" : \"General\"),\n },\n {\n title: \"Ques\",\n dataIndex: \"questions\",\n align: \"center\",\n key: \"ques\",\n render: (text) => text.length,\n },\n {\n title: \"Time Limit\",\n dataIndex: \"timingType\",\n align: \"center\",\n key: \"time_limit\",\n render: (text) => {\n switch (text) {\n case 0:\n return \"15 mins\";\n case 1:\n return \"30 mins\";\n case 2:\n return \"45 mins\";\n default:\n return \"N/A\";\n }\n },\n },\n {\n title: \"Client Rate\",\n dataIndex: \"clientRate\",\n align: \"center\",\n key: \"client_rate\",\n },\n {\n title: \"%\",\n dataIndex: \"paymentType\",\n key: \"percent\",\n align: \"center\",\n render: (text, record) => (\n changePaymentType(record, val)}\n />\n ),\n },\n {\n title: \"Number\",\n align: \"center\",\n dataIndex: \"number\",\n key: \"number\",\n render: (text, record) => {\n return (\n onNumberChange(record, val)}\n />\n );\n },\n },\n {\n title: \"Final Amount\",\n align: \"center\",\n dataIndex: \"paymentValue\",\n key: \"final_amount\",\n },\n {\n title: \"Publish\",\n align: \"center\",\n dataIndex: \"isAdminVerified\",\n key: \"publish\",\n render: (text, record) => (\n \n ),\n },\n ];\n\n return (\n \n \n \n \n \n \n
    \n \n \n \n Ascending\n Descending\n \n \n \n \n \n \n \n
    \n
    \n {\n setShowModal(false);\n setQuestions(undefined);\n setSurveyType(undefined);\n setSurveyBrandName(undefined);\n setSurveyInstructions(undefined);\n setSurveyBrandLogo(undefined);\n }}\n brandName={surveyBrandName}\n brandLogo={surveyBrandLogo}\n surveyInstructions={surveyInstructions}\n />\n
    \n );\n};\n\nexport default UserSurvey;\n","import React, { useState } from \"react\";\nimport { Row, Col, Input } from \"antd\";\nimport {\n MinusCircleOutlined,\n PlusCircleOutlined,\n MenuOutlined,\n} from \"@ant-design/icons\";\n\nconst Categories = (props) => {\n const {\n number,\n value,\n onChange,\n addCategory,\n removeCategory,\n showMinusIcon,\n dragHandleProps,\n } = props;\n // Component states\n const [isNumberShown, setIsNumberShown] = useState(true);\n return (\n setIsNumberShown(false)}\n onMouseLeave={() => setIsNumberShown(true)}\n >\n \n {isNumberShown ? (\n {number}\n ) : (\n \n )}\n \n \n onChange(e.target.value)}\n size=\"large\"\n placeholder=\"Enter category\"\n className=\"input-border\"\n style={{ marginBottom: 24 }}\n />\n \n \n \n {showMinusIcon && (\n \n )}\n \n \n );\n};\n\nexport default Categories;\n","import React from \"react\";\nimport { Form, Modal, Input, Select, Row, Col, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { MinusCircleOutlined, PlusCircleOutlined } from \"@ant-design/icons\";\n\nconst EditInfluencerModal = (props) => {\n const { clientInfo, handleCancel } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 1000px)\" });\n const [form] = Form.useForm();\n\n const size = isTabletOrMobile ? \"medium\" : \"large\";\n\n const onEditInfluencer = () => {};\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(fields, { add, remove }) => {\n return (\n <>\n {fields.map((smField, index) => (\n \n \n \n \n \n Facebook\n \n \n Instagram\n \n \n Snapchat\n \n Tiktok\n \n \n \n \n \n \n \n \n \n add(null, smField.name + 1)}\n className=\"action-icon\"\n />\n remove(smField.name)}\n />\n \n \n ))}\n {fields.length === 0 && (\n add()}\n >\n Add Social Media\n \n )}\n \n );\n }}\n \n
    \n \n );\n};\n\nexport default EditInfluencerModal;\n","import { Form, Popconfirm, Select } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport FormItemLabel from \"../../../components/form-item-label/FormItemLabel\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { Row, Col, Input, Button, InputNumber } from \"antd\";\nimport {\n CloseCircleOutlined,\n MinusCircleOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport \"./influencer.css\";\nimport Categories from \"../../../components/admin/influencer/categories/Categories\";\nimport EditInfluencerModal from \"../../../components/admin/influencer/edit-influencer/EditInfluencerModal\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { useDispatch } from \"react-redux\";\nimport {\n deleteInfluencer,\n editInfluencerCategories,\n getInfluencerCategories,\n getInfluencers,\n updateInfluencers,\n} from \"../../../actions/admin\";\nimport { adminPages } from \"../../../constants\";\nconst ObjectID = require(\"bson-objectid\");\n\nconst Influencer = () => {\n const dispatch = useDispatch();\n const [form] = Form.useForm();\n const [editInfluencerModal, setEditInfluencerModal] = useState(false);\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getInfluencerCategories())\n .then((categories) => form.setFieldsValue({ categories }))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, form]);\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getInfluencers())\n .then((influencers) => form.setFieldsValue({ influencers }))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch, form]);\n\n const handleSubmit = ({ categories, influencers }) => {\n influencers.forEach((val) => {\n if (!val._id) {\n val._id = ObjectID();\n }\n });\n\n incrementPendingRequests();\n Promise.race([\n dispatch(updateInfluencers(influencers)),\n dispatch(editInfluencerCategories(categories.filter((val) => val))),\n ])\n .then(() => notify(\"success\", \"Success\", \"Updated influencers\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n {(fields, { add, remove, move }) => {\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n \n add(null, field.name + 1)\n }\n removeCategory={() => remove(field.name)}\n showMinusIcon={fields.length > 1}\n />\n \n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n }}\n \n \n \n {(fields, { add, remove, move }) => {\n console.log(fields);\n return (\n \n move(result.source.index, result.destination.index)\n }\n >\n \n {(provided) => (\n \n {fields.map((field, index) => (\n \n {(provided) => (\n \n \n {\n const influencerId = form.getFieldValue(\n [\"influencers\", field.name]\n )._id;\n incrementPendingRequests();\n dispatch(deleteInfluencer(influencerId))\n .then(() => {\n notify(\n \"success\",\n \"Success\",\n \"Influencer deleted\"\n );\n remove(field.name);\n })\n .catch((ex) =>\n notify(\"error\", \"Error\", ex)\n )\n .finally(() =>\n decrementPendingRequests()\n );\n }}\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Male\n \n \n Female\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(fields, { add, remove }) => {\n return (\n <>\n {fields.map((smField, index) => (\n \n \n \n \n \n Facebook\n \n \n Instagram\n \n \n Snapchat\n \n \n Tiktok\n \n \n \n \n \n \n \n \n \n \n \n add(\n null,\n smField.name + 1\n )\n }\n className=\"action-icon\"\n />\n \n remove(smField.name)\n }\n />\n \n \n ))}\n {fields.length === 0 && (\n add()}\n >\n Add Social Media\n \n )}\n \n );\n }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n setEditInfluencerModal(true)\n }\n >\n Edit this influencer\n */}\n \n \n )}\n \n ))}\n {provided.placeholder}\n \n )}\n \n
    \n add()}\n >\n Add Influencer\n \n
    \n \n );\n }}\n
    \n \n Save\n \n \n
    \n
    \n {editInfluencerModal && (\n setEditInfluencerModal(false)}\n />\n )}\n
    \n );\n};\n\nexport default Influencer;\n","import React from \"react\";\nimport { Form, Modal, Input, Select, Row, Col, Button } from \"antd\";\nimport { useMediaQuery } from \"react-responsive\";\n\nconst ConfigClientInfoModal = (props) => {\n const { clientInfo, handleCancel, onSubmit } = props;\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 1000px)\" });\n const [form] = Form.useForm();\n\n const size = isTabletOrMobile ? \"medium\" : \"large\";\n const mode = !!clientInfo ? \"edit\" : \"add\";\n console.log(mode);\n const onEditClientInfo = () => {\n form.validateFields().then((values) => {\n onSubmit(mode, { ...clientInfo, ...values });\n handleCancel();\n });\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {mode === \"add\" && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Basic\n Elite\n Platinum\n \n \n \n \n \n \n \n \n \n
    \n \n );\n};\n\nexport default ConfigClientInfoModal;\n","import { Button, Col, Input, Row, Select } from \"antd\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport styles from \"./client-info.module.css\";\nimport ResponsiveTable from \"../../../components/responsive-table/ResponsiveTable\";\nimport ConfigClientInfoModal from \"../../../components/admin/client-info/config-client-info-modal/ConfigClientInfoModal\";\nimport c from \"classnames/bind\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { useDispatch } from \"react-redux\";\nimport { addClient, editClient, getClients } from \"../../../actions/admin\";\nimport { adminPages } from \"../../../constants\";\nimport moment from \"moment\";\n\nconst cx = c.bind(styles);\n\nconst ClientInfo = () => {\n const dispatch = useDispatch();\n\n const [data, setData] = useState([]);\n const [configClientInfoModal, setConfigClientInfoModal] = useState(false);\n const [selectedClientInfo, setSelectedClientInfo] = useState();\n\n // Api calls\n const loadClients = useCallback(async () => {\n incrementPendingRequests();\n dispatch(getClients())\n .then((clients) => setData(clients))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n useEffect(() => {\n loadClients();\n }, [loadClients]);\n\n // Handlers\n const onSubmit = (mode, values) => {\n switch (mode) {\n case \"add\":\n incrementPendingRequests();\n dispatch(addClient(values))\n .then(() => {\n notify(\"success\", \"Success\", \"Client added\");\n loadClients();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n break;\n\n case \"edit\":\n incrementPendingRequests();\n dispatch(editClient(values._id, values))\n .then(() => {\n notify(\"success\", \"Success\", \"Client updated\");\n loadClients();\n })\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n break;\n\n default:\n break;\n }\n };\n\n const columns = [\n {\n title: \"#\",\n key: \"no\",\n align: \"center\",\n render: (text, record, index) => {index + 1},\n },\n {\n title: \"Client name\",\n align: \"center\",\n dataIndex: \"companyName\",\n key: \"client\",\n className: \"no-padding\",\n },\n {\n title: \"Tier\",\n align: \"center\",\n dataIndex: \"accountTier\",\n key: \"tier\",\n render: (text) => {\n switch (text) {\n case 0:\n return \"Basic\";\n case 1:\n return \"Elite\";\n case 2:\n return \"Platinum\";\n default:\n return;\n }\n },\n },\n {\n title: \"City\",\n align: \"center\",\n dataIndex: \"address\",\n key: \"city\",\n render: (text) => text && text.city,\n },\n {\n title: \"Quant Surveys\",\n align: \"center\",\n key: \"quant\",\n render: (text, record) => {\n let count = 0;\n record.surveys.forEach((val) => {\n if (!val.surveyType) {\n count++;\n }\n });\n return count;\n },\n },\n {\n title: \"Qual Surveys\",\n align: \"center\",\n key: \"qual\",\n render: (text, record) => {\n let count = 0;\n record.surveys.forEach((val) => {\n if (val.surveyType) {\n count++;\n }\n });\n return count;\n },\n },\n {\n title: \"Amount Spent\",\n align: \"center\",\n key: \"amount_spent\",\n render: (text, record) => {\n let count = 0;\n record.surveys.forEach((val) => {\n count += val.paymentValue;\n });\n return count;\n },\n },\n {\n title: \"Amount Owned\",\n align: \"center\",\n dataIndex: \"accountBalance\",\n key: \"amount_owned\",\n },\n {\n title: \"Date Completed\",\n align: \"center\",\n dataIndex: \"planExpiresAt\",\n key: \"date_completed\",\n render: (text) => moment(text).format(\"DD-MM-YYYY\"),\n },\n {\n key: \"edit\",\n align: \"center\",\n dataIndex: \"edit\",\n render: (text, record) => (\n {\n setConfigClientInfoModal(true);\n setSelectedClientInfo(record);\n }}\n >\n Edit\n \n ),\n },\n ];\n\n return (\n \n \n \n \n \n \n \n
    \n \n \n \n Ascending\n Descending\n \n \n \n \n \n \n \n
    \n setConfigClientInfoModal(true)}\n >\n Add client\n \n
    \n
    \n
    \n
    \n {configClientInfoModal && (\n {\n setConfigClientInfoModal(false);\n setSelectedClientInfo(undefined);\n }}\n clientInfo={selectedClientInfo}\n onSubmit={onSubmit}\n />\n )}\n
    \n );\n};\n\nexport default ClientInfo;\n","import React from \"react\";\nimport { Form, Modal, Row, Col, InputNumber, Button } from \"antd\";\n\nconst PlansFeesModal = (props) => {\n const { plansFees, handleCancel, handleEditPlansFees } = props;\n const [form] = Form.useForm();\n\n const onEditPlansFees = () => {\n form.validateFields().then((values) => {\n const newSubscriptionValues = [\n values.basic,\n values.elite,\n values.platinum,\n ];\n handleEditPlansFees(newSubscriptionValues);\n handleCancel();\n });\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n
    \n \n Basic Plan Monthly Fee\n \n \n \n \n \n \n \n Elite Plan Monthly Fee\n \n \n \n \n \n \n \n Platinum Plan Monthly Fee\n \n \n \n \n \n \n
    \n \n );\n};\n\nexport default PlansFeesModal;\n","import React from \"react\";\nimport { Form } from \"antd\";\n\nexport default function ConditionalFormBlock({\n dependency,\n condition,\n children,\n shouldUpdate,\n}) {\n if (!shouldUpdate)\n shouldUpdate = (prev, curr) => prev[dependency] !== curr[dependency];\n return (\n \n {() => {\n return {condition() && children};\n }}\n \n );\n}\n","import React from \"react\";\nimport { Form, Modal, Row, Col, InputNumber, Button, Select } from \"antd\";\nimport ConditionalFormBlock from \"../../../conditional-form-block/ConditionalFormBlock\";\n\nconst EditPricingModal = (props) => {\n const { selectedPricing, handleCancel, handleEditPricing } = props;\n const [form] = Form.useForm();\n\n const surveyType = selectedPricing.surveyType;\n const surveyTime = selectedPricing.time;\n\n const onEditPricing = () => {\n form.validateFields().then((values) => {\n const newValues =\n surveyType === \"Quantitative\"\n ? {\n ...selectedPricing,\n basic: {\n ...selectedPricing.basic,\n ...values.basic,\n },\n elite: {\n ...selectedPricing.elite,\n ...values.elite,\n },\n platinum: {\n ...selectedPricing.platinum,\n ...values.platinum,\n },\n }\n : {\n ...selectedPricing,\n basic: {\n ...selectedPricing.basic,\n [surveyTime]: {\n ...selectedPricing.basic[surveyTime],\n ...values.basic[surveyTime],\n },\n },\n elite: {\n ...selectedPricing.elite,\n [surveyTime]: {\n ...selectedPricing.elite[surveyTime],\n ...values.elite[surveyTime],\n },\n },\n platinum: {\n ...selectedPricing.platinum,\n [surveyTime]: {\n ...selectedPricing.platinum[surveyTime],\n ...values.platinum[surveyTime],\n },\n },\n };\n const newPricing = [newValues.basic, newValues.elite, newValues.platinum];\n\n console.log(\"New Pricing\", newValues, values);\n handleEditPricing(surveyType, newPricing);\n handleCancel();\n });\n };\n\n const initialValues = selectedPricing && {\n basicUserType: selectedPricing.userType,\n eliteUserType: selectedPricing.userType,\n platinumUserType: selectedPricing.userType,\n basic: selectedPricing.basic[selectedPricing.time],\n elite: selectedPricing.elite[selectedPricing.time],\n platinum: selectedPricing.platinum[selectedPricing.time],\n ...selectedPricing,\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n console.log(\"Initial Values: \", initialValues);\n\n return (\n \n \n \n Basic Plan Monthly Fee\n \n \n \n Client\n UserQual\n \n \n \n \n \n form.getFieldValue(\"basicUserType\") === \"clientsUser\"\n }\n >\n \n \n \n \n form.getFieldValue(\"basicUserType\") === \"UQUser\"}\n >\n \n \n \n \n \n \n \n Elite Plan Monthly Fee\n \n \n \n Client\n UserQual\n \n \n \n \n \n form.getFieldValue(\"eliteUserType\") === \"clientsUser\"\n }\n >\n \n \n \n \n form.getFieldValue(\"eliteUserType\") === \"UQUser\"}\n >\n \n \n \n \n \n \n \n Platinum Plan Monthly Fee\n \n \n \n Client\n UserQual\n \n \n \n \n \n form.getFieldValue(\"platinumUserType\") === \"clientsUser\"\n }\n >\n \n \n \n \n \n form.getFieldValue(\"platinumUserType\") === \"UQUser\"\n }\n >\n \n \n \n \n \n \n \n \n );\n};\n\nexport default EditPricingModal;\n","import React from \"react\";\nimport { Form, Modal, Row, Col, InputNumber, Button } from \"antd\";\n\nconst QuestionPricingModal = (props) => {\n const {\n selectedQuestionPricing,\n handleCancel,\n handleEditQuestionPricing,\n } = props;\n\n const [form] = Form.useForm();\n\n const onEditPlansFees = () => {\n form.validateFields().then((values) => {\n handleEditQuestionPricing(values);\n handleCancel();\n });\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n \n

    \n {selectedQuestionPricing.questionName}\n

    \n \n \n Basic Plan Monthly Fee\n \n \n \n \n \n \n \n Elite Plan Monthly Fee\n \n \n \n \n \n \n \n Platinum Plan Monthly Fee\n \n \n \n \n \n \n \n \n );\n};\n\nexport default QuestionPricingModal;\n","import React from \"react\";\nimport { Form, Modal, Row, Col, InputNumber, Button } from \"antd\";\n\nconst OtherPricingModal = (props) => {\n const { selectedOtherPricing, handleCancel, handleEditOtherPricing } = props;\n\n const [form] = Form.useForm();\n\n const onEditPlansFees = () => {\n form.validateFields().then((values) => {\n handleEditOtherPricing(values);\n handleCancel();\n });\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n \n

    \n {selectedOtherPricing.name}\n

    \n \n \n Basic Plan Monthly Fee\n \n \n \n \n \n \n \n Elite Plan Monthly Fee\n \n \n \n \n \n \n \n Platinum Plan Monthly Fee\n \n \n \n \n \n \n \n \n );\n};\n\nexport default OtherPricingModal;\n","import { Button, Col, Row, Radio, InputNumber } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport ProjectPageLayout from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport \"./pricing.css\";\nimport ResponsiveTable from \"../../../components/responsive-table/ResponsiveTable\";\nimport PlansFeesModal from \"../../../components/admin/pricing/plans-fees-modal/PlansFeesModal\";\nimport ConfigPricingModal from \"../../../components/admin/pricing/config-pricing-modal/ConfigPricingModal\";\nimport { adminPages } from \"../../../constants\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { editAdmin } from \"../../../actions/admin\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\n// import { tierInfo } from \"./priceSegment\";\nimport { Select } from \"antd\";\nimport Dropdown from \"../../../components/dropdown/dropdown\";\nimport { questionNotation } from \"../../../components/constants/questionType\";\nimport QuestionPricingModal from \"../../../components/admin/pricing/question-pricing-modal/QuestionPricingModal\";\nimport OtherPricingModal from \"../../../components/admin/pricing/other-pricing-modal/OtherPricingModal\";\n\nconst { Option } = Select;\n\nconst Pricing = () => {\n const dispatch = useDispatch();\n const tierInfo = useSelector((state) => state.admin.tierInfo);\n const [data, setData] = useState([]);\n const [questionPricingData, setQuestionPricingData] = useState(null);\n const [otherData, setOtherData] = useState(null);\n const [plansFeesModal, setPlansFeesModal] = useState(false);\n const [questionFeesModal, setQuestionFeesModal] = useState(false);\n const [otherFeesModal, setOtherFeesModal] = useState(false);\n const [configPricingModal, setConfigPricingModal] = useState(false);\n const [selectedPricing, setSelectedPricing] = useState();\n const [selectedQuestionPricing, setSelectedQuestionPricing] = useState(null);\n const [selectedOtherPricing, setSelectedOtherPricing] = useState(null);\n const [surveyTimings, setSurveyTimings] = useState({\n 15: \"15 min\",\n 30: \"30 min\",\n 45: \"45 min\",\n });\n\n const TIER_INFO = {\n 0: \"basic\",\n 1: \"elite\",\n 2: \"platinum\",\n };\n\n const OTHER_INFO = {\n influencerAudience: \"Influencer Audience\",\n additionalCriteria: \"Additional Criteria (more than the 6 basic ones)\",\n };\n\n useEffect(() => {\n if (tierInfo) {\n // set question pricing\n let questionPricingData = [];\n Object.keys(tierInfo[0].pricing.additionalCost.questionType).map(\n (type, index) => {\n let obj = { questionName: questionNotation[type], type: type };\n tierInfo.map((tier, index) => {\n obj = {\n ...obj,\n [TIER_INFO[index]]:\n tier.pricing.additionalCost.questionType[type],\n };\n });\n questionPricingData.push(obj);\n }\n );\n setQuestionPricingData(questionPricingData);\n\n // setOtherData\n defineOtherData(tierInfo);\n\n const DEFAULT_TIME = Object.keys(surveyTimings)[0];\n let tableDataSource = [];\n while (tableDataSource.length <= 2) {\n let obj = {};\n obj.userType = \"clientsUser\";\n obj.time = DEFAULT_TIME;\n switch (tableDataSource.length) {\n case 0:\n obj.surveyType = \"Quantitative\";\n obj.basic = tierInfo[0].pricing.quantitative;\n obj.elite = tierInfo[1].pricing.quantitative;\n obj.platinum = tierInfo[2].pricing.quantitative;\n obj.time = null;\n tableDataSource.push(obj);\n break;\n\n case 1:\n obj.surveyType = \"Qualitative/Moderated\";\n obj.basic = tierInfo[0].pricing.qualitative.moderated;\n obj.elite = tierInfo[1].pricing.qualitative.moderated;\n obj.platinum = tierInfo[2].pricing.qualitative.moderated;\n tableDataSource.push(obj);\n break;\n\n case 2:\n obj.surveyType = \"Qualitative/Unmoderated\";\n obj.basic = tierInfo[0].pricing.qualitative.unModerated;\n obj.elite = tierInfo[1].pricing.qualitative.unModerated;\n obj.platinum = tierInfo[2].pricing.qualitative.unModerated;\n // obj.time = DEFAULT_TIME;\n tableDataSource.push(obj);\n break;\n\n default:\n break;\n }\n }\n setData(tableDataSource);\n }\n }, [tierInfo]);\n\n const defineOtherData = (tierInfo) => {\n let otherData = [];\n Object.keys(OTHER_INFO).map((key, index) => {\n let data = { name: OTHER_INFO[key], key: key };\n tierInfo.map((tier, index) => {\n data = {\n ...data,\n [TIER_INFO[index]]: tier.pricing.additionalCost[key],\n };\n });\n otherData.push(data);\n });\n setOtherData(otherData);\n };\n\n // Derived data\n const subscriptions = tierInfo\n ? tierInfo.map((val) => val.subscription)\n : [0, 0, 0];\n\n // Handlers\n const onChangeUserType = (userType, record) => {\n const newData = data.map((val) => {\n if (val.surveyType !== record.surveyType) return val;\n\n return { ...val, userType };\n });\n setData(newData);\n };\n\n const onTimingChange = (timing, record) => {\n const newData = data.map((val) => {\n if (val.surveyType !== record.surveyType) return val;\n\n return { ...val, time: timing };\n });\n setData(newData);\n };\n\n const handleEditPricing = (surveyType, values) => {\n const newTierInfo = tierInfo.map((tier, index) => {\n switch (surveyType) {\n case \"Quantitative\":\n return {\n ...tier,\n pricing: {\n ...tier.pricing,\n quantitative: values[index],\n },\n };\n case \"Qualitative/Moderated\":\n return {\n ...tier,\n pricing: {\n ...tier.pricing,\n qualitative: {\n ...tier.pricing.qualitative,\n moderated: values[index],\n },\n },\n };\n case \"Qualitative/Unmoderated\":\n return {\n ...tier,\n pricing: {\n ...tier.pricing,\n qualitative: {\n ...tier.pricing.qualitative,\n unModerated: values[index],\n },\n },\n };\n default:\n return {};\n }\n });\n incrementPendingRequests();\n dispatch(editAdmin(newTierInfo))\n .then(() => notify(\"success\", \"Success\", \"Pricing modified\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleEditPlansFees = (values) => {\n const newTierInfo = tierInfo.map((tier, index) => {\n return {\n ...tier,\n subscription: values[index],\n };\n });\n incrementPendingRequests();\n dispatch(editAdmin(newTierInfo))\n .then(() => notify(\"success\", \"Success\", \"Pricing modified\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleEditOtherPricing = (value) => {\n console.log(\"other values\", value);\n const newTierInfo = tierInfo.map((tier, index) => {\n return {\n ...tier,\n pricing: {\n ...tier.pricing,\n additionalCost: {\n ...tier.pricing.additionalCost,\n [value.key]: value[TIER_INFO[index]],\n },\n },\n };\n });\n incrementPendingRequests();\n dispatch(editAdmin(newTierInfo))\n .then(() => notify(\"success\", \"Success\", \"Pricing modified\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const handleEditQuestionPlansFees = (questionValues) => {\n console.log(\"updated value\", questionValues);\n const newTierInfo = tierInfo.map((tier, index) => {\n return {\n ...tier,\n pricing: {\n ...tier.pricing,\n additionalCost: {\n ...tier.pricing.additionalCost,\n questionType: {\n ...tier.pricing.additionalCost.questionType,\n [questionValues.type]: questionValues[TIER_INFO[index]],\n },\n },\n },\n };\n });\n\n incrementPendingRequests();\n dispatch(editAdmin(newTierInfo))\n .then(() => notify(\"success\", \"Success\", \"Pricing modified\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const otherColumns = [\n {\n title: \"Name\",\n dataIndex: \"name\",\n align: \"center\",\n },\n {\n title: \"Basic Plan - Price Per Question Type\",\n dataIndex: \"basic\",\n align: \"center\",\n },\n {\n title: \"Elite Plan - Price Per Question Type\",\n dataIndex: \"elite\",\n align: \"center\",\n },\n {\n title: \"Platinum Plan - Price Per Question Type\",\n dataIndex: \"platinum\",\n align: \"center\",\n },\n {\n title: \"\",\n dataIndex: \"edit\",\n align: \"center\",\n render: (_, record) => (\n {\n setOtherFeesModal(true);\n setSelectedOtherPricing(record);\n }}\n >\n Edit\n \n ),\n },\n ];\n\n const questionColumns = [\n {\n title: \"Question Type\",\n dataIndex: \"questionName\",\n align: \"center\",\n },\n {\n title: \"Basic Plan - Price Per Question Type\",\n dataIndex: \"basic\",\n align: \"center\",\n },\n {\n title: \"Elite Plan - Price Per Question Type\",\n dataIndex: \"elite\",\n align: \"center\",\n },\n {\n title: \"Platinum Plan - Price Per Question Type\",\n dataIndex: \"platinum\",\n align: \"center\",\n },\n {\n title: \"\",\n dataIndex: \"edit\",\n align: \"center\",\n render: (_, record) => (\n {\n setQuestionFeesModal(true);\n setSelectedQuestionPricing(record);\n }}\n >\n Edit\n \n ),\n },\n ];\n\n const columns = [\n {\n title: \"#\",\n key: \"no\",\n align: \"center\",\n render: (text, record, index) => {index + 1},\n },\n {\n title: \"Survey Type\",\n align: \"center\",\n dataIndex: \"surveyType\",\n key: \"survey_type\",\n },\n {\n title: \"Time Per Survey\",\n dataIndex: \"time\",\n align: \"center\",\n key: \"time\",\n render: (text, record) => {\n console.log(\"record:\", text, record);\n if (null === text) {\n return \"N/A\";\n }\n return (\n onTimingChange(value, record)}\n options={Object.keys(surveyTimings).map((key, index) => {\n return {\n value: key,\n label: surveyTimings[key],\n };\n })}\n >\n );\n },\n },\n {\n title: \"Client Users / UQ Users\",\n key: \"users\",\n align: \"center\",\n dataIndex: \"userType\",\n render: (text, record) => (\n onChangeUserType(e.target.value, record)}\n >\n Client\n UQ\n \n ),\n },\n {\n title: \"Basic Plan - Price Per User\",\n align: \"center\",\n key: \"basic\",\n render: (text, record) =>\n record.time === null\n ? record.basic[record.userType]\n : record.basic[record.time][record.userType],\n },\n {\n title: \"Elite Plan - Price Per User\",\n align: \"center\",\n key: \"elite\",\n render: (text, record) =>\n record.time === null\n ? record.elite[record.userType]\n : record.elite[record.time][record.userType],\n },\n {\n title: \"Platinum Plan\",\n align: \"center\",\n key: \"platinum\",\n render: (text, record) =>\n record.time === null\n ? record.platinum[record.userType]\n : record.platinum[record.time][record.userType],\n },\n {\n key: \"edit\",\n align: \"center\",\n render: (_, record) => (\n {\n setConfigPricingModal(true);\n setSelectedPricing(record);\n }}\n >\n Edit\n \n ),\n },\n ];\n\n return (\n \n \n \n \n \n \n
    \n
    \n \n \n Basic Monthly Plan{\" \"}\n \n \n \n Elite Monthly Plan{\" \"}\n \n \n \n Platinum Monthly Plan{\" \"}\n \n \n \n \n {data && columns && (\n \n )}\n {questionColumns && questionPricingData && (\n
    \n \n
    \n )}\n {otherColumns && otherData && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n {plansFeesModal && (\n setPlansFeesModal(false)}\n />\n )}\n {configPricingModal && (\n setConfigPricingModal(false)}\n />\n )}\n {questionFeesModal && (\n setQuestionFeesModal(false)}\n handleEditQuestionPricing={(questionInfo) =>\n handleEditQuestionPlansFees(questionInfo)\n }\n />\n )}\n {otherFeesModal && (\n setOtherFeesModal(false)}\n handleEditOtherPricing={(otherValues) =>\n handleEditOtherPricing(otherValues)\n }\n />\n )}\n
    \n );\n};\n\nexport default Pricing;\n","import { Form, Input, Button, Modal, Switch } from \"antd\";\nimport React from \"react\";\nimport FormItemLabel from \"../../../form-item-label/FormItemLabel\";\n\nconst ConfigFeaturesModal = ({ handleCancel }) => {\n const [form] = Form.useForm();\n\n const onAddFeature = () => {\n form.validateFields().then((values) => {\n console.log(values);\n });\n };\n\n const footer = (\n
    \n \n Cancel\n \n \n
    \n );\n\n return (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ConfigFeaturesModal;\n","import { Button, Switch } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport ConfigFeaturesModal from \"../../../components/admin/features/config-features-modal/ConfigFeaturesModal\";\nimport ProjectPageLayout, {\n Content,\n} from \"../../../components/page-layout/PageLayout\";\nimport Topbar from \"../../../components/topbar/Topbar\";\nimport Sidenav from \"../../../components/admin/sidenav/Sidenav\";\nimport ResponsiveTable from \"../../../components/responsive-table/ResponsiveTable\";\nimport { adminPages } from \"../../../constants\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport dotProp from \"dot-prop-immutable\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../../utils\";\nimport { editAdmin } from \"../../../actions/admin\";\n\nconst Features = () => {\n const dispatch = useDispatch();\n const tierInfo = useSelector((state) => state.admin.tierInfo);\n const [addFeature, setAddFeature] = useState(false);\n const [data, setData] = useState([]);\n\n useEffect(() => {\n if (tierInfo) {\n let tableDataSource = [];\n let obj = {};\n\n obj.label = \"Influencer Audience\";\n obj.name = \"influencerAudience\";\n obj.basic = tierInfo[0].influencerAudience;\n obj.elite = tierInfo[1].influencerAudience;\n obj.platinum = tierInfo[2].influencerAudience;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Advanced Criteria\";\n obj.name = \"advancedCriteria\";\n obj.basic = tierInfo[0].advancedCriteria;\n obj.elite = tierInfo[1].advancedCriteria;\n obj.platinum = tierInfo[2].advancedCriteria;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Advanced Criteria Questions\";\n obj.name = \"advancedCriteriaQuestions\";\n obj.basic = tierInfo[0].advancedCriteriaQuestions;\n obj.elite = tierInfo[1].advancedCriteriaQuestions;\n obj.platinum = tierInfo[2].advancedCriteriaQuestions;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Individual Responses Compare\";\n obj.name = \"results.individualResponsesCompare\";\n obj.basic = tierInfo[0].results.individualResponsesCompare;\n obj.elite = tierInfo[1].results.individualResponsesCompare;\n obj.platinum = tierInfo[2].results.individualResponsesCompare;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Question Summaries Compare\";\n obj.name = \"results.questionSummariesCompare\";\n obj.basic = tierInfo[0].results.questionSummariesCompare;\n obj.elite = tierInfo[1].results.questionSummariesCompare;\n obj.platinum = tierInfo[2].results.questionSummariesCompare;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Image A/B\";\n obj.name = \"questionType.imageAB\";\n obj.basic = tierInfo[0].questionType.imageAB;\n obj.elite = tierInfo[1].questionType.imageAB;\n obj.platinum = tierInfo[2].questionType.imageAB;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Video A/B\";\n obj.name = \"questionType.videoAB\";\n obj.basic = tierInfo[0].questionType.videoAB;\n obj.elite = tierInfo[1].questionType.videoAB;\n obj.platinum = tierInfo[2].questionType.videoAB;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Video Star\";\n obj.name = \"questionType.videoStar\";\n obj.basic = tierInfo[0].questionType.videoStar;\n obj.elite = tierInfo[1].questionType.videoStar;\n obj.platinum = tierInfo[2].questionType.videoStar;\n tableDataSource.push(obj);\n\n obj = {};\n obj.label = \"Video Association\";\n obj.name = \"questionType.videoAssociation\";\n obj.basic = tierInfo[0].questionType.videoAssociation;\n obj.elite = tierInfo[1].questionType.videoAssociation;\n obj.platinum = tierInfo[2].questionType.videoAssociation;\n tableDataSource.push(obj);\n\n setData(tableDataSource);\n }\n }, [tierInfo]);\n\n // Handlers\n const handleValueChange = (value, plan, featureName) => {\n const newData = data.map((val) => {\n if (val.name !== featureName) return val;\n\n return {\n ...val,\n [plan]: value,\n };\n });\n setData(newData);\n };\n\n const handleSubmit = () => {\n let newTierInfo = [];\n // basic\n let obj = {};\n data.forEach((val) => {\n obj = dotProp.set(obj, val.name, val.basic);\n });\n newTierInfo.push({ ...tierInfo[0], ...obj });\n obj = {};\n // elite\n data.forEach((val) => {\n obj = dotProp.set(obj, val.name, val.elite);\n });\n newTierInfo.push({ ...tierInfo[1], ...obj });\n obj = {};\n // platinum\n data.forEach((val) => {\n obj = dotProp.set(obj, val.name, val.platinum);\n });\n newTierInfo.push({ ...tierInfo[1], ...obj });\n\n incrementPendingRequests();\n dispatch(editAdmin(newTierInfo))\n .then(() => notify(\"success\", \"Success\", \"Features modified\"))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n };\n\n const columns = [\n {\n dataIndex: \"label\",\n key: \"name\",\n align: \"center\",\n },\n {\n title: \"Basic Plan Features\",\n dataIndex: \"basic\",\n align: \"center\",\n key: \"basic\",\n render: (text, record) => (\n handleValueChange(e, \"basic\", record.name)}\n />\n ),\n },\n {\n title: \"Elite Plan Features\",\n dataIndex: \"elite\",\n align: \"center\",\n key: \"elite\",\n render: (text, record) => (\n handleValueChange(e, \"elite\", record.name)}\n />\n ),\n },\n {\n title: \"Platinum Plan Features\",\n dataIndex: \"platinum\",\n align: \"center\",\n key: \"platinum\",\n render: (text, record) => (\n handleValueChange(e, \"platinum\", record.name)}\n />\n ),\n },\n /* {\n key: \"actions\",\n align: \"center\",\n render: (text, record) => (\n console.log(record)}\n >\n \n \n ),\n }, */\n ];\n\n return (\n \n \n \n \n \n \n \n
    \n \n
    \n \n Save\n \n
    \n {/*
    \n setAddFeature(true)}\n >\n Add\n \n
    */}\n
    \n
    \n
    \n {addFeature && (\n setAddFeature(false)} />\n )}\n
    \n );\n};\n\nexport default Features;\n","import React, { useEffect } from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\nimport RegQuestions from \"./registration-questions/RegQuestions\";\nimport SampleQuestions from \"./sample-questions/SampleQuestions\";\nimport AdditionalQuestions from \"./additional-questions/AdditionalQuestions\";\nimport UserSurvey from \"./users-survey/UserSurvey\";\nimport Influencer from \"./influencer/Influencer\";\nimport ClientInfo from \"./client-info/ClientInfo\";\nimport Pricing from \"./pricing/Pricing\";\nimport Features from \"./features/Features\";\nimport { useDispatch } from \"react-redux\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n notify,\n} from \"../../utils\";\nimport { getTierInfo } from \"../../actions/admin\";\n\nconst Admin = () => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n incrementPendingRequests();\n dispatch(getTierInfo())\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => decrementPendingRequests());\n }, [dispatch]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Admin;\n","import React from \"react\";\nimport { Form, Input, Button, Spin, Popover } from \"antd\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport { styled } from \"@linaria/react\";\nimport { Link, Route, useHistory } from \"react-router-dom\";\nimport axios, { Routes } from \"../services/API\";\nimport handleNetworkErrors from \"./client/handleNetworkErrors\";\nimport { useState } from \"react\";\nimport { signIn } from \"../actions/admin\";\nimport { useDispatch } from \"react-redux\";\nimport { notify } from \"../utils\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Fragment } from \"react\";\nimport bgClient from \"../assets/client-login-1.png\";\nimport bgUser from \"../assets/user-login-bg.png\";\nimport styles from \"./Signin.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nexport const Title = styled.div`\n text-align: center;\n font-size: 20px;\n margin: 10px 0 10px;\n letter-spacing: 2px;\n`;\n\nexport const BackgroundImage = styled.div`\n background-url: (../assets/client-login-1.png);\n`;\n\nconst FormContent = ({ isClient, onFinish, role }) => {\n const history = useHistory();\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 350px)\" });\n const roleColor = isClient ? \"#71CFD7\" : \"#FF9480\";\n return (\n
    \n \n
    \n
    USERQUAL
    \n
    \n {isClient ? \"Client \" : \"User \"} Login\n
    \n
    \n
    \n \n \n history.push(`/signin/${isClient ? \"user\" : \"client\"}`)\n }\n style={{\n backgroundColor: isClient ? \"rgb(130, 194, 197)\" : \"#E98579\",\n }}\n className={cx(\"go-to-login-button\")}\n >\n GOTO {isClient ? \"USER\" : \"CLIENT\"} LOGIN\n
    \n
    \n \n \n Welcome Back\n
    \n Email or Phone\n
    \n \n \n \n
    \n Password\n
    \n \n \n \n {role !== \"admin\" && (\n \n Forgot Password ?\n \n )}\n \n \n SIGN IN\n \n \n {/* {role !== \"admin\" && (\n \n
    OR
    \n history.push(`/signup/${role}/email`)}\n >\n NEW ACCOUNT? REGISTER HERE\n \n
    \n )} */}\n \n \n );\n};\n\nconst Signin = () => {\n const history = useHistory();\n const [loading, setLoading] = useState(false);\n const dispatch = useDispatch();\n const authClient = async ({ user, password }) => {\n console.log(\"password\", password);\n let data;\n if (user.includes(\"@\")) {\n data = {\n email: user.toLowerCase(),\n password,\n };\n } else {\n data = {\n mobileNumber: parseInt(user),\n password,\n };\n }\n\n try {\n setLoading(true);\n const res = await axios.post(Routes.client.signin().url, { data });\n if (res.data && res.data.token && res.data.client) {\n localStorage.setItem(\"token\", res.data.token);\n localStorage.setItem(\"client\", res.data.client._id);\n setLoading(false);\n history.push(\"/client\");\n }\n } catch (err) {\n handleNetworkErrors(err);\n setLoading(false);\n }\n };\n\n const authUser = async ({ user, password }) => {\n let data;\n if (user.includes(\"@\")) {\n data = {\n email: user.toLowerCase(),\n password,\n };\n } else {\n data = {\n mobileNumber: parseInt(user),\n password,\n };\n }\n try {\n setLoading(true);\n const res = await axios[Routes.user.signin().method](\n Routes.user.signin().url,\n { data }\n );\n if (res.data && res.data.token && res.data.user) {\n localStorage.setItem(\"token\", res.data.token);\n localStorage.setItem(\"user\", res.data.user._id);\n setLoading(false);\n history.push(\"/user/form\");\n }\n } catch (err) {\n handleNetworkErrors(err);\n setLoading(false);\n }\n };\n\n const authAdmin = async ({ user, password }) => {\n try {\n setLoading(true);\n dispatch(signIn(user.toLowerCase(), password))\n .catch((ex) => notify(\"error\", \"Error\", ex))\n .finally(() => {\n setLoading(false);\n history.push(\"/admin/registration-questions\");\n });\n } catch (err) {\n handleNetworkErrors(err);\n setLoading(false);\n }\n };\n\n return (\n <>\n {loading && }\n {\n const isClient = true;\n const role = \"client\";\n const roleColor = isClient ? \"#71CFD7\" : \"#FF9480\";\n return (\n \n
    \n \n
    \n \n );\n }}\n />\n {\n const isClient = false;\n const role = \"user\";\n const roleColor = isClient ? \"#71CFD7\" : \"#FF9480\";\n return (\n \n
    \n \n
    \n \n );\n }}\n />\n (\n \n \n \n )}\n />\n \n );\n};\n\nexport default Signin;\n","import React, { useState } from \"react\";\nimport { Form, Input, Button, notification, Popover, Modal } from \"antd\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport { styled } from \"@linaria/react\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport axios, { Routes } from \"../services/API\";\nimport handleNetworkErrors from \"./client/handleNetworkErrors\";\nimport { decrementPendingRequests, incrementPendingRequests } from \"../utils\";\nimport { useMediaQuery } from \"react-responsive\";\n\nexport const Center = styled.div`\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: ${(props) => (props.isClient ? \"#ECF9FA\" : \"#FFE2DC\")};\n`;\n\nconst MobileForm = (props) => {\n const history = useHistory();\n const { role } = useParams();\n const [token, setToken] = useState(\"\");\n const [step, setStep] = useState(0);\n const [mobile, setMobile] = useState(\"\");\n const [otp, setOtp] = useState(\"\");\n const [p1, setP1] = useState(\"\");\n const [p2, setP2] = useState(\"\");\n const { forgotPassword } = props;\n const isClient = role === \"client\";\n const roleColor = isClient ? \"#71CFD7\" : \"#FF9480\";\n const isTabletOrMobile = useMediaQuery({ query: \"(max-width: 300px)\" });\n\n const sendOTP = async () => {\n var { url, method } = Routes.others.checkAvailable(\n `userType=${role}&mobileNumber=${parseInt(mobile)}`\n );\n var { data } = await axios[method](url);\n console.log(data);\n if (!forgotPassword && !data.isAvailable) {\n return Modal.error({\n title: \"Mobile Number Not Available!\",\n });\n }\n if (forgotPassword && data.isAvailable) {\n return Modal.error({\n title: \"Mobile Number Not Registered!\",\n });\n }\n const parsedMobile = parseInt(mobile);\n try {\n const res = await axios[Routes.verification.sendOTP(parsedMobile).method](\n Routes.verification.sendOTP(parsedMobile).url,\n {\n data: { mobileNumber: parsedMobile },\n }\n );\n if (res.data && res.data.message && res.data.message.includes(\"OTP sent\"))\n setStep(1);\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const verifyOtp = async () => {\n const parsedMobile = parseInt(mobile);\n const parsedOtp = parseInt(otp);\n const { url, method } = Routes.verification.verifyOTP();\n try {\n const { data } = await axios[method](url, {\n data: { mobileNumber: parsedMobile, OTP: parsedOtp },\n });\n if (data && data.message && data.message.includes(\"OTP verified\")) {\n notification.success({\n message: \"OTP verified successfully.\",\n });\n if (data.token) setToken(data.token);\n setStep(2);\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n const signup = async () => {\n const parsedMobile = parseInt(mobile);\n const { url, method } = forgotPassword\n ? Routes[role].forgotPassword()\n : Routes[role].signup();\n if (p1 !== p2) {\n notification.info({\n message: \"Please type the same password both the times!\",\n });\n return;\n }\n try {\n const { data } = await axios[method](url, {\n data: {\n mobileNumber: parsedMobile,\n password: p1,\n token,\n isMobileNumberVerified: true,\n registeredVia: 1,\n },\n });\n if (!forgotPassword && data && data.token && data[role]) {\n localStorage.setItem(\"token\", data.token);\n localStorage.setItem(`${role}`, data[role]._id);\n if (role === \"user\") history.push(`/user/forms`);\n else if (role === \"client\") history.push(\"/client\");\n return;\n }\n notification.success({\n message:\n \"Password changed successfully. Now please login with the new password.\",\n });\n history.push(`/signin/${role}`);\n } catch (err) {\n handleNetworkErrors(err);\n }\n };\n\n return (\n
    \n

    \n {forgotPassword ? (\n <>\n {`${role.charAt(0).toUpperCase() + role.slice(1)}`} password reset\n \n ) : (\n <>\n Hey, welcome!
    \n Please register yourself as a {role}.\n \n )}\n

    \n \n {step === 0 && (\n <>\n
    \n Phone\n
    \n {\n if (/[A-Za-z]/.test(value)) {\n return Promise.reject(\n \"Please enter a valid mobile number!\"\n );\n }\n return Promise.resolve();\n },\n },\n ]}\n style={{ width: \"100%\" }}\n >\n setMobile(e.target.value)}\n style={{ borderRadius: 10, height: 45, borderColor: roleColor }}\n placeholder=\"e.g. 9876543210\"\n />\n \n \n \n Send OTP\n \n \n \n history.push(\n `/${\n forgotPassword ? \"forgotPassword\" : \"signup\"\n }/${role}/email`\n )\n }\n >\n \n Use Email to {forgotPassword ? \"reset password\" : \"Register\"}\n \n \n \n )}\n {step === 1 && (\n <>\n
    \n OTP\n
    \n \n setOtp(e.target.value)}\n placeholder=\"Confirm OTP\"\n style={{ borderRadius: 10, height: 45, borderColor: roleColor }}\n />\n \n \n \n Confirm OTP\n \n \n \n history.push(\n `/${\n forgotPassword ? \"forgotPassword\" : \"signup\"\n }/${role}/email`\n )\n }\n >\n \n Use Email to {forgotPassword ? \"reset password\" : \"Register\"}\n \n \n \n )}\n {step === 2 && (\n <>\n
    \n Password\n
    \n \n setP1(e.target.value)}\n placeholder=\"Enter Password\"\n style={{ borderRadius: 10, height: 45, borderColor: roleColor }}\n />\n \n
    \n Confirm Password\n
    \n \n setP2(e.target.value)}\n placeholder=\"Re-enter password\"\n style={{ borderRadius: 10, height: 45, borderColor: roleColor }}\n />\n \n \n \n {forgotPassword ? \"Change password\" : \"Sign Up\"}\n \n \n \n history.push(\n `/${\n forgotPassword ? \"forgotPassword\" : \"signup\"\n }/${role}/email`\n )\n }\n >\n \n Use Email to {forgotPassword ? \"reset password\" : \"Register\"}\n \n \n \n )}\n \n {forgotPassword ? (\n history.push(`/signin/${role}`)}\n >\n \n Back to {`${role.charAt(0).toUpperCase() + role.slice(1)}`} sign in\n \n \n ) : (\n <>\n history.push(`/signin/${role}`)}\n >\n Already have an account? Sign in here\n \n \n history.push(`/signup/${isClient ? \"user\" : \"client\"}/email`)\n }\n >\n \n Would you like to be a {isClient ? \"user\" : \"client\"}?{\" \"}\n \n \n {\" \"}\n Click here!\n \n \n \n )}\n
    \n );\n};\n\nconst EmailForm = (props) => {\n const { role } = useParams();\n const history = useHistory();\n const [email, setEmail] = useState();\n const { forgotPassword } = props;\n const isClient = role === \"client\";\n const roleColor = isClient ? \"#71CFD7\" : \"#FF9480\";\n\n const verify = async () => {\n try {\n var { url, method } = Routes.others.checkAvailable(\n `userType=${role}&email=${email.toLowerCase()}`\n );\n var { data } = await axios[method](url);\n console.log(data);\n if (!forgotPassword && !data.isAvailable) {\n return Modal.error({\n title: \"Email Not Available!\",\n });\n }\n if (forgotPassword && data.isAvailable) {\n return Modal.error({\n title: \"Email Not Registered!\",\n });\n }\n var { url, method } = forgotPassword\n ? Routes.verification.sendEmail(\n email.toLowerCase(),\n role + \"_forgotPassword\"\n )\n : Routes.verification.sendEmail(email.toLowerCase(), role + \"_signup\");\n incrementPendingRequests();\n var { data } = await axios[method](url);\n if (data && data.message && data.message.includes(\"link sent\")) {\n Modal.success({\n title:\n \"Please click on registration link sent to your email to complete the process. Thanks!\",\n });\n }\n } catch (err) {\n console.log(\"ERRORRRRR\");\n handleNetworkErrors(err);\n } finally {\n decrementPendingRequests();\n }\n };\n\n return (\n
    \n

    \n {forgotPassword ? (\n <>\n {`${role.charAt(0).toUpperCase() + role.slice(1)}`} password reset\n \n ) : (\n <>\n Hey, welcome!
    \n Please register yourself as a {role}.\n \n )}\n

    \n \n
    \n Email\n
    \n \n setEmail(e.target.value)}\n />\n \n \n verify()}\n style={{\n background: roleColor,\n borderRadius: 10,\n height: 45,\n border: roleColor,\n }}\n block\n >\n Send Verification Link\n \n \n \n history.push(\n `/${forgotPassword ? \"forgotPassword\" : \"signup\"}/${role}/mobile`\n )\n }\n >\n \n Use Mobile Phone to {forgotPassword ? \"reset password\" : \"Register\"}\n \n \n \n {forgotPassword ? (\n history.push(`/signin/${role}`)}\n >\n \n Back to {`${role.charAt(0).toUpperCase() + role.slice(1)}`} sign in\n \n \n ) : (\n <>\n history.push(`/signin/${role}`)}\n >\n Already have an account? Sign in here\n \n \n history.push(`/signup/${isClient ? \"user\" : \"client\"}/email`)\n }\n >\n \n Would you like to be a {isClient ? \"user\" : \"client\"}?{\" \"}\n \n \n {\" \"}\n Click here!\n \n \n \n )}\n
    \n );\n};\n\nconst Signup = (props) => {\n const { mobile, role } = useParams();\n\n return (\n
    \n {mobile === \"email\" && }\n {mobile === \"mobile\" && }\n
    \n );\n};\n\nexport default Signup;\n","import { Button, Input, Form, notification } from \"antd\";\nimport { LockOutlined } from \"@ant-design/icons\";\nimport React from \"react\";\nimport { useState } from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport { Center } from \"./Signup\";\nimport axios, { Routes } from \"../services/API\";\nimport handleNetworkErrors from \"./client/handleNetworkErrors\";\nimport jwtDecode from \"jwt-decode\";\nimport { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { editProfile as editUserProfile } from \"../actions/users\";\nimport { editProfile as editClientProfile } from \"../actions/client\";\nimport { getEmailByToken, getRoleByToken } from \"../utils\";\n\nconst Verification = () => {\n const dispatch = useDispatch();\n const { token } = useParams();\n const [p1, setP1] = useState(\"\");\n const [p2, setP2] = useState(\"\");\n const [emailVerified, setEmailVerified] = useState(false);\n const { email } = jwtDecode(token);\n const [role, forgotPassword] = jwtDecode(token).role.split(\"_\");\n const history = useHistory();\n\n useEffect(() => {\n (async () => {\n const { url, method } = Routes.verification.verifyEmail();\n try {\n const { data } = await axios[method](url, { data: { token } });\n if (data.message && data.message.includes(\"Email verified\")) {\n setEmailVerified(true);\n notification.success({\n message: \"Email verified successfully!\",\n });\n const email = getEmailByToken(token);\n if (getRoleByToken(token) === \"user\") {\n dispatch(editUserProfile({ email, isEmailVerified: true }));\n } else {\n dispatch(editClientProfile({ email, isEmailVerified: true }));\n }\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n })();\n }, [token]);\n\n const signup = async () => {\n if (emailVerified) {\n if (p1 !== p2) {\n notification.info({\n message: \"Please type the same password both the times\",\n });\n return;\n }\n const { url, method } =\n forgotPassword === \"forgotPassword\"\n ? Routes[role].forgotPassword()\n : Routes[role].signup();\n try {\n const { data } = await axios[method](url, {\n data: {\n email: email.toLowerCase(),\n password: p1,\n token,\n isEmailVerified: true,\n registeredVia: 0,\n },\n });\n if (data[role] && data.token) {\n console.log(data);\n localStorage.setItem(role, data[role]._id);\n localStorage.setItem(\"token\", data.token);\n if (role === \"user\") history.push(`/user/forms`);\n else if (role === \"client\") history.push(\"/client\");\n }\n } catch (err) {\n handleNetworkErrors(err);\n }\n }\n };\n\n return (\n
    \n
    \n \n }\n onChange={(e) => setP1(e.target.value)}\n placeholder=\"Enter password\"\n />\n \n \n }\n onChange={(e) => setP2(e.target.value)}\n placeholder=\"Re-enter password\"\n />\n \n \n signup()}\n style={{ width: \"100%\" }}\n >\n {forgotPassword === \"forgotPassword\"\n ? \"Change password\"\n : \"Sign Up\"}\n \n \n
    \n
    \n );\n};\n\nexport default Verification;\n","import React from \"react\";\nimport \"./Feature.css\";\n\nexport default function Feature({ item, right, left }) {\n return (\n
    \n {right ? (\n
    \n
    \n

    {item.heading}

    \n {Object.keys(item[\"list\"]).map((items, index) => (\n
      \n
    • {item[\"list\"][items]}
    • \n
    \n ))}\n
    \n \"not\n
    \n ) : (\n
    \n \"not\n
    \n

    {item.heading}

    \n {Object.keys(item[\"list\"]).map((items, index) => (\n
      \n
    • {item[\"list\"][items]}
    • \n
    \n ))}\n
    \n
    \n )}\n
    \n );\n}\n","import React from \"react\";\nimport \"./Features.css\";\nimport Picture5 from \"../../assets/Picture5.png\";\nimport Picture6 from \"../../assets/Picture6.png\";\nimport Picture7 from \"../../assets/Picture7.png\";\nimport Feature from \"./Feature/Feature\";\n\nexport default function Features() {\n let feature_content = {\n item_1: {\n id: 1,\n image: Picture5,\n heading: \"+ Remote Mobile & Desktop Testing\",\n list: {\n desc_1: \"In-depth target audience selection and screeners\",\n desc_2: \"Ideal for user engagement pre/post product launch\",\n },\n },\n item_2: {\n id: 2,\n image: Picture6,\n heading: \"+ Quick turnaround and increased conversion velocity\",\n list: {\n desc_1:\n \"15-min unmoderated video sessions to 60-minute moderated group sessions \",\n desc_2: \"Set panels for quicker feedback\",\n desc_3:\n \"Ideal for website/app UI/UX testing and offline CPG product testing\",\n },\n },\n item_3: {\n id: 3,\n image: Picture7,\n heading: \"+ In-depth analysis and richer insight\",\n list: {\n desc_1: \"Real reactions and honest feedback from users\",\n desc_2:\n \"Sentiment analysis, wordcloud, net promotor scores, statistics\",\n desc_3:\n \"Ideal for media/storyboard feedback, price/packaging/taste A/B tests\",\n },\n },\n };\n\n return (\n
    \n

    Features & Benefits

    \n \n \n \n
    \n );\n}\n","import React from \"react\";\nimport styles from \"./Card.module.css\";\nimport c from \"classnames/bind\";\n\nconst cx = c.bind(styles);\n\nexport default function Card({ image, heading, setIndex, index }) {\n return (\n
    \n \"error\"\n

    {heading}

    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { FaChevronRight } from \"react-icons/fa\";\n\nconst Description = ({ heading, desc, list }) => {\n const [showState, setShowState] = useState(false);\n const changeShowState = () => {\n setShowState((prev) => {\n return !prev;\n });\n };\n return (\n <>\n
  • \n {heading}\n
  • \n

    \n {desc}\n

      \n {list.map((line, index) => (\n
    • {line}
    • \n ))}\n
    \n

    \n
    \n \n );\n};\n\nexport default Description;\n","import React, { useState } from \"react\";\nimport \"./Market.css\";\nimport { a, b, c, d, e, f } from \"../../assets\";\nimport Card from \"../Card/Card\";\nimport Description from \"./Description\";\n\nexport default function Market() {\n const data = [\n {\n heading: \"BRAND LOYALTY\",\n description:\n \"Brand loyalty is the biggest determining factor of a company’s long-term success. Brands need a reliable way to measure and understand changes in brand affinity over time.\",\n list: [\n \"Product reviews\",\n \"Rewards offering\",\n \"Social promotions\",\n \"Customer support\",\n ],\n },\n {\n heading: \"CONCEPT TESTING\",\n description:\n \"Brands need to reliably measure the potential viability of products and concepts, as well as test their market potential before investing in development efforts.\",\n list: [\n \"Monadic testing\",\n \"Reaction testing\",\n \"Adoption testing\",\n \"Migration testing\",\n ],\n },\n {\n heading: \"IN-HOME USAGE TESTING\",\n description:\n \"Brands need an accurate and reliable way to test and measure if their product is ready for the perfect launch throughout every stage of the development phase.\",\n list: [\n \"Diary studies\",\n \"Video/photo diaries\",\n \"Pre and post-test evaluation\",\n \"Discussions\",\n ],\n },\n {\n heading: \"PRICE TESTING\",\n description:\n \"Brands need a reliable way to measure price sensitivity in the market before making important business decisions.\",\n list: [\n \"Discrete choice\",\n \"Van Westendorp Sensitivity Meter\",\n \"Max diff\",\n \"Monadic testing\",\n \"Paired testing\",\n ],\n },\n {\n heading: \"AD TESTING\",\n description:\n \"Brands need an accurate way to engage with their target market and test audience perception.\",\n list: [\n \"Pre to post-interest life\",\n \"Copy testing\",\n \"Heat mapping\",\n \"Monadic testing\",\n \"Storyboard testing\",\n ],\n },\n {\n heading: \"MEDIA & CONTENT EVALUATION\",\n description:\n \"Brands need a high degree confidence that the marketing content they are creating will resonate with their customers.\",\n list: [\n \"Highlighting\",\n \"Hot spotting\",\n \"Dial testing\",\n \"Monadic testing\",\n \"Purchase evaluation\",\n \"Ad testing\",\n ],\n },\n {\n heading: \"USABILITY TESTING\",\n description:\n \"Brands need access to the most sophisticated tools to gauge and enhance the user experience.\",\n list: [\n \"Card sorts\",\n \"User tasks\",\n \"User funnel\",\n \"Heatmaps\",\n \"Tree testing\",\n \"Competitive benchmarks\",\n ],\n },\n {\n heading: \"BRAND HEALTH TRACKING\",\n description:\n \"Brands need a reliable way to measure and understand changes in brand perception over time, as well as how they compare to competitors.\",\n list: [\n \"Brand funnel\",\n \"Brand personality testing\",\n \"Competitive benchmarking\",\n \"Real-time feedback from engaged customers\",\n ],\n },\n ];\n const boxes = [\n {\n title: \"Retail and CPG\",\n image: a,\n body: [\n {\n heading: \"Heading1\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n {\n heading: \"dwadaw\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n {\n heading: \"grsgse\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n {\n title: \"Technology\",\n image: c,\n body: [\n {\n heading: \"working Click\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n {\n heading: \"working Click2\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n {\n heading: \"working Click3\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n {\n title: \"Financial Services\",\n image: d,\n body: [\n {\n heading: \"Heading3\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n {\n title: \"Healthcare and Insurance\",\n image: b,\n body: [\n {\n heading: \"Heading4\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n {\n title: \"Automotive\",\n image: f,\n body: [\n {\n heading: \"Heading5\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n {\n title: \"Media and Entertainment\",\n image: e,\n body: [\n {\n heading: \"Heading5\",\n desc:\n \" Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident cupiditate necessitatibus sapiente?\",\n },\n ],\n },\n ];\n\n return (\n
    \n
    \n
    \n

    \n See how UserQual is disrupting Market Research\n

    \n
    \n
    \n {boxes.map(({ image, title }, index) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n
      \n {data &&\n data.map(({ heading, description, list }, index) => {\n return (\n
      \n \n
      \n );\n })}\n
    \n
    \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport footer_wave from \"../../assets/footer_wave.png\";\nimport \"./Footer.css\";\nexport default function Footer() {\n return (\n \n
    \n
    \n \n Home\n \n \n About UserQual\n \n \n FAQ\n \n \n Privacy and Terms and Conditions\n \n \n Blog\n \n
    \n
    \n \n Happy Testing\n \n
    \n
    \n \n );\n}\n\nconst Wrapper = styled.footer`\n height: 45vh;\n background: url(${footer_wave});\n position: relative;\n\n .content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n font-size: clamp(0.9em, 5vw, 1.2em);\n position: absolute;\n bottom: 3em;\n\n .section_1 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n\n & > * {\n color: white;\n margin: 0em 1em;\n }\n\n .footer_link {\n &:hover {\n opacity: 0.8;\n }\n }\n }\n .section_2 {\n .footer_link_2 {\n padding: 1em;\n color: white;\n }\n }\n }\n`;\n","import React from \"react\";\nimport \"./Trial.css\";\nimport trial_illustration from \"../../assets/trial_illustration.png\";\n\nexport default function Trial() {\n return (\n
    \n
    \n
    \n \"illustration\"\n
    \n

    curious?

    \n

    \n Sign up for a FREE trial – 1 free test!\n
    Or book a demo – we’d love to show you around!\n

    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n );\n}\n","import \"./laptop.css\";\nimport React from \"react\";\nimport { laptop, laptopvideo } from \"../../assets/index\";\nconst Laptop = () => {\n return (\n
    \n
    \n \"error\"\n \"Loading.....\"\n
    \n
    \n

    We help create better products

    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Laptop;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"./navbar.css\";\nconst Navbar = () => {\n return (\n <>\n \n \n );\n};\nexport default Navbar;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"./home.css\";\n\nimport Navbar from \"../Navbar/Navbar\";\nconst Home = () => {\n return (\n <>\n \n
    \n
    \n
    \n
    \n

    \n USER TESTING DONE RIGHT.
    \n FINALLY.\n

    \n
    \n Interactive and feature-rich product testing platform with\n powerful video analytics, transcriptions, translations,and some\n mind bendingly awesome AI tools. Create in seconds, get feedback\n in minutes.\n
    \n
    \n \n TRY FOR FREE\n \n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default Home;\n","import React from \"react\";\nimport \"./Brands.css\";\nimport {\n brand_1,\n brand_2,\n brand_3,\n brand_4,\n brand_5,\n} from \"../../assets/brand_pics\";\n\nexport default function Brands() {\n return (\n
    \n
    \n
    \n

    Trusted by

    \n

    \n Leading consumer packaged goods and online companies in the world\n

    \n
    \n \"error\"\n \"error\"\n \"error\"\n \"error\"\n \"error\"\n
    \n
    \n
    \n
    \n );\n}\n","import React, { useEffect } from \"react\";\n\nconst HomeCSSLoad = () => {\n const homePageCSS = \"./Home.css\";\n return ;\n};\n\nexport default HomeCSSLoad;\n","import React, { useState } from \"react\";\nimport Features from \"../components/Features/Features\";\nimport Market from \"../components/Market/Market\";\nimport Footer from \"../components/Footer/Footer\";\nimport Trial from \"../components/Trial/Trial\";\nimport Laptop from \"../components/Laptop/Laptop\";\nimport Homex from \"../components/Home/Home\";\nimport Brands from \"../components/Brands/Brands\";\n// import \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"bootstrap/dist/js/bootstrap.min.js\";\nimport HomeCSSLoad from \"./HomeCSSLoad\";\nimport { useEffect } from \"react\";\nimport { Spin } from \"antd\";\nimport { Fragment } from \"react\";\n\nconst Home = () => {\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n setTimeout(() => setLoading(false), 1000);\n }, []);\n return (\n
    \n \n {loading ? (\n \n ) : (\n \n \n \n \n \n \n \n
    \n \n )}\n
    \n );\n};\n\nexport default Home;\n","import React from \"react\";\nimport \"./HomeTextBanner.css\";\nimport { Col, Row, Button } from \"antd\";\nimport { Link } from \"react-router-dom\";\n\nconst HomeTextBanner = () => {\n return (\n
    \n \n \n

    \n Earn while giving your frank opinion!\n

    \n

    \n Join thousands of users who give feedback and make money! Companies\n will love you AND pay you for your honest feedback!\n

    \n \n \n

    \n GIVE HONEST FEEDBACK AND EARN MONEY!\n

    \n \n \n \n \n \n
    \n );\n};\n\nexport default HomeTextBanner;\n","const questionAnswers = [\n {\n question: \"How do I get paid?\",\n answer:\n \"Do what others do – daily – sign up and give feedback. \" +\n \"You can do it whenever, wherever and earn money on \" +\n \"the side. Companies will love you AND pay you for your \" +\n \"honest feedback for each survey, directly into your \" +\n \"account of choice.\",\n },\n {\n question: \"Why companies need your feedback?\",\n answer:\n \"Companies such as Unilever, Flipkart, Uber, Tata, etc. need \" +\n \"feedback from consumers while they are designing their \" +\n \"products, be it pricing, logo, ads, or just to get a general \" +\n \"sense of what consumers like. They are also interested in \" +\n \"doing user testing on their websites and apps to launch \" +\n \"stable and user friendly products.\",\n },\n {\n question: \"What is video testing?\",\n answer:\n \"Video testing as a concept is to gather live feedback from \" +\n \"users and seeing how they respond to questions. It is simple, \" +\n \"convenient and can be done using your phone or computer. \" +\n \"The companies gather valuable information on how you use \" +\n \"their products or feel about them – and you get paid to share \" +\n \"your honest feedback!\",\n },\n {\n question: \"How can I test?\",\n answer:\n \"Create an account using your mobile number or email and\" +\n \"answers a few demographic questions. Based on your\" +\n \"profile, we will ask you to take paid surveys. These would\" +\n \"either be online surveys or video surveys to gather your\" +\n \"honest opinions. Soon after, we will pay you directly into your\" +\n \"account of choice!\",\n },\n];\n\nexport default questionAnswers;\n","import React from \"react\";\nimport \"./HomeQuestionAnswers.css\";\nimport womanGivingSurvey from \"../../../assets/images/woman-giving-survey.png\";\nimport plusIcon from \"../../../assets/images/accordion-plus.png\";\nimport minusIcon from \"../../../assets/images/accordion-minus.png\";\nimport { Col, Collapse, Row } from \"antd\";\nimport questionAnswers from \"./questionAnswerData\";\nconst { Panel } = Collapse;\n\nconst HomeQuestionAnswers = () => {\n return (\n
    \n \n \n \n \n \n

    Things you might be wondering about…

    \n (\n \n )}\n accordion\n ghost\n className={\"question-answer-collapse\"}\n >\n {questionAnswers.map((record) => {\n return (\n \n

    {record.answer}

    \n
    \n );\n })}\n \n \n
    \n
    \n );\n};\n\nexport default HomeQuestionAnswers;\n","import React from \"react\";\nimport \"./HomeFeedback.css\";\nimport checkMark from \"../../../assets/images/check-mark.png\";\nimport womanChilling from \"../../../assets/images/woman-chilling.png\";\nimport { Button, Col, Row } from \"antd\";\nimport { Link } from \"react-router-dom\";\n\nconst feedbackPoints = [\n \"Atleast 16 years old\",\n \"Have a PC/Mac/desktop or Android/Apple phone\",\n \"Have access to the internet\",\n \"Speak atleast one of these languages fluently: \" +\n \"English, Hindi, Marathi, Gujarati\",\n];\nconst HomeFeedback = () => {\n return (\n \n \n

    Anyone can give feedback.

    \n {feedbackPoints.map((point) => {\n return (\n
    \n \n {point}\n
    \n );\n })}\n \n \n \n \n \n {/**/}\n {/* */}\n \n {/* */}\n {/**/}\n \n
    \n );\n};\n\nexport default HomeFeedback;\n","import React, { useState } from \"react\";\nimport \"./Header.css\";\nimport { Button, Col, Row } from \"antd\";\nimport { MenuOutlined } from \"@ant-design/icons\";\nimport { Link } from \"react-router-dom\";\n\nconst menuItems = [{ link: \"/\", text: \"FAQ\" }];\n\nconst Header = () => {\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n return (\n <>\n \n \n UserQual\n \n \n {menuItems.map((record) => {\n return (\n \n {record.text}\n \n );\n })}\n \n \n \n \n \n \n \n setIsMobileMenuOpen(!isMobileMenuOpen)}\n >\n \n Menu\n \n \n \n \n \n \n \n {isMobileMenuOpen ? (\n \n {menuItems.map((record) => {\n return (\n \n
    {record.text}
    \n \n );\n })}\n \n ) : null}\n
    \n \n );\n};\n\nexport default Header;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport footer_wave from \"../../../assets/footer_wave.png\";\nimport \"./Footer.css\";\nimport { Col, Row } from \"antd\";\n\nconst footerLinks = [\n { title: \"Home\", link: \"/\" },\n { title: \"About UserQual\", link: \"/\" },\n { title: \"FAQ\", link: \"/\" },\n { title: \"Privacy and T&Cs\", link: \"/\" },\n { title: \"Blog\", link: \"/\" },\n];\n\nexport default function Footer() {\n return (\n \n
    \n
    \n {footerLinks.map((link) => {\n return (\n \n {link.title}\n \n );\n })}\n
    \n
    \n \n Happy Testing !\n \n
    \n
    \n
    \n \n {footerLinks.map((link, index) => {\n return (\n \n \n {link.title}\n \n \n );\n })}\n \n
    \n \n Happy Testing !\n \n
    \n
    \n \n );\n}\n","import React from \"react\";\nimport \"./Layout.css\";\nimport Header from \"../Header/Header\";\nimport Footer from \"../Footer/Footer\";\n\nconst Layout = ({ children }) => {\n return (\n
    \n
    \n
    {children}
    \n
    \n
    \n );\n};\n\nexport default Layout;\n","import React from \"react\";\nimport \"bootstrap/dist/js/bootstrap.min.js\";\nimport HomeTextBanner from \"../components/HomeV2/HomeTextBanner/HomeTextBanner\";\nimport HomeQuestionAnswers from \"../components/HomeV2/HomeQuestionAnswers/HomeQuestionAnswers\";\nimport HomeFeedback from \"../components/HomeV2/HomeFeedback/HomeFeedback\";\nimport Layout from \"../components/Layout/Layout/Layout\";\n\nconst BecomeTester = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default BecomeTester;\n","import React from \"react\";\n\nconst PrivacyAndTermsAndConditions = () => {\n return (\n
    \n

    \n UserQual Privacy Policy\n

    \n

    \n At UserQual, your privacy is important to us. This Privacy Policy\n describes the personal data that UserQual and group companies\n (collectively referred to as \"the Company,\" “we,\" \"our,\" and \"us\")\n processes. This Privacy Policy also explains how we process personal\n data and for what purposes.\n

    \n

    \n Summary of Key Points\n

    \n
      \n
    • \n This Privacy Policy explains when we process Personal Data for our\n legitimate business interests. For more information on how to access\n and control your data, please see the \"\n How you can control your data\" section.\n
    • \n
    • \n We use cookies and other technologies to track the use of our websites\n and apps. To learn about opportunities to choose not to allow cookies,\n please see our Cookie Policy \n \n here\n \n .\n
    • \n
    • We do not sell your data.
    • \n
    • \n We transfer data across borders, including to and from the US and\n other locations. Where applicable, we abide by the unmodified EU\n Standard Contractual Clauses for Processors (as defined in the GDPR)\n pursuant to the European Commission Decision of 5 February 2010. We\n also comply with, and are self-certified under, the EU-U.S. Privacy\n Shield Framework and Swiss-U.S.\n
    • \n
    • \n We comply with the General Data Protection Regulation (the \n \"GDPR\") and other applicable European Union (\n \"EU\") privacy laws. If you are a resident of the\n European Economic Area (\"EEA\"), please see the \n \n GDPR Notice \n \n that applies to you.\n
    • \n
    • \n We comply with the California Consumer Privacy Act (the \n \"CCPA\"). If you are a resident of California, please\n see the that \n \n CCPA Notice\n \n  applies to you.\n
    • \n
    \n

    \n Who we are\n

    \n

    \n We provide websites (\"Sites\") where visitors and other\n members of our community (\"Visitors\") may learn about\n our offerings, view Site materials, and/or access our platform (\n \"Platform\") and related services (\n \"Services\") that enable (i) businesses, including\n current and prospective customers (collectively \n \"Customers\") to solicit feedback (\n \"Tests\") on any brand, design, content, or current or\n potential offering and (ii) individuals taking part in such Tests (\n \"Participants\") to perform and record Tests. In\n connection with the Site, Platform, and Services, UserQual may collect,\n record, and analyze information about Visitors, including its Customers\n and Participants, which may include individually identifiable\n information that would allow UserQual to determine the actual identity\n of or contact information of a specific individual, billing information,\n account settings, and other data (\"Personal Data\").\n

    \n

    \n Who is my data controller?\n

    \n

    \n Certain data protection and privacy laws, such as the GDPR,\n differentiate between \"controllers\" and \"processors\" of personal\n information. A \"controller\" decides why and how to process personal\n information. A \"processor\" processes personal information on behalf of a\n controller based on the controller's instructions.\n

    \n

    \n For Visitors, the Company is the controller, to the extent that we\n collect or you provide your Personal Data.\n

    \n

    \n For Participants, the Company is the controller of the personal\n information collected from you by the Company, except for the\n information collected by our Customers through a Test.\n

    \n

    \n For Customers, you are the controller of the data we collect from you\n for us to provide you with access to our Platform or Services.\n

    \n

    \n How we collect and use your data\n

    \n

    \n How we collect Personal Data depends on how and why you use our Sites,\n our Platform, and/or our Services.\n

    \n

    \n We collect Personal Data directly when you submit it to us, as a\n Visitor, Participant, or Customer, as well as indirectly, such as\n through the use of automated technologies or from third parties. To help\n keep our databases current and to provide you the most relevant content\n and experiences, we may combine information provided by you with\n information from third-party sources, in accordance with applicable\n laws. For example, the size, industry, and other information about the\n company you work for (where you have provided company name) may be\n obtained from sources including professional networking sites and\n information service providers. We provide more information about how we\n collect Personal Data below.\n

    \n

    \n UserQual uses your Personal Data for certain legitimate business\n purposes, including the following:\n

    \n
      \n
    • \n to provide you access to and use of the Platform and Services,\n including registering as a Customer or a Participant,\n
    • \n
    • \n to deliver Services to our Customers, including Recordings created by\n Participants,\n
    • \n
    • \n to improve and enhance your experience with the Platform and Services,\n including the content and general administration of the Platform and\n Services,\n
    • \n
    • \n to retain records as may be required for tax, legal, and financial\n purposes,\n
    • \n
    • \n to understand how you access, use and interact with the Services in\n order to provide technical functionality, develop new products and\n services, and analyze your use of the Services,\n
    • \n
    • to communicate with you,
    • \n
    • \n to provide you with customer support in connection with your use of\n the Services,\n
    • \n
    • to detect fraud, illegal activities, or security breaches,
    • \n
    • to receive and make payments, and
    • \n
    • \n to provide information to regulatory bodies when legally required.\n
    • \n
    \n

    \n In the sections below, we are more specific about the purposes for which\n we use each category of data.\n

    \n

    \n \n Data provided by or collected from our Visitors (\"Visitor Data\")\n \n

    \n

    \n When Visitors use or browse one of our Sites, we collect their IP\n addresses and usage information such as page views, clicks, and browser\n type.\n

    \n

    \n If a Visitor submits a request for a trial on our Site, chats with us\n for support, requests to watch a webinar, subscribes to our blog or\n other news, submits a request through our Contact Us form, or requests\n to download a whitepaper or other content, we may also collect the\n Visitor’s: name, title, email, phone number, company name, country\n and IP address.\n

    \n

    \n We use this Visitor Data to provide the Visitor with the information or\n materials requested, including marketing materials, newsletters and\n other related content, perform analytics on how the Site, Platform, and\n Services are used, improve the use of the Site, Platform, or Services,\n and for other legitimate business purposes.\n

    \n

    \n \n Data provided by or collected from our Participants (\"Participant\n Data\")\n \n

    \n

    \n \n Account Data\n \n

    \n

    \n When a Participant creates an account with UserQual, we will collect the\n Participant’s name, username, and password, zip code, and email\n address.\n

    \n

    \n We may also ask each Participant to provide us with additional\n information necessary or helpful for UserQual to be able to determine\n which Tests are best directed to that Participant. Examples of\n information we may collect are: birth year; gender; household income\n range; country; web expertise; presence of children (including gender\n and birth years); employment status, industry; company size; job role\n seniority; gaming genres; web browsers; social networks; languages\n spoken; race, ethnicity, sexual orientation, and other sensitive\n personal data, which may be provided on a voluntary basis and only\n collected as permitted by applicable law; devices owned (e.g. computer,\n smartphone, tablet); and computer operating system.\n

    \n

    \n UserQual uses Participant Data to provide and improve its Services, pay\n Participants, provide information on how to use our Platform and\n Services to our Participants, and for other legitimate business\n purposes.\n

    \n

    \n \n Recordings\n \n

    \n

    \n As a Participant takes part in a Test, we make a recording of the\n Participant’s activities, which may include recordings of the\n Participant’s voice, screen content, face recordings, screen\n recordings, browser content, screen interactions including mouse\n movement and clicking, text input, device configurations, and any\n background audio or video content (\"Recordings\").\n

    \n

    \n Intellectual property rights in the Recordings, which may include\n Personal Data and face Recordings, are assigned by Participants to\n UserQual under the terms of the Participant Terms of Service in\n consideration for Participants’ use of the Platform and Services.\n Face Recordings are owned by and controlled by the Customer or UserQual,\n as applicable.\n

    \n

    \n UserQual uses Recordings to provide Services to Customers, to market its\n products and services, to protect against fraudulent or illegal\n activity, to improve the UserQual Platform and Services and for other\n legitimate business purposes.\n

    \n

    \n \n Privacy for Minors\n \n

    \n

    \n From time to time, UserQual’s Customers seek feedback from minor\n children (ages 17 and younger) using the Platform for Tests specifically\n designed for children. To facilitate those Tests, we require that a\n parent or legal guardian consent prior to a child engaging in a Test\n through their parent’s or legal guardian’s Participant\n account. Our Customers are required to ensure that Tests which are\n specifically designed for children are for age-appropriate products and\n services and the Recording is limited to only captures the child’s\n voice. No other information is to be collected about the child by the\n Customer. The child’s responses may be used for the same purposes\n and subject to the same obligations, restrictions and conditions as any\n other similarly-situated Participant response. By accepting and\n authorizing a Test for a child, the parent or legal guardian (as\n applicable) is consenting to such child’s participation in the\n Tests through the Platform for the benefit of the Customer. We may\n require that Customers sign additional terms for testing with children.\n In the event a parent has a reason to believe that their child is\n participating in a Test administered via the Platform without\n authorization, or wishes to exercise any of the parental rights set\n forth in this section or applicable law, such parent may contact\n UserQual at hello@userqual.com\n

    \n

    \n Data provided by our Customers (\"Customer Data\")\n

    \n

    \n During a Customer’s use of the Platform and Services,\n Customer’s employees are asked to provide information such as name\n and contact information, including email address, address, telephone, or\n other relevant Personal Data.\n

    \n

    \n Customer Data is used by UserQual to identify each Customer and provide\n them with access to the Platform and Services, to bill Customers, and to\n meet UserQual’s contractual obligations. We also use Customer Data\n to improve our Platform and Services and to provide Customers with\n notices about improvements and best practices in using the Platform and\n Services, as well as other legitimate business purposes.\n

    \n

    \n It is the Customer’s responsibility to ensure that collection and\n processing of Recordings from a Test it has created is handled in\n accordance with applicable laws. For Customers in the EEA, please see\n our \n \n GDPR Notice\n \n . For Customers in California, please see our \n \n CCPA Notice\n \n .\n

    \n

    \n Personal Data Collected Indirectly\n

    \n

    \n \n Tracking Data, IP Addresses and Device Fingerprints\n \n

    \n

    \n UserQual tracks whether a Visitor lands on the UserQual Sites from an\n external source (such as a link on another website or in an email), as\n well as IP addresses from which the site is accessed and information\n about the computing device (fingerprint) used to access the Sites.\n UserQual uses this information to improve the Site, Platform, and\n Services, as well as to prevent fraud and secure information.\n

    \n

    \n \n Information from Third Parties\n \n

    \n

    \n UserQual collects Personal Data and other data from third parties that\n provide us with lists of potential Customers and their contact\n information, if such potential Customers give permission to those third\n parties to share their information with us. UserQual uses this\n information for its own marketing purposes.\n

    \n

    \n \n Cookies\n \n

    \n

    \n We use cookies and other technologies to track the use of our websites\n and apps. To learn about opportunities to choose not to allow cookies,\n click here. If you are using our website in a browser, this information\n is also available in our \n \n Cookie Policy\n \n .\n

    \n

    \n Visitors have the ability to accept or decline cookies that are not\n strictly necessary. Most web browsers automatically accept cookies, but\n individuals can usually modify browser settings to decline cookies. More\n information about disabling cookies is available at \n \n www.allaboutcookies.org\n \n . Choosing to decline certain cookies may result in decreased\n functionality on UserQual Site, Platform and Services.\n

    \n

    \n \n \"Do Not Track\"\n \n

    \n

    \n UserQual’s Site, Platform, and Services may not respond to Do Not\n Track (\"DNT\") signals. For more information on DNT settings generally,\n please visit \n \n https://allaboutdnt.com/\n \n .\n

    \n

    \n \n We collect data when you communicate with us\n \n

    \n

    \n If you communicate with us directly, we will collect any Personal Data\n contained in such communications.\n

    \n

    \n Automated decision making\n

    \n

    \n UserQual may use automated decision making using a variety of signals\n derived from account activity to help identify and suspend accounts\n sending spam or engaged in other abusive or fraudulent activity or who\n have not engaged with the us for an extended period of time. Holders of\n accounts suspended under these circumstances are notified of the\n suspension and given an opportunity to request human review of the\n suspension decision.\n

    \n

    \n \n How we share your personal data\n \n

    \n

    \n UserQual may use automated decision making using a variety of signals\n derived from account activity to help identify and suspend accounts\n sending spam or engaged in other abusive or fraudulent activity or who\n have not engaged with the us for an extended period of time. Holders of\n accounts suspended under these circumstances are notified of the\n suspension and given an opportunity to request human review of the\n suspension decision.\n

    \n

    \n How we share your personal data\n

    \n

    \n \n Data Processors and Subprocessors\n \n

    \n

    \n UserQual discloses Personal Data to our third-party agents, contractors,\n or service providers who are hired to perform services on our behalf.\n These providers may operate or support certain functions of the\n Services, and in some cases collect information directly. Below is an\n illustrative list of functions for which we may use third-party service\n providers:\n

    \n
      \n
    • Analytics services, such as DataDog and NewRelic
    • \n
    • Customer support services, such as ZenDesk and Intercom
    • \n
    • \n Billing services and payment gateway providers, such as PayPal and\n Razorpay\n
    • \n
    • \n Hosting and content delivery network services, such as AWS and Digital\n Ocean\n
    • \n
    \n

    \n Unless you and the Company have agreed otherwise, we generally do not\n directly collect your payment information and we do not store your\n payment information. We use a third-party payment processor, such as\n PayPal, which collects payment information on our behalf in order to\n complete transactions such as to pay Participants. While our\n administrators are able to view and track actual transactions via the\n third-party payment processor’s customer portal, with the\n exception of the last 4 digits of your credit card, credit card type,\n zip code and expiration date, we do not have access to or process your\n credit card information.\n

    \n

    \n \n Business Transfers\n \n

    \n

    \n As we continue to grow, we may purchase websites, applications,\n subsidiaries, and other businesses or business units. We may share your\n data among our corporate group companies. Alternatively, we may sell\n businesses or business units, merge with other entities, and/or sell\n assets or stock, in some cases as part of a reorganization or\n liquidation in bankruptcy. As part of these transactions, we may\n transfer your Personal Data to a successor entity upon a merger,\n consolidation or other corporate reorganization in which UserQual\n participates, or to a purchaser or acquirer of all or a portion of\n UserQual’s assets, bankruptcy included.\n

    \n

    \n \n Legal Obligations and Security\n \n

    \n

    \n We will preserve or disclose your Personal Data in limited circumstances\n (other than as set forth in this Privacy Policy), including: (i) with\n your consent; (ii) when we have a good faith belief it is required by\n law, such as pursuant to a subpoena, warrant, or other judicial or\n administrative order (as further explained below); (iii) to protect the\n safety of any person; to protect the safety or security of our Services\n or to prevent spam, abuse, or other malicious activity of actors with\n respect to the Services; or (iv) to protect our rights or property or\n the rights or property of those who use the Services.\n

    \n

    \n If we are required to disclose Personal Data by law, such as pursuant to\n a subpoena, warrant, or other judicial or administrative order, our\n policy is to respond to legal mandates that are properly issued.\n

    \n

    \n Note that if we receive information that provides us with a\n good faith belief that there is an exigent emergency involving the\n danger of death or serious physical injury to a person, we may provide\n information to law enforcement trying to prevent or mitigate the danger\n (if we have it), to be determined on a case-by-case basis.\n

    \n

    \n How we store your data\n

    \n

    \n \n Retention\n \n

    \n

    \n We retain your Personal Data in accordance with your instructions,\n including those in the applicable terms of service accepted by you and\n any terms governing your use of the Platform and Services. We may also\n retain your Personal Data where we have an ongoing legitimate business\n purpose for doing so. We must retain information when it is needed for\n the establishment, exercise or defense of legal claims (also known as a\n \"litigation hold\"). In this case, we retain the information as long as\n needed for exercising respective potential legal claims.\n

    \n

    \n We use the following criteria to determine our retention periods: the\n amount, nature and sensitivity of your information, the reasons for\n which we collect and process your Personal Data, the length of time we\n have an ongoing relationship with you and provide you with access to our\n Services, and applicable legal requirements.\n

    \n

    \n If you have questions about, or need further information concerning, our\n data retention periods, please send an email at hello@userqual.com\n

    \n

    \n \n Deletion\n \n

    \n

    \n At UserQual’s option, we may delete Personal Data one year after\n our business relationship ends, subject to our document retention\n policies and practices. When we have no ongoing legitimate business\n purpose to process your Personal Data, we may either delete or anonymize\n it. Deletion may not be possible if your Personal Data was anonymized.\n In that case, the anonymized data will not be able to be combined with\n other data to identify you.\n

    \n

    \n If you ask UserQual to delete specific Personal Data of yours, and we\n are the data controller, we will honor your request by deleting or\n anonymizing the data unless deleting that information prevents us from\n carrying out necessary business functions, such as delivering and\n billing for our services, calculating taxes, or conducting required\n audits and fulfilling contractual obligations to our Customers,\n Participants or others.\n

    \n

    \n If you are an individual in the EEA or a California resident, please see\n the relevant \n \n GDPR Notice\n \n  and \n \n CCPA Notice\n \n  with respect to exercising your right to deletion.\n

    \n

    \n How you can control your data\n

    \n

    \n Visitors, Participants, and Customers who wish to request access to or\n correction of Personal Data for which UserQual is the data controller\n should contact UserQual. Where UserQual is the data processor or\n subprocessor of your Personal Data, Visitors, Participants, or Customers\n should contact the relevant data controller to request access to or\n correction of that Personal Data.\n

    \n

    \n Individuals located in the EEA or residents of California have\n additional rights as set forth in our relevant \n \n GDPR Notice\n \n  and \n \n CCPA Notice\n \n .\n

    \n

    \n How we keep your data safe\n

    \n

    \n UserQual stores most of the data on AWS and Digital Ocean servers and\n maintains highly secure databases based on the Amazon’s storage\n policies.\n

    \n

    \n Security\n

    \n

    \n We cannot guarantee, ensure or warrant the security of any information\n transmitted to the Company. All transmissions of information are done at\n the sender’s own risk. Once we are in possession of information,\n we will make reasonable efforts to ensure the security of the\n information within our systems.\n

    \n

    \n Your personal information and files are stored on UserQual’s\n servers and the servers of companies we hire to provide services to us.\n

    \n

    \n UserQual has adopted physical, technological, and administrative\n procedures designed to safeguard and secure the information we process.\n By using this Site, Platform or Services or by providing Personal Data\n to us, you agree that we can communicate with you electronically\n regarding security, privacy, and administrative issues relating to your\n use of this Site, Platform or Services.\n

    \n

    \n Acceptance\n

    \n

    \n You agree that you have carefully read this document and agree to its\n contents. If you choose not to agree with this Privacy Policy, then you\n should refrain from using the Site, Services, and Platform.\n

    \n

    \n UserQual reserves the right to change our Privacy Policy from time to\n time. If we make material changes to this Privacy Policy, we will\n provide notice to you of these changes, which may be by email to you, by\n posting a notice of such changes on our apps and websites, or by other\n means consistent with applicable law. Unless your express consent is\n required by law, your continued use of the UserQual Site, Platform, and\n Services after having been notified of any such a revised Privacy Policy\n indicates acceptance of the revised Privacy Policy.\n

    \n

    \n Contact Us\n

    \n

    \n If you have questions, comments, or concerns about UserQual or this\n Privacy Policy, please email us at: hello@userqual.com\n

    \n

    \n Last updated: May 1, 2021\n

    \n

     

    \n
    \n );\n};\n\nexport default PrivacyAndTermsAndConditions;\n","import React, { useEffect } from \"react\";\nimport { useCallback } from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport axios, { Routes } from \"../../services/API\";\nimport {\n getRoleByToken,\n getSurveyIdByToken,\n incrementPendingRequests,\n decrementPendingRequests,\n notify,\n} from \"../../utils\";\n\n// {\n// data: {\n// referSurveyToken: Survey.referSurveyToken\n// }\n// }\n\n// frontend endpoint:\n// \n\n//Endpoint POST to user/:surveyId/addSurvey\n\nconst AddSurvey = () => {\n const { referSurveyToken } = useParams();\n const surveyId = getSurveyIdByToken(referSurveyToken);\n const history = useHistory();\n const userId =\n getRoleByToken(localStorage.getItem(\"token\")) === \"user\"\n ? localStorage.getItem(\"user\")\n : \"\";\n\n const addSurveyAPI = useCallback(async () => {\n try {\n incrementPendingRequests();\n const res = await axios({\n ...Routes.user.addSurvey(userId, surveyId),\n data: { data: { referSurveyToken } },\n });\n\n if (res.status === 200) {\n return notify(\"success\", \"Success\", res.data.message);\n }\n } catch (err) {\n return notify(\"error\", \"Error\", err.response.data.message);\n } finally {\n decrementPendingRequests();\n history.push(\"/user/forms\");\n }\n }, [userId, surveyId]);\n\n useEffect(() => {\n addSurveyAPI();\n }, []);\n\n return <>;\n};\n\nexport default AddSurvey;\n","import axios, { Routes } from \"../../../../services/API\";\nimport {\n decrementPendingRequests,\n getUserId,\n incrementPendingRequests,\n} from \"../../../../utils\";\n\nfunction useGetSurvey() {\n const getSurveyAPI = async (surveyId) => {\n try {\n incrementPendingRequests();\n const res = await axios({\n ...Routes.user.getSurvey(getUserId(), surveyId),\n });\n\n if (res.status === 200) {\n console.log(\"success\", \"Success\", res.data.message);\n return res.data.survey;\n }\n return null;\n } catch (err) {\n console.log(\"error\", \"Error\", err.response.data.message);\n return null;\n } finally {\n decrementPendingRequests();\n }\n };\n\n return getSurveyAPI;\n}\n\nexport default useGetSurvey;\n","import axios, { Routes } from \"../../../../services/API\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n} from \"../../../../utils\";\n\nconst useGetOpenSurvey = () => {\n const getOpenSurveyAPI = async (surveyId) => {\n try {\n incrementPendingRequests();\n const res = await axios({\n ...Routes.user.getOpenSurvey(surveyId),\n });\n\n if (res.status === 200) {\n console.log(\"success\", \"Success\", res.data.message);\n return res.data.survey;\n }\n return null;\n } catch (err) {\n console.log(\"error\", \"Error\", err.response.data.message);\n return null;\n } finally {\n decrementPendingRequests();\n }\n };\n\n return getOpenSurveyAPI;\n};\n\nexport default useGetOpenSurvey;\n","import axios, { Routes } from \"../../../../services/API\";\nimport {\n decrementPendingRequests,\n incrementPendingRequests,\n} from \"../../../../utils\";\n\nconst useIsOpenSurvey = () => {\n const isOpenSurveyAPI = async (surveyId) => {\n try {\n incrementPendingRequests();\n const res = await axios({\n ...Routes.user.isOpenSurvey(surveyId),\n });\n\n if (res.status === 200) {\n console.log(\"success\", \"Success\", res.data.message);\n return res.data.surveyAccess;\n }\n return null;\n } catch (err) {\n console.log(\"error\", \"Error\", err.response.data.message);\n return null;\n } finally {\n decrementPendingRequests();\n }\n };\n\n return isOpenSurveyAPI;\n};\n\nexport default useIsOpenSurvey;\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory, useParams } from \"react-router-dom\";\nimport { getUserId, getSurveyIdByToken, isUserRole } from \"../../utils\";\nimport SurveyWrapper from \"../../features/survey/components/survey/SurveyWrapper\";\nimport c from \"classnames/bind\";\nimport styles from \"./survey/survey.module.css\";\nimport useGetSurvey from \"../../features/survey/hooks/qualSurvey/useGetSurvey\";\nimport useGetOpenSurvey from \"../../features/survey/hooks/openSurvey/useGetOpenSurvey\";\nimport useIsOpenSurvey from \"../../features/survey/hooks/openSurvey/useIsOpenSurvey\";\n// {\n// data: {\n// referSurveyToken: Survey.referSurveyToken\n// }\n// }\n\n// frontend endpoint:\n// \n\n//Endpoint POST to user/:surveyId/addSurvey\n\nconst cx = c.bind(styles);\n\nconst AttemptSurvey = () => {\n const { referSurveyToken } = useParams();\n const surveyId = getSurveyIdByToken(referSurveyToken);\n const history = useHistory();\n const getOpenSurveyAPI = useGetOpenSurvey();\n const isOpenSurveyAPI = useIsOpenSurvey();\n const getSurveyAPI = useGetSurvey();\n const [userId, setUserId] = useState(getUserId());\n const [isOpen, setIsOpen] = useState(null);\n const [survey, setSurvey] = useState([]);\n const [showSurvey, setShowSurvey] = useState(false);\n const [showError, setShowError] = useState(false);\n const params = new URLSearchParams(window.location.search)\n const token = params.get('token')\n\n const setSurveyObject = (survey) => {\n if (survey === null) {\n setShowError(true);\n }\n if (survey) {\n setSurvey(survey);\n setShowSurvey(true);\n }\n };\n\n useEffect(() => {\n (async () => {\n if (!isUserRole()) {\n debugger\n const isOpenSurvey = await isOpenSurveyAPI(surveyId);\n if (isOpenSurvey === null) {\n history.push('/signin/user')\n setShowError(true);\n } else {\n setIsOpen(isOpenSurvey);\n }\n } else {\n setIsOpen(false);\n setUserId(getUserId());\n }\n })();\n }, []);\n\n useEffect(() => {\n (async () => {\n if (isOpen !== null) {\n if (isOpen) {\n setSurveyObject(await getOpenSurveyAPI(surveyId));\n } else {\n if (!isUserRole()) setShowError(true);\n else setSurveyObject(await getSurveyAPI(surveyId));\n }\n }\n })();\n }, [isOpen]);\n\n const modalStyles = {\n content: {\n top: \"0\",\n left: \"0\",\n width: \"100vw\",\n height: \"100vh\",\n border: 0,\n padding: 0,\n borderRadius: 0,\n },\n };\n\n return (\n \n {showSurvey && }\n {showError && (\n
    \n
    \n
    \n \n \n Sorry!\n

    \n

    \n Survey is not taking responses. Please contact the admin.\n

    \n
    \n
    \n
    \n \n )}\n
    \n );\n};\n\nexport default AttemptSurvey;\n","import React from \"react\";\nimport { Redirect, Route, useLocation } from \"react-router-dom\";\nimport User from \"./pages/user/User\";\nimport Client from \"./pages/client/Client\";\nimport Admin from \"./pages/admin/Admin\";\nimport Signin from \"./pages/Signin\";\nimport Signup from \"./pages/Signup\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport Verification from \"./pages/Verification\";\nimport { getRoleByToken } from \"./utils\";\nimport Home from \"./pages/Home\";\nimport BecomeTester from \"./pages/BecomeTester\";\nimport PrivacyAndTermsAndConditions from \"./pages/PrivacyAndTermsAndConditions\";\nimport AddSurvey from \"./pages/user/AddSurvey\";\nimport AttemptSurvey from \"./pages/user/AttemptSurvey\";\n\nfunction Routes() {\n const [role, setRole] = useState(\n getRoleByToken(localStorage.getItem(\"token\"))\n );\n const location = useLocation();\n\n // eslint-disable-next-line\n useEffect(() => {\n if (role !== getRoleByToken(localStorage.getItem(\"token\"))) {\n setRole(getRoleByToken(localStorage.getItem(\"token\")));\n }\n });\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n {role === null && location.pathname.includes(\"/addSurvey\") && (\n \n )}\n {(role === null || role === \"user\") && location.pathname.includes(\"/attemptSurvey\") && (\n \n )}\n {role === null &&\n !location.pathname.includes(\"/tester\") &&\n !location.pathname.includes(\"/privacy-and-terms-and-conditions\") &&\n !location.pathname.includes(\"/verification\") &&\n !location.pathname.includes(\"/forgotPassword\") &&\n !location.pathname.includes(\"/signup\") &&\n !location.pathname.includes(\"/signin\") &&\n !location.pathname.includes(\"/attemptSurvey\") && }\n \n {role === \"user\" && !location.pathname.includes(\"/attemptSurvey\") && (\n <>\n \n \n \n )}\n {role === \"user\" && (location.pathname.includes(\"/addSurvey\")) && (\n \n )}\n {role === \"client\" && (\n <>\n \n \n \n )}\n {role === \"admin\" && (\n <>\n \n {!location.pathname.includes(\"/admin\") && (\n \n )}\n \n )}\n \n );\n}\n\nexport default Routes;\n","import React from \"react\";\nimport \"./App.less\";\nimport \"./App.css\";\nimport Routes from \"./Routes.js\";\nimport { useSelector } from \"react-redux\";\nimport { Spin } from \"antd\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport Modal from \"react-modal\";\n\nModal.setAppElement(\"#root\");\n\nfunction App() {\n const pendingRequests = useSelector((state) => state.pendingRequests);\n const loading = pendingRequests > 0 ? true : false;\n\n return (\n
    \n \n \n {loading && }\n \n
    \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}